Compare commits

...
Sign in to create a new pull request.

3,886 commits

Author SHA1 Message Date
Subrata Banik
eda62af9dd mb/google/bluey: Implement slow-to-fast charging transition logic
Update the charging flow to support a transition from slow charging
to fast charging based on the battery threshold.

Key changes:
- Pass boot_mode to launch_charger_applet() to allow mode-specific
  power management.
- In LB_BOOT_MODE_LOW_BATTERY_CHARGING, if the battery is above the
  critical threshold, issue an AP power-off to trigger a transition
  from slow to fast charging mode.
- Update handle_low_power_charging_boot() to default to slow charging
  for low-battery charging boots.

BUG=b:497622018
TEST=Verified Bluey correctly switches from slow charging to fast
charging once critical battery threshold is exceeded.

Change-Id: Ic65ab99360496c92a91795fce1352159066ab94e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91912
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-31 06:34:48 +00:00
Matt DeVillier
1dc346e61e cpu/intel/haswell: Add option-backed PL1/PL2 overrides and package limit lock
Add option variables to allow user override of PL1/PL2 via CMOS/CFR,
which can be exposed by mainboards. Add the ability to lock the power
levels set to prevent the OS/userspace tools from meddling. Add a
CFR form for the lock option which mainboards can use.

TEST=build/boot google/beltino with PL1/2 and lock options exposed,
verify changes reflected in cbmem and by reading MSR/MCHBAR.

Change-Id: I3db0a44c1e8982348026fa9e66123fd41a0f9884
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91876
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:33:59 +00:00
Matt DeVillier
0d95bb5158 mb/google/fizz: Add CFR PL1/PL2 package power overrides
Expose PL1 and PL2 overrides in the Power CFR form, allowing users to
adjust the values within safe limits. Expose CFR option to lock the
programmed values.

TEST=build/boot Fizz, verify adjusted values reflected in cbmem log,
MSR 0x610, and MCHBAR registers.

Change-Id: Iab7b2cdf815cadfbc93e1d8395380706243ec203
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91847
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-29 18:33:50 +00:00
Matt DeVillier
6c10b07146 mb/google/fizz: Refactor mainboard_set_power_limits()
Add helper functions to determine sku type and default PL2 value; the
latter will be exposed and used externally in a subsequent commit.

Rename and remove variables to clarify and simplify the function.
Defines for FIZZ_PSYSPL2_U22/U42 are renamed to clarify that they are
the max adapter power for those SKUs; PsysPL2 is set to 90% of these
values via the SET_PSYSPL2() macro.

Change-Id: I504b2dcedbf3817351516b051effc2c70082854d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91882
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:33:42 +00:00
Matt DeVillier
976149a2f7 soc/intel/common/power_limit: Raise PsysPL1 when package PL1 is above TDP
When PL1 exceeds the SKU TDP, program MSR_PLATFORM_POWER_LIMIT (0x65c)
long-term (PsysPL1) to the same value.

This prevents the long-term system power from becoming a choke point
when raising the package PL1.

Change-Id: I85a604467ccbede84a668117ad588ac75b742a70
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91872
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-29 18:33:32 +00:00
Matt DeVillier
bdf757aa86 soc/intel/common/power_limit: Add option-driven PL1/PL2 overrides and locking
Add option-backed overrides for PL1 and PL2, to allow for runtime
configuration, with fallback to board programmed values. Clamp PL2
to at least PL1.

Add an option to control setting the lock bit, to prevent OS or user
tools from overriding the desired power limits.

Add a CFR object for setting the lock bit, but not for the PL1/2
overrides, as the desired values there are board specific.

TEST=tested with rest of patch train

Change-Id: I7194df93e0602b4e00d1d39e44cb0b0ed2582cb9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91846
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Aralguppe, Sowmya <sowmya.aralguppe@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-03-29 18:33:22 +00:00
Kapil Porwal
f45d6e696a mb/google/bluey: Configure sink sensor for DAM port
Enable/disable the sink sensor for DAM port during power on/off.

BUG=b:491325845
TEST=Verify the configuration on power on/off on Google/Quartz.

Change-Id: Ib00e1cc1c86bafb19cde24c7faa624d3e6d00db8
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91890
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:29:21 +00:00
Matt DeVillier
63fc231480 AUTHORS: Update with new authors from the 26.03 release
Updated via 'util/release/get_new_authors --update 25.12 26.03'

Change-Id: I1a024e5a739875218f3395370281be845e7c5ba7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91889
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-29 18:28:47 +00:00
Matt DeVillier
f67b5ed6fd util/release: add get_new_authors helper
Add a standalone script to detect new contributors between two local
git refs and print the names and count. Support --update to merge new
names into AUTHORS in sorted order, and --full to include email plus
earliest commit date/hash/subject.

Functionality extracted from genrelnotes script; script largely
generated by Cursor AI.

Change-Id: I5841f68d04522f84e871a80778e0038fd6cba5a9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91888
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:28:41 +00:00
Qinghong Zeng
7bcb90047e mb/google/nissa/var/pujjoniru: Add 2 Micron modules to RAM id table
Add support for the new memory Micron MT62F1G32D2DS-031RF WT:C using
spd-3.hex, and MT62F2G32D4DS-031RF WT:C using spd-6.hex

DRAM Part Name                 ID to assign
K3KL6L60GM-MGCT                0 (0000)
H9JCNNNBK3MLYR-N6E             1 (0001)
H58G56CK8BX146                 2 (0010)
MT62F1G32D2DS-026 WT:B         3 (0011)
K3KL8L80CM-MGCT                3 (0011)
MT62F1G32D2DS-031RF WT:C       4 (0100)
MT62F2G32D4DS-031RF WT:C       5 (0101)

BUG=b:493068113
TEST=Normal boot

Change-Id: I03afd40346890e99b2be83dfabc1c3e95ef0bf8c
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91083
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: hualin wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-29 18:28:28 +00:00
Tony Huang
c683673095 mb/google/nissa/var/yavilla: Add RAM ID H58G56BK8BX068
DRAM Part Name                 ID to assign
H58G56BK8BX068                 7 (0111)

BUG=b:496028135
TEST=build nissa coreboot
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>

Change-Id: Ibf816767acf2d1a2b087365615a68d15bededb98
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91842
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
2026-03-29 18:28:21 +00:00
Yanqiong Huang
66ed61a73c b/google/brox/var/lotso: Add RAM ID for MT62F1G32D2DS-031RF WT:C
Add support for the new memory Micron MT62F1G32D2DS-031RF WT:C using
spd-3.hex

DRAM Part Name                 ID to assign
K3KL6L60GM-MGCT                0 (0000)
H9JCNNNBK3MLYR-N6E             1 (0001)
K3KL8L80DM-MGCU                2 (0010)
MT62F1G32D2DS-023 WT:C         2 (0010)
H58G56BK8BX068                 2 (0010)
H58G56CK8BX146                 2 (0010)
K3KL8L80EM-MGCU                2 (0010)
H58G56BK7BX068                 3 (0011)
K3KL8L80CM-MGCT                3 (0011)
MT62F1G32D2DS-031RF WT:C       4 (0100)

BUG=b:493358220
TEST=Use part_id_gen to generate related settings

Change-Id: I84e4c408db1e3d3838549028a96c6f05afec81ca
Signed-off-by: Yanqiong Huang <huangyanqiong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91691
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
2026-03-29 18:28:14 +00:00
Yang Wu
6d3e13a33a mb/google/bluey: Conditionally enable FP rails in normal boot
Only enable GPIO_EN_FP_RAILS when booting in LB_BOOT_MODE_NORMAL.

This avoids powering the FP MCU in non-normal boot modes such as
low battery or charging scenarios where FP functionality is not
required.

BUG=b:494962574
TEST=Verified by normal boot and check FP LED.

Change-Id: I7dca803fb3414f7b6b12eb9a8f284a3f1b7b6d87
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91898
Reviewed-by: wen zhang <zhangwen6@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:28:07 +00:00
Tongtong Pan
137b9c59ea mb/google/var/fatcat/lapis: adjust 'cirrus,detect-us' property to
improve the noise situation

When a 3.5 mm headset is connected, noise occurs during system startup
or wake-up from suspend.Setting this value "detect-us" lower should
improve the noise situation, therefore, we adjust detect_us to 100us.

BUG=b/454450799
TEST=cat /sys/kernel/debug/regmap/<sdw_dev>/registers | grep 010040
to ensure the changes take effect and improve the noise situation.
Change-Id: I0c94a1d9862f6e201b451c19f292a12fe3b9ed68
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91836
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:27:59 +00:00
Patrick Rudolph
d381d33a39 soc/soc/amd/glinda: Hook up STX VBIOS
Hook up the VBIOS binary published on the amd_blobs submodule.

TEST=Graphics init works pre OS on AMD/birman+

Change-Id: I927ea1e6dd9be0c13719cf080fc7ca7505f83eba
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91854
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:27:52 +00:00
Sean Rhodes
1b284012b8 mb/starlabs/starfighter: add configurable touchpad tuning
Apply StarFighter touchpad settings at boot and expose the tuning
controls through CFR.

Add CFR controls for vibration intensity, click force, release force,
and tracking speed. Apply the selected settings during payload boot, and
keep the touchpad controls grouped in a dedicated Trackpad menu.

Change-Id: I3a6a906f7a3ca89e42aa53bb9a4c3dd536c4fe0a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91817
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-29 18:27:17 +00:00
Patrick Rudolph
97d616b927 soc/amd/common/block/spi: Add helper functions
When a mainboard has a secondary SPI flash, also referred to as
DUAL SPIROM or backup SPI flash, and a board specific recovery
mechanism for failed flash updates it might need to access the
secondary SPI flash. A use case would be syncing the MRC cache
(APOB NV on AMD), RPMC and fTPM regions to the secondary flash.

Add generic code to access the "backup" SPI flash. It assumed
that both SPI flash have the same size and same type.
The backup SPI flash chip select line is determined at runtime
so that it is the opposite of boot_device_spi_cs().
Thus when booting from CS2, CS0 will become the backup flash.

TEST=Can access and use backup flash on AMD Glinda SoC.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ied683408d36850416fc1bbfaef0c415703ff183e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90780
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-03-29 18:27:09 +00:00
Matt DeVillier
102b9b42ae mb/google/skyrim/var/frostflow: Add non-ChromeOS TBMC support
The TBMC ACPI device is used by Windows ChromeEC drivers to determine
tablet mode and to enable motion sensors (accelerometer, gyroscope).
Since it's not needed/used by ChromeOS, restrict its inclusion to
non-ChromeOS builds.

TEST=build/boot Win11/Linux on frostflow, verify tablet mode and
rotation work properly, keyboard/touchpad disabled in tablet mode.

Change-Id: Iedc68797776d43f37dd97e5251cf9b9a016f1bd5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91800
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2026-03-29 18:26:47 +00:00
Matt DeVillier
d012a678e2 mb/google/guybrush/var/dewatt: Add non-ChromeOS TBMC support
The TBMC ACPI device is used by Windows ChromeEC drivers to determine
tablet mode and to enable motion sensors (accelerometer, gyroscope).
Since it's not needed/used by ChromeOS, restrict its inclusion to
non-ChromeOS builds.

TEST=build/boot Win11/Linux on dewatt, verify tablet mode and rotation
work properly, keyboard/touchpad disabled in tablet mode.

Change-Id: I3eeae7b453589a2253226709dd6cfcff1862ea17
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91799
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2026-03-29 18:26:41 +00:00
Matt DeVillier
7eb70b259b mb/google/zork: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Zork-based Spin/Flip devices
so SMBIOS reports a convertible enclosure type. This enables
EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS on non-ChromeOS builds
and allows use of the vendor tablet mode ACPI.

Change-Id: I53ce5222e6b6984ef6e3b3c89ecfbae7620aaf36
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91752
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2026-03-29 18:26:35 +00:00
Matt DeVillier
dbd05fc2da mb/google/kahlee: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Kahlee-based Spin/Flip devices
so SMBIOS reports a convertible enclosure type. This enables
EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS on non-ChromeOS builds
and allows use of the vendor tablet mode ACPI.

Change-Id: I63d815f4cf46aee064db4a23b97c399aa334aad0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91749
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:26:28 +00:00
Matt DeVillier
45378e6fc2 mb/google/guybrush/dewatt: Mark board as convertible
Set SYSTEM_TYPE_CONVERTIBLE for the Dewatt variant so SMBIOS
reports a convertible enclosure type. This allows non-ChromeOS
builds to enable EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS and use
the vendor tablet mode ACPI.

Change-Id: I01bd8a4255b2cacc01e9eda703e88af57c8f58c7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91744
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2026-03-29 18:26:22 +00:00
Matt DeVillier
227dbbad4a mb/google/skyrim: Use GpioInt wake for touchpad and fingerprint reader
Windows ACPI rejects devices that use both GpioInt in _CRS and a GPE in
_PRW (BSOD 0x1000D). Switch touchpad and fingerprint reader to
ACPI_GPIO_IRQ_*_WAKE so wake is expressed via GpioInt SharedAndWake
instead of a separate _PRW GPE, keeping wake support while staying
Windows-compliant.

TEST=build/boot Win11 on frostflow

Change-Id: I2ced532443e60e9cbb4e482feceab175aed9a155
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91795
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:25:57 +00:00
Matt DeVillier
fe445f4b9d mb/google/skyrim: Use level-triggered IRQ for touchpad and touchscreen
Change touchpad and touchscreen IRQ from edge to level triggering across
all skyrim variants. Required for Windows driver compatibility.

TEST=build/boot Win11 on frostflow; verify touchpad/screen functional.

Change-Id: Ibbc275112536b4d555b127271ee264414d06c5cb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91794
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:25:51 +00:00
Matt DeVillier
49803f2130 mb/google/guybrush: Use GpioInt wake for touchpad and fingerprint reader
Windows ACPI rejects devices that use both GpioInt in _CRS and a GPE in
_PRW (BSOD 0x1000D). Switch touchpad and fingerprint reader to
ACPI_GPIO_IRQ_*_WAKE so wake is expressed via GpioInt SharedAndWake
instead of a separate _PRW GPE, keeping wake support while staying
Windows-compliant.

TEST=build/boot Win11 on dewatt

Change-Id: I04593166aad8d3c2c601ba489237a5f45be95fa2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91793
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:25:45 +00:00
Matt DeVillier
62abc7aca0 mb/google/guybrush: Switch touchpad IRQ to level triggering
Use ACPI_GPIO_IRQ_LEVEL_LOW instead of EDGE_LOW for Elan touchpads.
Required for Windows driver compatibility.

TEST=build/boot Win11/Linux on dewatt; verify touchpad functional.

Change-Id: I712134860eee456c2c103c2ca8543020c58027f2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91792
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:25:40 +00:00
Matt DeVillier
65858ad5c9 mb/google/zork/var/vilboz: Guard GPIO for SAR sensor
The GPIO for the proximity sensor, which is only used by ChromeOS for
WiFi power/SAR purposes, causes an IRQ storm under Windows. Only
configure it when building for ChromeOS.

TEST=build/boot Win11 on vilboz

Change-Id: I38955f2e11c7eb412416884b4769e70dd1bde6de
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91791
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2026-03-29 18:25:34 +00:00
Matt DeVillier
fd5b6323ea mb/google/zork: Use GpioInt wake for touchpad and fingerprint reader
Windows ACPI rejects devices that use both GpioInt in _CRS and a GPE in
_PRW (BSOD 0x1000D). Switch touchpad and fingerprint reader to
ACPI_GPIO_IRQ_*_WAKE so wake is expressed via GpioInt SharedAndWake
instead of a separate _PRW GPE, keeping wake support while staying
Windows-compliant.

TEST=build/boot Win11 on morphius

Change-Id: I2a47b8435fb19ec39d19e09967defa91ae58a85b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91790
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 18:25:28 +00:00
Matt DeVillier
e2c419bc44 mb/google/zork: Use level-triggered IRQ for touchscreens
Change Raydium and ELAN touchscreen IRQ from edge to level triggering
across berknip, dalboz, ezkinil, trembyle, and vilboz variants.
Necessary for Windows driver compatibility.

TEST=build/boot Win11/Linux on ezkinil; verify touchscreen functional.

Change-Id: I126589f9412f405d69961919bf61c4c60f623676
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91789
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2026-03-29 18:25:23 +00:00
Subrata Banik
30b8524ff5 soc/qualcomm/calypso: Enable basic PCIe support
This commit introduces initial support for PCI Express on the
Qualcomm Calypso SoC.

Key changes include:
- Selecting `CONFIG_PCI` in Kconfig to enable general PCI subsystem
  support for this SoC.
- Selecting `CONFIG_NO_ECAM_MMCONF_SUPPORT`, indicating that this
  platform will not use the standard MMCONFIG ECAM for PCI
  configuration space access. An alternative mechanism will be required.
- Adding `../common/pcie_common.c` to the ramstage build if `CONFIG_PCI`
  is enabled, incorporating common PCIe helper functions.

BUG=b:496650089
TEST=Able to build google/calypso.

Change-Id: I813e0811e9fd5b6ceefbf72635998a26536987c8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91907
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:32:13 +00:00
Subrata Banik
ba3b83e51e mb/google/mensa: Implement SKU ID retrieval
Implement the sku_id() function for the Mensa mainboard to replace
the existing placeholder.

The SKU ID is retrieved from the Chrome EC using the common
google_chromeec_get_board_sku() interface. To optimize performance and
avoid redundant SPI transactions to the EC, the value is cached
after the initial read.

BUG=b:496650089
TEST=Build and boot on Mensa; verify SKU ID is correctly reported in
cbmem logs.

Change-Id: Ibaef20913e8043a02b2468d1157ac1a4a2087fc6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91906
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:32:07 +00:00
Subrata Banik
888cc7f92a mb/google/mensa: Initialize FP GPIOs in bootblock
Perform early initialization of FP GPIOs inside the
`bootblock_mainboard_init()` function.

Specifically, this commit:
- Calls `setup_chromeos_gpios()` to conditionally sets up GPIOs for
  the FPMCU (reset, boot mode, power rails).

BUG=b:496650089
TEST=Able to build google/mensa.

Change-Id: I0c7f1e4c666c87b9bb5e1b3c615b3f04c0e8c423
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91905
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:32:00 +00:00
Subrata Banik
a6921f7fb9 soc/qualcomm/calypso: Add placeholder for early clock initialization
This commit adds the `clock_init()` function for the Qualcomm calypso
SoC. This function is now called at the beginning of
`bootblock_soc_init()` to enable SoC-specific clock setup early in the
boot process.

The `clock_init()` function definition is currently a placeholder
and will be populated with the required clock configurations in
subsequent changes.

BUG=b:496650089
TEST=Able to build google/mensa.

Change-Id: I3886670348e998b3d80d33643e2256af4eb47fd7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91904
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:31:53 +00:00
Subrata Banik
421c21c6cf soc/qualcomm/calypso: Initialize QSPI and QUPv3 in bootblock
The bootblock requires early initialization of the Quad-SPI (QSPI)
controller to enable reading firmware from flash memory.

This commit adds calls to `quadspi_init()` with a 75 MHz bus clock
and `qupv3_fw_init()` within `bootblock_soc_init()`. This ensures
that the essential hardware for flash access and related QUPv3
functions are properly configured during the boot process.

BUG=b:496650089
TEST=Able to build google/mensa.

Change-Id: I225485cf601c62b1ba695eb61f786a1360790f41
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91903
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 07:31:45 +00:00
Subrata Banik
0fc956cd2d mb/google/mensa: Set correct Kconfig defaults for peripherals
Update the default Kconfig values for the google/mensa mainboard
to specify the correct hardware instances/buses used for various
peripherals as per mensa schematics (dated 03/10).

Changes:
- TPM I2C bus set to 0x01.
- ChromeEC SPI bus set to 0x16.

Removes previous TODO placeholders.

BUG=b:496650089
TEST=Successfully built google/mensa.

Change-Id: Ic377be3dc165bf1c1e19031994d87ea45d6c2dc0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91902
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:31:36 +00:00
Subrata Banik
8dbf88a300 soc/qualcomm/calypso: Add QUP Serial Engine (SE) entries
This patch adds QUP-SE entries as applicable for the Qualcomm Calypso
SoC.

This includes:
- Add new entries for QUPV3_3 SEs.
- Update base addresses for all QUP-SEs.
- Base GPIO pin function assignments.
- Definition and GPIO mapping for relevant QUP Serial Engines (SEs).
- GPIO mapping for the QSPI interface.

Additionally, update GPIO PINS for QSPI and UART.

BUG=b:496650089
TEST=Successfully built google/mensa.

Change-Id: Iab0eecc08d11d99d2534010af86217e6cc2a1961
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91901
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:31:28 +00:00
Subrata Banik
79b6dde1a5 soc/qualcomm/calypso: Set correct Kconfig defaults for peripherals
Update the default Kconfig values for the `soc/qualcomm/calypso`
to specify the correct hardware instances/buses used for various
peripherals as per datasheet for mensa (dated 03/10).

Changes:
- Boot SPI flash bus set to 26.
- Console UART instance set to 21.

Additionally, remove previous used TODO placeholders.

BUG=b:496650089
TEST=Successfully built google/mensa.

Change-Id: I89a298b13eb7761f1767d054c09eafdb3daf0927
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91897
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:31:07 +00:00
Subrata Banik
dde131c555 mb/google/mensa: Add initial support for Mensa
This commit introduces basic support for the google/mensa mainboard,
based on the Qualcomm Calypso SoC.

Changes:

- Add placeholder mainboard callbacks to enable control flow from /lib
  and Qualcomm SoC code.
- Populate the bluey mainboard directory with a copy of the bluey
  codebase, removing SoC/mainboard-specific implementations.

This provides a minimal working build for google/mensa, allowing
upstream builders to compile the mainboard. This facilitates easier
verification of subsequent changes.

BUG=b:4966500890
TEST=Successfully built google/mensa with Qualcomm Calypso SoC.

Change-Id: Id30a766c1bc6b37a6d35ba933c207951ab83f4d1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91893
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:30:37 +00:00
Subrata Banik
38e8eadfa7 soc/qualcomm/calypso: Add initial SoC skeleton for Calypso
This commit introduces a basic SoC framework for the Qualcomm
Calypso SoC enabling initial build integration.

Key changes:

- Add placeholder SoC callbacks to facilitate control flow from /lib
  and Qualcomm common code.
- Populate the calypso SoC directory with a copy of the X1P42100
  codebase, with SoC-specific implementations removed.

This provides a foundational structure for Calypso development
within the `soc/qualcomm/calypso` directory, ensuring the upstream
builder can successfully compile the SoC code.

This allows for incremental development and integration.

Reference Document: Calypso Hardware Register Description

BUG=b:496650089
TEST=Successfully built google/mensa with the Qualcomm Calypso SoC.

Change-Id: Iabbbf26c9e08906db2be024911061837fdf83bd9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91892
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 07:30:29 +00:00
Subrata Banik
c7a7fbbf2c soc/qualcomm: Add support for QUPV3 wrapper 3
The X1P42100 SoC and future Qualcomm platforms support more than two
QUPV3 wrappers. This patch extends the common Qualcomm drivers to
handle a third wrapper (QUP_WRAP3).

Details:
- clock.c: Update clock_configure_dfsr_table() to support wrap3.
- qupv3_config.c: Initialize the third wrapper if defined.
- addressmap.h: Add QUP_WRAP3_BASE defines for sc7180, sc7280,
  and x1p42100 (defaulting to 0 for older chips).

Change-Id: I58ed310c65319f26ec029071d170237130d9ba19
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91900
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-29 07:30:13 +00:00
Subrata Banik
cb05d160d4 soc/qualcomm/x1p42100: Rename SOC_QUALCOMM_BASE to include SoC name
The generic config name SOC_QUALCOMM_BASE is too broad and could
potentially conflict with other Qualcomm SoC families or common
code.

Rename it to SOC_QUALCOMM_X1P42100_BASE in both Kconfig and
Makefile.mk to ensure the configuration is explicitly scoped to
the X1P42100 series.

Change-Id: Idb74ad5ecd6180e3b472a5d007157fcc76f3e89d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91891
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 07:30:03 +00:00
Subrata Banik
b8ed516097 mb/google/bluey: Defer display initialization based on boot mode
Currently, display_startup() is called unconditionally during
mainboard_init(). For normal boot paths, this can lead to unnecessary
latency (40ms) issues.

Modify the initialization flow to:
1. Initialize display early only for low-battery or off-mode
   charging paths to ensure the user sees the charging UI.
2. Defer display initialization for all other modes to a new
   mainboard_late_init() function.
3. Use a static flag (display_init_done) to ensure display_startup()
   is only executed once regardless of the entry point.

TEST=Verified bluey still shows charging animation when low on
battery and boots to OS normally. Able to save 40ms of the boot time.

Change-Id: Id6bdda90b7f67c13cd7334ba17131a8243af0cdb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91845
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-29 07:27:22 +00:00
Daniel Maslowski
9bfab15070 docs/mb/hp: fix link to Sure Start whitepaper, add another
The URL must have the .pdf extension now, otherwise gets a 404.
Add a note on later revisions of Sure Start.

Change-Id: I00ab30b461795c672890a21d1fb2af929865c822
Signed-off-by: Daniel Maslowski <info@orangecms.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91840
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Khalifa Rouis <khalifa@missingno.tech>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2026-03-27 18:14:43 +00:00
Sean Rhodes
e839059435 mainboard/starlabs/common: enable OPAL S3 unlock
Default-enable CONFIG_TCG_OPAL_S3_UNLOCK for Star Labs boards so NVMe
OPAL devices can be unlocked via SMM on S3 resume when the payload
provides the password for the current sleep cycle.

TEST=build/boot adl/hz and starfighter/mtl with TCG enabled, suspend,
and verify SSD can be read after resume.

Change-Id: Ic3d9611295b1bdf9ea49cd6d4d6c924f8eafd746
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91046
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:14:29 +00:00
Sean Rhodes
9fc27f4b15 soc/intel/common/pcie/rtd3: Add RTD3 support for OPAL S3 unlock
OPAL S3 unlock may run before an RTD3 NVMe is powered on. When the
storage root port uses the RTD3 ACPI driver, trigger the OPAL unlock SMI
at the end of _ON once the port has powered the device.

Do not rely on _ON being invoked during S3 resume. Always trigger a
best-effort unlock during the coreboot resume path. If the NVMe init
path fails (rc=1), keep the sleep cycle armed so a later trigger (e.g.
RTD3 _ON) can retry the unlock.

TEST=tested with rest of patch train

Change-Id: If83b59973ad878c31e19d146fec8bdbb6406ec2f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91416
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:14:21 +00:00
Sean Rhodes
468f8131ec security/tcg/opal_s3: hook into default SMI/resume paths
Provide common entry points for the OPAL S3 unlock feature and wire them
into the generic x86 SMM and S3 resume code.

- Add opal_s3_smi_{apmc,sleep,sleep_finalize} helpers.
- Call these helpers from the default weak mainboard SMI hooks when
  CONFIG(TCG_OPAL_S3_UNLOCK) is enabled. This keeps the feature usable
  without forcing boards to implement new SMI handlers.
- Trigger the SMM unlock on S3 resume from arch/x86/acpi_s3.c.

Select SMM_OPAL_S3_STATE_SMRAM so the secret is persisted across SMM
handler reload. Add a delay and retry loop before unlock, and restore
NVMe BAR0 if the device loses PCI config state across S3.

The SMM side continues to whitelist only the OPAL service and unlock
APMC commands and fails closed if any invariant is violated.

TEST=tested with rest of patch train

Change-Id: I86a44760a189219a95914bd3549997880fb0242b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91045
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:14:05 +00:00
Patrick Rudolph
36a4d92239 util/amdfwtool: Fix APOB_NV quirk
Fixes commit "util/amdfwtool: Move APOB_NV quirk to amdfwtool.c".
Allow the AMD_BIOS_NV_ST and AMD_BIOS_APOB_NV to end at 16MiB.

Fixes a build failure when the region is last in the FMAP.

Change-Id: Icfa5b74e98223ff5864299d4e9a2d23606935b80
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91820
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:13:51 +00:00
Felix Singer
e57478e238 treewide: Apply nonstring attribute to unterminated strings
Applying the attribute silences the following error and allows
compilation with GCC 15.2.

  error: initializer-string for array of 'char' truncates NUL terminator but destination lacks 'nonstring' attribute

Change-Id: I33cf3219f34e297de03f67d3e73058b10930c9f8
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90631
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-03-27 18:09:27 +00:00
Zheng Bao
492b7c7c09 soc/amd/common/block/psp: Add commands for A/B recovery
PSP supports A/B updates of the PSP directory structure. This
is unrelated to VBOOT's A/B update scheme. At boot the PSP
structures of partition A are verified. If A is found corrupted
partition B will used to read in the PSP files. x86 software can
then fix the A partition and switch back to the A partition.

Add functions to get, set and toggle the active boot partition used
on the next boot.

Change-Id: Ia7f2eedae5b277745cb34a0761bd1a8b61441695
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85650
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-03-27 18:09:13 +00:00
Christian Schrötter
cf541343a9 ec/lenovo/h8: Implement LOGO LED
Implement the red i-dot LED in the ThinkPad logo at the display lid.
On warm reboot the LOGO LED isn't automatically turned on by the EC.
Turn it on in the ramstage code, which allows to see when the reboot
has happened. (Similar to PWR LED; see change ID 88998)

Further testing on other devices running H8 EC is required!

TEST=LOGO LED is on after warm reboot on Lenovo T440p.

Reference: https://ch1p.io/t440p-leds-control-linux/#list-of-leds
Related: https://review.coreboot.org/c/coreboot/+/88998
Change-Id: I2ebba5a4c1ffc38f0c2e1b24793e4a252cc171bd
Signed-off-by: Christian Schrötter <cs@fnx.li>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91837
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:08:16 +00:00
Sean Rhodes
7609822730 mb/starlabs/*: disable TCO Intruder SMI
Some Star Labs boards can continuously trigger the TCO intruder SMI.
Default the common Kconfig symbol off to avoid those spurious events.

Change-Id: I4fbdc3d0f43d814564e972afcaaac1e967fb49f8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91871
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-27 18:07:45 +00:00
Sean Rhodes
26d005fb30 mb/starlabs/starfighter: use safe shared panel PWM frequency
PWM_Frequency_03 changes from 200Hz to 2kHz.

The 16-inch QHD panel supports 200Hz to 2kHz, while the 16-inch 4K
panel supports 200Hz to 10kHz. Keep the shared board VBT at 2kHz for
now; the higher 10kHz value only applies to the 4K panel.

Change-Id: If5a6d1ea248132219f8c0115771fb26d9d5b228a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91870
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:07:39 +00:00
Sean Rhodes
25eee46bbc mb/starlabs/starbook/{adl,rpl,tgl}: raise panel PWM frequency
PWM_Frequency_03 changes from 200Hz to 2kHz.

The 14-inch 1080p panel supports 190Hz to 2kHz, so use the panel's
safe maximum instead of the old 200Hz default.

Change-Id: Ibf21bf291fecfd2b10a74bb3667549ef2f271356
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91869
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-27 18:07:34 +00:00
Sean Rhodes
bfaadde071 mb/starlabs/starbook/{adl_n,mtl}: raise panel PWM frequency
PWM_Frequency_03 changes from 200Hz to 10kHz.

The 14-inch 4K panel supports 100Hz to 10kHz, so raise the board VBT
value to the panel's safe maximum.

Change-Id: I94694d06e09d58f92966a2c827aad52f15e1e4c6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91868
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:07:28 +00:00
Sean Rhodes
d4bfac6564 mb/starlabs/adl/i5: use safe shared panel PWM frequency
PWM_Frequency_03 changes from 200Hz to 10kHz.

The 12.5-inch 2K panel supports 100Hz to 10kHz, while the 12.5-inch
3K panel supports 200Hz to 25kHz. Keep the shared board VBT at 10kHz
until panel-specific selection exists.

Change-Id: Ia8bf5a324eb65698a8ba89b89cee8a9d10fba07d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91867
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:07:22 +00:00
Sean Rhodes
1ca1c60019 mb/starlabs/adl/hz: raise panel PWM frequency to 10kHz
PWM_Frequency_03 changes from 200Hz to 10kHz.

The HZ panel is validated at 10kHz, so use that known-good value in
the board VBT instead of the old 200Hz default.

Change-Id: Ieaddba9a7fef42be8de2cc64f234a39dde62c25f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91866
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-27 18:07:16 +00:00
Sean Rhodes
e970b9b0df mb/starlabs/adl/hz: restore panel minimum brightness
Restore the HZ panel VBT minimum brightness for panel entry 03 to the reference value.

Post_Min_Brightness_03 changes from 0 to 25.

Change-Id: I04ae425a1377b4a716127a0624872b74fb3eb962
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91865
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-27 18:07:11 +00:00
Sean Rhodes
9f6ae2b5a2 mb/starlabs/starbook/{adl,rpl,tgl}: fix panel timings
Fix the StarBook 14-inch 1080p panel VBT timing values against the
panel datasheet for panel entry 03.

eDP_DataOn_To_BkltEnable_Delay_03 changes from 10 to 800.
eDP_BkltDisable_To_DataOff_Delay_03 changes from 2000 to 500.
eDP_DataOff_To_PowerOff_Delay_03 changes from 500 to 5000.

Change-Id: Ie153c6272595268565e1966b7d7773d4d068680c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91864
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:07:04 +00:00
Sean Rhodes
f13a9cb910 mb/starlabs/adl/i5: fix panel timing values against datasheet
Fix the i5 panel VBT timing values against the panel datasheet for panel entry 03.

eDP_DataOn_To_BkltEnable_Delay_03 changes from 10 to 2000.

eDP_BkltDisable_To_DataOff_Delay_03 changes from 2000 to 500.

eDP_DataOff_To_PowerOff_Delay_03 changes from 500 to 4500.

Change-Id: I717be5863d0352224eae1053db77e8d3234a396f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91863
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-27 18:06:59 +00:00
Sean Rhodes
d0e2b5df61 mb/starlabs/starbook/{adl_n,mtl}: fix panel timings
Fix the StarBook 14-inch 4K panel VBT timing values against the panel
datasheet for panel entry 03.

eDP_DataOn_To_BkltEnable_Delay_03 changes from 10 to 500.
eDP_BkltDisable_To_DataOff_Delay_03 changes from 2000 to 500.
eDP_DataOff_To_PowerOff_Delay_03 changes from 500 to 4500.

Change-Id: I941e268f6a05f74248b19eb75fc7f07f781e347c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91862
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:06:53 +00:00
Sean Rhodes
f1bc59e66e mb/starlabs/starfighter: fix panel timing values against datasheet
Fix the StarFighter panel VBT timing values against the panel datasheets for panel entry 03.

eDP_DataOn_To_BkltEnable_Delay_03 changes from 10 to 500.
eDP_BkltDisable_To_DataOff_Delay_03 changes from 2000 to 500.
eDP_DataOff_To_PowerOff_Delay_03 changes from 500 to 5000.

Change-Id: I382a1609aa7fee082b172ed07c761a7655a56dd3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91861
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-27 18:06:47 +00:00
Sean Rhodes
040ff1ff39 mb/starlabs/adl/hz: fix panel timing values against datasheet
Fix the HZ panel VBT timing values against the panel datasheet for
panel entry 03.

eDP_DataOn_To_BkltEnable_Delay_03 changes from 10 to 800.
eDP_BkltDisable_To_DataOff_Delay_03 changes from 2000 to 500.
eDP_DataOff_To_PowerOff_Delay_03 changes from 500 to 5000.

Change-Id: Icc711c3c6f105cfd6fc1dc5bbab24d9b172a924f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91860
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:06:41 +00:00
Sean Rhodes
ed261d5447 mainboard/starlabs/common: include acpi_gnvs.h in gnvs.c
gnvs.c uses the global NVS definitions directly, so include
acpi/acpi_gnvs.h explicitly instead of relying on indirect headers.

Change-Id: Ifd19111a01ced3cb9bdb85ac192358e823dd3f44
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91857
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:06:05 +00:00
Matt DeVillier
f1505f5e46 mb/google/zork: Add MKBP support
Add MKBP support for zork devices, so that vivaldi keyboard works for
devices running upstream coreboot and MrChromebox ECRW firmware.

TEST=build/boot google/morphius, verify vivaldi keyboard mapping
functional under both Linux and Win11.

Change-Id: I021454b92cdb90e2a385eee1b3d4cc0438c75132
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91787
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-27 18:05:42 +00:00
Matt DeVillier
a5b5591d31 mb/google/reef: Add MKBP support
Add MKBP support for reef devices, so that vivaldi keyboard works for
devices running upstream coreboot and MrChromebox ECRW firmware.

TEST=build/boot google/reef, verify vivaldi keyboard mapping functional
under both Linux and Win11.

Change-Id: If7a8df8469c22404e22d80fd4d116b862b6b5cec
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91786
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 18:05:33 +00:00
Matt DeVillier
134b3e050a mb/google/octopus: Add MKBP support
Add MKBP support for octopus devices, so that vivaldi keyboard works for
devices running upstream coreboot and MrChromebox ECRW firmware.

TEST=build/boot google/ampton, verify vivaldi keyboard mapping
functional under both Linux and Win11.

Change-Id: I31ecd87d8e9335dd4131f022370b32bf2d056b03
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91785
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-27 18:05:23 +00:00
Matt DeVillier
caf980b3fa mb/google/hatch: Add MKBP support
Add MKBP support for hatch devices, so that vivaldi keyboard works for
devices running upstream coreboot and MrChromebox ECRW firmware.

TEST=build/boot google/akemi, verify vivaldi keyboard mapping functional
under both Linux and Win11.

Change-Id: I7bd222160efdd4de0d63ab9542c0d2828aac583a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91784
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-27 18:05:18 +00:00
Matt DeVillier
1a75cd1da2 mb/google/glados: Add MKBP support
Add MKBP support for glados devices, so that vivaldi keyboard works for
devices running upstream coreboot and MrChromebox ECRW firmware.

TEST=build/boot google/chell, verify vivaldi keyboard mapping functional
under both Linux and Win11.

Change-Id: Ia1ea5cdece52d33f7467af0b6e1d891a04b63b94
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91783
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-27 18:05:13 +00:00
Arthur Heymans
f1e95c5536 mb/qemu/riscv: Intialize PCI root bus
Allocate resources to devices on the bus.
This booted to the fedora disk image using nvme with the CrabEFI payload.

Change-Id: I898b38fd4fa94f7d1a73132d6f821ff7c9e201dd
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91881
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-03-27 17:55:36 +00:00
Maximilian Brune
c5e905fa21 util/mec152x/Makefile: Include commonlib/bsd/compiler.h
cbfstool/flashmap/kv_pair.h uses the `__printf` macro. So we need to
include the header file defining `__printf` in the compilation.

The tooling can now be compiled on its own outside the coreboot build
system.

Change-Id: I5a622b50684c42773e66e6d9145d5de9858c9e9a
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91887
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-27 17:55:22 +00:00
Patrick Rudolph
576515394c util/amdfwtool: Use uint8_t for bitfields
Using a signed, non-fixed-width type for bitfields can cause problems.
So, use uint8_t since the affected bitfields occupy exactly one byte.

Change-Id: I728072b10baf77819a387df76b588b6a826e2841
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91855
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-03-27 12:12:00 +00:00
Subrata Banik
800d3dbef4 soc/qualcomm/x1p42100: Support separate RO/RW CPUCP binaries
The CPUCP (CPU Control Processor) binary is currently stored
uncompressed in the RO region. To save space in the RO section
while maintaining fast boot performance in normal mode, split the
CPUCP CBFS entry into two distinct files:

1. cpucp_rw: Stored in FW_MAIN_A and FW_MAIN_B with no compression
   for performance.
2. cpucp_ro: Stored in the COREBOOT (RO) region with LZMA
   compression to save flash space.

Update the loading logic in cpucp_load_reset.c to select the
appropriate binary based on the current vboot mode (Normal vs.
Recovery).

BUG=None
TEST=Verified that CPUCP loads from 'cpucp_rw' during normal boot
and 'cpucp_ro' when vboot recovery is triggered.

Normal Mode:
```
[INFO ]  CBFS: Found 'fallback/cpucp_rw' @0xc8640 size 0x79244
         in mcache @0x8669d628
```

Recovery Mode:
```
[INFO ]  CBFS: Found 'fallback/cpucp_ro' @0xc8640 size 0x79244
         in mcache @0x8669d628
```

Change-Id: Iec5294beec4377b13f8b7354d86055d5907c6556
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91852
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-27 06:17:18 +00:00
Felix Held
c0e82f6963 3rdparty/amd_blobs: advance submodule pointer
This pulls in the following change from the submodule:
- add binaries for V2000A

Change-Id: I606f7926bcdef2a02ed1f492f37a0d7aefa27714
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91856
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-26 22:13:57 +00:00
Yu-Ping Wu
82de37d171 libpayload: Makefile.mk: Fix unrecognized option '--no-weak'
aarch64-elf nm doesn't support '--no-weak'. Replace the 'nm --no-weak'
call with 'grep' with "[TDRCB]" pattern to collect the non-weak
symbols.

Change-Id: I19195034b31f39086946b7e5ee15317d6f5dd880
Signed-off-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91566
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-03-26 04:20:57 +00:00
Patrick Rudolph
e021937f35 soc/amd/glinda: Add RAS Kconfig options
On Faegan the FSP supports RAS. Allow the user to configure
RAS features and pass them to the FSP using UPDs.

Change-Id: Ia7091d216a446d56632e64f9bba0e2a166410139
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91819
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-03-25 18:42:20 +00:00
David Wu
e232934f6f mb/google/nissa: Create dirkson variant
Create the dirkson variant of the dirks project by
copying the files to a new directory named for the variant.

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

Change-Id: I7e1257ebe8292e00a282eb75535466dcb2b459eb
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91772
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2026-03-25 13:22:25 +00:00
Matt DeVillier
79c98cca80 mb/google/volteer: Add non-ChromeOS TBMC support for 360/flip variants
The TBMC ACPI device is used by Windows ChromeEC drivers to determine
tablet mode and to enable motion sensors (accelerometer, gyroscope).
Since it's not needed/used by ChromeOS, restrict its inclusion to
non-ChromeOS builds.

TEST=build/boot Win11/Linux on eldrid, verify tablet mode and rotation
work properly, keyboard/touchpad disabled in tablet mode.

Change-Id: I65832388649daceb498c91e6405d2b8343ca2aeb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91801
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:22:00 +00:00
Matt DeVillier
f867d8f76b mb/google/dedede: Add non-ChromeOS TBMC support for 360/flip variants
The TBMC ACPI device is used by Windows ChromeEC drivers to determine
tablet mode and to enable motion sensors (accelerometer, gyroscope).
Since it's not needed/used by ChromeOS, restrict its inclusion to
non-ChromeOS builds.

TEST=build/boot Win11/Linux on magolor, verify tablet mode and rotation
work properly, keyboard/touchpad disabled in tablet mode.

Change-Id: I6853465ba77be1f95cbe5795b318df02ecc1da39
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91798
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-25 13:21:53 +00:00
Matt DeVillier
25ad0950a8 mb/google/brya: Add non-ChromeOS TBMC support for 360/flip variants
The TBMC ACPI device is used by Windows ChromeEC drivers to determine
tablet mode and to enable motion sensors (accelerometer, gyroscope).
Since it's not needed/used by ChromeOS, restrict its inclusion to
non-ChromeOS builds.

TEST=build/boot Win11/Linux on taeko, verify tablet mode and rotation
work properly, keyboard/touchpad disabled in tablet mode.

Change-Id: Ie26cd77c8a58034dbce05a1ab308b9dcc122484c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91797
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-25 13:21:47 +00:00
Matt DeVillier
a8615bed6b mb/google/cyan: Add support for EC mode change event
TMBC support has been backported to the EC firmware for CYAN
and KEFKA, so add SCI support for the MODE_CHANGE host event.

TEST=build/boot Win11, Linux on CYAN, verify tablet mode switching
functional via Intel VBTN driver.

Change-Id: Id3474e07bad1b6371644821dfe39a8105e4dd0f8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91788
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:21:41 +00:00
Matt DeVillier
8f5477d92d mb/google/volteer: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Volteer-based Spin/Flip devices
so SMBIOS reports a convertible enclosure type. This enables
EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS on non-ChromeOS builds
and allows use of the vendor tablet mode ACPI (VBTN).

Set the default SYSTEM_TYPE for non-convertibles to LAPTOP as
is done for most newer ChromeOS boards.

Change-Id: I02337464953fdb654e99019af4d2f142e1910e97
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91743
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:21:32 +00:00
Matt DeVillier
7b87cda615 mb/google/reef: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Reef-based Spin/Flip devices
so SMBIOS reports a convertible enclosure type. This enables
EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS on non-ChromeOS builds
and allows use of the vendor tablet mode ACPI (VBTN).

Change-Id: Iff5c8379ff318a5616fee0133fef6f0ad9b93003
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91751
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:21:26 +00:00
Matt DeVillier
7995a1d3ea mb/google/octopus: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Octopus-based Spin/Flip devices
so SMBIOS reports a convertible enclosure type. This enables
EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS on non-ChromeOS builds
and allows use of the vendor tablet mode ACPI (VBTN).

Change-Id: I298fb413480f6392990d00dc375db4d1e4176d9d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91750
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:21:20 +00:00
Matt DeVillier
14ef332242 mb/google/hatch: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Hatch-based Spin/Flip devices
so SMBIOS reports a convertible enclosure type. This enables
EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS on non-ChromeOS builds
and allows use of the vendor tablet mode ACPI (VBTN).

Change-Id: I8b72efb176087dda29b1c32b7ceef4c4544ef4d7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91748
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-25 13:21:12 +00:00
Matt DeVillier
3f10068936 mb/google/glados/var/caroline: Mark board as convertible
Set SYSTEM_TYPE_CONVERTIBLE for the CAROLINE variant so SMBIOS
reports a convertible enclosure type. This allows non-ChromeOS
builds to enable EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS and use
the vendor tablet mode ACPI.

Change-Id: I67429b34a197cb4f1e3938040b0b1853462796c3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91747
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:21:05 +00:00
Matt DeVillier
025c0edeb2 mb/google/dedede: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Dedede-based Spin/Flip devices
so SMBIOS reports a convertible enclosure type. This enables
EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS on non-ChromeOS builds
and allows use of the vendor tablet mode ACPI (VBTN).

Adjust the system type check in mainboard_init() to account for
both laptops and convertibles.

Change-Id: I8cce636eb7e8ae6dfe16d6cd5004f463b5a7dd2d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91745
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-25 13:20:58 +00:00
Matt DeVillier
c049dcc271 mb/google/brya: Set correct SYSTEM_TYPE for all variants
Set SYSTEM_TYPE_CONVERTIBLE for Brya 360/flip variants so SMBIOS
reports a convertible enclosure type. This allows non-ChromeOS
builds to enable EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS and use
the vendor tablet mode ACPI (VBTN).

Change-Id: I84bfd1df72d24b717f2b89906fd8dd2bef38d2b5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91746
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:20:50 +00:00
Matt DeVillier
ecab793650 ec/chromeec: Add Kconfig and asl for vendor tablet ACPI
Introduce EC_CHROMEEC_USE_VENDOR_TABLET_CONTROLS to control inclusion of
Intel VBTN and AMD VGBI ACPI devices used for tablet/convertible mode.
Default is y for non-ChromeOS builds when the board selects
SYSTEM_TYPE_CONVERTIBLE or SYSTEM_TYPE_DETACHABLE.

Add vbtn.asl (Intel INT33D6/INT33D3) and vgbi.asl (AMD AMD33D6/AMD33D3).
In ec.asl, gate VBTN/VGBI notify and these includes on the new config.

Boards that are convertibles or detachables will enable the vendor
tablet controls by selecting the appropriate SMBIOS enclosure type in
subsequent changes.

Change-Id: I208c1f1856a9223af5109464ecf316e76de3a976
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91742
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-25 13:20:45 +00:00
Subrata Banik
1769b10be0 mb/google/bluey: Lower CPU frequency to 710.4MHz for low-power boot
In scenarios where the system is booting with a critical or low battery,
lowering the initial CPU frequency helps reduce the instantaneous power
draw, ensuring the battery can sustain the boot process while fast
charging is being enabled.

Changes:
- clock.h: Replace 806MHz (0x2A) with 710.4MHz (0x25) based on 19.2MHz
  XO.
- mainboard.c: Update handle_low_power_charging_boot() to use the
  new L-VAL and update the debug log accordingly.

BUG=b:436391478

Change-Id: Ida30824e344a4613c797083711c3f6ee31f9694d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91838
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-03-25 00:38:06 +00:00
Kapil Porwal
710df33471 mb/google/bluey: Signal ADSP to skip Type-C port resets during boot
During certain boot sequences, such as low-battery or off-mode charging,
automatic USB Type-C port resets initiated by the ADSP can cause
unnecessary power fluctuations or connectivity drops.

Implement adsp_skip_port_reset(), which toggles the SKIP_PORT_RESET bit
in the PMIC_PD_NEGOTIATION_FLAG register. This bit informs the ADSP
firmware to bypass its default port reset logic. Use this during
low-power charging initialization to ensure a more stable boot process.

BUG=b:436391478
TEST=Verify no unexpected port resets occur during Google/Quartz boot.

Change-Id: I215a1806799a10355dd36b483f8d441f615f5258
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91666
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-25 00:37:54 +00:00
Kirubakaran E
521e7949c1 mb/google/bluey: Add support to reduce CPU clock to minimum frequency during OFF‑mode charging
This change adds support to drop the CPU frequency to the minimum
806 MHz when the device enters OFF‑mode charging, improving power
efficiency. The register details are available in the
HRD-X1P42100-S1 hardware document:
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

Tested by creating an image.serial.bin and verifying that it boots
on X1P42100 and the CPU runs at 806 MHz during OFF‑mode charging.

Change-Id: I8f0d5b598a4dad419195957be8b334a27ec18982
Signed-off-by: Kirubakaran E <kirue@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91727
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-03-25 00:37:38 +00:00
Hari L
9a86b9f729 mb/google/bluey: Integrate ADSP load and LPASS bring-up into charging flow
Load ADSP firmware and then bring up LPASS/Q6 during the Bluey charging sequence.
This ensures ADSP‑dependent fast charging works reliably.

TEST:
 - Built and booted image.serial.bin on X1P42100.
 - Verified ADSP DTB and firmware load over UART.
 - Verified Q6 and LPASS init during cold boot.
 - Verified charging flow: device entered charging mode, battery current (~3550 mA)
   reported, and CRD RED LED glowed.

Change-Id: I6a1326f4271c5121cd7284d64b2912505b2a93a2
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91564
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-25 00:37:20 +00:00
Hari L
8beca96470 soc/qualcomm/x1p42100: Add LPASS bring-up sequence for ADSP cold boot
Add LPASS(QDSP6) cold-boot support required to start the ADSP/LPASS
subsystem. Extend LPASS base/address definitions and register blocks,
add QDSP6SS register coverage with offset validation, and implement the
LPASS/Q6 bring-up sequence including RPMh votes, clock and GDSC enablement,
QDSP6SS PLL and core clock programming, TCM initialization, and Q6 boot
FSM start.

This enables correct ADSP initialization during cold boot on X1P42100 and
is required for off-mode charging support.

Reference:
  - HRD-X1P42100-S1
    https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST:
  - Built image.serial.bin and verified boot on X1P42100.
  - Verified that ADSP Q6 comes out of reset and is enabled during cold boot.

Logs:
[INFO ]  SOC: LPASS/ADSP image loaded successfully
[INFO ]  RPMH RSC: Already initialized, skipping re-initialization
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 0 --> vlvl=   0
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 1 --> vlvl=  16
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 2 --> vlvl=  56
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 3 --> vlvl=  64
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 4 --> vlvl= 128
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 5 --> vlvl= 192
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 6 --> vlvl= 256
[DEBUG]  RPMH_REG: lcx.lvl ARC hlvl= 7 --> vlvl= 384
[INFO ]  RPMH_REG: Initialized lcx.lvl at addr=0x30030
[DEBUG]  RPMH_REG: Sent active request for lcx.lvl
[DEBUG]  BCM: Found address 0x00050048 for resource LP0
[INFO ]  BCM: Successfully voted for LP0 (addr=0x00050048, val=0x60004001)
[INFO ]  LPASS: BCM vote for LP0 and LPASS Init completed successfully
[INFO ]  LPASS: Processor setup complete
[INFO ]  LPASS: Q6 processor enabled

Change-Id: Icb06575be0c225c3b8fa7894f49ccc197ee7e072
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91563
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-25 00:37:06 +00:00
Hari L
a58f752d0f soc/qualcomm/common: add CBCR disable and config helpers
Add clock_disable() (clear CBCR EN and poll CLK_OFF).

Add CBCR helper APIs and common bit definitions for HW_CTL,
FORCE_MEM_CORE_ON, IGNORE_RPMH_CLK_DIS and IGNORE_PMU_CLK_DIS.

BUG=None
TEST=Built and booted image.serial.bin on Bluey

Change-Id: I253414d01ec97aee45df1af0ed8cd06367351ef8
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91546
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-25 00:36:36 +00:00
Hari L
2e3e690023 soc/qualcomm/x1p42100: Support to load ADSP Lite firmware
ADSP Lite firmware along with its corresponding DTB must be loaded from coreboot to allow the LPASS/ADSP subsystem to initialize correctly.ADSP lite firmware supports off-mode charging.

This patch adds support to load the ADSP DTB and ADSP firmware images
on the X1P42100 platform. The register programming details required
for loading ADSP are derived from the HRD-X1P42100-S1 document.

Reference:
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=1. Create an image.serial.bin and ensure it boots on X1P42100.
     2. Verified using ADSP load log from coreboot showing successful
        loading of ADSP DTB and ADSP firmware:
        'SOC:LPASS/ADSP image loaded successfully'

Logs:

[INFO ]  Initializing devices...
[DEBUG]  Root Device init
[DEBUG]  Starting cbfs_boot_device
[DEBUG]  FMAP: area FW_MAIN_A found @ c30000 (8904448 bytes)
[INFO ]  CBFS: Found 'fallback/adsp_dtbs' @0x237200 size 0x10794 in mcache @0x8669d794
[DEBUG]  Starting cbfs_boot_device
[INFO ]  CBFS: Found 'fallback/adsp_dtbs' @0x237200 size 0x10794 in mcache @0x8669d794
[DEBUG]  read SPI 0xe67258 0x10794: 3662 us, 18425 KB/s, 147.400 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 67476 bytes, hash algo 2, HW acceleration forbidden
[DEBUG]  Loading segment from ROM address 0x9f800000
[DEBUG]    code (compression=0)
[DEBUG]    New segment dstaddr 0x866c0000 memsize 0x1075c srcaddr 0x9f800038 filesize 0x1075c
[DEBUG]  Loading Segment: addr: 0x866c0000 memsz: 0x000000000001075c filesz: 0x000000000001075c
[DEBUG]  it's not compressed!
[SPEW ]  [ 0x866c0000, 866d075c, 0x866d075c) <- 9f800038
[DEBUG]  Loading segment from ROM address 0x9f80001c
[DEBUG]    Entry Point 0x866c0000
[SPEW ]  Loaded segments
[DEBUG]  Starting cbfs_boot_device
[INFO ]  CBFS: Found 'fallback/adsp_lite' @0xe7ac0 size 0x14f6aa in mcache @0x8669d73c
[DEBUG]  read SPI 0xd17b18 0x14f6aa: 74126 us, 18534 KB/s, 148.272 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 1373866 bytes, hash algo 2, HW acceleration forbidden
[DEBUG]  Loading segment from ROM address 0x9f800000
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x86b00000 memsize 0x5000 srcaddr 0x9f800268 filesize 0x2072
[DEBUG]  Loading Segment: addr: 0x86b00000 memsz: 0x0000000000005000 filesz: 0x0000000000002072
[DEBUG]  using LZMA
[SPEW ]  [ 0x86b00000, 86b04620, 0x86b05000) <- 9f800268
[DEBUG]  Clearing Segment: addr: 0x0000000086b04620 memsz: 0x00000000000009e0
[DEBUG]  Loading segment from ROM address 0x9f80001c
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x86b05000 memsize 0x240000 srcaddr 0x9f8022da filesize 0x6cf
[DEBUG]  Loading Segment: addr: 0x86b05000 memsz: 0x0000000000240000 filesz: 0x00000000000006cf
[DEBUG]  using LZMA
[SPEW ]  [ 0x86b05000, 86b14ffc, 0x86d45000) <- 9f8022da
[DEBUG]  Clearing Segment: addr: 0x0000000086b14ffc memsz: 0x0000000000230004
[DEBUG]  Loading segment from ROM address 0x9f800038
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x86d45000 memsize 0x12000 srcaddr 0x9f8029a9 filesize 0xa2d6
[DEBUG]  Loading Segment: addr: 0x86d45000 memsz: 0x0000000000012000 filesz: 0x000000000000a2d6
[DEBUG]  using LZMA
[SPEW ]  [ 0x86d45000, 86d567dc, 0x86d57000) <- 9f8029a9
[DEBUG]  Clearing Segment: addr: 0x0000000086d567dc memsz: 0x0000000000000824
[DEBUG]  Loading segment from ROM address 0x9f800054
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x86d57000 memsize 0x7000 srcaddr 0x9f80cc7f filesize 0x3c6c
[DEBUG]  Loading Segment: addr: 0x86d57000 memsz: 0x0000000000007000 filesz: 0x0000000000003c6c
[DEBUG]  using LZMA
[SPEW ]  [ 0x86d57000, 86d5da34, 0x86d5e000) <- 9f80cc7f
[DEBUG]  Clearing Segment: addr: 0x0000000086d5da34 memsz: 0x00000000000005cc
[DEBUG]  Loading segment from ROM address 0x9f800070
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x86d5e000 memsize 0x8000 srcaddr 0x9f8108eb filesize 0x538
[DEBUG]  Loading Segment: addr: 0x86d5e000 memsz: 0x0000000000008000 filesz: 0x0000000000000538
[DEBUG]  using LZMA
[SPEW ]  [ 0x86d5e000, 86d65850, 0x86d66000) <- 9f8108eb
[DEBUG]  Clearing Segment: addr: 0x0000000086d65850 memsz: 0x00000000000007b0
[DEBUG]  Loading segment from ROM address 0x9f80008c
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x86d70000 memsize 0x1000 srcaddr 0x9f810e23 filesize 0xc4
[DEBUG]  Loading Segment: addr: 0x86d70000 memsz: 0x0000000000001000 filesz: 0x00000000000000c4
[DEBUG]  using LZMA
[SPEW ]  [ 0x86d70000, 86d700f0, 0x86d71000) <- 9f810e23
[DEBUG]  Clearing Segment: addr: 0x0000000086d700f0 memsz: 0x0000000000000f10
[DEBUG]  Loading segment from ROM address 0x9f8000a8
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x86d71000 memsize 0x3000 srcaddr 0x9f810ee7 filesize 0x4b1
[DEBUG]  Loading Segment: addr: 0x86d71000 memsz: 0x0000000000003000 filesz: 0x00000000000004b1
[DEBUG]  using LZMA
[SPEW ]  [ 0x86d71000, 86d7384c, 0x86d74000) <- 9f810ee7
[DEBUG]  Clearing Segment: addr: 0x0000000086d7384c memsz: 0x00000000000007b4
[DEBUG]  Loading segment from ROM address 0x9f8000c4
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x86d74000 memsize 0x192000 srcaddr 0x9f811398 filesize 0xafc41
[DEBUG]  Loading Segment: addr: 0x86d74000 memsz: 0x0000000000192000 filesz: 0x00000000000afc41
[DEBUG]  using LZMA
[SPEW ]  [ 0x86d74000, 86f054a4, 0x86f06000) <- 9f811398
[DEBUG]  Clearing Segment: addr: 0x0000000086f054a4 memsz: 0x0000000000000b5c
[DEBUG]  Loading segment from ROM address 0x9f8000e0
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x86f06000 memsize 0x375000 srcaddr 0x9f8c0fd9 filesize 0xb722
[DEBUG]  Loading Segment: addr: 0x86f06000 memsz: 0x0000000000375000 filesz: 0x000000000000b722
[DEBUG]  using LZMA
[SPEW ]  [ 0x86f06000, 86f7392c, 0x8727b000) <- 9f8c0fd9
[DEBUG]  Clearing Segment: addr: 0x0000000086f7392c memsz: 0x00000000003076d4
[DEBUG]  Loading segment from ROM address 0x9f8000fc
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x8727b000 memsize 0x1000 srcaddr 0x9f8cc6fb filesize 0x1d
[DEBUG]  Loading Segment: addr: 0x8727b000 memsz: 0x0000000000001000 filesz: 0x000000000000001d
[DEBUG]  using LZMA
[SPEW ]  [ 0x8727b000, 8727b2a0, 0x8727c000) <- 9f8cc6fb
[DEBUG]  Clearing Segment: addr: 0x000000008727b2a0 memsz: 0x0000000000000d60
[DEBUG]  Loading segment from ROM address 0x9f800118
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x8727c000 memsize 0x15000 srcaddr 0x9f8cc718 filesize 0x3d04
[DEBUG]  Loading Segment: addr: 0x8727c000 memsz: 0x0000000000015000 filesz: 0x0000000000003d04
[DEBUG]  using LZMA
[SPEW ]  [ 0x8727c000, 8729023c, 0x87291000) <- 9f8cc718
[DEBUG]  Clearing Segment: addr: 0x000000008729023c memsz: 0x0000000000000dc4
[DEBUG]  Loading segment from ROM address 0x9f800134
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x87291000 memsize 0x1000 srcaddr 0x9f8d041c filesize 0x16c
[DEBUG]  Loading Segment: addr: 0x87291000 memsz: 0x0000000000001000 filesz: 0x000000000000016c
[DEBUG]  using LZMA
[SPEW ]  [ 0x87291000, 87291587, 0x87292000) <- 9f8d041c
[DEBUG]  Clearing Segment: addr: 0x0000000087291587 memsz: 0x0000000000000a79
[DEBUG]  Loading segment from ROM address 0x9f800150
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x87292000 memsize 0x24600 srcaddr 0x9f8d0588 filesize 0x52c
[DEBUG]  Loading Segment: addr: 0x87292000 memsz: 0x0000000000024600 filesz: 0x000000000000052c
[DEBUG]  using LZMA
[SPEW ]  [ 0x87292000, 872b6600, 0x872b6600) <- 9f8d0588
[DEBUG]  Loading segment from ROM address 0x9f80016c
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x872b6600 memsize 0x2a00 srcaddr 0x9f8d0ab4 filesize 0xef0
[DEBUG]  Loading Segment: addr: 0x872b6600 memsz: 0x0000000000002a00 filesz: 0x0000000000000ef0
[DEBUG]  using LZMA
[SPEW ]  [ 0x872b6600, 872b8de9, 0x872b9000) <- 9f8d0ab4
[DEBUG]  Clearing Segment: addr: 0x00000000872b8de9 memsz: 0x0000000000000217
[DEBUG]  Loading segment from ROM address 0x9f800188
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x872b9000 memsize 0x6c srcaddr 0x9f8d19a4 filesize 0x4b
[DEBUG]  Loading Segment: addr: 0x872b9000 memsz: 0x000000000000006c filesz: 0x000000000000004b
[DEBUG]  using LZMA
[SPEW ]  [ 0x872b9000, 872b906c, 0x872b906c) <- 9f8d19a4
[DEBUG]  Loading segment from ROM address 0x9f8001a4
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x872b906c memsize 0x1cf94 srcaddr 0x9f8d19ef filesize 0xffcc
[DEBUG]  Loading Segment: addr: 0x872b906c memsz: 0x000000000001cf94 filesz: 0x000000000000ffcc
[DEBUG]  using LZMA
[SPEW ]  [ 0x872b906c, 872d5368, 0x872d6000) <- 9f8d19ef
[DEBUG]  Clearing Segment: addr: 0x00000000872d5368 memsz: 0x0000000000000c98
[DEBUG]  Loading segment from ROM address 0x9f8001c0
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x872e0000 memsize 0x1e0000 srcaddr 0x9f8e19bb filesize 0x62e09
[DEBUG]  Loading Segment: addr: 0x872e0000 memsz: 0x00000000001e0000 filesz: 0x0000000000062e09
[DEBUG]  using LZMA
[SPEW ]  [ 0x872e0000, 874bf3c4, 0x874c0000) <- 9f8e19bb
[DEBUG]  Clearing Segment: addr: 0x00000000874bf3c4 memsz: 0x0000000000000c3c
[DEBUG]  Loading segment from ROM address 0x9f8001dc
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x874c0000 memsize 0xef000 srcaddr 0x9f9447c4 filesize 0xd8f
[DEBUG]  Loading Segment: addr: 0x874c0000 memsz: 0x00000000000ef000 filesz: 0x0000000000000d8f
[DEBUG]  using LZMA
[SPEW ]  [ 0x874c0000, 874c4130, 0x875af000) <- 9f9447c4
[DEBUG]  Clearing Segment: addr: 0x00000000874c4130 memsz: 0x00000000000eaed0
[DEBUG]  Loading segment from ROM address 0x9f8001f8
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x875af000 memsize 0x1000 srcaddr 0x9f945553 filesize 0x3a
[DEBUG]  Loading Segment: addr: 0x875af000 memsz: 0x0000000000001000 filesz: 0x000000000000003a
[DEBUG]  using LZMA
[SPEW ]  [ 0x875af000, 875af078, 0x875b0000) <- 9f945553
[DEBUG]  Clearing Segment: addr: 0x00000000875af078 memsz: 0x0000000000000f88
[DEBUG]  Loading segment from ROM address 0x9f800214
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x875b0000 memsize 0x4f000 srcaddr 0x9f94558d filesize 0xa11d
[DEBUG]  Loading Segment: addr: 0x875b0000 memsz: 0x000000000004f000 filesz: 0x000000000000a11d
[DEBUG]  using LZMA
[SPEW ]  [ 0x875b0000, 875fefd4, 0x875ff000) <- 9f94558d
[DEBUG]  Clearing Segment: addr: 0x00000000875fefd4 memsz: 0x000000000000002c
[DEBUG]  Loading segment from ROM address 0x9f800230
[DEBUG]    BSS 0x875ff000 (1052672 byte)
[DEBUG]  Loading Segment: addr: 0x875ff000 memsz: 0x0000000000101000 filesz: 0x0000000000000000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0x875ff000, 875ff000, 0x87700000) <- 9f94f6aa
[DEBUG]  Clearing Segment: addr: 0x00000000875ff000 memsz: 0x0000000000101000
[DEBUG]  Loading segment from ROM address 0x9f80024c
[DEBUG]    Entry Point 0x86b00000
[SPEW ]  Loaded segments
[INFO] SOC: LPASS/ADSP image loaded successfully

Change-Id: I04ebd71bc06c971a39f0d4ae9fe299a64dfaaff8
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91520
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-25 00:36:08 +00:00
Kapil Porwal
1c6f4618b6 mb/google/bluey: Allow charger behind DAM
To support chargers connected through a Debug Accessory Mode (DAM)
cable, the PMIC must be configured to allow legacy charging paths even
when a debug accessory is detected.

Update the charging initialization to clear the suspend bit in the
SCHG_TYPE_C_SUSPEND_LEGACY_CHARGERS register. This ensures the SMB2360
can correctly negotiate and draw power when a DAM cable is in use.

BUG=none
TEST=Verify SMB2360 charging configuration on Google/Quartz.

Change-Id: I8d22abf92f4e8967efbe2ee3320c4a1461d6ef88
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91832
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-03-25 00:36:00 +00:00
Subrata Banik
94dd3f3bba soc/qualcomm/x1p42100: Increase boot CPU frequency to 3.0GHz
Boost the initial CPU frequency from 1.36GHz to ~3.0GHz (2995.2 MHz)
during the boot phase to reduce the execution time of ramstage
and subsequent payload loading.

Changes:
- clock.h: Add L_VAL_2995P2MHz (0x9C) based on a 19.2MHz XO.
- clock.c: Update speed_up_boot_cpu() to use the 3.0GHz PLL
  multiplier for the APSS NCC0 clock.

This change helps in further optimizing the boot timeline,
leveraging the higher clock speed for faster initialization.

BUG=b:449871690
TEST=Able to save ~50ms of the boot time (mostly during Qclib).

Change-Id: I459001717298b10201c3b3c8bf6b0c20097ae830
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91818
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-03-25 00:35:48 +00:00
Patrick Rudolph
da36276955 smbios: Add smbios_cache_speed() implementation
Allow the SoC the specify the cache speed. Currently it's
always set to 0, which is unknown.

Change-Id: I317e248104c0026b7cca10b949fd47fba35b7338
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91387
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-24 14:48:23 +00:00
Kapil Porwal
6f7f27e6c1 soc/qualcomm: Relocate translation tables to DRAM
On Qualcomm SoCs, the initial TTB is often placed in IMEM. During
ROMSTAGE, once DRAM is initialized and stable, the tables should be
moved to DRAM to ensure they remain accessible if IMEM is reclaimed
by other hardware blocks (like the ADSP).

Trigger mmu_relocate_ttb() at the end of the post-DRAM MMU
configuration flow.

BUG=b:436391478
TEST=Verify TTB moves to DRAM on Google/Quartz.

Debug logs:
```
[INFO ]  Relocating TTB: 0x14842000 -> 0x80010000 (offset 0x6b7ce000)
[INFO ]  TTB relocation is complete.
```

Change-Id: I123385e6cdd319c5ad4d3e7b266c506e7d2d5530
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91565
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-24 14:47:59 +00:00
Shon Wang
4320fe713a mb/google/brask/var/constitution: Generate RAM ID for Samsung K4UBE3D4AA-MGCR
Generate RAM ID for Samsung K4UBE3D4AA-MGCR

DRAM Part Name                 ID to assign
K4UBE3D4AA-MGCR                  1 (0001)

BUG=b:420797833
BRANCH=firmware-brya-14505.B
TEST=emerge-constitution coreboot then check device boot

Change-Id: I9751baeec16d460b4d2b0de9158940e785ccf0ef
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91681
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-24 14:47:34 +00:00
Shon Wang
d43421da65 mb/google/nissa/var/quandiso: Generate RAM ID for SL5D32G32C2A-HC0
Generate RAM ID for SCY SL5D32G32C2A-HC0

DRAM Part Name                 ID to assign
SL5D32G32C2A-HC0                3 (0011)

BUG=b:438402880
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot then check device boot

Change-Id: I354b950022cf05f69546d4c3d29f05981512ce51
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91519
Reviewed-by: Kyle Lin <kylelinck@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-24 14:47:09 +00:00
Shon Wang
28fbd247f6 spd/lp5x: Generate initial SPD for SL5D32G32C2A-HC0
Generate initial SPD for SCY SL5D32G32C2A-HC0

BUG=b:438402880
BRANCH=firmware-nissa-15217.B
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: Ie0ec1ff9c2681564df1a1282d2e08bd9137d8bbe
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91518
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyle Lin <kylelinck@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-24 14:47:02 +00:00
Patrick Rudolph
d72d7d1ba0 soc/amd/common/block/spi: Check if ROM Armor is enforced
Before trying to use the SPI flash controller in ramstage or SMM check
if the bus can be claimed. If ROM Armor is enabled abort claiming the
bus. Sanity check as the caller must use PSP mailbox interface when
ROM Armor is enabled.

This commit introduces SOC_AMD_COMMON_BLOCK_PSP_ROM_ARMOR3, that will
be used in the following commits to active ROM Armor support.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: Id93747df92bfca46c15a1438c2804c0c574c9f99
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91704
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-24 14:46:45 +00:00
Patrick Rudolph
cd8072191d soc/amd/common/block/psp: Get ROM Armor state from HSTI
Add a function to return ROM Armor state from HSTI bits.

As soon as ROM Armor is enforced never check HSTI bits again
as it cannot be deactivated without a reboot.

TEST=Function returns 0 before running command
     MBOX_BIOS_CMD_ARMOR_ENTER_SMM_MODE and returns 1 after
     sending it to PSP.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: Ic9cf99b7f2461aa85fbd76998da5d035bf9e5ae3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91703
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-24 14:46:20 +00:00
Subrata Banik
b42d148171 soc/qualcomm/x1p42100: Define CPUCP region and map in MMU
The CPU Control Processor (CPUCP) requires a dedicated memory region
for firmware loading. Previously, accessing this region without
explicit MMU configuration could lead to suboptimal performance
during the transfer.

```
CPUCP Program Headers:
Type     Offset             VirtAddr           PhysAddr
         FileSiz            MemSiz              Flags  Align

LOAD     0x0000000000001000 0x000000001cb00000 0x000000001cb00000
         0x0000000000021d90 0x000000000002a630  RWE    0x1000
LOAD     0x0000000000023000 0x000000001cb2b000 0x000000001cb2b000
         0x000000000000b570 0x000000000000b570  RW     0x1000
LOAD     0x000000000002f000 0x000000001cb3e000 0x000000001cb3e000
         0x0000000000000890 0x0000000000000890  RW     0x1000
LOAD     0x0000000000000000 0x000000001cb3f000 0x000000001cb3f000
         0x0000000000000000 0x0000000000001000  RW     0x1000
```

Key changes:
- symbols_common.h: Declare the 'cpucp' region.
- memlayout.ld: Define the CPUCP region at 0x1CB00000 (size 256K)
  to align with SoC address maps.
- cpucp_load_reset.c: Map the CPUCP region as CACHED_RAM using
  mmu_config_range() before loading the firmware.
- Flush and remap back the CPUCP range to device memory.

By ensuring the region is cached during the load and reset phase,
the firmware handoff is optimized, saving approximately 20ms of
overall boot time.

BUG=b:449871690
TEST=Able to save 20ms of the boot time.

Change-Id: I769f2cb7436ebfcc07eb2748b524066281a60a6e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91811
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-24 04:40:54 +00:00
Subrata Banik
92fa2bbd09 soc/qualcomm/x1p42100: Disable compression for CPUCP payload
The CPUCP (CPU Control Processor) firmware for X1P42100 is being
loaded as a payload. Compressing this file in CBFS can lead to
loading delays with the early-stage.

Set the compression type to 'none' to ensure the ELF is stored
uncompressed.

BUG=b:449871690
TEST=Able to optimize boot time (tested on google/quartz) by ~200ms.

w/o this patch:

```
fallback/cpucp     0xc7500    simple elf     149498 none
```

w/ this patch:

```
fallback/cpucp     0xc7500    simple elf     496196 none
```

Change-Id: I77418ac05ad950943a538ad1c2976d5cdfe41324
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91809
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-24 04:40:47 +00:00
Patrick Rudolph
6c8a2a6ea1 soc/amd/glinda: Use VBIOS from amd_blobs
Set defaults for VGA_BIOS_FILE and VGA_BIOS_ID.

TEST=Pre OS graphics init works on AMD/jaguar.

Change-Id: I3bf0e81b0de87abe4a03be8e10274936cf29e628
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91776
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-03-23 15:07:34 +00:00
Patrick Rudolph
ff7bc7d2d1 drivers/amd/ftpm: Fix compilation
The function tlcl2_get_capability() is only linked when Kconfig TPM2
is being selected. Add a guard to not include the SMBIOS code when
TPM2 isn't selected.

TEST=Can compile the fTPM driver when TPM2 isn't selected.

Change-Id: I9385f15fc71c021f9be2bfb874898f76fa71fee4
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91775
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-23 15:07:30 +00:00
Sean Rhodes
ab63331423 mainboard/starlabs/lite: Remove unused header
Change-Id: I7950c80cbdff2b1ede759681ed17c31c7ae22da8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91738
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-23 14:54:05 +00:00
Sean Rhodes
a19b5b4b17 mainboard/starlabs/starfighter: Remove unused header
Change-Id: Ida54f8b836b5be72284a6b8735b92ab577d580a5
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91737
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-23 14:54:02 +00:00
Sean Rhodes
c4e44caef8 mainboard/starlabs/starbook: Remove unused headers
Change-Id: I0e082c822abf6264d9832790ae86e3cde3c950a2
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91736
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-23 14:53:57 +00:00
Sean Rhodes
b0ff1cdd28 mainboard/starlabs/adl: Remove unused headers
Change-Id: I0069c1023bfc257db9b86b1fabb661cfe32d80db
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91735
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-23 14:53:52 +00:00
Sean Rhodes
d319b33114 mainboard/starlabs/common: Remove unused headers
Change-Id: I230f8180d308cc7e5692268741a2cb1fee98ba27
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91734
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-23 14:53:48 +00:00
Sean Rhodes
b137044a39 ec/starlabs/merlin: Remove unused halt.h
Change-Id: I68ca43218dd8702e5215827045f2cd62d52ea767
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91733
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-23 14:53:43 +00:00
Sean Rhodes
7bc3561803 ec/starlabs/merlin: Include stdint
These files use unit16_t and more, so this should be included.

Change-Id: If08dd6c3267b39cd72fcfaa9803c72260165337d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91815
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-23 14:53:39 +00:00
Sean Rhodes
e657f5da15 mainboard/starlabs: drop redundant vbt.bin overrides
drivers/intel/gma/opregion already provides a weak
mainboard_vbt_filename() implementation that returns "vbt.bin".

Drop the Starlabs overrides that return the same filename and keep only
the remaining board-specific override that still selects an alternate
VBT. This also removes the now-dead overrides left behind after
display-native-resolution VBT selection was dropped.

Change-Id: I89ec4f55d4c4ed3265a8d429c3d399977ad466d7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91814
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-23 14:53:36 +00:00
Patrick Rudolph
b7faa4c51a amdfwtool: Allow to set bios entry 0x6d (AMD_BIOS_NV_ST)
Allow the build system to specify the variable store position in flash
and update BIOS entry 0x6d when set.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: I3888810570897ea509a49fd4bc38d875d7d8be0c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91701
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-03-21 18:25:52 +00:00
Patrick Rudolph
8e04206f28 amdfwtool: mark AMD_BIOS_APOB_NV BIOS directory entry as writable
When using ROM Armor, the AMD_BIOS_APOB_NV BIOS directory table
entry needs to be marked as writable. Add support for marking
BIOS directory table entries as writable and set all BIOS directory
files to RO, except for AMD_BIOS_APOB_NV (type 0x63), which is
written at end of coreboot based on the FMAP.

TEST=ROM Armor 3 enabled system can write APOB through PSP mailbox
     interface. When the writable bit is not set cannot write APOB
     through mailbox interface.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: Idce7f4afbdd2246a5c0fc96d27c3c721e4a5b03a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91700
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 18:25:39 +00:00
Patrick Rudolph
8549c6894a amdfwtool: Make NVRAM regions writeable
When ROM Armor is enabled and PSP is not in "capsule update mode",
the PSP can only write to PSP directory entries that have the writable
bit set. As the fTPM PSP trustlet must write to NVRAM regions as part
of the fTPM operation, set the writable bit on such regions.

Fixes crash on PSP side when using ROM Armor and fTPM.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: I5668976d687e5f9aa3fc62e91adf6bde5cadb5b8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91699
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-03-21 18:25:30 +00:00
Matt DeVillier
1928db74a1 Documentation: Finalize 26.03 release notes
This removes the 'upcoming release' text and updates the statistics
for the 26.03 release tag.

Change-Id: Iecc233664d55b6b3b10a775a2990ec673b371754
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91782
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 18:25:10 +00:00
Ren Kuo
aa27204240 mb/google/fatcat/variants/moonstone: Implement BOE touchscreen power timing
To comply with the Focal touchscreen module specification and prevent
interference during the power on init and self-calibration process,
the power-on sequence is implemented across different boot stages:

1. GPIO Initialization (Romstage/Ramstage):
   - Pull Touch Enable (GPP_F08) High in the early GPIO table (Romstage)
     to stabilize Vcc early.
   - Pull Touch Report Switch (GPP_E05) High while initializing Touch
     Reset (TCHSCR_RST_L, GPP_F16) to Low in the main GPIO table
     (Ramstage) to maintain the reset state.

2. Chip Config Stage (Reset De-assertion):
   - Implement fw_config_post_gpio_configure() to pull TCHSCR_RST_L High
     during the BS_DEV_INIT_CHIPS stage.
   - This ensures the reset is released only after Backlight (BL_ON) is
     enabled, satisfying the module's calibration requirements.

3. ACPI & Power Management:
   - Retain 'stop_gpio' (GPP_E05) in overridetree.cb for S0ix power
     saving while removing 'reset_gpio' and 'enable_gpio' to avoid
     driver conflicts with the manual boot sequence.

BUG=b:493322404
TEST=Build and boot on moonstone, verify touchscreen power-on
sequence with oscilloscope to match BOE requirements.
Verified on moonstone: Touchscreen is correctly detected and
functional after boot and S0ix resume.

Change-Id: I0fd323e56cd86ae85a40a489513e158b05be2233
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91753
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-03-21 03:05:31 +00:00
Pranava Y N
dc41e46b7f google/fatcat: Move mainboard_pre_dev_init_chips hook to BS_ON_EXIT
The current implementation executes the mainboard_pre_dev_init_chips
hook at the entry of BS_DEV_INIT_CHIPS boot state. Move this to
the exit to add more delay in execution, change the function name
accordingly.

BUG=b:493322404
TEST=Able to build and boot fatcat

Change-Id: Icec47552f3331457c05cd255ecc1385ec70d6b94
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91777
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-21 03:05:26 +00:00
Subrata Banik
3f46d6fd93 mb/google/bluey: Use safe SPMI reads for battery current telemetry
Update `get_battery_icurr_ma` to use the newly introduced
`spmi_read8_safe` helper. This ensures that transient SPMI arbiter
errors (0xfffffff7) are handled via retries rather than being
immediately treated as zero current.

By validating both the primary (SMB1) and secondary (SMB2) charger
registers with retries, the system avoids entering the power-off
path caused by spurious 0mA readings during early boot or rail
stabilization.

Additionally, using 5ms delay before charger SMB1/2 register read.

BUG=b:436391478
BRANCH=none
TEST=On Bluey, verify that battery current is reported correctly
even if the initial SPMI read encounters a transient failure.

Change-Id: I8dee77ba83798e8e50f8884604c588fe4fda0e0a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91767
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 03:04:37 +00:00
Subrata Banik
2f93e4331e soc/qualcomm/common: Add spmi_read8_safe helper with retry logic
Introduce `spmi_read8_safe` to handle transient SPMI bus errors that
can occur during early power sequencing. This helper implements a
retry mechanism (up to 6 attempts) with a 50ms delay between reads.

Providing a "safe" read wrapper prevents the system from misinterpreting
transient arbiter errors (ERROR_SPMI_READ_FAILED) as valid zero data,
which is critical for preventing premature power-offs when reading
input current .

BUG=b:436391478
BRANCH=none
TEST=Verified that SPMI read failures in the charging applet now
trigger the retry loop and successfully recover on Bluey.

Change-Id: Id1b770d2cd91ccb069933bd9b023b867a7507009
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91766
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-21 03:04:30 +00:00
Subrata Banik
444691603d mb/google/bluey: Support RTC wake-up boot mode
Implement the logic to detect, set, and handle RTC wake-up events on
the Bluey mainboard.

Key changes:
- romstage: Use the new google_chromeec_is_rtc_event() API to set
  the boot mode to LB_BOOT_MODE_RTC_WAKE when an RTC alarm triggers
  the boot.
- mainboard: Update is_low_power_boot_with_charger() to include
  RTC_WAKE, ensuring the system follows the low-power initialization
  path (e.g., entering the charging applet).
- mainboard: Update display_startup() to skip display initialization
  during an RTC wake event to conserve power and maintain a "dark"
  wake-up state where appropriate.

BUG=b:493760057
BRANCH=none
TEST=Set an RTC alarm via the EC, verify the system boots into the
charging applet path and skips display initialization on Bluey.

Change-Id: Iaa9d1acffa0da014775e3397b877178c9c820ad5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91765
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 03:04:24 +00:00
Subrata Banik
941597e52f {commonlib, libpayload}: Add RTC_WAKE to boot_mode_t
Define CB_BOOT_MODE_RTC_WAKE and LB_BOOT_MODE_RTC_WAKE in the
coreboot table headers. This allows the firmware to communicate
to the payload (such as depthcharge) that the device started
up due to a Real-Time Clock alarm.

Synchronize the change across:
- payloads/libpayload/include/coreboot_tables.h
- src/commonlib/include/commonlib/coreboot_tables.h

BUG=b:493760057
BRANCH=none
TEST=Build coreboot and libpayload. Verify that the new boot mode
is accessible in the payload.

Change-Id: I8f5e118e6965f29498ab5bb46e153bc6d24bc116
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91764
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 03:04:17 +00:00
Subrata Banik
34f67580b5 ec/google/chromeec: Add API to check for RTC host event
Add `google_chromeec_is_rtc_event()` to allow the AP to check if the
EC has posted an `EC_HOST_EVENT_RTC`. This is useful for identifying
wake-up or boot reasons triggered by the real-time clock.

BUG=b:493760057
BRANCH=none
TEST=Build and boot on a board using ChromeEC; verify the API
correctly detects RTC events.

Change-Id: Id62cb6942a5881932eec420c78389e9d78b1e7a9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91763
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2026-03-21 03:04:09 +00:00
Subrata Banik
b00bfdd1e0 mb/google/bluey: Refactor SE firmware loading into early/late stages
Split the Qualcomm QUPV3 SE and GPI firmware loading into two helper
functions: load_qc_se_firmware_early() and load_qc_se_firmware_late().

- Early stage: Loads firmware for the ADSP I2C (Charger/Fuel gauge)
  and GPI instances. This is now called via mainboard_init.
  Off-mode charging is now part of the early stage operation.
- Late stage: Loads firmware for UART, USB-A retimers, and
  Fingerprint SPI. This is now called via mainboard_enable.

This restructure utilizes the chip_operations .init callback to ensure
critical charging-related operation is loaded before subsequent
initialization steps.

Change-Id: I54d41e76b162f80a80117bfe54943dc43b360dae
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91718
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-21 03:03:59 +00:00
Subrata Banik
1f2ea3c13e mb/google/bluey: Initiate PCIe link training in romstage
Select SOC_QUALCOMM_PCIE_ASYNCHRONOUS_INIT for the Bluey board to allow
non-blocking PCIe link training.

Call qcom_setup_pcie_host() during platform_romstage_postram() when
performing a normal boot.

This takes advantage of the asynchronous PCIe initialization logic,
starting the link training early to save approximately 100ms of
blocking wait time in ramstage.

BUG=b:449871690
TEST=Able to save 100ms of the boot time (google/quenbih).

w/o patch:

```
5000:<unknown>         1,224,619 (662)
5001:<unknown>         1,324,851 (100,232)
```

w/ patch:

```
5000:<unknown>         1,098,810 (808)
5001:<unknown>         1,098,928 (118)
```

Change-Id: If758c2fb8f7a6a5bb8c5fe6c1d7b44e988858179
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91725
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-21 03:03:52 +00:00
Subrata Banik
f56a936c54 soc/qualcomm/x1p42100: Allow asynchronous PCIe initialization
To support this early hardware initiation, add pcie_common.c and
soc-specific pcie.c to the romstage build when
SOC_QUALCOMM_PCIE_ASYNCHRONOUS_INIT and PCI Kconfigs are enabled.

This allows the SoC to kick off link training in romstage
and verify the link status later in ramstage.

BUG=b:449871690
TEST=Able to build and boot google/quenbih.

Change-Id: I6f81b88b36f51b55cb47846f9e81d0be8f987825
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91724
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-21 03:03:44 +00:00
Subrata Banik
f1baed6f79 soc/qualcomm/common: Implement asynchronous PCIe initialization
Introduce SOC_QUALCOMM_PCIE_ASYNCHRONOUS_INIT to allow the PCIe
link training to proceed without blocking the boot flow.

Refactor qcom_setup_pcie_host into two logical phases:
1. Initiate: Power on endpoints and trigger LTSSM (Romstage).
2. Verify: Wait for link-up status (Ramstage).

When the async Kconfig is enabled, the initiation happens in
romstage, but the blocking 'wait_link_up' call is deferred to
ramstage. This allows other SoC and mainboard initializations to
run in between the hardware link training, reducing overall boot time.

BUG=b:449871690
TEST=Verified PCIe link still enumerates correctly on Bluey with
asynchronous init enabled.

Change-Id: Idf368731325b5efcf4db0d1912a8c75417ef11ab
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91723
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 03:03:39 +00:00
Subrata Banik
8a90e46346 soc/qualcomm/x1p42100: Increase CBFS_MCACHE size to 22K
Expand CBFS_MCACHE from 16K to 22K to provide more space for
metadata caching. To accommodate this, shift FMAP_CACHE from
0x14860400 to 0x14861800.

Updated the memory map diagram in memlayout.ld to reflect the
new base address for the FMAP_CACHE region.

TEST=No CBFS related error seen while booting google/quartz.

w/o patch:

```
[ERROR]  CBFS ERROR: mcache overflow, should increase CBFS_MCACHE size!
```

Change-Id: Ic3268c72a4755bd15c6811688eb330c7d753c5ac
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91698
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 03:03:23 +00:00
Kapil Porwal
4b227a4aa6 arch/arm64: Add debug API to dump MMU page table configuration
To validate complex memory layouts and verify the success of TTB
relocations, it is necessary to inspect the active page tables.

Implement print_mmu_range() to perform a software table walk. The
utility decodes architectural attributes (cacheability, permissions,
etc.) and merges contiguous mappings with identical attributes for
a concise console summary. This is guarded by ARCH_ARM64_DEBUG_MMU.

BUG=b:436391478
TEST=Dump and verify MMU configuration on Google/Quartz.

Logs:
```
[INFO ]  Dumping MMU entries for range [0x0000000000000:0x1000000000000)
[INFO ]    Mapping [0x0000000000000:0x0000000001000) -> PTE: 0x0000000000000000 (UNMAPPED)
[INFO ]    Mapping [0x0000000001000:0x0000000200000) -> PTE: 0x0040000000001403 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000000200000:0x000000b000000) -> PTE: 0x0040000000200401 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x000000b000000:0x000000b018000) -> PTE: 0x000000000b000713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x000000b018000:0x000000b0e0000) -> PTE: 0x004000000b018403 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x000000b0e0000:0x000000b0e8000) -> PTE: 0x000000000b0e0713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x000000b0e8000:0x000000b200000) -> PTE: 0x004000000b0e8403 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x000000b200000:0x0000014600000) -> PTE: 0x004000000b200401 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000014600000:0x0000014680000) -> PTE: 0x0040000014600403 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000014680000:0x00000146ac000) -> PTE: 0x0000000014680713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x00000146ac000:0x0000014800000) -> PTE: 0x00400000146ac403 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000014800000:0x0000014858000) -> PTE: 0x0000000014800713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0000014858000:0x000001485a000) -> PTE: 0x000000001485870f (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Non-Cacheable
[INFO ]    Mapping [0x000001485a000:0x0000014a80000) -> PTE: 0x000000001485a713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0000014a80000:0x0000014c00000) -> PTE: 0x0040000014a80403 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000014c00000:0x0000024000000) -> PTE: 0x0040000014c00401 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000024000000:0x0000024200000) -> PTE: 0x0040000024000403 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000024200000:0x0000080000000) -> PTE: 0x0040000024200401 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Execute-Never | Non-Shareable | Device NGNRNE
[INFO ]    Mapping [0x0000080000000:0x000008000c000) -> PTE: 0x0000000080000713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x000008000c000:0x0000080010000) -> PTE: 0x000000008000c70f (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Non-Cacheable
[INFO ]    Mapping [0x0000080010000:0x0000080200000) -> PTE: 0x0000000080010713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0000080200000:0x0000081c00000) -> PTE: 0x0000000080200711 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0000081c00000:0x0000081c60000) -> PTE: 0x0000000081c00713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0000081c60000:0x0000081c80000) -> PTE: 0x0000000081c6070f (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Non-Cacheable
[INFO ]    Mapping [0x0000081c80000:0x0000081e00000) -> PTE: 0x0000000081c80713 (PAGE)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0000081e00000:0x00000e0800000) -> PTE: 0x0000000081e00711 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x00000e0800000:0x00000e2800000) -> PTE: 0x00000000e080070d (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Non-Cacheable
[INFO ]    Mapping [0x00000e2800000:0x0000100000000) -> PTE: 0x00000000e2800711 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0000100000000:0x0000880000000) -> PTE: 0x0000000000000000 (UNMAPPED)
[INFO ]    Mapping [0x0000880000000:0x0001000000000) -> PTE: 0x0000000880000711 (BLOCK)
[INFO ]    Attributes: Secure | Read-Write | Accessed | Executable | Inner-Shareable | Normal Cacheable (WBWAC)
[INFO ]    Mapping [0x0001000000000:0x1000000000000) -> PTE: 0x0000000000000000 (UNMAPPED)
```

Change-Id: I0e21e4db463b66e006dcbe85ed9415264bf18acd
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91408
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-21 03:02:21 +00:00
Kapil Porwal
99d409d3ba arch/arm64: Add support for TTB relocation to DRAM
When transitioning between boot stages, it is often necessary to move
the Translation Table Base (TTB) from a temporary pre-RAM location
to a permanent post-RAM region.

ARM64 page tables contain absolute physical addresses for lower-level
tables. When moving the TTB from one base address to another, these
internal pointers must be adjusted.

Implement mmu_relocate_ttb() to handle this transition. The logic
copies the tables from _preram_ttb to _postram_ttb and performs a
fixup on all descriptors to reflect the new offset. This ensures
memory mapping remains consistent after the TTB base changes.

BUG=b:436391478
TEST=Verify successful TTB relocation and stable MMU state on Quartz.

Change-Id: I7fdd69bfa82fc3dae919693f4d5d0314687cbef9
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91367
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-03-21 03:02:11 +00:00
Sean Rhodes
493770d730 mb/starlabs/starfighter/mtl: add speaker idle CFR option
Realtek advised leaving the StarFighter speaker path idle with GPIO2
low and LINE2 EAPD disabled when no audio is playing.

Add a "Legacy Speaker Control" CFR option for the Meteor Lake variant
so coreboot can optionally boot the codec in that muted state. This
avoids the cold-boot / G3 speaker pop when paired with the Linux
runtime sequencing fix that asserts EAPD and GPIO2 only for playback.

Keep the option enabled by default so existing kernels continue to use
the legacy speaker setup. Without the matching Linux change, forcing
GPIO2 low at boot would leave the external speaker amp disabled and
result in no speaker output.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I62427d3f13b8a68a58bca4ed7896482da4abf23b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91662
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-20 16:27:44 +00:00
Sean Rhodes
f3c656b76a soc/intel/common/block/smm: drain sync smi around smmstore
Drain pending SPI sync SMIs before dropping write protect for SMMSTORE and once more after the command runs. This keeps a stale sync status from leaking into the next request.

Change-Id: I7ba21719a6dafa926b0d5986a253da9cff52575a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91726
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-20 16:27:32 +00:00
David Wu
a215e07533 mb/google/nissa/var/craask: Add H58G56CK8BX146 to RAM ID table
Add the new memory support: Hynix H58G56CK8BX146

BUG=b:404452285
TEST=Run part_id_gen tool and check the generated files.

Change-Id: I576865cfd7f11b0c413fb60523769170b0f9be42
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91761
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
2026-03-20 16:27:23 +00:00
WeiHuaLin
a7773d3ab3 mb/google/fatcat: Modifying parameters for AC only
In the "AC only" scenario, since the adapter is 65W,
the values of PL2 and PL4 need to be reduced to prevent
the machine from shutting down.

BUG=b:487170924
TEST=emerge-fatcat coreboot, test pass by power engineer

Change-Id: Id0b1f886205f26a5171f21ae43a9360791e0979b
Signed-off-by: WeiHuaLin <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91646
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-20 16:27:16 +00:00
Jan Philipp Groß
05246a5934 mb/asus: Add Maximus VII Impact (Haswell/Broadwell)
Based on Autoport with subsequent manual tweaking. The system boots
with an Intel i7-4770K using Haswell NRI. Thanks to Angel Pons for
fixing S3 suspend/resume.

Working:
- Haswell CPUs
- Haswell NRI
- Both DDR3 DIMM slots
- HDMI Port
- DP Port
- All rear USB ports
- Audio Jack
- Ethernet port
- WiFi and M.2
- All SATA ports
- Discrete Graphics (tested with AMD R9 Nano)
- TPM 2.0
- S3 suspend and resume

Not working:
- Rear double-digit display does not show CPU temp.
- Known issue: Broadwell (non-ULT) CPUs are not yet supported in coreboot

Not (yet) tested:
- USB headers

Change-Id: I6813adce267af6bd449f72b0595dfec9277961bf
Signed-off-by: Jan Philipp Groß <jeangrande@mailbox.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91672
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-20 16:27:13 +00:00
Angel Pons
0f30eed3e8 Doc/nb/intel/haswell: Fix typo
Chomeboxes ---> Chromeboxes

Change-Id: Ifdd9a1374d4d021c2777694937da2c81d22004e7
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91760
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-20 16:27:04 +00:00
Angel Pons
5e146277ae Doc/nb/intel/haswell: Drop outdated section about SPD addresses
The docs talk about left-shifting SPD addresses by 1. This was necessary
back when mainboard code would directly set the values of the members in
`struct pei_data`, which stopped being the case with commit 1e2821882f
("nb/intel/haswell: Use unshifted SPD addresses in mainboards").

Given that `util/autoport` (which now supports Haswell / Lynx Point) has
documentation on how to figure out the SPD address mapping in a platform
agnostic format, drop the outdated section from Haswell-specific docs.

Change-Id: I3d118b2e116cf2cd0096c8ef27e2fd22e6e548ae
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91759
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-20 16:27:00 +00:00
Kapil Porwal
86b3901ba5 mb/google/bluey: Monitor thermal sensors during charging
Integrate thermal monitoring into the low-battery and off-mode charging
flow.

During battery charging in the ramstage, the system now scans all
thermal zones. If any sensor trips its defined threshold, the system
executes an emergency power-off to protect the hardware from thermal
damage.

TEST=Verify all x1p42100 thermal zones are readable on Google/Quartz.
TEST=Verify system shutdown on a thermal trip on Google/Quartz.

Change-Id: Id45d5f097dfb0c7b01e0541e116f5356f59f8269
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91611
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-20 09:03:09 +00:00
Kapil Porwal
657bd42548 soc/qualcomm/x1p42100: Define TSENS controllers and thermal zones
Provide the SoC-specific hardware definitions for the x1p42100 TSENS
subsystem. This includes the register base addresses for the four
TSENS controllers and the complete mapping of sensor IDs to thermal
zones (including AOSS, CPU, GPU, and NSP).

Each zone is assigned a specific thermal threshold to allow for
emergency shutdown triggers.

TEST=Verify all x1p42100 thermal zones are readable on Google/Quartz.

Change-Id: Iffdd0589a3c5318b9754101d7cea40462435de5b
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91610
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-20 09:03:03 +00:00
Kapil Porwal
53529b1d93 soc/qualcomm/common: Add Qualcomm TSENS support
Introduce a generic driver for the Qualcomm Temperature Sensor (TSENS)
V2 hardware block. This driver provides the infrastructure to read
temperature data from hardware status registers and monitor them
against software-defined thresholds.

The driver sign-extends the 12-bit raw temperature values and scales
the output to millidegrees Celsius for accurate monitoring.

TEST=Verify all x1p42100 thermal zones are readable on Google/Quartz.

Change-Id: I826df3f86edc30ac57d84f672b487a8b9b51728a
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91609
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-20 09:02:58 +00:00
Kirubakaran E
9e7c787f6d soc/qualcomm/x1p42100: Add 806 MHz CPU clock definition
Add the required definition for the 806 MHz CPU clock (L_VAL_806MHz).
Update pll_init_and_set by removing the static qualifier so it can be
invoked from the mainboard code.

Test: Built image.serial.bin and verified successful boot on X1P42100.

Change-Id: I8871f6cd64cb386c1042ce42feec4c623e9804e9
Signed-off-by: Kirubakaran E <kirue@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91722
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-20 06:55:33 +00:00
Matt DeVillier
e5c99fe9e0 Documentation: Add coreboot release 26.06 template
This adds the release notes template for the upcoming June 2026
release of coreboot.

Change-Id: I4a436ba1b649ce1091c6e496768ef7dc41776668
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91730
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2026-03-19 19:41:46 +00:00
Matt DeVillier
8791c5292d Documentation/releases: Update release notes for 26.03 release
These are the preliminary release notes. They'll need to be updated
with any changes done this week. We'll need another patch after the tag
to capture the final statistics. The notes will be changed from
"Upcoming release" after the tag is done.

Change-Id: Id24c2d43c53db7976c98f5936d9d8866a7392ad2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91731
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-19 19:41:40 +00:00
Matt DeVillier
1063e564e7 Documentation/vboot: Update list of vboot-enabled devices
Produced by running: util/vboot_list/vboot_list.sh

Change-Id: I2c59e921e1160c4df739ad827161ee0af40fec39
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91729
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-19 19:37:08 +00:00
Sean Rhodes
8ff1a9a08c vc/tcg/opal: add OPAL packet builder for S3 unlock
Add the OPAL packet builder and unlock logic used by the SMM resume
path. Uses the TCG storage encoder and NVMe Security Send/Receive
helpers to perform the Admin1/User1 Set Global Range unlock sequence.

TEST=tested with rest of patch train

Change-Id: I4cdb16e13c1aeb89648db49672b77598a8b42fac
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91658
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-19 19:36:48 +00:00
Felix Held
30cd6efc29 util/amdfwtool: rename Faegan SoC to Krackan2e
Faegan is an alias for Krackan2e. This only changes the SoC name in
amdfwtool; the Faegan SoC variant name in the glinda folder will be
renamed later once all remaining patches have been upstreamed, to not
make the upstreaming more difficult than necessary.

Change-Id: I051e163170d4363594dcff4b505d01cabfb3a190
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91717
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-03-19 19:36:21 +00:00
Felix Held
1555a1a235 util/amdfwtool: rename Glinda SoC to Strix
Glinda is an alias for Strix. This only changes the SoC name in
amdfwtool; SoC folder will be renamed later once all remaining patches
have been upstreamed, since renaming the SoC folder right now, would
just make the upstreaming more difficult.

Change-Id: I10cb9c4a97dd2689fe02329262772b05d24a5896
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91716
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-03-19 19:35:52 +00:00
Patrick Rudolph
dc315c8f51 soc/amd/common/block/psp: Drop send_psp_command_smm
Drop send_psp_command_smm() and let the generic send_psp_command()
method handle SMM as special case. This allows to use the same
method in regular code and SMM.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: I5dad79e80b97e9d4dfbcd0d84d49eb23ea3f83cc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91702
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-19 19:35:41 +00:00
Angel Pons
49f53bbb38 include/acpi/acpi_pld.h: Fix order of colour components
The colour components are in RGB order in the structure returned by the
ACPI `_PLD` method, so use the same order in the C struct as well. This
has no impact since nobody currently specifies port colours with this.

Change-Id: I11b486faaf73f5da37b973180f23e8b3f19f3f5e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91389
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-19 19:35:10 +00:00
Matt DeVillier
e0bc32ce61 mb/google/brya: Add CFR-based storage selection for taeko/taniks
Add support for selecting NVMe or eMMC storage via CFR option on
taeko and taniks variants. Override fw_config_probe() to check the
CFR "storage_device" option and enable/disable the appropriate PCIe
root port based on user selection.

This allows runtime configuration of storage devices while ensuring
only the selected device is initialized, since initializing both
causes neither to be detected.

TEST=build/boot taeko, verify both eMMC and NVMe M.2 storage modules
functional when correct type selected from setup menu.

Change-Id: Ic555f93763736adb5837534b8011aa9c123fea08
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90742
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-19 17:18:02 +00:00
Matt DeVillier
db3e23d505 lib/fw_config: Add mainboard hook for selective probe override
Add fw_config_probe_mainboard_override() hook that allows mainboards
to selectively override specific fw_config probes. The hook returns
whether the function handed the probe or not. If set to true, the
hook's 'result' parameter is returned; otherwise, standard fw_config
logic is used automatically.

This enables mainboards to override probes based on runtime conditions
(e.g., CFR options) without reimplementing standard fw_config logic.
The change is backward compatible as the default hook doesn't handle
any probes.

TEST=tested with subsequent patch

Change-Id: I6b9207eb9097ef5296fb5c41d8d1acbfde68b445
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90741
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-19 17:17:56 +00:00
Felix Singer
225fd5e448 3rdparty/intel-microcode: Update to upstream main
Updating from commit id f910b0a225d6:
2025-11-10 16:26:35 -0600 - (microcode-20251111 Release)

to commit id 250941fb6706:
2026-02-27 10:50:11 -0600 - (microcode-20260227 Release)

This brings in 3 new commits:
250941fb6706 microcode-20260227 Release
439ddde999b0 microcode-20260210-rev1 Release
b24397c3611f microcode-20260210 Release

Change-Id: I9eb7a1e70f3c58e1964bd9ffe963f059c97a583e
Signed-off-by: Felix Singer <felix.singer@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91714
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-19 16:30:20 +00:00
Felix Singer
ac5722a66f 3rdparty/fsp: Update to upstream master
Updating from commit id a5b3d0e056ad:
2025-12-22 09:38:25 +0800 - (Renaming directory back to "IoT" to fix the corrupted path)

to commit id 81399b3b6147:
2026-02-24 08:49:28 +0800 - (ECG BTL-S 12P PV (6311_62) FSP)

This brings in 13 new commits:
81399b3b6147 ECG BTL-S 12P PV (6311_62) FSP
53b5040674c2 Edge Platforms ARL -UH IPU 2026.2 (5385_51) FSP
635793898797 TWL IPU26.2 v6491_51
3aebe88923ec ASL IPU26.2 v6491_51
45e148caeda5 ADL-N IPU26.2 v6491_51
6749aee0aae0 ADL-N IPU26.2 6491_51
a230e1e778d1 FSP Integration Guide
77d47e8d6f64 FSP Integration Guide
23cf258760b0 Update README.md
d7ab4a17f30d Update README.md
57141c9f85f9 TWL MR2 IPU26.1 v6457_50
faea68792e93 ASL MR5 IPU26.1 v6457_50
309053b4ae5a Create AmstonLake folder

Change-Id: I52cb07feec06ee456b3aca40fbc049715da650cf
Signed-off-by: Felix Singer <felix.singer@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91715
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-03-19 16:30:10 +00:00
Subrata Banik
7bfad23a15 mb/google/bluey: Enable GBB_FLAG_ENABLE_ADB for development
Select GBB_FLAG_ENABLE_ADB in Kconfig for the Bluey board. This is
required to support ADB debugging during the current development
phase.

Note: This is intended as a temporary measure (FIXME) and should
likely be reverted before production.

Change-Id: I9c8c2a315fcf91e4b51d25ee4e00490db7e33486
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91720
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-19 16:09:35 +00:00
Subrata Banik
a649c82f7a security/vboot: Add option for enabling ADB via GBB flag
This patch introduces a new Kconfig option,
`CONFIG_GBB_FLAG_ENABLE_ADB`, to allow enabling ADB.

This option, when enabled, sets the corresponding GBB flag (0x80000000).
This flag can then be utilized by the operating system to enable the
ADB.

TEST=Able to connect the google/quenbih from host device using ADB cable.

Change-Id: I680c1f47045255a5ed49b0bb6c6fb94bc054c278
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91719
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-19 16:09:24 +00:00
Sowmya Aralguppe
4943cfe4d0 soc/intel/pantherlake: Remove unsupported WCL CPU ID mappings
Remove WCL_ID_2 through WCL_ID_5 entries from the power mapping table
supports a single SKU configuration.

Ref=:830097_WCL_PDG_SchChk_Rev1p5
BUG=b:None
TEST=Build ocelot and verify that the system boots

Change-Id: I95a8069c9b637c35936e6c0e5de257f7acbd8463
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91448
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-19 16:09:08 +00:00
Sean Rhodes
9a40f080ac security/tcg/opal_s3: add OPAL NVMe Security Send/Receive helpers
Add the minimal NVMe admin queue and Security Send/Receive helper code
used by the SMM resume unlock path.

TEST=tested with rest of patch train

Change-Id: Iaf4a9e23d399a093139edffc724f2b2661ca3bb1
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91657
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-19 14:07:58 +00:00
Sean Rhodes
537f2acc67 vc/intel: add TCG storage core subset for OPAL S3
Add the Intel TCG storage encoder subset used by the OPAL S3 unlock
path. Compiled only when TCG_OPAL_S3_UNLOCK is enabled.

TEST=tested with rest of patch train

Change-Id: Iecbe2011761e913b73541192ccb3a9e9cff6a87c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91044
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-19 14:07:36 +00:00
Sean Rhodes
fbd755341a security/tcg: add OPAL S3 unlock Kconfig
Add a generic configuration option for SMM-assisted TCG OPAL NVMe
unlock on S3 resume.

This also defines the APMC command IDs and the payload->SMM ABI
structure used to pass the OPAL password into SMM.

TEST=tested with rest of patch train

Change-Id: Id99ace7c17a311b65519023be4118c5b20ddecf9
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91043
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-19 14:07:18 +00:00
Qinghong Zeng
42a114e23f mb/google/nissa/var/teliks: Generate RAM ID for BWMYAX32P8A-32G
Generate RAM ID for BWMYAX32P8A-32G

DRAM Part Name                 ID to assign
BWMYAX32P8A-32G                4 (0100)

BUG=b:493358217
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: Ia43dc45874e57c92c5b377c5afd073ef9ced7c57
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91686
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Yanqiong Huang <huangyanqiong@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-19 13:56:36 +00:00
Kenneth Chan
a6b7fa5474 mb/google/brask/var/moxoe: Disable SAGV
Since moxoe is a box product using DDR5 SODIMM, remove SAGV enable to
use the default disabled state for better memory stability.

BUG=b:481186489
TEST=Build and boot, verify SaGv is disabled via FSP logs.

Change-Id: I1e07f7cb32b7387a7b96c9666eb809983559f7f4
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91696
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-19 13:35:01 +00:00
Kenneth Chan
d74cf143fe mb/google/brask/var/kulnex: Disable SAGV
Since kulnex is a box product using DDR5 SODIMM, remove SAGV enable to
use the default disabled state for better memory stability.

BUG=b:480035819
TEST=Build and boot, verify SaGv is disabled via FSP logs.

Change-Id: I37d56a33a1ba48ef105e03ca1a24c11291646fc0
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91697
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-19 13:34:49 +00:00
Payne Lin
09d689561a soc/mediatek/common: dsi: Fix CPHY hfp_byte error check
In CPHY mode, mtk_dsi_cphy_vdo_timing previously packed multiple values
into hfp_byte:
- Bits [7:0]: actual HFP byte count
- Bits [30:16]: hs_vb_ps_wc
- Bit 31: HFP_HS_EN flag

The previous error check treated the entire compound value as the HFP
byte count, resulting in false error messages like:
"Calculated hfp_byte -1850408952 and hbp_byte 4 are too small"

This patch refactors mtk_dsi_cphy_vdo_timing to return hfp_byte and
the upper bits (hfp_wc_upper) separately:
- hfp_byte now consistently represents the actual HFP byte count for
both CPHY and DPHY modes
- hfp_wc_upper contains hs_vb_ps_wc and HFP_HS_EN for CPHY (0 for DPHY)
- The values are combined when writing to dsi_hfp_wc register

This approach:
- Eliminates the need for mask operations in the caller
- Simplifies hfp/hbp validation and adjustment logic
- Makes hfp_byte semantically consistent across CPHY/DPHY

BUG=b:489932059
TEST=Boot and verify display output on MT8189 CPHY panel
BRANCH=skywalker

Signed-off-by: Payne Lin <payne.lin@mediatek.com>
Change-Id: I46229c35f978a88276f4ae2a4582b2ea4164c1db
Signed-off-by: Cindy Lu <luyi8@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91683
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2026-03-19 06:41:42 +00:00
Arthur Heymans
674000732d drivers/intel/dtbt: Skip mailbox commands on downstream bridges
Downstream bridges share the same PCI device ID as the upstream
bridge but have no firmware mailbox. Sending commands to them
causes timeouts. Add a forward declaration of dtbt_device_ops
to detect and skip bridges whose parent is also a dTBT device.

Tested on thinkpad t480: The 5s timeout is now gone.

Change-Id: I96febb0e52e0ffbe52a237212b8f708a7b05c6d7
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91689
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-18 19:52:57 +00:00
Matt DeVillier
b03b42285e soc/intel/{mtl,ptl}/fsp_params: Program PcieRpSlotImplemented
ADL programs this but MTL and PTL do not, so add it to the latter two
for consistency.

Change-Id: I8c982fcc810b3783cba4c66754df2b555bce6dfc
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90878
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-18 19:43:11 +00:00
Matt DeVillier
e17cc395af soc/intel/alderlake/fsp_params: Drop !! in builtin root port check
The PCIE_RP_BUILT_IN flag test is used only as a boolean condition, so
the double-negation is unnecessary. Also fix the comment grammar.

Change-Id: I5e1ff5848d9cedb2385892c795297719ccc1d5cf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91721
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-18 19:43:03 +00:00
Matt DeVillier
11e9550e0c soc/intel/common/smm: Use cpu/x86 save_state ops
Switch Intel common block smihandler to use the generic x86
smm_save_state_ops instead of its own custom struct. Replace
find_save_state() and get_io_misc_info with apmc_node; use
node-based get_reg/set_reg functions. Alias em64t100_ops and
em64t101_ops for cpu/x86 save_state.c consumers.

TEST=tested with rest of patch train

Change-Id: Ie64478ccfdc0a0bda4354641aba06705e2c8c70d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91656
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-03-18 14:54:47 +00:00
Sean Rhodes
ce1db1f54a cpu/x86/smm: reserve SMRAM for OPAL S3 state
Reserve a small persistent SMRAM subregion for OPAL S3 unlock state, so
the payload-provided OPAL secret can survive SMM handler reload on S3
resume.

Expose the region base/size to SMM via smm_runtime and provide an
accessor for SMM code. Clear the region on cold boot/reboot, but
preserve it when waking from S3.

TEST=tested with rest of patch train

Change-Id: Ib1e92edb31c845367afe6185e5fa18ab1bc71108
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91414
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-18 14:54:39 +00:00
Kenneth Chan
9422dacdb8 mb/google/brask/var/moxoe: Remove weak symbols for memory config
Remove __weak to ensure variant-specific memory functions properly
override the default implementations in the baseboard.

BUG=b:481186489
BRANCH=firmware-brya-14505.B
TEST=Build and boot on moxoe, verify memory initialization.

Change-Id: Ifdd58963cbd0b108774708b085d73b6fb4af30aa
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91695
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
2026-03-18 06:23:32 +00:00
Kenneth Chan
53222f1ccb mb/google/brask/var/kulnex: Remove weak symbols for memory config
Remove __weak to ensure variant-specific memory functions properly
override the default implementations in the baseboard.

BUG=b:491711748
BRANCH=firmware-brya-14505.B
TEST=Build and boot on kulnex, verify memory initialization.

Change-Id: I61e33a215d41d25cc1f64866e653c0f1d4eb8ba8
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91693
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
2026-03-18 06:23:20 +00:00
Angel Pons
5bb8b30c03 nb/intel/haswell: Enable SA clock gating later
Reference code version 1.9.1 sets `SAPMCTL` bit 0 just before setting
`BIOS_RESET_CPL` bits 0 and 1. Do the same thing in coreboot.

Change-Id: I36e24d2a3bd754e56df59a1e996d285ec6bf5205
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91632
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-17 20:08:49 +00:00
Angel Pons
a0be26ef5f nb/intel/haswell: Fix IOMMU early init
Intel Document 492662 (Haswell System Agent BIOS Spec), Rev 1.6.0 states
that `ARCHDIS` (VT engine BAR, offset 0xff0) has to be written fully, as
well as several other things that were not done properly in coreboot. As
these steps are Haswell-specific, introduce two helper functions to test
if the CPU is Haswell or Broadwell.

Intel Document 535094 (Broadwell BIOS Spec), Rev 2.2.0 contains the same
steps for Broadwell. To permit unifying Haswell and Broadwell, implement
the Broadwell steps as well.

Change-Id: I077e064754720d9f9f627733c954712a2b24b5b7
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91631
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-17 20:08:42 +00:00
Angel Pons
60994cf395 nb/intel/haswell/early_peg.c: Simplify implementation
Instead of open-coding function-to-DEVEN-bit mapping thrice (using
a different implementation each time), introduce `deven_for_peg()`
to map the PCI function number to the corresponding DEVEN bit. Use
the PCI function number as primary parameter, instead of passing a
`pci_devfn_t` around and getting the PCI function number from that
using two macros.

Change-Id: Ia2f7cdcff3c95f831269fa51f9bfc60bef0907a1
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91630
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-17 20:08:35 +00:00
Angel Pons
fed6f9494d nb/intel/haswell: Move early PEG stuff to separate file
Only Haswell / Broadwell Trad have PEG devices. So, don't include
PEG-related code when building for Haswell / Broadwell ULT.

Change-Id: I478f5c6d5850e6fb7cecc04ae5e2aae51d20fc92
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91629
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-17 20:08:28 +00:00
Angel Pons
76290e8cdc nb/intel/haswell: Move PEG device macros to header
These can and will be used in other files in subsequent commits.

Change-Id: Iba0515151252b22f0211e8ab1470c70dfd172929
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91628
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-17 20:08:22 +00:00
Angel Pons
e7cfcec7a7 nb/intel/haswell: Use report_cpu_info() from CPU code
This function prints CPU information, so it makes sense for it to be
part of CPU code. The version in CPU code prints a bit more info but
is otherwise equivalent. After all, this is just logging some info.

Change-Id: I2a9d8a42f78efab6206710fada1d64fa79e8056e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91627
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Abdelkader Boudih <coreboot@seuros.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-17 20:08:15 +00:00
Angel Pons
f730ec6992 cpu/intel/haswell/report_cpu_info.c: Update CPUID info
Update the entries for Crystalwell and Broadwell ULT, and add the CPUIDs
for Crystalwell B0 and Broadwell G0. Also drop a now-done FIXME comment.

Change-Id: Ib5293b5a0ef3321678c68363fb4bc8999b10cd01
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91626
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-17 20:08:09 +00:00
Angel Pons
f249991e9d cpu/intel/haswell: Fix CPUID macros
Commit 8b0636e06f ("cpu/intel/haswell: Clean up CPUID definitions")
used the wrong value for the `CRYSTALWELL_FAMILY` macro. Also, as per
Intel document 634961-024 (Broadwell-H Specification Update), the one
production Broadwell Trad stepping is G0, not C0. And for the sake of
completeness, add the `BROADWELL_FAMILY_TRAD` macro.

Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: I25be5289997000e116cc36cf427a9d4970a3ec1b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91625
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-17 20:08:02 +00:00
Angel Pons
96ab0c9942 nb/intel/broadwell: Move report_cpu_info() to CPU code
This function prints CPU information, so it makes sense for it to be
part of CPU code. Subsequent commits will update the CPUID table and
make the Haswell northbridge code also use it.

For now, rename the static function in `nb/intel/haswell` to avoid a
name clash. It will be dropped in a follow-up anyway.

Change-Id: I6b26fddd4e899b692f4122921db1c70f4b16b4f2
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91624
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-17 20:07:56 +00:00
Angel Pons
7c35218c88 nb/intel/broadwell/report_platform.c: Constify string array
Checkpatch suggests these changes when touching this code.

Change-Id: Ib85f4ca43b92a160519bd9e600054accaccc0e94
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91623
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-17 20:07:48 +00:00
Angel Pons
4ea3450e45 nb/intel/broadwell: Use registers from Haswell
Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: I7d08231b844428390734bd779b19d80e61a66efd
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91622
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-17 20:07:41 +00:00
Angel Pons
342d77a0dd nb/intel/broadwell: Rename MCH_PAIR to INTRDIRCTL
The register at MCHBAR offset 0x5418 is named `INTRDIRCTL` on Haswell,
as well as earlier platforms. Sync the Haswell and Broadwell codebases
by renaming `MCH_PAIR` to `INTRDIRCTL` on Broadwell.

Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: I0b37927ebec634b6e48623f75789723cf518c3ef
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91621
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-17 20:07:34 +00:00
Angel Pons
31f4c30a08 nb/intel/broadwell: Clean up cosmetics
Yes, the "Coding Style" page of the coreboot docs states the following:

    Bulk style changes to existing code ("cleanup patches") should
    avoid changing existing style choices unless they actually
    violate this style guide, or there is broad consensus that the
    new version is an improvement. By default the style choices of
    the original author should be honored.

However, when attempting to unify two codebases (Haswell and Broadwell),
style differences only make it harder to find the functional differences
between the codebases. So, it makes sense to unify the code style first,
so that only functional differences remain. Especially if these cosmetic
alignment changes are reproducible, i.e. they don't change the resulting
coreboot.rom when using `make BUILD_TIMELESS=1` to build.

Sort includes alphabetically, unbreak some long lines that are less than
96 characters long, combine variable declaration and initialisation, use
C-style comments, use one line for printk strings (easier to use grep to
find them this way), constify some values the compiler already knew they
were constant (they get inlined anyway), remove unnecessary parentheses,
fix space usage around operators, align some comments with Haswell code,
rename a few things for consistency with Haswell, use an early return in
place of an if-block (like Haswell does), drop a few unused includes and
include `types.h` from files that need it.

Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: I872068e93f1960d90a914193ccb346fc77652220
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91620
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-17 20:07:27 +00:00
Angel Pons
53bc76856c nb/intel/broadwell/gma.c: Retype some variables
Use `bool` and `u16` instead of `int` where appropriate.

Change-Id: I813b7bbebdd26547941d1a5b48a2dd08ff10e753
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91619
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-17 20:07:19 +00:00
Tony Huang
1172a4e6ee mb/google/brya/var/yavilla: Set LGD touchscreen HID address to 0x01
Follow vendor design change.

BUG=b:483762467
TEST=build nissa coreboot image
     touchscreen is working

Change-Id: I5aaf45ccd8f930fb503a39dd9f66a913f1722297
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91682
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-17 15:46:39 +00:00
Felix Held
5c20d9ce76 3rdparty/amd_blobs: advance submodule pointer
This pulls in the following changes from the submodule:
- README.md: Add psirt email address
- MDN: Update ABL to version 3516B01Bh
- MDN: Upgrade microcode patch to 08A0000Bh
- cezanne: Update ABL to 0x23216072
- cezanne: Upgrade microcode patch to 0A500014h
- Upgrade microcode patch of PCO to 0810810Eh, Pollock to 08200105
- Picasso/Pollock/Dali: Update SMU Fimemware
- Update Phoenix FP7/FP8 binaries to PI release 1.2.0.0d
- Add Phoenix AM5 binaries from PI release 1.2.7.0
- MDN: Update mendocino SMU to 90.49.0
- MDN: Upgrade microcode patch to 08A0000Ch
- MDN: Upgrade ABL to 3516B021
- CZN: Updata PSP stage 2 to E5.11.11.75
- PCO: Upgrade ABL to CABLRV26012800
- add binaries for Strix, Krackan, and Krackan2e
- MDN: Update PSP to v00.3C.04.18
- CZN: Upgrade ABL to RABLCZN23216073
- FWDEV-177733: Upgrade PSP version to 75.11.11.20
- move the Phoenix AM5 files to a location more in line with the rest
- add binaries for Strix Halo

Change-Id: I7404a53b0c3b27d73d6e0633520e6040539e992f
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91669
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-17 09:43:42 +00:00
Sean Rhodes
817394f12c Makefile.mk: generate EDK2 update capsule
Generate a signed UEFI capsule from the final coreboot ROM image using
EDK2 BaseTools.

When using an EDK2 payload and enabling DRIVERS_EFI_UPDATE_CAPSULES and
DRIVERS_EFI_GENERATE_CAPSULE, the build produces build/coreboot.cap once
the ROM is finalised (after all files were added to CBFS). The capsule
can also be generated explicitly with `make capsule`.

Move the capsule generation and certificate preparation into
payloads/external/edk2/Makefile, including generating the trusted root
certificate PCD include via BinToPcd.

Support capsule flows with an embedded FmpDxe driver by optionally
embedding FmpDxe.efi into generated capsules, and wiring the
embedded-driver Kconfig options through to the EDK2 payload build and
capsule generation.

Always set PersistAcrossReset on the capsule. Make InitiateReset
configurable (default off) because Linux rejects capsules with
InitiateReset when writing via /dev/efi_capsule_loader.

Use CONFIG_DRIVERS_EFI_MAIN_FW_VERSION for GenerateCapsule
--fw-version, but fall back to parsing a leading <major>.<minor> from
CONFIG_LOCALVERSION when it is left at 0. If
CONFIG_DRIVERS_EFI_MAIN_FW_LSV is 0, use the resolved firmware version.

Document capsule generation and embedded driver configuration.

Corresponding edk2 patches can be found at:
https://github.com/tianocore/edk2/pull/12053

Change-Id: I5f56b894d40ddb49f3158bb72f0143d0ebe9c34c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90862
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-16 19:51:14 +00:00
Arthur Heymans
bf037f3961 mb/emu/qemu-sbsa: Add GIC ITS and IORT for PCI MSI support
The QEMU sbsa-ref machine has a GICv3 ITS at 0x44081000 that handles
MSI/MSI-X translation for PCI devices. Without describing the ITS in
ACPI tables, Linux cannot set up MSI interrupts, causing warnings like:

  WARNING: CPU: 1 PID: 1 at drivers/pci/msi/msi.h:121 pci_msi_setup_msi_irqs+0x40/0x58
  xhci_hcd 0000:00:04.0: xHCI Host Controller

Add GIC ITS base address to the address map and implement
platform_get_gic_its() so the common MADT generation code emits
a GIC ITS entry.

Select ACPI_IORT and implement acpi_soc_fill_iort() to generate an
IORT table with an ITS Group node and a Root Complex node that maps
all PCI RIDs 1:1 to ITS device IDs.

Tested with Fedora 41 and a qemu-xhci USB controller.

Change-Id: I9366968aac855dae808f6f0c73f1d3ec644bbeff
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91668
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-16 17:21:53 +00:00
Arthur Heymans
e69bfef7c0 mb/emu/qemu-sbsa: Set io_port_mmio_base for PCI I/O port support
The QEMU sbsa-ref machine maps PCI I/O port space at 0x7fff0000.
Set io_port_mmio_base so that PCI I/O port accesses are correctly
translated to MMIO on aarch64.

This is needed for PCI device drivers that may use I/O port BARs,
such as the QEMU bochs display driver which already compiles and
links for this target via the existing DRIVERS_EMULATION_QEMU_BOCHS
Kconfig.

Change-Id: I6a06c4c3a48c5d3409009f10b089a3537ccec8a6
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91667
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-03-16 17:21:47 +00:00
Kapil Porwal
dc7bf7e3f9 mb/google/bluey: Enable source mode on debug access port
The current implementation only supports sink mode on the debug access
port, which is used for charging. To enhance debugging capabilities,
expand the support to include source mode.

Refactor the Kconfig option to HAVE_DEBUG_ACCESS_PORT_SOURCE_SINK and
update the initialization logic to configure both SRC and SNK modes
via the PMIC's SCHG_TYPE_C_DEBUG_ACCESS registers. This allows the
debug port to serve as a power source or sink as required by the
attached debug hardware.

BUG=none
TEST=Verify debug port modes on Google/Quartz.

Change-Id: I3ec45d9cdc0ec6e723d10792f4e347462cecd2ed
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91670
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-03-15 04:53:15 +00:00
Hari L
e9e4f7609c mb/google/bluey: Move QUP-GSI init/load to normal boot path
The ADSP GSI initialization/loading is needed in both
normal boot and the off-mode/low-battery charging path. This patch
moves it before the conditional mainboard initialization skip, so it
runs in all cases.

TEST=Able to build and boot google/bluey.

Change-Id: I6237154f8701d5f7f9e1e0b20378cb8e8be39fca
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91637
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-15 04:53:04 +00:00
Guangjie Song
19e1b5c44b soc/mediatek/mt8196: Change dsi-phy1 & dsi-phy2 control method
dsi-phy1 and dsi-phy2 are currently controlled using hardware voting,
however there is a low probability of power-off failure during the boot
process. Since dsi-phy1 and dsi-phy2 are not shared with different XPUs,
there is no need to control them using hardware voting. Change the
control method of dsi-phy1 and dsi-phy2 from hardware voting to software
control to fix the power-off failure issue.

BUG=b:477096462
TEST=Build Pass, Bootup OK and Suspend/Resume OK

Change-Id: I33ebbac0dd6d0d0d352697c14de9ecef28ba08cb
Signed-off-by: Guangjie Song <guangjie.song@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91659
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-03-14 10:47:03 +00:00
Subrata Banik
e6fb0faf7b soc/qualcomm/x1p42100: Skip redundant MMU toggling for QCLib
Enable SOC_QUALCOMM_QCLIB_SKIP_MMU_TOGGLE for the x1p42100 SoC to
optimize boot performance.

BUG=b:449871690, b:477139887
TEST=TBD.

Change-Id: Ide19857e37fe04e97733aa91a5c1fc4e02911ea4
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91331
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-14 02:40:30 +00:00
Sean Rhodes
deb510afeb cpu/x86/smm: add OPAL S3 CBMEM scratch
Provide an optional, coreboot-managed CBMEM scratch buffer for SMM code.

CBMEM is reserved from the OS via the memory map and persists across S3,
so it is suitable for firmware-owned DMA buffers used during resume.
SMRAM is not device DMA-accessible, so this scratch buffer must live
outside SMRAM.

Pass the base/size to SMM via smm_runtime so SMM code can validate
placement and avoid relying on untrusted pointers.

The CBMEM region size is configurable via SMM_OPAL_S3_SCRATCH_SIZE,
defaulting to 16 KiB as a safe value.

TEST=tested with rest of patch train

Change-Id: I79ae5327f27e574b151b7cf456761fa0d7038f2f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91042
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-03-13 16:44:04 +00:00
Alicja Michalska
513899c3c8 vc/amd/opensil/phoenix_poc: Adjust headers from Genoa to Phoenix
As directory was copied from genoa_poc, we need to adjust headers to
correspond to phoenix_poc repository.

Change-Id: Id3aeaf6ecf138ea94282ae2a308a45c77ff73b02
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91481
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-13 16:43:43 +00:00
Alicja Michalska
a616a589a2 vc/amd/opensil: Add Phoenix OpenSIL POC directory as a copy of Genoa
Based on genoa_poc, this patch adds directory structure for Phoenix
OpenSIL as well as git submodule needed to build it.

Subsequent patches will begin adjusting this directory to Phoenix (Zen4)
silicon.

Change-Id: I04de276c1567c20d1e852efe220efa8131f53843
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91480
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-13 16:43:33 +00:00
Lukas Wunner
71effade58 mb/google/eve: Work around CLKREQ# timing erratum
The Sunrise Point-LP PCH built into the Google Pixelbook Eve suffers
from an erratum where the "CLKREQ# asserted to clock active timing" may
exceed the maximum specification, resulting in exit instability from
ASPM L1 state.

This is documented in erratum 47 of the "Intel 100 Series and C230
Series Chipset Family Platform Controller Hub Specification Update"
(Revision 015, December 2018):

https://www.intel.de/content/dam/www/public/us/en/documents/specification-updates/100-series-chipset-spec-update.pdf

The Specification Update constrains applicability of the erratum to
Endpoints which do not support LTR or advertise an LTR value of less
than 1 usec.  The reason is that the PCH needs about 1 usec for the
clock to become active after CLKREQ# asserted.  For devices without LTR
support, the maximum is 400 nsec (T_CRLon, PCIe CEM r6.0.1 sec 2.11.2).

The Pixelbook Eve has an Intel 7265 Stone Peak wifi card attached to
Root Port 1.  It seems this wifi card triggers the erratum:  There are
several reports that the wifi card is no longer usable since commit
torvalds/linux@4d4c10f763 ("PCI: Explicitly put devices into D0 when
initializing").

Briefly, coreboot enables all ASPM features on boot, the kernel used to
disable certain ASPM features prior to the commit, now no longer does
and the erratum is thus exposed.  (The commit changed the cached power
state of the wifi card from PCI_UNKNOWN to PCI_D0, which now causes
pcie_config_aspm_link() to no longer disable L1 PCI PM.)

Apply the recommended workaround, which is to disable the associated PCH
CLKREQ# signal to keep the PCIe clock active during L1.

BUG=https://github.com/MrChromebox/firmware/issues/786
TEST=https://bugzilla.kernel.org/show_bug.cgi?id=220705#c31

Change-Id: I00c6555c2b93f46971ea8e4344f8990f86b03a3d
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91651
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-03-13 16:43:07 +00:00
Lukas Wunner
faf12bcacd soc/intel/skl: Allow disabling CLKREQ# independently of SrcClk
On Skylake mainboards, enablement of the Source Clock of a PCIe Root
Port is currently dependent on enablement of CLKREQ# in the devicetree.

However it may be desirable to disable CLKREQ# but still keep the Source
Clock enabled.  Specifically, that's the recommended workaround for
erratum 47 of Sunrise Point-LP PCHs, which concerns exit instability from
ASPM L1 state:

   "disable the associated PCH SRCCLKREQ# signal to keep the PCIe clock
    active during L1"
    https://www.intel.de/content/dam/www/public/us/en/documents/specification-updates/100-series-chipset-spec-update.pdf

Therefore, key Source Clock enablement off of Root Port enablement in
the devicetree, rather than CLKREQ# enablement.  A subsequent commit
takes advantage of this to implement the workaround on Google Pixelbook
Eve mainboards.

Change-Id: I9b69357c59bad3392da85e0629a9d368524daffd
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91650
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-13 16:43:00 +00:00
Subrata Banik
07e4cc0cc3 mb/google/fatcat: Set CPU ratio override in devicetree
Configure "cpu_ratio_override" to 0x20 (32) for the Fatcat baseboard.
This ensures the Panther Lake SoC initializes with the correct
base frequency ratio to meet the performance and thermal targets
defined for this hardware revision.

BUG=none
BRANCH=none
TEST=Build and boot Fatcat; verify CPU base frequency has updated.

Change-Id: I7ea6c7dccaf731bab1256b3297d83518ceea532c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91648
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-13 02:23:55 +00:00
Subrata Banik
94168f10bc Reland "mb/google/bluey: Configure GPIOs for USB camera"
Additionally, guard USB camera GPIO enablement using dedicated
Kconfig option.

This reverts commit bbbc655b15.

Reason for revert: FW should enable the GPIO_USB_CAM_ENABLE (206).

Change-Id: I7966240939c51a4be7027debb0a66d3e11cb75cc
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91660
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-13 02:23:16 +00:00
Sean Rhodes
975613717a mainboard/starlabs/starfighter: Convert SPD sources to JSON
Replace checked-in .spd.hex blobs with .spd.json attribute descriptions
and generate the .spd.hex at build time via spd_gen.

Change-Id: I777b12df911576c684ee8146f5ec69e61b0cc772
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91292
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-12 20:41:58 +00:00
Sean Rhodes
dda351b895 mainboard/starlabs/adl: Convert SPD sources to JSON
Replace checked-in .spd.hex blobs with .spd.json attribute descriptions
and generate the .spd.hex at build time via spd_gen.

Change-Id: Ibfe5672ba9c4ffb3dcd328d9bf7df81395a3d93f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91291
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-12 20:41:51 +00:00
Sean Rhodes
5202b1371d mainboard/starlabs/adl: Convert i5 SPD sources to JSON
Replace checked-in mt62f2g64d8 .spd.hex blobs with .spd.json attribute
descriptions and generate the .spd.hex at build time via spd_gen.

Change-Id: I383b044f87c7ff9eaa57da580cd39a67c36c7b32
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91252
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-12 20:41:45 +00:00
Sean Rhodes
2c9f1600e0 src/lib: Generate spd.hex from JSON at build time
Allow mainboards to provide SPD sources as .spd.json alongside existing
.spd.hex files. When a JSON source is used, spd_gen is invoked at build
time to generate the corresponding .spd.hex in the build directory.

Change-Id: Ie1f2b81bcc15af65f1402b31f5c1f0553217fdda
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91251
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-12 20:41:38 +00:00
Sean Rhodes
9a8d22dcaa util/spd_tools: Improve spd_gen CLI for Make
Add options that simplify integrating spd_gen into build systems:
- Allow choosing an output directory via -out/--out.
- Allow writing a single SPD hex file from a single-part JSON input.
- Accept either {name, attribs/attributes} or a single-part
  memory_parts.json.
- Strip // and /* */ comments from JSON inputs.
- Allow selecting the SPD set number for single-file output via
  -set/--set (default: 0).

The set number selects which set-N attributes are used when generating a
single output .hex file.

Change-Id: Iebbdcdaea7dc69e37b048ad2113007fae5471bad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89799
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-12 20:41:28 +00:00
Matt DeVillier
3249ad1d7f mb/google/rex: Add SOF chip driver to screebo, kanix, karis
screebo/kanix use rt1019 speaker, rt5682 headphone. karis uses rt5650
speaker and rt5650_hp headphone. All of them use 2ch-pdm0 for dmic.

This configuration is used for CoolStar's Windows audio drivers on
these devices.

TEST=build/boot Win11 on screebo, verify built-in audio functional with
coolstar's drivers.

Change-Id: Ie0be2b2d7cc41548bbe3e5b47a8e0f6039c4b2d9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91571
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-12 20:41:19 +00:00
Michał Żygowski
88eea9da6d vendorcode/amd/opensil/turin_poc: Pass microcode pointer to OpenSIL
Use the new API to pass the microcode update pointer to the OpenSIL
so that OpenSIL can update microcode on all cores/threads during CCX
initialization.

TEST=See microcode is updated on BSP in OpenSIL on Gigabyte MZ33-AR1.

Change-Id: Ic35784583a1494ea162dc4a0d2fea8c9c3e1ef5f
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89109
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-03-12 20:41:06 +00:00
Michał Żygowski
39017d2257 amd/microcode: Add API to obtain address on microcode update block
Expose API to return the microcode update block address. It will be
used to provide a pointer to microcode update to the OpenSIL.

Change-Id: I1a5a89a5ff2ed29621e856cf274434803005aff8
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89108
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-12 20:40:48 +00:00
Arthur Heymans
6ce607eee4 mb/emu/qemu-sbsa: Add missing PCIe ACPI methods
Linux complains about these missing.

Tested with fedora 43 and CrabEFI payload.

Change-Id: I4c65760e64d8dc9b953f6a5b7f1bdcde0ce946a0
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91649
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-12 20:40:38 +00:00
Sean Rhodes
5458b34de6 soc/intel/meteorlake: Use Arrow Lake FSP
The FSP for Arrow Lake supports Meteor Lake, so re-point coreboot
at that, as it's, simply, newer and better.

Change-Id: I524dc7c0632c9f38b178ad95563128b56f94f983
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89639
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-12 14:34:53 +00:00
Cliff Huang
bd2c7443f3 soc/intel/ptl: Add ISCLK for controlling PCIe clock source
Add two functions for disabling/enabling PCIe clocks to devices
connected to root ports. These functions are used during device power
sequencing at boot to ensure clocks are not driven to devices when
their power is off. This prevents potential issues with PCIe link
training and ensures proper power-on sequencing for connected devices.

BUG=none
TEST=Build and boot Panther Lake platform. Verify PCIe devices enumerate
correctly and clock management functions properly during power sequences

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I63f8e331b6ab18172fa32ff5c1539c71823aa247
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91550
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-12 14:34:18 +00:00
KangMin Wang
5e8cf41845 mb/google/bluey/mica: Add MAINBOARD_NO_USB_A_PORT configuration
Since USB-A was removed from the mica hardware design, the Kconfig has
been configured to skip the relevant initialization.

BUG=b:488906616
TEST=emerge-bluey coreboot

Change-Id: I69cc994c83d78da87ddb95cbf471726a492512ef
Signed-off-by: KangMin Wang <kangmin.wang@luxshare.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91635
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2026-03-12 14:32:34 +00:00
Qinghong Zeng
2107e48c09 mb/google/nissa/var/telith: Generate RAM ID for BWMYAX32P8A-32G
Generate RAM ID for BWMYAX32P8A-32G

DRAM Part Name                 ID to assign
BWMYAX32P8A-32G                4 (0100)

BUG=b:488993502
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I496292fa20884262c32d339b8448490f09c7b12b
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91508
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
2026-03-12 14:32:20 +00:00
Eren Peng
1d17c9522f mb/google/trulo/var/kaladin: Add LGD touchscreen
Add LGD touchscreen for kaladin

BUG=b:484114852
TEST=build and flash on kaladin,verify touch function works normally

Change-Id: I1f204569767e7eab17bc44dcd060d606ba87a38e
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91647
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-12 14:32:11 +00:00
Sean Rhodes
4d9cb5336f mainboard/starlabs: drop display_native_res VBT toggle
A local patch providing basic 2x scaling in edk2 means that the
fixed resolution VBTs are no longer needed so always use the
native-resolution VBT by default,

Remove the CFR option to pick which VBT to use, so only the native
resolution VBTs are used and included.

Change-Id: Ib7f4c546a01ebfba963b7591af9d5e24c0611206
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91618
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-12 14:32:03 +00:00
Mike Banon
9bb822dbf8 Update vboot submodule from 2024 to upstream main 2026
Updating from commit id 3f94e2c7ed58:
2024-12-18 - Makefile: Allow cross-compilation for RISC-V

to commit id 5c360ef458b0:
2026-03-10 - lib20: Add vb2api_verify_kernel_data back

This brings in 182 new commits listed below. Build tests for AMD AGESA
boards that I am maintaining with restore_agesa.sh - are successful.

5c360ef458b0 lib20: Add vb2api_verify_kernel_data back
24655cd2309e cbfstool: fix const-discarding warning in extract_config_value
b9ea1075a7d2 firmware/2lib: Remove unused vb2_sha256_extend function
7934c1c9c991 firmware/2lib: Remove dead kernel verification function references
25083888d265 Add .editorconfig
3109519e8841 tests: Remove unused sha_tests.c
850cf0fbe5b5 tests/tpm_lite: Remove unused files
42f5313871c6 firmware: Do not allow for dev mode with oem_lock enabled
c16e6afaced4 firmware: host: Add OEM Lock flag to nvstorage dev field
ed6cb4054134 tests: add test cases for booting OTA recovery partition
606ca738a7d3 vboot: Implement Network Based Recovery (NBR) using OTA recovery partition
7529e2837c55 2lib: rename functions & variables related to MiniOS
6aba77a84c2b vboot: Add GPT_DISK_UUID_RECOVERY marker
ec74b34cd6ce vboot: Add declaration of vb2ex_slice_disk() callback
e388d1f93c95 futility: Print programmer in logs
a1f54de5001c Skip ec.config if there is no space
5040bde7243f futility: Prioritize identity.csv over Android property ro.product.name
a5f6ef5e327e sign_uefi: Use the v2 crdyshim key for signing crdyboot
fa13af3ccc36 futility: Support model detection by Android property ro.product.name
cca9e4a676f3 vb2_sha: Use uint64_t for total size in SHA-2
0ee734db27fe test: fix problem with load android test cases
5a45a5f32dcf Android.bp: allow libvboot_host to be built as a shared library
89b720193a09 tests: initialize cmdline for AVB verify data
c851dfa1e384 tests: add vboot avb test cases
86e3d6b720cb tests: add test cases to boot android kernel
461398242604 Fix OpenSSL memory leaks and incorrect free() usage
7b8a96024b7c crossystem: Use libflashrom instead of flashrom CLI for USE_FLASHROM=1
dd0bab314680 futility/updater: Check FMAP compatibility
4f3a73dd50f0 tests/futility/test_update: Make FROM_IMAGE and TO_IMAGE same board
93711fc01e5a 2lib: Implement rollback protection for Android
ad3b7b64283b sign_uefi: Update handling for presigned crdyboot builds
6e8977429f53 avb: adjust Makefile for changes in AVB repo
f963a5069755 host/flashrom_drv: refactor flashrom initialization
1de7d46170ea tests/futility/test_update: Dynamically calculate image size
ac9e57cffd22 tests/futility/run_test_scripts: Filter tests via FUTIL_TEST_SCRIPT
b3780bbaaced crossystem: Fix crossystem lock file unlocking
6b8337fb608b Add 'runfutiltestscripts' make target
5d6a647a1f29 tests/vb2_avb_tests.c: add key validation tests
d3f2d712c205 avb: Fix format specifier for debug messages
67fb9d2b799a futility: Add missing gscvd.c file to futility_srcs for Soong
4ce2c1a44c95 futility: add check-fwid flag to update command
3c47ec0a951b firmware/2lib: Move base DTB image into dtbo partition
0413878d374c futility: Support RO_GSCVD region for 'futility show'
ffab62e169e8 futility: Add futil_valid_gscvd_header()
6c242361a867 sign_uefi: Skip crdyboot signing if already signed
7a2ba18765eb 2lib: remove partition_number variable
5f958f17f4b6 2lib: use correct structure for guid
a11ad5ccdeae lib20: remove unused code
f290e75b7441 futility: Utilize identity.csv for remote device
24e62a619e81 futility: Add --frid and --sku-id arguments
f80af2766ecb firmware: GBB flag to ignore rollback applies to kernel too
34431212e1e9 futility: Update --model help text
a086faa63858 vboot: Rename vb2ex_get_android_bootmode to vb2ex_handle_android_misc_partition
f90a1c7ab168 tests/vb2_host_flashrom_tests: Fix missing '\0' for strncpy call
ed024e5cc5a7 Makefile: fix runtests fails when USE_FLASHROM=0
9cce699aa655 host/lib/flashrom_drv: Change the return type from int to vb2_error_t
14cee0b25665 make_dev_ssd: Add crash_kexec_post_notifiers with kdump
5659718d037e avb: Use hardware-accelerated SHA256
a549dc16e50a 2lib: Rename vboot_cmdline related buffers
5ffc2321290d Makefile: include vb2_host_nvdata_flashrom_tests in run2tests target
59cb8b6e6dbf Makefile: include vb2_host_flashrom_tests in run2tests target
60c75230ab6f Makefile: include vb2_recovery_reasons_tests in run2tests target
f344c1f022fe make_dev_ssd: Add --minios_key
9daff4f9319e avb/vboot_avb_ops: Refactor reserve_buffers to reduce code duplication
b97b60477b60 2api: Add support to load DTB/DTBO images from GPT partitions
90e322680f66 Reland "firmware/lib/cgptlib: Add GPT partition name for DTB/DTBO partitions"
2aae1741d8b8 avb/vboot_avb_ops: Continue without buffer for optional partitions
136e1229054c futility: Add unit tests for misc
47fa4d7227de treewide: Remove the space before labels
dd3c8066cda7 2load_android_kernel: Fix VB2_GBB_FLAG_FORCE_UNLOCK_FASTBOOT usage
3f578eceb517 Revert "2api: Add support to load DTB/DTBO images from GPT partitions"
a3e0e039a9a4 Revert "firmware/lib/cgptlib: Add GPT partition name for DTB/DTBO partitions"
0ed3061c8343 futility: Extract unit test utils into separate header
9fbd15cce715 2api: Add support to load DTB/DTBO images from GPT partitions
2f200d714993 firmware/lib/cgptlib: Add GPT partition name for DTB/DTBO partitions
db4e4c16938c gpt: Cleanup GPT constants
e4e2a4648678 host: Add error messages to NV read/write
d3bdaba00d45 futility: Add unit tests for updater utils
e0cef21436af crossystem/GetAcpiSysfsPath: Add stat check for current_path
05353d26e826 cgptlib: Expose GptModified as external API
63ebdf94d2ef futility/updater: Utilize identity.csv or crosid for --detect-model-only
b10850ad6e19 futility/updater: Support model identification with identity.csv
30e5f1a11302 Update kernel command line with `cros_part_hash` for specific partitions
c37d42900911 Delete `resign_kernel_partition.sh`
8f7b522a4b72 Remove deprecated stateful partition vblock update
015c6eedb91e Fix array iteration in `ensure_no_nonrelease_files.sh`
b20dfa89a76b Always mount ESP as read-write
485bf8061f51 futility: remove unused variable
9510c7f8eeb0 Reorder recovery kernel hash updates after MiniOS resigning
42a6ca910398 Remove engeg@ from scripts/OWNERS
26130316a50b futility/archive: Add libziparchive support on Android
87401a655f5c futility: Extract archive implementations to separate files
9b362962860c cgptlib: Make IsBootableEntry available for depthcharge
ac6cc721c1ef 2lib: Get Android boot mode
9863e6ea9410 2lib: Introduce FORCE_UNLOCK_FASTBOOT GBB flag
6cf177721568 cgptlib: Move cgptlib.h to firmware/include dir
4ab8d0085e8d futility/updater: Add load_system_frid() and get_model_from_frid()
f5e37de5b6b8 host/lib/flashrom: Free image data on flashrom_read_* failure
85ace4b96d6a futility/updater_dut: Introduce DUT_PROP_SKU_ID
6b93d66ec4a6 futility/updater_dut: Extend property type from int to int64_t
de036f432202 common: make optional arg actually optional
e8e6493e1f92 2lib: Modify logic of setting secdata kernel version
3d5855fa8da3 2lib: Move kernel secdata update to vb2api_load_kernel()
d89559b1f1fa gpt_misc: Validate pointer before usage
ee209148a4ff host/crossystem: Introduce VbGetSystemSkuId()
e3f41133afcb host/arch/arm/crossystem: Fix return type of ReadFdtInt
c8facc216cec host/arch/stub/crossystem: Fix "const char* name"
10316632b505 host: crossystem: gpio: Use correct GPIO controller offset
dcf300d273f2 OWNERS: Add bernacki
f1619fa67e15 futility/cmd_gbb_utility: add --verbose
92c264a42bed gpio_uapi: remove unused variable
68ec7968e66e Android.bp: Fix vb2_sha256_x86_tests target config
88ac12115cb1 crossystem: Remove wpsw_cur fallback to VDAT_INT_HW_WPSW_BOOT
f1f6b42aa4e0 crossystem: x86: Remove deprecated GPIO SYSFS code
d35aee8d15fc crossystem: host: Add support for reading GPIO from /dev/gpiochipX
2e1ed1f914ed dts: Add cc_test for x86 sha tests
8bf055106225 dts: add filegroup for devkeys
42e098dc402c avb: Implement unaligned read in load_partition
cb9f18bcfbca futility/updater: Add warning for full firmware update without WP
357561a2a82e futility/update: Assume WP is off for all remote operations
50bb82087123 avb: Add pvmfw verification and loading to memory.
a0a2affafcc0 2api: Expand vb2_kernel_params for pvmfw loading
b5fb33f01c34 tlcl: Increase TPM buffer size
dbdf50adc5e6 2load_android_kernel: Set VB2_SD_FLAG_KERNEL_SIGNED on verify success
9080ef62a9c9 uefi: add --keyform engine for pkcs11
c67404f06dfb swap_ec_rw: Support legacy EC image
9bd1a6dab45e Revert "Handle both RW_FW and EC_RW sections"
fcbc0a884ddd Update crdyshim keygen script to use ECDSA
af71ac87e4a4 host: Fix compilation error with GCC
c5ac68e4d273 futility: updater: Allow --quirks=preserve_me=2 to force preserving ME
ec4d7436be0c vb21: load private key before signing
39f6104b29e1 swap_ec_rw: Support giving a raw EC RW image
b7adaa2b97fe 2lib: Add androidboot parameters
b3b414cc307f 2lib: Drop unused ramdisk fragments based on BCB command
093e3608a529 2lib: Load Android kernel
a682da7d92db 2lib: Rearrange buffers with android partitions
076d4d38f9f6 2lib: Load and verify android partitions
f1df391e6d05 avb: Get preloaded partitions
45176543c260 avb: Add callback for public key verification
6dc845b9b4c9 avb: Add avb_ops for IO operations
911e5a6e4603 avb: Implement basic AVB callbacks
1fe2d7b5e555 futility: Fix load_firmware_image() for empty file name
44dc81ca128b 2lib: Make need_valid_keyblock() function global
35ea5c842733 2lib: Rename kernel type macros
c51cbc4ace85 tests: fix build errors with USE_FLASHROM=0
3f36817a50e3 cgptlib: Allow to boot from Android vbmeta
34cb9f619615 cgptlib: Add helper functions for partition loading
0130a541cb06 android: Port image headers definition
af0a2547170e vboot.rc: Fix TMPFS mounting and unmounting
ea4986b060ad cgpt: Add Gpt prefix to StrToGuid() function
015ee35a494c cgpt: Move GuidToStr to firmware code
2df1fe56f588 cgpt: Reformat code using clang-format
e9d7bd044a43 sign_gsc_firmware.sh: sing ECDSA only image for NT
8c2235b52196 crossystem: Add support for additional GPIO communities
2955db3c48bd futility: dump_fmap: Fix gap calculation
4134ab60ea70 tests/futility/test_dump_fmap: Allow easier expected output updates
1655f1a9f9a2 swap_ec_rw: Extract ecrw version to correct file
1c7a767b3353 Handle both RW_FW and EC_RW sections
8786d36c388c sign_gsc_firmware: extend to support signing NT images
4a9586937f19 swap_ec_rw: Support swap from AP image
44db1807c246 gsc: fix typo in calling out to script
06d58e2132d3 swap_ec_rw: Check ecrw.version/config exist before removal
a57167e79e4b pkcs11: add ID field
d6e67ecf0824 gsc: add env var support
8eea96333f62 2secdata_kernel: Improve log about incomplete secdata_kernel
bf4b21294a1c Include ec.config when swapping
9038039fbb32 futility: updater: Cap try count to 15
ae6ceb20d5e2 Android.bp: Make crossystem default to /vendor partition
2dde4ce9badc cgpt: repair: handle drive size expansion
993e0bf7bdbc cgpt: create: calculate Last Usable LBA in DriveLastUsableLBA()
3a37ae87f637 firmware/2lib: Refactor ec_sync_phase1 for clarity
6caf4cd6225f firmware/2lib: Remove redundant EC sync check in recovery
1f8153d95a93 scripts/image_signing/swap_ec_rw: Print the versions of the AP image
6f63b28162cd Makefile: Optimize dirname invocation
177c0582ad4f Makefile: Remove $(shell) invocations from CFLAGS
621899d6e89f vboot: modify GptNextKernelEntry function
993ef3126919 uefi: only check for key existence in local key mode
7fdca50ac14f Introduce new entry type for vbmeta
2e00eae8f9a0 firmware/2lib: Add a log for try_count used up
7e5bda8a8210 futility: updater: Increase try count from 13 to 17
3498c54d26a9 signing: add condition for flexor
c3f20ccfcf30 Makefile: Export swap_ec_rw script to OS image

Change-Id: Iad381e717ccf3db6cb5f0a3d408e0033fdba0538
Signed-off-by: Mike Banon <mikebdp2@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91640
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-03-12 13:20:39 +00:00
Wentao Qin
0be563503a mb/google/rauru: Support new bias IC TPS65130RGER
The panel uses TPS65130RGER as the bias IC, with supply set to ±5.9V.
Configure TPS65130RGER initialization and power-on sequence according
to the tps65130.pdf.
The tps65132s driver is no longer used on this platform and remove it
from the build.

[INFO ]  mtk_display_init: 'BOE NS130069' 3504x2190@120Hz bpp 4

BUG=b:463911061
TEST=Check display initialization log and display are normal
BRANCH=none

Change-Id: Idfc19597c4357adb818ca008f93bac2e7ebe3edb
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91424
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-03-12 08:30:39 +00:00
Felix Held
5d6061d0ba util/amdfwtool: add support for Strix Halo SoC
For amdfwtool, the Strix Halo SoC is similar to the Glinda SoC. Main
difference is the ISH PSP ID which was taken from the ISH table from the
UEFI reference implementation.

Change-Id: I6262dc8d72144ccdcd814586ef72684c15d3561d
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91638
Reviewed-by: Ritul Guru <rguru@amd.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-11 22:26:58 +00:00
Varun Upadhyay
391d5f3cb4 mb/google/ocelot/var/ojal: Enable dtt and ish based on FW config
This patch enables dtt and ish in devicetree for ojal and updates
FW config for GPIO's config according to schematics revision 0.9.
RDC kit no:840138

BUG=b:437459757
TEST=Build ojal board and check dmesg for errors.

Change-Id: If2ece13575ebad661cc7de78e77e3bf2f30e69e1
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91334
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aralguppe, Sowmya <sowmya.aralguppe@intel.com>
Reviewed-by: Bhat D, Krishna P <krishna.p.bhat.d@intel.com>
2026-03-11 17:00:01 +00:00
Keith Hui
df470521a7 mb/asus/p8x7x-series: Enable single PS/2 port role control
Add HAVE_SHARED_PS2_PORT Kconfig, associated cmos.[layout,default]
and CFR entries to p8z77-m[_pro], p8z77-v[_le_plus], p8h77-v,
where their owners manual indicate a single shared PS/2 port, to enable
control of this one port's role. Adds an "auto" option if PS/2 keyboard
init is enabled in Kconfig, to enable switching role automatically if
a device (ie. mouse) is detected on auxiliary channel.

TEST=Logitech M-S48 PS/2 mouse and various PS/2 keyboards all work with
correctly set port role and "auto" on asus/p8z77-m under a Linux
Mint 22.2 live environment.

Change-Id: I21b73da99168e751b1a23485d4b1695963f9eef5
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81885
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-11 16:59:12 +00:00
Keith Hui
a402a87405 mb/asus/p8z77-v_le_plus/cmos.layout: Extend checksummed area
Three more recent nvram options were not covered by checksum.

Change-Id: I69dcd3f0b57464e284965e31153e2ee0a1a80631
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91578
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-11 16:59:05 +00:00
Kapil Porwal
bbbc655b15 Revert "mb/google/bluey: Configure GPIOs for USB camera"
This reverts commit d912ae91b0.

Reason for revert: These GPIOs will be managed by the OS.
BUG=b:481123667

Change-Id: Ieab7a9eba09c6a1128fe4709603f3b9d64e72e93
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91639
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-11 16:58:59 +00:00
Sean Rhodes
fc312590d1 drivers/efi: Derive ESRT version from LOCALVERSION
fwupd shows the ESRT (UEFI System Resource Table) version as 0 when
DRIVERS_EFI_MAIN_FW_VERSION is left at the default. That makes it easy
to ship firmware with no meaningful ESRT version and forces maintainers
to duplicate versioning in multiple places.

If DRIVERS_EFI_MAIN_FW_VERSION is 0, parse a leading "<major>.<minor>"
from LOCALVERSION (ignoring non-digits before/after) and encode it as
(major << 16) | minor (e.g. "v26.01-rc1" -> 0x001A0001).

If DRIVERS_EFI_MAIN_FW_LSV is 0, default it to the effective firmware
version. This provides a sane, more secure default (prevents accidental
rollback to older versions) while still allowing platforms to override
LSV explicitly when rollback is desired.

Test=boot adl/horizon and check `fwupdmgr get-devices` shows a
version:
    ├─System Firmware:
    │     Device ID:          f48f261c7fc0724729b817bfd4e8340e3195a6bc
    │     Current version:    26.3


Change-Id: I3f47ee7a38e79312532f4ed5d4516c57911f727e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90861
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-10 22:52:22 +00:00
KangMin Wang
baae037f25 mb/google/bluey/mica: Add PS8820 re-timer configuration
Add Kconfig options to support PS8820 re-timer for the mica variant.

BUG=b:491021369
TEST=emerge-bluey coreboot

Change-Id: I7cb0d452da077ceaded18641477512c96188e270
Signed-off-by: KangMin Wang <kangmin.wang@luxshare.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91607
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-10 22:51:58 +00:00
Sean Rhodes
40abf7946c mb/starlabs/adl/hz: Add missing cnvi_bt_core parameter
`register "cnvi_bt_core"` was missed in the upstream patch, so re-add
it.

Change-Id: I2be5303563f22a642c03719a16b1c88cd8d196a7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91613
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-10 22:51:48 +00:00
Kenneth Chan
35dbfac13a mb/google/rex/var/karis: Add H58G56CK8BX146 to RAM ID table
Add the new memory support: Hynix H58G56CK8BX146

BUG=b:442335706
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Icd2643f8f5d4e7d7860ab20fa6964762e7c13713
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91636
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-03-10 14:11:04 +00:00
Venkateshwar S
4734da172b memlayout: Introduce PRERAM and POSTRAM TTB regions
Refactor the TTB memory region definition to support stage-specific
usage. Certain boot modes require separate TTB regions for early stages
(such as bootblock or romstage) and for later ramstage usage. On Bluey,
the off-mode/low-battery charging path requires this separation because
the boot IMEM, where the early-stage TTB resides, becomes unavailable
once the ADSP comes out of reset.

This change ensures that the correct TTB region is selected for each
stage and prevents early‑stage memory constraints from impacting the
ramstage boot flow.

BUG=b:436391478
TEST=Able to build and boot google/bluey.

Change-Id: I8cedab8c744220599527de1c303a777f9ff8b1da
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91361
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-10 12:23:07 +00:00
Sowmya Aralguppe
0be9f20be4 soc/intel/pantherlake: Add icc_max settings for WCL SKU
Add icc maximum configuration to include all voltage regulator domains
for WCL_SKU_1

Ref=830097_WCL_PDG_SchChk_Rev1p5
BUG=b:None
TEST=Build ocelot and verify that the system boots with following
VR parameter
[SPEW ]  (MAILBOX) IccMax    = 200 (1/4 A)
[SPEW ]   Override IccMax[1] = 144
[SPEW ]  (MAILBOX) IccMax    = 144 (1/4 A)
[SPEW ]   Override IccMax[2] = 140
[SPEW ]  (MAILBOX) IccMax    = 140 (1/4 A)
[SPEW ]   Override IccMax[3] = 112
[SPEW ]  (MAILBOX) IccMax    = 112 (1/4 A)

Change-Id: Ic1a17834a3164c7d0747d1aa0cde01de637535a3
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91453
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-10 12:22:48 +00:00
Kapil Porwal
bf5aa04d8b soc/qc/common: Configure framebuffer as uncacheable
Configure the framebuffer as uncacheable so that all write
operations bypass the cache and update memory instantly.

BUG=b:427387842
TEST=Verify firmware splash screen on Google/Quartz.

Change-Id: I47188eb51c4b1f90ff7a611e5712947e73180add
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90969
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-10 12:22:35 +00:00
Subrata Banik
ee3aef1c72 mb/google/bluey: Add AC unplug detection and charging status indication
Implement logic to detect and clear ChromeOS EC AC-unplug events and
provide visual feedback via the LEDs before system shutdown.

Key changes:
- Added `detect_ac_unplug_event` and `clear_ac_unplug_event` to
  monitor power source changes via EC host events.
- Implemented `indicate_charging_status` to provide a 4-second
  notification to the user before the AP powers off.
- Integrated these helpers into `launch_charger_applet` to ensure
  the event state is clean upon entry and the user is notified
  before the system issues a power-off due to charging timeouts or
  state changes.

BUG=none
BRANCH=none
TEST=On Bluey, verify the LED turns on for 4 seconds when
charging fails or AC is removed during the charging applet
before the device powers off.

Change-Id: Ie1ff5ba6f158fe7302e523f984c5e5d5f05d6eae
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91602
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-10 02:31:28 +00:00
Subrata Banik
0449fb45a6 mb/google/bluey: Refactor and secure low-power charging boot path
Refactor the low-power/off-mode charging logic into a dedicated
helper function `handle_low_power_charging_boot`.

Additionally, replace the `return` statement with `halt()` after
the charging applet logic. This ensures that if the system is in
a low-power charging state, it cannot accidentally proceed with
the rest of the mainboard initialization, which could lead to
unstable behavior or power-sequencing issues.

Included <halt.h> to provide the necessary definition.

BUG=none
BRANCH=none
TEST=Build and boot on google/quartz. Verify that low-battery boot
correctly enters the charging applet and does not proceed to full init.

Change-Id: I4bf9bb0f89d117fea9b81a5f8369fa23043a1e82
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91599
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-10 02:31:21 +00:00
Subrata Banik
b7ca29ba92 mb/google/bluey: Power off if charger applet fails to enable charging
When the charger applet times out waiting for charging to enable, the
previous behavior was to simply return. This caused a boot hang because
the system would attempt to continue mainboard initialization without
properly initialized IPs or sufficient power.

Update the timeout handler to trigger a system power-off via
google_chromeec_ap_poweroff(). This ensures the device enters a clean
G3 state if charging cannot be established, preventing a partial-boot
hang and unnecessary power drain.

BUG=none
BRANCH=none
TEST=Verified on Bluey that a charging timeout results in a clean
power-off instead of a system hang.

Change-Id: Iae00e6df39e9d78cd5d27770b871ff2e8c4c9b7c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91598
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-10 02:31:13 +00:00
Subrata Banik
ddac3082ea mb/google/fatcat: Enable ChromeOS EC LED control for variants
Select EC_GOOGLE_CHROMEEC_LED_CONTROL for the following Fatcat
variants:
- Lapis
- Moonstone
- Ruby

This enables the firmware to drive system LED behavior via the
ChromeOS EC.

BUG=none
BRANCH=none
TEST=Build and boot on fatcat variants, verify LED functionality.

Change-Id: I506420c8594f5cd183cdd02c8516c053205423e3
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91597
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-03-10 02:31:00 +00:00
Subrata Banik
a1173d9bc1 mb/google/bluey: Enable ChromeEC LED control for Quartz and Mica
Select EC_GOOGLE_CHROMEEC_LED_CONTROL for both BOARD_GOOGLE_MODEL_QUARTZ
and BOARD_GOOGLE_MODEL_MICA. This allows the firmware to communicate
with the EC to manage system LED states.

BUG=none
BRANCH=none
TEST=Build and boot on Bluey baseboard variants.

Change-Id: I53270c6a917c57ba8500f1fae46aac78ba43b351
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91596
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-10 02:30:53 +00:00
Sowmya Aralguppe
eb5bdf06b9 soc/intel/pantherlake: Add power state thresholds for WCL
Configure power state thresholds (PS1, PS2, PS3) according to the
platform design specification. These thresholds define current limits
at which the voltage regulator domains transition between different
power states for optimal power management.

Ref=830097_WCL_PDG_SchChk_Rev1p5
BUG=b:None
TEST=Build ocelot and verify that the system boots with following
VR parameter
[SPEW ]  (MAILBOX) PS1Threshold         = 80 (1/4 Amp)
[SPEW ]  (MAILBOX) PS2Threshold         = 20 (1/4 Amp)
[SPEW ]  (MAILBOX) PS3Threshold         = 4 (1/4 Amp)

Change-Id: I8ecb55741901eb997d78a3f1fd09175c3ce31544
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91454
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-09 14:23:15 +00:00
Sowmya Aralguppe
bf6b14e4f7 mb/google/ocelot: Add VR_DOMAIN_IA for fast_vmode_i_trip
Extend fast voltage mode configuration to IA Domain

Ref=830097_WCL_PDG_SchChk_Rev1p5
BUG=b:None
TEST=Build ocelot and verify that the system boots with following
VR parameter
[SPEW ]   IccMaxItrip[0] = 152

Change-Id: Iced5cea1bed8f215602ac1455ded214fa1f72c72
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91450
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-09 14:22:54 +00:00
Michał Żygowski
026bac6de7 arch/x86/ioapic: Add Kconfig option to keep pre-allocated IOAPIC ID
Introduce IOAPIC_USE_PRESET_ID Kconfig option to instruct coreboot to
keep the IOAPIC ID programmed in the silicon initialization modules.
For example, OpenSIL already programs the IOAPIC IDs.

TEST=See IOAPIC IDs are starting with 240 on Gigabyte MZ33-AR1 as set
by OpenSIL.

Change-Id: Idb44c1aa663d7e351b011f4dd13f0b6b426566bb
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89477
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-07 20:57:31 +00:00
Michał Żygowski
d251282f2d Kconfig: move IOAPIC option to x86 Kconfig
IOAPIC is x86-exclusive, so move the IOAPIC options to arch/x86/Kconfig
file.

Change-Id: Ib0b30a1929f6f4f6bcc6355cce6ceea067905a2c
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91510
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-07 20:57:24 +00:00
Jayvik Desai
1bdfc97c54 lib/cbfs: Enable LZ4 decompression in pre-RAM stages
LZ4 decompression was being incorrectly disabled in romstage when a
separate romstage was used and CONFIG_COMPRESS_RAMSTAGE_LZ4 was not
enabled. This occurred because ENV_RAMSTAGE_LOADER is defined as
ENV_SEPARATE_ROMSTAGE in such configurations, causing
cbfs_lz4_enabled() to hit the ramstage-loader check and return false.

This regression was introduced by commit f12d2997fc ("lib/cbfs:
Don't include unused LZ4 code to shrink postcar stage"), which added
the ramstage-loader check to avoid including the LZ4 decompressor in
the postcar stage when it's not needed for the ramstage.

This patch adds an explicit check for ENV_ROMSTAGE_OR_BEFORE and
CONFIG_COMPRESS_PRERAM_STAGES to ensure LZ4 remains enabled in these
stages regardless of the ramstage compression settings.

BUG=none
TEST=Verified on Quartz

Change-Id: Icf5a2848ffe4c830bd462ab5dc7782afea3616e5
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91581
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-07 17:05:16 +00:00
Tony Huang
1965a8740d mb/google/brox/var/caboc: Set LGD touchscreen HID address to 0x01
Follow vendor design change.

BUG=b:483588481
TEST=build brox coreboot image

Change-Id: Idb8147974562fdbacd83fe2bd075c59585f77e21
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91537
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
2026-03-07 16:21:20 +00:00
Avi Uday
50ce94d715 Revert "soc/intel/pantherlake: Fix DDR5 channel mapping"
This reverts commit 835b63980d, which was causing a boot failure on the ocelot DDR5 RVP. Reverting until further debugging.

BUG=b:490040385

Change-Id: I6fa397d26c57c5fb2dd415eaf8ebe5c20476b5f3
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91577
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-03-07 16:10:24 +00:00
Avi Uday
ea58a467f1 Revert "soc/intel/pantherlake: Fill in SPD data on both channels of DDR5 memory"
This reverts commit 42210fdb28, which was causing the
ocelot DDR5 RVP to not boot. Reverting until further debugging.

BUG=b:490040385

Change-Id: I5185a036ccbd6cca19eb1a3fd762686ed03919e8
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91576
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-03-07 16:10:19 +00:00
Hualin Wei
92a430baee mb/google/fatcat/var/lapis: Modify parameters to reduce acoustic noise
The acoustic noise test fail on lapis, based on power engineer's suggestion, modify the relevant parameters in overridetree.cb.

BUG=b:482855004
TEST=emerge-fatcat coreboot, test pass by power engineer

Change-Id: I5ab48ed56fc04d57dd5c02d5512891b17147d391
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91562
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-07 16:09:43 +00:00
Kapil Porwal
4caf5ab903 soc/qualcomm/sc7280: Fix extended EDID read over I2C-over-AUX
The eDP AUX controller currently sets the NO_SEND_STOP flag for all
I2C-over-AUX transactions. This prevents the controller from issuing
an I2C STOP condition, which is required for proper completion of
multi-block (extended) EDID reads.

Update edp_msg_fifo_tx() to only set the EDP_AUX_TRANS_CTRL_NO_SEND_STOP
flag when the DP_AUX_I2C_MOT (Middle-of-Transaction) bit is set in the
request. This allows the I2C transaction to correctly finalize with a
STOP condition when MOT is not present, enabling successful reads of
EDID extension blocks.

BUG=none
TEST=Verify extended EDID is correctly read on Google/Quartz.

Change-Id: I4b637a750ef16148895332abfd9ca202b5a35408
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91579
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-07 16:09:34 +00:00
Keith Hui
fd5f062446 mb/asus/p8x7x-series/*tree.cb: Consolidate gen1_dec into baseboard
It sets the PCH generic I/O decode range #1, meant for hardware monitor
functionalities, which are same across all variants with no reason to
deviate from. Move it into baseboard devicetree.cb.

TEST=Timeless binaries remain identical for all variants.

Change-Id: I7eecb81c02ed8c4b9bceb4cf9aff92a2bbe54ad7
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91306
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-07 16:09:27 +00:00
Swathi Tamilselvan
6200d53e31 mb/google/bluey: Use LPASS GPIO configure API for Soundwire GPIOs
Update the API used to configure Soundwire GPIOs to the LPASS GPIO
configure API, as these GPIOs are controlled by the LPASS subsystem.

Applies to the Soundwire amplifier GPIOs:
  - GPIO_SNDW_AMP_0_ENABLE (GPIO 204)
  - GPIO_SNDW_AMP_1_ENABLE (GPIO 205)
  - GPIO_SNDW_0_SCL (GPIO 202)
  - GPIO_SNDW_0_SDA (GPIO 203)

Test=1. Create an image.serial.bin and verify it boots successfully on
X1P42100.
2. Dump the corresponding TLMM GPIO CFG register and verify if the
eGPIO bit is disabled. The register details are part of HRD-X1P42100-S1
document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

Change-Id: I9cc16b659fc5302ef81951ffbad8e62ce90e2890
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91561
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-07 14:01:27 +00:00
Swathi Tamilselvan
1d8c536d79 soc/qualcomm/x1p42100: Add API to configure LPASS GPIO
Introduce a new API to handle configuration of LPASS GPIOs. The TLMM
GPIOs include an eGPIO enable bit that determines which subsystem
controls the GPIO. When set, the APPS processor controls the GPIO.
When cleared, the GPIO is controlled by the LPASS subsystem.

For GPIOs intended for LPASS, this API avoids enabling the eGPIO bit,
ensuring the GPIO remains controlled by the LPASS subsystem.

Test=Create an image.serial.bin and verify it boots successfully on
X1P42100.

Change-Id: Iccb51d3f5e6be4c1fadfdc7b9778805ae3e66af7
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91560
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-07 14:01:22 +00:00
Yu-Ping Wu
1e1b63c23b commonlib/device_tree: Utilize list_move() in dt_copy_subtree()
In dt_copy_subtree(), the device_tree_node copying

 *dst_node = *src_node;

doesn't work correctly for circular linked lists [1], because the 'next'
pointer of the last element isn't modified to point to the dst head.

As the only public caller of dt_copy_subtree() is dt_apply_overlay(),
and the dt_apply_overlay() function comment already explicitly disallows
'overlay' accesses after the call, fix the problem by utilizing
list_move() for copying device tree node properties and children.

Also add a new test case test_dt_apply_overlay.

[1] commit 23c41622a9 ("commonlib/list: Change to circular list")

BUG=b:434080284
TEST=emerge-rauru coreboot libpayload
BRANCH=none

Change-Id: I166ab74c9de67330d52f94e92b5d7ce5ddefa82b
Signed-off-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91558
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-03-07 01:19:35 +00:00
Yu-Ping Wu
89048780c0 commonlib/list: Add list_move()
This function transfers all elements from one list head to another. The
The destination list head takes ownership of all nodes from the source
list head. The source list head is reinitialized to an empty list.

This is useful for efficiently moving list contents without element-wise
relinking, particularly in contexts like device tree overlay application
where node structures are incorporated from a temporary tree.

BUG=b:434080284
TEST=emerge-rauru coreboot libpayload
BRANCH=none

Change-Id: I143394e381fa72bcba692b7727f57dfc09fda70e
Signed-off-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91557
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-07 01:18:39 +00:00
Matt DeVillier
00e3b9989c lib: Rename devtree_update to mb_devtree_update
Rename the devtree_update() bootstate hook added in commit f8494fbeae
("lib: Add devtree_update bootstate hook") to mb_devtree_update()
for clarity, since it is a mainboard-provided hook.

Update all declarations, definitions, and call sites accordingly.

TEST=build Starlabs Starfighter MTL

Change-Id: Id7fd9811433a668905d8439b90a8ee34a472d117
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91570
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-06 20:33:48 +00:00
Matt DeVillier
b1194a838b mb/starlabs: Use common devtree_update mechanism
Remove the explicit devtree_update() call from mainboard configuration.
The devtree_update hook is provided by src/lib/devtree_update.c and runs
at BS_PRE_DEVICE. Drop the variant declarations from variants.h and add
the devtree_update header in each variant devtree.c so their overrides
are used via the common mechanism.

TEST=build/boot Starlabs Starfighter MTL

Change-Id: Ia7ceaaefe717566c6411f86d81d3a76bdfb2b2ea
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91573
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-06 20:33:44 +00:00
Ren Kuo
346a4ccaef mb/google/fatcat/moonstone: Add Samsung LPDDR5 memory parts
Add Samsung K3KL8L80EM-MGCU and K3KL9L90EM-MGCU to the supported
memory parts list for the moonstone variant.

BUG=None
BRANCH=None
TEST=Regenerate SPD ID for moonstone via spd_tools

Change-Id: Iefde607ef703b7355b4516bf8f4fbe0129f7150d
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91559
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-06 20:07:41 +00:00
Sean Rhodes
fd6c0aa55b util/scripts: Add spd-decode for LPDDR5 SPD hex
Decode LPDDR5/LPDDR5X .spd.hex dumps into spd_tools-compatible JSON.
The default output is a single-part memory_parts.json-style document
without the bits that spd_gen adds automatically.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I49874bcd42cf3981277abbfa997ec185088f0715
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89785
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-06 20:07:34 +00:00
Angel Pons
2ac2df0eda sb/intel/wildcatpoint/pcie.c: Reorder some steps
Run some steps a bit earlier for consistency with Lynx Point.

Change-Id: I819f95275b23867c83d0991f1eaab3d2e8947abc
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91473
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-06 20:06:58 +00:00
Angel Pons
59ac2cb2c0 sb/intel/wildcatpoint/pcie.c: Drop redundant write
This write is already done later on, in `pcie_enable_clock_gating()`.

Change-Id: Id152e1358f581e2a3ef6871a909be366f309c1dd
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91472
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-06 20:06:53 +00:00
Angel Pons
44901340bf sb/intel/wildcatpoint/pcie.c: Ensure OBFF is disabled
For consistency with Lynx Point, ensure OBFF is disabled in DCTL2.

Change-Id: Id726ade900adfce513ad58c77027de8862bd271b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91471
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-06 20:06:47 +00:00
Angel Pons
d74570b01e sb/intel/wildcatpoint/acpi: Use Lynx Point files
Prepare to unify both southbridges by deduplicating the ASL files. This
change is meant to be reproducible, so there is some preprocessor usage
to achieve this. It will be tidied up in follow-up changes.

Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: Ibbb2d76448d87fad7f9d765cd659d60f54c54703
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91470
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-03-06 20:06:40 +00:00
Angel Pons
9541171de4 sb/intel/wildcatpoint/acpi: Move platform.asl to mainboards
The chipset platform.asl only provided empty _PTS/_WAK stubs and _SWS
methods, which mainboards needing custom sleep/wake behavior (e.g. EC
methods) cannot use. Only 2 of 5 Wildcat Point boards used it. Move the
content to mainboard code and inline the device_nvs and common platform
includes in dsdt.asl to align with other Wildcat Point and Lynx Point
boards. Keeping device NVS in mainboard code also simplifies future
Lynx/Wildcat unification.

Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: I753302a13567efb3b7903364be8cef486d2b76e5
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91469
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-03-06 20:06:32 +00:00
Subrata Banik
762b564f3b mb/google/bluey: Add timeout for charging rail stabilization
In the charger applet, it is possible for the PMIC to take some time
to negotiate and enable the charging current. Previously, the code
proceeded immediately, which could lead to false-positive power-off
triggers if current hadn't started flowing yet.

This change:
1. Implements a 3000ms stopwatch-based timeout.
2. Polls get_battery_icurr_ma() until a non-zero current is detected.
3. Aborts the applet if current fails to stabilize within the window.
4. Adds logging to track the actual duration of the power-up sequence.

BUG=none
BRANCH=none
TEST=Verified that the system enters off-mode charging more reliably
without powering off.

```
[INFO ]  Inside launch_charger_applet. Initiating charging
...
...
[INFO ]  Issuing power-off due to change in charging state.
...
...
```

Change-Id: Ie3501dff06aadf81d527658c4042de7c92de24b5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91547
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-06 03:20:22 +00:00
Bora Guvendik
61657cff8f spd/lp5: Add SPD for SK hynix H58G56DK9BX068
Add H58G56DK9BX068 in the memory_parts.json and re-generate the SPD.

BUG=none
TEST= Booted successfully on nvlrvp board using H58G56DK9BX068.
      util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I7f8e13c2dac50b108f3ded1528a48b641eafbeec
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90856
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 21:57:13 +00:00
Sowmya Aralguppe
8aa0ea4062 soc/intel/pantherlake: Keep default values for TdcTimeWindow
This patch prevents coreboot from overwriting FSP defaults with zeros
for unconfigured VR domains.

Ref=:830097_WCL_PDG_SchChk_Rev1p5
BUG=b:None
TEST=Build ocelot and verify that the system boots with correct
VR parameter
[SPEW ]   TdcTimeWindow[0]:0x6D60
[SPEW ]   TdcTimeWindow[1]:0x0
[SPEW ]   TdcTimeWindow[2]:0x0
[SPEW ]   TdcTimeWindow[3]:0x0
[SPEW ]   Override TdcTimeWindow[0] = 28000
[SPEW ]   Override TdcTimeWindow[1] = 1000
[SPEW ]   Override TdcTimeWindow[2] = 0
[SPEW ]   Override TdcTimeWindow[3] = 1000

FSP defaults:
[SPEW ]   Override TdcTimeWindow[0] = 28000
[SPEW ]   Override TdcTimeWindow[1] = 1000
[SPEW ]   Override TdcTimeWindow[2] = 0
[SPEW ]   Override TdcTimeWindow[3] = 1000

Added print in the coreboot code
[DEBUG]  VR[0]: Setting TdcTimeWindow to 28000
[DEBUG]  VR[1]: Setting TdcTimeWindow to 0
[DEBUG]  VR[2]: Setting TdcTimeWindow to 0
[DEBUG]  VR[3]: Setting TdcTimeWindow to 0

Change-Id: Ib2531b908ddf80c40c52f620229852487d3425e9
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91503
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-05 17:55:03 +00:00
Sowmya Aralguppe
c97e740981 mb/google/ocelot: Fix fast_vmode_i_trip indexing in devicetree
This aligns with the corrected indexing scheme used in the SoC VR
configuration code.

Ref=:830097_WCL_PDG_SchChk_Rev1p5
BUG=b:None
TEST=Build ocelot and verify that the system boots

Change-Id: I948c9233f4a5518992891b90fb9bb6a3793baa5f
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91449
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-03-05 17:54:23 +00:00
Sowmya Aralguppe
aaddb83491 soc/intel/pantherlake: Configure TDC IRMS mode for WCL IA domain
Set IA voltage regulator to use IRMS mode with 28 second time window
for more accurate thermal design current measurement.

Ref=:830097_WCL_PDG_SchChk_Rev1p5
BUG=b:None
TEST=Build ocelot and verify that the system boots with the following
VR parameter

[SPEW ]  TdcMode[0]:0x1
[SPEW ]  TdcMode[1]:0x0
[SPEW ]  TdcMode[2]:0x0
[SPEW ]  TdcMode[3]:0x0
[SPEW ]  TdcTimeWindow[0]:0x6D60
[SPEW ]  TdcTimeWindow[1]:0x0
[SPEW ]  TdcTimeWindow[2]:0x0
[SPEW ]  TdcTimeWindow[3]:0x0

Change-Id: I4b7b9484d47cf9d98548cfc8b53e47be4e21c4d1
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91455
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 17:53:24 +00:00
Patrick Rudolph
f12d2997fc lib/cbfs: Don't include unused LZ4 code to shrink postcar stage
When ramstage is not LZ4 compressed then don't include the LZ4
decompressor into postcar stage.

TEST=Reduces postcar size on Lenovo x220 by 1224 bytes.

Change-Id: I51e25d94213b42474c8cedd9e7bae9e81568566d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91385
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-03-05 17:50:18 +00:00
Sean Rhodes
c772a88b1d configs: Remove starbook/adl option table config
This board no longer uses option table, so the config is invalid.

Change-Id: I62268472e9a2020e81c352933aa9bac8bb2fcddd
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91541
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 17:50:00 +00:00
Ivi Ballou
dfc2c45ff4 util/inteltool: Add support for Wellsburg
Added Wellsburg (C610 / X99) support for the following tables:
- GPIOS
- RCBA
- PMBASE
- LPC
- SPI

Change-Id: I1ee52b50b0093f38b00bfbaa003eecc96bd1874e
Signed-off-by: Ivi Ballou <iviballou@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91417
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 17:49:49 +00:00
KangMin Wang
23db1b3686 mb/google/bluey/mica: Add mainboard part number
Add MAINBOARD_PART_NUMBER config for mica variant.

BUG=none
TEST=emerge-bluey coreboot

Change-Id: I96ace7c6ed9b9f4892ed110134b2580516ec36bd
Signed-off-by: KangMin Wang <kangmin.wang@luxshare.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91538
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2026-03-05 17:49:14 +00:00
Yang Wu
b5a703e5a0 mb/google/skywalker: Add mainboard_prepare_cr50_reset()
The LCD MIPI panel requires proper power-off commands before reset.
Skipping them may cause overpotential conditions, leading to image
stickiness or flicker.

On MTK platforms, CR50 reset is the only reboot path in coreboot.
Add mainboard_prepare_cr50_reset() implementation on skywalker to
power off the MIPI panel before issuing CR50 reset.

BUG=b:474187570
TEST=emerge-jedi coreboot chromeos-bootimage
BRANCH=skywalker

Change-Id: I46a654e03ca2e7374cdaf05729f12b182669a64f
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91507
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Zhengqiao Xia <xiazhengqiao@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 15:30:24 +00:00
Yang Wu
8a4937bf8f soc/mediatek: Add mtk_mipi_panel_poweroff()
Introduce mtk_mipi_panel_poweroff() in common display layer and
mtk_dsi_panel_poweroff() in DSI driver. The DSI mode flags are
saved during init and reused for the power-off command path.

BUG=b:474187570
TEST=emerge-jedi coreboot chromeos-bootimage
BRANCH=skywalker

Change-Id: Ic684822bc5f20d3e2f5ce3d44035c902a2b44184
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91432
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Zhengqiao Xia <xiazhengqiao@huaqin.corp-partner.google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-03-05 15:30:16 +00:00
Jarried Lin
a300b135c3 soc/mediatek/mt8196: Call mtk_mmu_disable_l2c_sram via boot state
The commit 7072f42c08f7 ("soc/mediatek/mt8196: Move WATCHDOG_TOMBSTONE
from SRAM to SRAM_L2C") move WATCHDOG_TOMBSTONE from SRAM to SRAM_L2C
causes elog_handle_watchdog_tombstone (BS_POST_DEVICE, BS_ON_ENTRY) to
be invoked after mtk_mmu_disable_l2c_sram. As a result, the watchdog
event magic value in WATCHDOG_TOMBSTONE is cleared before it can be
processed, which is incorrect behavior.

So we refactor the mtk_mmu_disable_l2c_sram to be called as a boot state
entry (BS_POST_DEVICE, BS_ON_EXIT) instead of directly from soc_init.
This ensures that mtk_mmu_disable_l2c_sram will be executed after
elog_handle_watchdog_tombstone.

BUG=b:481854714
TEST=watchdog event added to eventlog on WDT timeout (triggered via echo > /dev/watchdog)
TEST=cbmem logs preserved on WDT timeout

Change-Id: I69ef567ab73f2f7006bb249cb577f377d4720909
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91539
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-03-05 15:28:41 +00:00
Jarried Lin
510e43d8bd soc/mediatek/mt8196: Move WATCHDOG_TOMBSTONE from SRAM to SRAM_L2C
The purpose of the WATCHDOG_TOMBSTONE section is to temporarily record
the watchdog timeout event, before triggering the reboot. Then, in the
next boot, if WATCHDOG_TOMBSTONE contains the watchdog event magic, then
a watchdog event will be added to the event log.

The flow relies on the fact that the WATCHDOG_TOMBSTONE section can be
preserved across AP resets. However, for MT8196, the whole SRAM region
will be powered down during AP reset via GPIO AP_SYSRST_ODL (SYSRSTB).

On MT8196, L3C (used as SRAM_L2C) is powered on by default. Also, per
MT8196 PMIC configuration, a SYSRSTB reset will retain the L3C power.
Therefore, region data in SRAM_L2C can be preserved across AP resets.

Fix the WATCHDOG_TOMBSTONE preservation by moving it to SRAM_L2C.
Reduce PRERAM_CBMEM_CONSOLE by 1K for WATCHDOG_TOMBSTONE.

BUG=b:481854714
TEST=watchdog event added to eventlog on WDT timeout:
17 | 2026-03-04 08:57:17+0000 | Hardware watchdog reset
TEST=cbmem logs preserved on WDT timeout

Change-Id: I630d1749e1a743069f2d814efe0a4994889a2a3f
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91540
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 15:28:34 +00:00
KangMin Wang
2f88fec014 mb/google/bluey/mica: Add TPM I2C and EC SPI configuration
Communication with GSC and EC is abnormal because Mica is
missing the following configurations: DRIVER_TPM_I2C_BUS,
EC_GOOGLE_CHROMEEC_SPI_BUS,and MAINBOARD_GPIO_PIN_FOR_GSC_AP_INTERRUPT.

BUG=b:489062509,b:489264026
TEST=build mica board, flash to Quenbi to verify the GSC and
EC communication functionality.
Check if there are any further abnormalities in the bootup log:
For GSC:
Probing TPM I2C: Cr50 TPM IRQ timeout!
For EC:
crosec_spi_io: Timeout waiting for framing byte.

Change-Id: I2ff158968f946eb780d593c8b1d1e8b07f95ce8a
Signed-off-by: KangMin Wang <kangmin.wang@luxshare.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91517
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-05 09:32:35 +00:00
Jeremy Compostella
1b5df51c51 soc/intel: Fix Kconfig select order
Sort the SOC_INTEL_COMMON_FEATURE_* select statements alphabetically.

Change-Id: I314bbced381ecea969054a0d2b841ef68f1efc58
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91513
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-05 03:48:50 +00:00
Jeremy Compostella
b52236fe9e soc/intel/pantherlake: Switch to common finalize implementation
Replace platform-specific finalize.c with the common finalize
implementation.

Changes:
- Remove src/soc/intel/pantherlake/finalize.c
- Enable SOC_INTEL_COMMON_FEATURE_FINALIZE in Kconfig
- Update Makefile.mk to remove finalize.c from build

The finalize implementation was identical to Meteor Lake, making
it an ideal candidate for consolidation.

Change-Id: I749eea246fdc7ab89848ed4160c61666e8944095
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91229
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-05 03:48:41 +00:00
Jeremy Compostella
5c56b9ff72 soc/intel/meteorlake: Switch to common finalize implementation
Replace platform-specific finalize.c with the common finalize
implementation.

Changes:
- Remove src/soc/intel/meteorlake/finalize.c
- Enable SOC_INTEL_COMMON_FEATURE_FINALIZE in Kconfig
- Update Makefile.mk to remove finalize.c from build

The finalize implementation was identical to Panther Lake, making
it an ideal candidate for consolidation.

Change-Id: Id0c3bde3b721b7a3e497711cfc6dd21efbfda4c5
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91228
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-05 03:48:31 +00:00
Jeremy Compostella
ae932349bf soc/intel/common/block: Add common finalize implementation
This introduces a common finalize implementation for Intel SoCs that
consolidates the nearly identical finalize.c files across Meteor Lake
and Panther Lake platforms.

The implementation includes:
- pch_finalize(): TCO lockdown and PMC status clearing
- tbt_finalize(): Disable Thunderbolt PCIe root ports bus master
- sa_finalize(): Lock system agent PAM regions when coreboot handles
  chipset lockdown
- heci_finalize(): Set HECI to D0i3 and optionally disable HECI1
- soc_finalize(): Main finalization sequence coordinating all the above

This consolidation eliminates duplicate code and ensures consistent
finalization behavior across platforms. Alder Lake is intentionally
excluded as it has additional platform-specific camera clock (ISCLK)
configuration that would complicate the common implementation.

The common driver is enabled via the SOC_INTEL_COMMON_FEATURE_FINALIZE
Kconfig option.

Platforms that will use this common implementation:
- Meteor Lake
- Panther Lake

Change-Id: I4dd9ccf7e14fecdded92da6bf366e6ff56d866a4
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91227
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 03:48:17 +00:00
Jeremy Compostella
c9ba628d51 soc/intel/elkhartlake: Switch to common global reset implementation
Replace platform-specific reset.c with the common global reset
implementation using CSE with PMC fallback.

Changes:
- Remove src/soc/intel/elkhartlake/reset.c
- Enable SOC_INTEL_COMMON_FEATURE_GLOBAL_RESET_CSE_PMC in Kconfig
- Update Makefile.mk to remove reset.c from build

The global reset implementation was identical to 6 other platforms,
making it an ideal candidate for consolidation.

Change-Id: I635347f15e35ec8e69c24edcec8c45c55a496ffd
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91215
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-05 03:48:05 +00:00
Jeremy Compostella
73e89322ce soc/intel/jasperlake: Switch to common global reset implementation
Replace platform-specific reset.c with the common global reset
implementation using CSE with PMC fallback.

Changes:
- Remove src/soc/intel/jasperlake/reset.c
- Enable SOC_INTEL_COMMON_FEATURE_GLOBAL_RESET_CSE_PMC in Kconfig
- Update Makefile.mk to remove reset.c from build

The global reset implementation was identical to 6 other platforms,
making it an ideal candidate for consolidation.

Change-Id: Ia039b25b21b4af5912dd5e8af9ef06a66c00a7bd
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91214
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-05 03:47:56 +00:00
Jeremy Compostella
0277c75bdd soc/intel/cannonlake: Switch to common global reset implementation
Replace platform-specific reset.c with the common global reset
implementation using CSE with PMC fallback.

Changes:
- Remove src/soc/intel/cannonlake/reset.c
- Enable SOC_INTEL_COMMON_FEATURE_GLOBAL_RESET_CSE_PMC in Kconfig
- Update Makefile.mk to remove reset.c from build

The global reset implementation was identical to 6 other platforms,
making it an ideal candidate for consolidation.

Change-Id: If5a70a0e05c50ab893ba8861e200b078982dfad9
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91213
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 03:47:47 +00:00
Jeremy Compostella
2ff987f906 soc/intel/tigerlake: Switch to common global reset implementation
Replace platform-specific reset.c with the common global reset
implementation using CSE with PMC fallback.

Changes:
- Remove src/soc/intel/tigerlake/reset.c
- Enable SOC_INTEL_COMMON_FEATURE_GLOBAL_RESET_CSE_PMC in Kconfig
- Update Makefile.mk to remove reset.c from build

The global reset implementation was identical to 6 other platforms,
making it an ideal candidate for consolidation.

Change-Id: I1bf9d4eeab0fecbb33d122a32ecdeef85af059fa
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91212
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-05 03:47:09 +00:00
Jeremy Compostella
0d4b934726 soc/intel/pantherlake: Switch to common global reset implementation
Replace platform-specific reset.c with the common global reset
implementation using CSE with PMC fallback.

Changes:
- Remove src/soc/intel/pantherlake/reset.c
- Enable SOC_INTEL_COMMON_FEATURE_GLOBAL_RESET_CSE_PMC in Kconfig
- Update Makefile.mk to remove reset.c from build

The global reset implementation was identical to 6 other platforms,
making it an ideal candidate for consolidation.

Change-Id: I9bd0dae5bbfc0ec2e9101e848de2037760314456
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91211
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-05 03:47:01 +00:00
Jeremy Compostella
5c85dcda7f soc/intel/meteorlake: Switch to common global reset implementation
Replace platform-specific reset.c with the common global reset
implementation using CSE with PMC fallback.

Changes:
- Remove src/soc/intel/meteorlake/reset.c
- Enable SOC_INTEL_COMMON_FEATURE_GLOBAL_RESET_CSE_PMC in Kconfig
- Update Makefile.mk to remove reset.c from build

The global reset implementation was identical to 6 other platforms,
making it an ideal candidate for consolidation.

Change-Id: I0ad75bbeb1fad7352b2b898487a5b54eff496d0b
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91210
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-05 03:46:49 +00:00
Jeremy Compostella
b2a533c918 soc/intel/alderlake: Switch to common global reset implementation
Replace platform-specific reset.c with the common global reset
implementation using CSE with PMC fallback.

Changes:
- Remove src/soc/intel/alderlake/reset.c
- Enable SOC_INTEL_COMMON_FEATURE_GLOBAL_RESET_CSE_PMC in Kconfig
- Update Makefile.mk to remove reset.c from build

The global reset implementation was identical to 6 other platforms,
making it an ideal candidate for consolidation.

Change-Id: Iebaf5bafd5a97dde37ffc435b2ad8b6a8dcfecd0
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91209
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-05 03:46:39 +00:00
Jeremy Compostella
e4ea840114 soc/intel/common: Add common global reset implementation
This introduces a common implementation of do_global_reset() that
uses CSE (Converged Security Engine) with PMC (Power Management
Controller) fallback. This implementation is identical across 7
Intel client platforms.

The function attempts to request a global reset from the CSE first,
which is the preferred method. If CSE is unavailable or the request
fails, it falls back to enabling PMC-based global reset and
triggering a full reset.

This consolidates the global reset handling and eliminates duplicate
code across multiple platforms. The common implementation is enabled
via the SOC_INTEL_COMMON_RESET_GLOBAL_RESET_CSE_PMC Kconfig option.

Platforms that will use this common implementation:
- Alder Lake
- Meteor Lake
- Panther Lake
- Tiger Lake
- Cannon Lake
- Jasper Lake
- Elkhart Lake

Change-Id: Ida59bc2df483db5397ee043f66fdee56508bd0df
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91208
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 03:46:28 +00:00
Jeremy Compostella
7d8acb88c5 soc/intel/pantherlake: Switch to common PMC lockdown driver
Replace platform-specific lockdown.c with the common PMC lockdown
driver.

Changes:
- Remove src/soc/intel/pantherlake/lockdown.c
- Add PMC_FDIS_LOCK_REG define pointing to GEN_PMCON_B in soc/pmc.h
- Enable SOC_INTEL_COMMON_FEATURE_PMC_LOCKDOWN in Kconfig
- Update Makefile.mk to remove lockdown.c from build

Panther Lake uses GEN_PMCON_B for ST_FDIS_LOCK (bit 21), the same
approach as Meteor Lake.

Change-Id: I9becbedbb1bcbc19f60d3ebb024dd5e43c7cee29
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91207
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 03:46:09 +00:00
Jeremy Compostella
4da2622964 soc/intel/meteorlake: Switch to common PMC lockdown driver
Replace platform-specific lockdown.c with the common PMC lockdown
driver.

Changes:
- Remove src/soc/intel/meteorlake/lockdown.c
- Add PMC_FDIS_LOCK_REG define pointing to GEN_PMCON_B in soc/pmc.h
- Enable SOC_INTEL_COMMON_FEATURE_LOCKDOWN in Kconfig
- Update Makefile.mk to remove lockdown.c from build

Meteor Lake uses GEN_PMCON_B for ST_FDIS_LOCK (bit 21), the same
approach as Panther Lake.

Change-Id: Iecccc482f04d85cfec738dd57dc1473eaf82cfcc
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91206
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-05 03:45:52 +00:00
Jeremy Compostella
19fe81f08f soc/intel/alderlake: Switch to common PMC lockdown driver
Replace platform-specific lockdown.c with the common PMC lockdown
driver introduced in the previous commit.

Changes:
- Remove src/soc/intel/alderlake/lockdown.c
- Add PMC_FDIS_LOCK_REG define pointing to ST_PG_FDIS1 in soc/pmc.h
- Enable SOC_INTEL_COMMON_FEATURE_PMC_LOCKDOWN in Kconfig
- Update Makefile.mk to remove lockdown.c from build

Alder Lake uses the ST_PG_FDIS1 register (0x1e20) for ST_FDIS_LOCK,
which differs from newer platforms that use GEN_PMCON_B. This
difference is handled through the PMC_FDIS_LOCK_REG define.

Change-Id: Ic80aca618dcbe5a4fef54f4802e6f4ce6f4ebd44
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91205
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 03:45:13 +00:00
Jeremy Compostella
e160f3c506 soc/intel/common/feature: Add common PMC lockdown driver
This commit introduces common PMC (Power Management Controller) lockdown
infrastructure to consolidate duplicate lockdown code across multiple
Intel platform generations (Alder Lake, Meteor Lake, and Panther Lake).

Key features implemented:
- PMSYNC TPR configuration and locking
- ABASE and sleep stretching policy locks
- SMI locking (when coreboot handles chipset lockdown)
- ST_FDIS_LOCK, SSML, and PM_CFG register configuration
- IOSF Primary Trunk Clock Gating
- PMC IPC notification for BIOS reset and PCI enumeration

Platform-specific differences are handled through the PMC_FDIS_LOCK_REG
define that each SoC provides in its soc/pmc.h header:
- Alder Lake: PMC_FDIS_LOCK_REG = ST_PG_FDIS1 (0x1e20)
- Meteor Lake: PMC_FDIS_LOCK_REG = GEN_PMCON_B (0x1024)
- Panther Lake: PMC_FDIS_LOCK_REG = GEN_PMCON_B (0x1024)

This consolidation eliminates ~150 lines of duplicated code, ensures
consistent lockdown behavior across platforms, and simplifies
maintenance.

Change-Id: I215d834b66f7cb0f50f804eaaff3ea0e60d4340f
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91204
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-05 03:44:52 +00:00
Angel Pons
fec793e01d sb/intel/wildcatpoint/acpi: Add CID for GPIO device
Wildcat Point's GPIOs work the same as Lynx Point LP's GPIOs.

Change-Id: I64963937a5b40bcab605acb826567d63af512427
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91468
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:49:29 +00:00
Angel Pons
bacb55e348 nb/intel/broadwell/acpi.c: Use Haswell's file
Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: Ie44227273210c3074343e1d9ccadb63fc2a931d2
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91404
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:49:22 +00:00
Angel Pons
3e89a234ef nb/intel/broadwell/acpi.c: Align with Haswell
The idea is to use Haswell's acpi.c file in the next commit, and this
little difference affects reproducibility.

Change-Id: Ib2641586fbb9e8ed175eeca0bd665057f5049c0e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91403
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 16:48:21 +00:00
Angel Pons
958bc5cdff nb/intel/broadwell: Move size_of_dnvs() to southbridge
Device NVS is only used in southbridge code. This change is
non-reproducible.

Change-Id: I60ce9a80d6e3e0ce0c13037d4caae473d3d092a9
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91402
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:48:14 +00:00
Angel Pons
35694d2ea4 nb/intel/broadwell: Move device NVS to southbridge
Device NVS is only used in southbridge code. Also move the platform.asl
file since it is mostly about southbridge stuff.

Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: Ia0d301f6b77f7084a6d1dfe1238693c76c62ef7a
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91401
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:48:07 +00:00
Angel Pons
3d4f2efcf7 nb/intel/broadwell/bootblock.c: Use Haswell's file
Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: Ie583224b4cfc4116e6cdb511793b8c39e8bf679e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91400
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:48:00 +00:00
Angel Pons
7240bbabe9 nb/intel/broadwell/acpi.c: Drop unneeded includes
Tested with BUILD_TIMELESS=1, Purism Librem 15 v2 remains identical.

Change-Id: Iac166dd1a59e6e35101dd7076cc3f96d33d4eb64
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91399
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:47:53 +00:00
Angel Pons
4eb0fd7bea nb/intel/broadwell: Move PCH headers to wildcatpoint
Since this used to be a SoC (no distinction between CPU/NB/SB parts),
all the headers were in a single place. Move headers about PCH things
to where they belong.

Change-Id: I296f57f5575d026ad87698e972eb9f448d54d09b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91398
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 16:47:44 +00:00
Angel Pons
0bc5746188 soc/intel/broadwell: Move to nb/intel/broadwell
In preparation to unify the Haswell and Broadwell codebases, move the
remaining Broadwell SoC code to the northbridge folder.

This change only moves the files, and does the minimal amount of edits
so that boards still build. Most of those edits boil down to "find and
replace".

Change-Id: I5bde032ee824a90328a78403ea03d39ad20f2b09
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91397
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 16:47:35 +00:00
Angel Pons
d740cee2d9 soc/intel/broadwell/pch: Move to sb/intel/wildcatpoint
The PCH split was done many moons ago, in order to unify two codebases
with overlapping hardware support: Haswell + Lynx Point and Broadwell.
The on-package PCH found in Broadwell ULT/ULX CPUs is Wildcat Point.

This change only moves the files, and does the minimal amount of edits
so that boards still build. Most of those edits boil down to "find and
replace".

Change-Id: I29235b47970f81b5db6717801f2ab771ff980476
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91396
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:47:29 +00:00
Angel Pons
0d2a0512fd sb/intel/lynxpoint: Configure IOSF Port and Grant Count
Based on Wildcat Point and checked against version 1.9.1 of PCH
reference code. Note that this runs later in the init sequence,
compared to Wildcat Point, as it is easier to get the values of
the STRPFUSECFG registers this way.

Change-Id: I0fadd33d043e66c10d29dcf8ba9724723ad70a9b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91467
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:47:20 +00:00
Angel Pons
8b69dcccb2 sb/intel/lynxpoint/pcie.c: Add additional disable steps
Taken from Wildcat Point and checked against version 1.9.1 of PCH
reference code. Note down a few TODOs to be done after Lynx Point
and Wildcat Point code has been unified.

Change-Id: I91aa3f0a5ea67bd43a625f37527c9d41c277b990
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91466
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 16:47:13 +00:00
Angel Pons
381ce51ec4 sb/intel/lynxpoint/acpi: Add HIDs for Wildcat Point
Prepare to unify ACPI code for Lynx Point and Wildcat Point.

Change-Id: I0d70e5c8ca585d0225227831d18874cdd2cbf09d
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91465
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:47:06 +00:00
Angel Pons
6953c591ba sb/intel/lynxpoint/acpi/serialio.asl: Add more _PS0/_PS3 methods
Implementation taken from Wildcat Point (Broadwell) code. This reduces
differences between both platforms.

Change-Id: Id3b6efcbc416929245fcaf329521d49fee0b457f
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91464
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 16:47:00 +00:00
Angel Pons
0e9c2f53b0 haswell/broadwell: Move CPU bus ops to CPU code
Commit 4c4bd3cd97 ("soc/intel/broadwell: Hook up PCI domain and CPU
cluster ops to devicetree") and commit 600fa266bd ("nb/intel/haswell:
Hook up PCI domain and CPU cluster ops to devicetree") decoupled the CPU
bus device operations from northbridge code. Since Haswell and Broadwell
both use the same CPU code, move the CPU bus ops to CPU code in order to
deduplicate them.

Change-Id: I11cbff3d87e233f40a40f2fc70840f6bf35b0cb9
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91463
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:46:52 +00:00
Simon Yang
e0715bc0f9 soc/intel/pantherlake: Disable PCIe PM in compliance test mode
When SOC_INTEL_COMPLIANCE_TEST_MODE is enabled, disable PCIe clock
gating and power gating to prevent the controller from entering power
management states that would interfere with PCIe compliance testing.

This ensures stable operation during PCIe TX compliance tests by
keeping the PCIe controller in an active state throughout the test
process.

Affected/Verified Platforms:
  - PTL: Lapis, Ruby
  - WCL: Matsu, Ocicat, Kodkod

BUG=b:451560515
TEST="Run PCIe Compliance TX test successfully"

Change-Id: I92f442d24219af78310ce04b782735beed9c58e6
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90325
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 16:46:28 +00:00
Nicholas Chin
bce8d28a59 MAINTAINERS: Add Nicholas Chin for autoport
I do push patches for autoport somewhat often (by autoport standards)
and have reviewed many patches for it in the past couple of years, so
add myself as a maintainer.

Change-Id: I897032eea898ff254d02df4d100e27966a6fc6ae
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91493
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jan Philipp Groß <jeangrande@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-03-04 14:19:07 +00:00
Bora Guvendik
b6ebb24a48 util/spd_tools/src/spd_gen/lp5.go: Support LP5X 9600Mbps
Add support for LP5X 9600Mbps in SPD tool.

BUG=None
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I1425fe08e3891f4a0a0627c8ab429ec72c06ffc5
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90867
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Ma, Zhixing <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-03-04 14:18:18 +00:00
Bora Guvendik
13bf2d9566 mb/google/fatcat: Enable C1 and package C-state auto-demotion
Remove explicit overrides for disable_c1_state_auto_demotion and
disable_package_c_state_demotion, reverting to the SoC default behavior
which allows the hardware to autonomously demote C1 and package
C-states.

BUG=b:455612673
TEST=Boot to OS on Google fatcat

Change-Id: Ica9348e668c64ac2b27f3970b23f963ba0a2e753
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91457
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-04 14:18:00 +00:00
Cliff Huang
56e645d942 mb/google/fatcat: Change Gen4 and Gen5 NVMe power sequence
Turn off Gen4 and Gen5 NVMe power at bootblock and turn on at romstage
to address device enumeration and link speed issues observed after power
cycles and warm/cold reboots. This change specifically resolves issues
seen with certain NVMe devices, particularly the Micron 3500, where
improper power sequencing can cause enumeration failures or incorrect
link speed negotiation.

BUG=none
TEST=Boot Fatcat board with Micron 3500 NVMe in Gen4/Gen5 M.2
slots. Perform multiple power cycles and warm/cold reboots. Verify
consistent NVMe enumeration and proper link speed using lspci output.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: Ie929a3010acd74237d29a77c7582f1cae837a2e2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91369
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 14:17:47 +00:00
Angel Pons
8998999eb3 Haswell NRI: Add dumping of CAPID registers
If `CONFIG(DEBUG_RAM_SETUP)`, dump the values of the CAPID0_A and
CAPID0_B registers to the log. This is useful debugging information.

Dump the CAPID registers' values before native chipset init, because
dynamic fusing changes the CAPID values.

Tested on ASRock Z97 Extreme6 with a PCIe card plugged into the PCIE4
slot (forcing PEG to be bifurcated as x8+x8). The CPU and PCH are:

    CPU id(306c3) ucode:00000028 Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz
    AES supported, TXT supported, VT supported
    PCH type: Z97, device id: 8cc4, rev id 0

CAPID values before dynamic fusing are shown below:

CAPID0_A: 0x6204e861
    DDR3L 1.35V:        Yes
    DDR Write Vref:     No
    OC enabled (DSKU):  No
    DDR overclock:      No
    Compatibility RID:  0x6
    Capability DID:     Desktop
    DID override:       No
    Integrated GPU:     No
    Dual channel:       Yes
    X2APIC support:     Yes
    DIMMs per channel:  1
    Camarillo device:   No
    Full ULT info:      Yes
    DDR 1N mode:        Yes
    PCIe ratio:         No
    Max channel size:   16 GiB
    PEG Gen2 support:   Yes
    DMI Gen2 support:   Yes
    VT-d support:       Yes
    ECC forced:         No
    ECC supported:      No
    DMI width:          x4
    Width upconfig:     Yes
    PEG function 0:     Yes
    PEG function 1:     No
    PEG function 2:     No
    Disp HD audio:      Yes

CAPID0_B: 0x565400d0
    PEG for GFX single: Unlimited width
    PEG for GFX multi:  Unlimited width
    133 MHz ref clock:  Up to DDR3-1600
    Silicon mode:       Production
    HDCP capable:       Yes
    Num PEG lanes:      16
    Add. GFX capable:   Yes
    Add. GFX enable:    Yes
    CPU Package Type:   0
    PEG Gen3 support:   No
    100 MHz ref clock:  Up to DDR3-1600
    Soft Bin capable:   No
    Cache size:         3
    SMT support:        Yes
    OC enabled (SSKU):  No
    OC controlled by:   SSKU

CAPID values after dynamic fusing are shown below, with manually
added arrows to indicate which values have changed:

CAPID0_A: 0x4204a06d
    DDR3L 1.35V:        Yes
    DDR Write Vref:     No
    OC enabled (DSKU):  Yes              <-----
    DDR overclock:      Yes              <-----
    Compatibility RID:  0x6
    Capability DID:     Desktop
    DID override:       No
    Integrated GPU:     Yes              <-----
    Dual channel:       Yes
    X2APIC support:     Yes
    DIMMs per channel:  2                <-----
    Camarillo device:   No
    Full ULT info:      Yes
    DDR 1N mode:        Yes
    PCIe ratio:         No
    Max channel size:   16 GiB
    PEG Gen2 support:   Yes
    DMI Gen2 support:   Yes
    VT-d support:       Yes
    ECC forced:         No
    ECC supported:      No
    DMI width:          x4
    Width upconfig:     Yes
    PEG function 0:     Yes
    PEG function 1:     Yes              <-----
    PEG function 2:     No
    Disp HD audio:      Yes

CAPID0_B: 0x564400d0
    PEG for GFX single: Unlimited width
    PEG for GFX multi:  Unlimited width
    133 MHz ref clock:  Up to DDR3-1600
    Silicon mode:       Production
    HDCP capable:       Yes
    Num PEG lanes:      16
    Add. GFX capable:   Yes
    Add. GFX enable:    Yes
    CPU Package Type:   0
    PEG Gen3 support:   Yes              <-----
    100 MHz ref clock:  Up to DDR3-1600
    Soft Bin capable:   No
    Cache size:         3
    SMT support:        Yes
    OC enabled (SSKU):  No
    OC controlled by:   SSKU

Change-Id: I46f27c54a7ec7fd9fc79fdabaa59a44a591168b8
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91478
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 14:16:32 +00:00
Ivi Ballou
343f439801 util/inteltool: set amb registers dumping error print to stdout
Set the "Error: Dumping AMBs on this MCH is not (yet) supported."
message to stdout. All other "dumping ... not (yet) supported"
errors use stdout, which makes them usable with pagers like less.

The current behavior prints the AMB dumping error in stderr,
which breaks pagers. This change aims to fix this discrepancy.

Change-Id: I502e9f8d5c71953e844bdc7174b3c7bd2987d00f
Signed-off-by: Ivi Ballou <iviballou@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91419
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-04 14:16:23 +00:00
Evie (Ivi) Ballou
26006cc217 util/ifdtool: show overlapping region name and range details
When updating regions using a flashrom file with overlapping regions
the error message now shows overlapping region names and their ranges.

e.g:

    Regions would overlap:
           IE : 7fff000-7ffffff
      10GbE_0 : 7fff000-7ffffff

Change-Id: Ie2417e477924f0085839306a8a51d1241e20a338
Signed-off-by: Evie (Ivi) Ballou <iviballou@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90940
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-04 14:16:06 +00:00
Evie (Ivi) Ballou
93444a0ce0 mb/emul/qemu-[q35,i440fx]: Create ICQR interrupt resource locally and use defined offset
This changes out the PRR0 named object for a method local variable
and avoids the use of a hardcoded offset

This solves the remark:
```
dsdt.asl    415:    Name(PRR0, ResourceTemplate() {
Remark   2173 -            ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IQCR)
```

The IQCR function was tested, by evaluating it in the new
`dsdt.aml` file, as well as the old one with `acpiexec`:
`acpiexec -b "Evaluate _SB.IQCR $4bit_num_dec" dsdt.aml`,
where `$4bit_num_in_dec`, is a number between 0 and 15.

Expected output:
```
Evaluation of \_SB.IQCR returned object 0x5648f23cedd0, external buffer length 28
  [Buffer] Length 0B =     0000: 89 06 00 09 01 $4bit_num_hex 00 00 00 79 00                 // .........y.
```

Change-Id: I007d6b8df4eef4e8cb13cef45b95da7659d62cef
Signed-off-by: Evie (Ivi) Ballou <iviballou@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91033
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-04 14:15:49 +00:00
Evie (Ivi) Ballou
036af49b1d mb/emul/qemu-q35: Add a _DIS method for gsi_link devices
This solves the remark:
```
dsdt.asl    430-437:   Device(GSIA-H) { Name(_HID, EISAID("PNP0C0F")) Name(_UID, 0) Name(_PRS, ResourceTemplate() { Interrupt(, Level, ActiveHigh, Shared) { 0x17 } }) Name(_CRS, ResourceTemplate() { Interrupt(, Level, ActiveHigh, Shared) { 0x17 } }) Method(_SRS, 1, NotSerialized
[*** iASL: Very long input line, message below refers to column 13 ***]
Remark   2141 -    Missing dependency (Device has a _SRS, no corresponding _DIS)
```

Change-Id: I5c30ed8e7eef324373c3cec6bf16ddcc056c055b
Signed-off-by: Evie (Ivi) Ballou <iviballou@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91034
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 14:15:35 +00:00
Venkateshwar S
f5c9c1c166 mb/google/bluey: Move ADSP QUP-I2C init to normal boot path
The ADSP I2C initialization for charger/fuel-gauge is needed in both
normal boot and the off-mode/low-battery charging path. This patch
moves it before the conditional mainboard initialization skip, so it
runs in all cases.

BUG=b:436391478
TEST=Able to build and boot google/bluey.

Change-Id: I7a5c4e9c2a066a2ae43d57a87902528c93faecc5
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91365
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 09:57:16 +00:00
Sean Rhodes
61c69ebfa8 mb/starlabs: Drop PCIe detect-timeout/hotplug workarounds
With proper staged M.2 slot power sequencing in place, remove the
root-port detect-timeout overrides and the StarBook ADL PCI hot-plug
CFR option.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I50820c776011508f4d6bfa7053e827d7c53700b6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90994
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 09:26:22 +00:00
Sean Rhodes
baadfed999 mb/starlabs/adl: Add NVMe power sequencing
Enable STARLABS_NVME_POWER_SEQUENCE and provide staged GPIO pad
configuration for the SSD slot (PWREN, PERST#, CLKREQ#).

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I22f1f8786db38b2720c544748cef58eb7259f239
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90991
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 09:26:16 +00:00
Sean Rhodes
49a5b949ca mb/starlabs/starbook: Add NVMe/WiFi power sequencing
Provide staged GPIO pad configuration for the M.2 NVMe SSD and the
(discrete) M.2 2230 wireless module on supported StarBook variants.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I6b3b607e73a2b1c437349f31cc6faaf662365da7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90993
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 09:26:11 +00:00
Sean Rhodes
279406cd14 mb/starlabs/starfighter: Add NVMe port power sequence
Implement Fatcat-style 3-stage M.2 NVMe slot sequencing
(PWREN, PERST#, CLKREQ#) for StarFighter and apply it to
all NVMe-capable ports (both Gen3 and Gen4).

This addresses intermittent NVMe detection problems on
cold/warm boot and improves PCIe link speed negotiation
by ensuring the device is held in reset with clocks gated
until slot power is enabled and coreboot is about to
initialize devices.

Sequence per NVMe port:
  1) pre-mem: disable CLKREQ#, assert PERST#, PWREN=0
  2) BS_PRE_DEVICE exit: PWREN=1, enable CLKREQ# native,
     keep PERST# asserted
  3) BS_DEV_INIT_CHIPS entry: deassert PERST#

Also update the variant gpio_table defaults so PWREN stays
off and CLKREQ# stays disconnected until the sequencing
code enables them.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: Ic34e9e755e167e301348fbe7c75649401300f53b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90974
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 09:26:04 +00:00
Sean Rhodes
0306eb0723 mb/starlabs/common: add NVMe power sequencing helper
Add a shared helper (behind Kconfig) that owns the ramstage bootstate
ordering for the Star Labs NVMe/M.2 slot power sequence (PWREN, PERST#,
CLKREQ#).

Boards/variants provide pad configs for stage 2 and stage 3 either by
implementing the `variant_nvme_power_sequence_*()` helpers or by
providing pad tables via `variant_nvme_power_sequence_pads()` and
`variant_nvme_power_sequence_post_pads()`.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I3d518c35c26f3d3ee1dd72b4a35861d19cdb85ab
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90973
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 09:25:56 +00:00
Sean Rhodes
cfbf8f3953 starlabs: drop CMOS option tables
Remove CMOS option tables and defaults from Star Labs boards now that
EC state is persisted through EFI variable store options.

Drop remaining Merlin EC CMOS plumbing (RTC reads and ACPI fields) and
read settings only via the option backend.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I3cc7f6240adc4b396912d566c7de176d4d2cb92b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91305
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-04 09:25:46 +00:00
Sean Rhodes
9dac2b9e53 ec/starlabs/merlin: persist settings via EFI options
When STARLABS_ACPI_EFI_OPTION_SMI is enabled, store and restore
trackpad and keyboard backlight state across S4/S5 using the EFI
variable store SMI bridge instead of CMOS.

Also make the EC init paths treat CMOS as an index mapping and
prefer the option backend when CMOS options are not in use.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: Ia31ac0440eba1334be48030ce7fe03dc84193ac3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91304
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 09:25:39 +00:00
Sean Rhodes
3fa3818e41 starlabs: add ACPI SMI bridge for EFI options
Add a Device NVS (DNVS) protocol and SMM handler to let ACPI read and
write a restricted set of coreboot options stored in the UEFI variable
store.

ACPI fills DNVS and triggers an SMI via APM_CNT (0xB2). SMM performs
the requested operation and updates DNVS with status and, for reads,
the returned value.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: Ice0ac36f6d0e1de88daf7010cb1771453547619e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91303
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-04 09:25:34 +00:00
Patrick Rudolph
484e39c068 mp_init: Pass microcode size to MPinit
Extend get_microcode_info() to return the microcode size.
This is being used in the following commit which uses the size
to copy the microcode update to RAM in order to speed up MPinit.

Depending on the SPI flash interface speed, the microcode size and
the number of APs this can improve boot time by seconds.

Since microcode size isn't used yet this is not a functional change.

Change-Id: I1385e04c56e1411f0847a1c201c17e460c957477
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90894
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-03 21:38:23 +00:00
Patrick Rudolph
ea1a722d2b soc/intel/xeon_sp: Move microcode loading
Move loading of microcode to pre_mp_init() as found on other
Intel CPU drivers. There’s no need to cache the microcode location
since intel_microcode_find() already caches it.

No function change, thus untested.

Change-Id: I05bbb074d189594027916c6a3b04270bd3b6edd1
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90892
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-03-03 21:38:13 +00:00
David Wu
08e3ad9e03 mb/google/brox/var/juchi: Add 2 memory parts and generate DRAM IDs
Add two new memory parts
1. Mircon MT62F1G32D2DS-023 WT:C
2. Samsung K3KL8L80DM-MGCU

BUG=b:481602501
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Ibce661a09f8ad7daec8582508d775e0d7ac4e51f
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91504
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2026-03-03 15:19:09 +00:00
Luca Lai
ba6de6c866 mb/google/fatcat/var/ruby: Set ISH GP1 gpio pin to NC
Because GPP_B05 is not required for EC or ISH interrupts,
it should be set to NC in coreboot to minimize power impact.

BUG=b:475879711
TEST=Build and boot to OS.

Change-Id: Ic56e16ca89968c8e2204d1609812f1d8d3548512
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91427
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-03 14:56:10 +00:00
Jayvik Desai
fb2e8b5e1e mainboard/google/bluey: Enable charging debug access in common path
The charging debug access port was previously only configured during
slow battery charging. Move this configuration into a dedicated
function, configure_charging_debug_access(), and call it within the
common mainboard_init() path.

This ensures the debug access port is consistently configured during
mainboard initialization, following the same pattern as parallel
charging.

BUG=b:488143407
TEST=Build Bluey/Quartz

Change-Id: Idacffd61834e0700619b240dfe362f3be90badb9
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91505
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-03 11:13:01 +00:00
Yidi Lin
ca9b46d341 soc/mediatek: Add common low battery poweroff handling
Add a common low battery poweroff implementation in
soc/mediatek/common/low_battery.c. This implementation checks
if a low battery shutdown is needed and triggers a poweroff
via Chrome EC if necessary.

Also enable this for mt8196 in ramstage.

BUG=b:424707341
TEST=The FW draws low battery indicator and powers off the DUT after 5
     seconds.
TEST=Use `elogtool list` and see `Low Battery boot | Power Off`

Change-Id: I2fcd242fbf26bdebc4acfb477c95c381adf645f5
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91431
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2026-03-03 05:44:33 +00:00
Kapil Porwal
c222118cbf soc/qualcomm/x1p42100: Remove redundant VBUS enablement logic
The current VBUS enablement logic was found to be unnecessary for
USB host functionality on x1p42100. Forcing VBUS power via the PMIC's
OTG buck is not required for the current hardware configuration and
could lead to incorrect power state management.

Remove the enable_vbus_ss() function and associated SCHG DCDC
register definitions from the SoC driver. This streamlines the
USB initialization path to focus solely on PHY and controller
setup.

TEST=Verify USB detection in the depthcharge on Google/Quartz.

Change-Id: Ie30878802831419f3d70ea921f7f46a262db99bb
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91502
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-03 05:28:22 +00:00
Kapil Porwal
2c58402339 soc/qualcomm/x1p42100: Configure OTG buck for USB host
Set the SCHG_DCDC_OTG_CFG register to 0x26 during USB initialization
to ensure the OTG buck is correctly configured for host mode.

TEST=Verify USB detection in the depthcharge on Google/Quartz.

Change-Id: If76be8b7210fc86f473bfd77eb56718f28f19eae
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91509
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-03-03 05:28:14 +00:00
Subrata Banik
10f0a87824 soc/qualcomm/sc7280: Update console message type non-fatal
This patch updates console message type non-fatal from BIOS_ERR to
BIOS_INFO as appropriate.

Change-Id: I7940b5f0457388d6c5786c9cd490078065e953a4
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91501
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-03 03:18:54 +00:00
Subrata Banik
270e84e59f vc/chromeos: Provide inline fallbacks for Chromebook Plus branding
Currently, mainboards that do not support Google TPM must manually
define stubs for chromeos_device_branded_plus_hard() and
chromeos_device_branded_plus_soft() to satisfy the linker.

Move these stubs into vendorcode/google/chromeos/chromeos.h as static
inline functions when CONFIG(TPM_GOOGLE) is disabled. This reduces
code duplication and allows the removal of redundant stub definitions
in the ptlrvp mainboard.

Change-Id: If270d4815c687a409fec7058c224f987f9e2741a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91474
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-03 03:18:46 +00:00
Subrata Banik
fe506bfe84 ec/google/chromeec: Add Kconfig for AP-controlled LED sync
Introduce EC_GOOGLE_CHROMEEC_LED_CONTROL to allow boards to opt-in to
manual LED/lightbar synchronization. This ensures that the AP firmware
can coordinate the lightbar state with boot animations or specific
power states (like critical battery alerts) without forcing the logic
on all ChromeEC-based platforms.

On Bluey, the lightbar logic is refactored into a helper function
`platform_init_lightbar()` to improve readability and is now gated
by the new Kconfig. Similar gating is applied to Fatcat's romstage.

Summary of changes:
- Add EC_GOOGLE_CHROMEEC_LED_CONTROL Kconfig option.
- Bluey: Refactor lightbar init into a helper and gate by Kconfig.
- Fatcat: Gate early lightbar initialization by Kconfig.

Change-Id: I6b0294b73b8b9929a6be0e15bf64f7e688b7da8c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91477
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-03 03:18:31 +00:00
Subrata Banik
12710eafff mb/google/bluey: Implement off-mode charging applet
Add launch_charger_applet() to handle the system state when booting
in off-mode charging or low-power modes with a charger present.

Key features:
1. Monitoring: Periodically checks battery current (I-current) via
   SPMI/PMIC registers.
2. Event Handling: Detects and clears EC power button and lid events.
   If a manual power-on event is detected, the system triggers a
   full board reset to ensure a clean boot to the OS (preventing
   firmware state conflicts like ADSP-lite vs ADSP).
3. Shutdown: If the charger is removed, it signals the EC via
   off-mode heartbeat and initiates an AP power-off.

BUG=b:439819922
BRANCH=None
TEST=Verified that the device enters the charging loop when plugged
in while off, and transitions to a full boot when the power button
is pressed.

Change-Id: I152f71eac89f5b522ea7b286517724e213c31e9a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91485
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-03 03:18:24 +00:00
Subrata Banik
a1dd5f05b0 ec/google/chromeec: Add interface for offmode heartbeat command
Implement google_chromeec_offmode_heartbeat() to wrap the
EC_CMD_ENABLE_OFFMODE_HEARTBEAT host command.

This allows the AP to signal the EC to maintain the power state
required for off-mode UI (such as the charging applet) during
shutdown or low-power transitions.

BUG=b:439819922
BRANCH=none
TEST=Build and verify that the charger applet can successfully
call this function to enable heartbeat signaling.

Change-Id: Ic2ed464bf454e614a098ee5bbbb662adc9d79144
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91484
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2026-03-03 03:18:14 +00:00
Subrata Banik
125d9c8643 soc/qualcomm/x1p42100: Add logic for secure boot blob paths
Differentiate between secure and non-secure X1P42100 blobs in the
Makefile. Uses CONFIG_QC_SECURE_BOOT_BLOBS to select the appropriate
binary directory `BLOB_VARIANT`.

BUG=b:488573654
TEST=Able to build google/quenbih.

Change-Id: I149960b8b6b1f823df78acccfbd0ff9d3f9124e0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91476
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-03 03:18:04 +00:00
Subrata Banik
6de3d04c4e Kconfig: Add Kconfig for signed secure blobs
Adds QC_SECURE_BOOT_BLOBS to enable inclusion of OEM-signed components
for fused Qualcomm hardware. Depends on USE_QC_BLOBS.

BUG=b:488573654
TEST=Able to build google/quenbih.

Change-Id: Id08d83fc82c9441560b1afaa333b3b7fd5a9bfca
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91475
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-03-03 03:17:57 +00:00
Michał Żygowski
0a6142dfbe soc/amd/turin_poc: Add SPI TPM SoC-specific initialization
Add the SoC hook to initialize SPI TPM decoding. Without the additional
programming an attempt to talk to SPI TPM hangs the platform when the
TPM_MEASURED_BOOT_INIT_BOOTBLOCK is set. If TPM is initialized in
ramstage, the OpenSIL programs the SPI TPM decoding properly and the
issue is not observed.

TEST=Select TPM_MEASURED_BOOT_INIT_BOOTBLOCK and enable
TPM_MEASURED_BOOT on Gigabyte MZ33-AR1, and observe the platform does
not hang in bootblock.

Change-Id: I2e6c0aad31fd0335e0d16111ed4894a12d2ba497
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89192
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-03-02 14:38:58 +00:00
Sean Rhodes
dde872911a mainboard/starlabs: drop unused TJ_MAX option
The TJ_MAX Kconfig option isn't referenced anywhere in-tree. Drop
the\nunused setting to avoid confusion and keep the Kconfig clean.

Change-Id: I56a5c287be5ed61094b4c006a9661ee9b46b6d36
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91462
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-02 08:49:28 +00:00
Sean Rhodes
724176a218 mainboard/starlabs: namespace PL4 powercap setting
Rename the PL4 powercap Kconfig symbol to MB_STARLABS_PL4_WATTS
and update the common powercap logic to use the namespaced
option.

Change-Id: If36d087accc13a03eac4715948a4ca47bd70c3c4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91461
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-02 08:49:24 +00:00
Sean Rhodes
5156ec4533 mainboard/starlabs/adl: move SSDT hook to variant
Replace the BOARD_STARLABS_LITE_ADL preprocessor hook with a
weak baseboard function and provide the StarLite-specific SSDT
generator from the i5 variant directory.

Change-Id: Iea1a27fe1bf86bf970bd7021135760d8a1bc75a1
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91460
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-02 08:49:19 +00:00
Sean Rhodes
ffad2454c4 mainboard/starlabs/adl: drop redundant ASPM CFR guard
All Star Labs ADL boards select SOC_INTEL_COMMON_BLOCK_ASPM, so the
additional preprocessor guard in the PCIe CFR form is redundant.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: Id7cd4911666c02f88a9c1c5f074ac996744be23d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91459
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-02 08:49:15 +00:00
Sean Rhodes
14fcb3baf8 mainboard/starlabs/adl: move CFR callbacks to variant
Move the i5 variant-specific CFR callbacks out of the baseboard
CFR menu and compile them from the variant directory. This
reduces preprocessor usage in the common file.

Change-Id: Ic03ec18aed100a95d347c49c2b1deecf1c3fd961
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91458
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-02 08:49:10 +00:00
Sean Rhodes
7f02993393 mainboard/starlabs: move starlite under adl/
Move StarLite Mk V (Lite ADL) into the ADL grouping under
src/mainboard/starlabs/adl/.

Like StarBook Horizon, keep common code in the ADL directory and place
model-specific data under src/mainboard/starlabs/adl/variants/ using the
SKU-style variant directory (i5).

Update MAINBOARD_DIR and related paths so binary blobs, SPD data and
CMOS layout continue to resolve correctly, and update documentation to
reflect the new blobs path.

Note that BUILD_TIMELESS ROM hashes change since MAINBOARD_DIR is
embedded in the CBFS config file.

BUG=None
TEST=BUILD_TIMELESS=1 build STARLABS_LITE_ADL
Change-Id: Ib367bc65ad63e848d9e20e7d55f542f135b3c1d5
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91256
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-02 08:49:04 +00:00
Sean Rhodes
e02dc13b87 mainboard/starlabs: move Byte under adl/
Move the Star Labs Byte (Mk II / Mk III) into the ADL grouping under
src/mainboard/starlabs/adl/.

Like StarBook Horizon, model differences live under
src/mainboard/starlabs/adl/variants/ using SKU-style variant directories
to share common configuration. Byte Mk II (ADL) and Byte Mk III (TWL)
share a single "y2" variant directory.

Update MAINBOARD_DIR and CMOS layout handling so binary blob paths and
NVRAM options continue to resolve correctly.

Update the documentation to reflect the new blobs path.

Note that BUILD_TIMELESS ROM hashes change since MAINBOARD_DIR is
embedded in the CBFS config file.

BUG=None
TEST=BUILD_TIMELESS=1 build STARLABS_BYTE_ADL
Change-Id: I4b6be115a4ab2316d5ca4cc8e656e3643518273e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91255
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-02 08:48:58 +00:00
Sean Rhodes
3ea94fb2dc mb/starlabs/starfighter: Enable the card reader
Enable the card reader USB port, along with ACPI driver info
and the CFR option to control it.

Change-Id: I30dd26438f0a7b355061a45b9ffb7f447c89a751
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91498
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-02 08:48:40 +00:00
Sean Rhodes
56f588eec6 mb/starlabs/*: Don't consider fan presence for default power profile
Set the default power profile to Performance, regardless of whether
there is a fan present.

Change-Id: Id1d624355f9f08b5abb154e26026e70675322ddb
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91497
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-02 08:48:35 +00:00
Sean Rhodes
19df8826d7 mb/starlabs/starlite_adl: Disable the card reader by default
As the card reader isn't on a dedicated USB interface for all variants
for the StarLite, default to disable to ensure that an unused USB port
isn't enabled.

Change-Id: I2176fd6556797e468012c98f7e482b9573b5e3f7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91496
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-03-02 08:48:31 +00:00
Jeremy Compostella
c940d20696 soc/intel: Consolidate common code macro definitions in pci_devs.h
Move the SOC_I2C_DEVFN(n) macro definitions that were duplicated in a
separate "for common code" section at the end of multiple platform
pci_devs.h files.

Platforms affected:
- Alder Lake
- Cannon Lake
- Elkhart Lake
- Jasper Lake
- Skylake
- Tiger Lake

Change-Id: Ie3b3e6a25b0dba1beeadad1ab9acf59cafdbcf4a
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91446
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-01 17:03:40 +00:00
Jeremy Compostella
d03957e10f soc/intel/tigerlake: Use common PCH client SMI handler
Migrate Tiger Lake to use the common PCH client SMI handler
implementation from the Intel common feature code. This change
eliminates platform-specific code by leveraging the shared smihandler.c
driver.

This commit:
- Adds SOC_PMC_DEV macro definition to soc/pci_devs.h
- Selects SOC_INTEL_COMMON_FEATURE_SMIHANDLER Kconfig
- Removes src/soc/intel/tigerlake/smihandler.c
- Updates Makefile to remove smihandler.c compilation

Tiger Lake uses PCH_DEV_PMC as the PMC device identifier.

Change-Id: Ibe06e4d100b2715aeccfe0ff85dc944ab6cd80fc
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91297
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:03:29 +00:00
Jeremy Compostella
402da237bc soc/intel/pantherlake: Use common PCH client SMI handler
Migrate Panther Lake to use the common PCH client SMI handler
implementation from the Intel common feature code. This change
eliminates platform-specific code by leveraging the shared smihandler.c
driver.

This commit:
- Adds SOC_PMC_DEV macro definition to soc/pci_devs.h
- Selects SOC_INTEL_COMMON_FEATURE_SMIHANDLER Kconfig
- Removes src/soc/intel/pantherlake/smihandler.c
- Updates Makefile to remove smihandler.c compilation

Panther Lake uses PCI_DEV_PMC as the PMC device identifier.

TEST=Build and boot to the OS on a Fatcat device

Change-Id: I32bf4b678e7edda598319086acccc4983edcbe3e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91296
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:03:24 +00:00
Jeremy Compostella
eb205e379a soc/intel/meteorlake: Use common PCH client SMI handler
Migrate Meteor Lake to use the common PCH client SMI handler
implementation from the Intel common feature code. This change
eliminates platform-specific code by leveraging the shared smihandler.c
driver.

This commit:
- Adds SOC_PMC_DEV macro definition to soc/pci_devs.h
- Selects SOC_INTEL_COMMON_FEATURE_SMIHANDLER Kconfig
- Removes src/soc/intel/meteorlake/smihandler.c
- Updates Makefile to remove smihandler.c compilation

Meteor Lake uses PCI_DEV_PMC as the PMC device identifier.

Change-Id: Ia21a6ee0c6fbee6d4ffcfce5fdbe9b3bdf5fcece
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91295
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:03:18 +00:00
Jeremy Compostella
f0021f84ec soc/intel/alderlake: Use common PCH client SMI handler
Migrate Alder Lake to use the common PCH client SMI handler
implementation from the Intel common feature code. This change
eliminates platform-specific code by leveraging the shared smihandler.c
driver.

This commit:
- Adds SOC_PMC_DEV macro definition to soc/pci_devs.h
- Selects SOC_INTEL_COMMON_FEATURE_SMIHANDLER Kconfig
- Removes src/soc/intel/alderlake/smihandler.c
- Updates Makefile to remove smihandler.c compilation

Alder Lake uses PCH_DEV_PMC as the PMC device identifier.

Change-Id: Icbbc7af25e73e952c9b5f811cf0bbe01efe3ae94
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91294
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-01 17:03:12 +00:00
Jeremy Compostella
4b73479c38 soc/intel/common/feature/smihandler: Add common PCH client SMI handler
Add a common implementation of SMI handler code for PCH client platforms
to reduce code duplication across Alder Lake, Meteor Lake, Panther Lake,
and Tiger Lake platforms.

This implementation consolidates:
- smihandler_soc_disable_busmaster(): Skip disabling PMC bus master
- southbridge_smi array: Standard SMI handler mappings

The common driver uses a platform-specific macro that must be defined in
each platform's soc/pci_devs.h header:
- SOC_PMC_DEV: PMC PCI device identifier

This change enables consolidation of nearly identical smihandler.c files
across four platforms, reducing duplication by approximately 100+ lines.

Change-Id: I9ecb65b7ea4feafb8acbaf5798bbeaeb80b7c24a
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91293
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:03:05 +00:00
Jeremy Compostella
2eb37453e5 soc/intel/meteorlake: Use common pmutil driver
Migrate Meteor Lake to use the common PMC utility driver instead
of maintaining platform-specific pmutil.c code.

This change:
- Enables SOC_INTEL_COMMON_FEATURE_PMUTIL in Kconfig
- Removes platform-specific pmutil.c
- Removes pmutil.c from Makefile.mk

The common driver provides all necessary functionality through
the generic config_t interface, eliminating ~290 lines of
duplicated code.

Change-Id: I1c46a517420c8ea7410c4ed7e8e7b761d4399cf9
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91240
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-01 17:02:59 +00:00
Jeremy Compostella
f0be882d9f soc/intel/pantherlake: Use common pmutil driver
Migrate Panther Lake to use the common PMC utility driver instead
of maintaining platform-specific pmutil.c code.

This change:
- Enables SOC_INTEL_COMMON_FEATURE_PMUTIL in Kconfig
- Removes platform-specific pmutil.c
- Removes pmutil.c from Makefile.mk

The common driver provides all necessary functionality through
the generic config_t interface, eliminating ~290 lines of
duplicated code.

TEST=Build and boot to the OS on a Fatcat device

Change-Id: I3ee9630a6b15d7b02776ff633a3cff0766a8915b
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91239
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:02:53 +00:00
Jeremy Compostella
2b70ce3fbf soc/intel/alderlake: Use common pmutil driver
Migrate Alder Lake to use the common PMC utility driver instead
of maintaining platform-specific pmutil.c code.

This change:
- Enables SOC_INTEL_COMMON_FEATURE_PMUTIL in Kconfig
- Removes platform-specific pmutil.c
- Removes pmutil.c from Makefile.mk

The common driver provides all necessary functionality through
the generic config_t interface, eliminating ~290 lines of
duplicated code.

Change-Id: Ieb62ffac95550a0ae8607a3a9ae76e0f6ff0ac35
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91238
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-01 17:02:47 +00:00
Jeremy Compostella
cc31cc0ab2 soc/intel/common/feature/pmutil: Add common pmutil driver
This adds a common PM utility driver for modern Intel platforms that
share consistent PM register layouts.

The driver consolidates power management utility functions that were
previously duplicated across multiple Intel SoC platforms. This
includes functions for:
- SMI/TCO/GPE status bit decoding
- PMC MMIO base address access
- RTC failure detection
- Sleep state management
- Power state structure population
- After-G3 power state configuration
- GPE configuration retrieval using generic config_t

The GPE configuration function (soc_get_gpi_gpe_configs) uses the
generic config_t typedef that each platform defines, allowing complete
code reuse without platform-specific shims.

This common driver is controlled by the Kconfig option
SOC_INTEL_COMMON_FEATURE_PMUTIL and is built for all boot stages.

Change-Id: I45b829b7c18ee66474457df5523069f930806b35
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91237
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-01 17:02:41 +00:00
Jeremy Compostella
189f8d1a86 soc/intel/elkhartlake: Switch to common eSPI/LPC initialization
Replace platform-specific espi.c with the common eSPI/LPC
initialization driver.

Changes:
- Remove src/soc/intel/elkhartlake/espi.c
- Enable SOC_INTEL_COMMON_FEATURE_ESPI in Kconfig
- Update Makefile.mk to remove espi.c from build

The eSPI/LPC initialization was nearly identical across platforms,
differing only in minor header inclusions and ENV_RAMSTAGE wrapper
usage. The common implementation uses the config_t typedef that
each platform defines, providing clean abstraction without
preprocessor conditionals.

Change-Id: I59d9cb1b37bca2c682e2bf87fc3f5b24c34fb920
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91222
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-01 17:02:34 +00:00
Jeremy Compostella
aeb9db4467 soc/intel/jasperlake: Switch to common eSPI/LPC initialization
Replace platform-specific espi.c with the common eSPI/LPC
initialization driver.

Changes:
- Remove src/soc/intel/jasperlake/espi.c
- Enable SOC_INTEL_COMMON_FEATURE_ESPI in Kconfig
- Update Makefile.mk to remove espi.c from build

The eSPI/LPC initialization was nearly identical across platforms,
differing only in minor header inclusions and ENV_RAMSTAGE wrapper
usage. The common implementation uses the config_t typedef that
each platform defines, providing clean abstraction without
preprocessor conditionals.

Change-Id: Ied29a5f2dabdebe0afedd1d69e4a817d6606a82d
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91221
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-01 17:02:29 +00:00
Jeremy Compostella
05006995b6 soc/intel/tigerlake: Switch to common eSPI/LPC initialization
Replace platform-specific espi.c with the common eSPI/LPC
initialization driver.

Changes:
- Remove src/soc/intel/tigerlake/espi.c
- Enable SOC_INTEL_COMMON_FEATURE_ESPI in Kconfig
- Update Makefile.mk to remove espi.c from build

The eSPI/LPC initialization was nearly identical across platforms,
differing only in minor header inclusions and ENV_RAMSTAGE wrapper
usage. The common implementation uses the config_t typedef that
each platform defines, providing clean abstraction without
preprocessor conditionals.

Change-Id: I65f8af8f5abccff25ec0dead4f7def7ce16d3081
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91220
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:02:23 +00:00
Jeremy Compostella
7278030fa6 soc/intel/pantherlake: Switch to common eSPI/LPC initialization
Replace platform-specific espi.c with the common eSPI/LPC
initialization driver.

Changes:
- Remove src/soc/intel/pantherlake/espi.c
- Enable SOC_INTEL_COMMON_FEATURE_ESPI in Kconfig
- Update Makefile.mk to remove espi.c from build

The eSPI/LPC initialization was nearly identical across platforms,
differing only in minor header inclusions and ENV_RAMSTAGE wrapper
usage. The common implementation uses the config_t typedef that
each platform defines, providing clean abstraction without
preprocessor conditionals.

TEST=Build and boot to the OS on a Fatcat device

Change-Id: If5f2de9faa209ff30f986f34b1816ffa6d5fc683
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91219
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:02:17 +00:00
Jeremy Compostella
4fe7e7fa36 soc/intel/meteorlake: Switch to common eSPI/LPC initialization
Replace platform-specific espi.c with the common eSPI/LPC
initialization driver.

Changes:
- Remove src/soc/intel/meteorlake/espi.c
- Enable SOC_INTEL_COMMON_FEATURE_ESPI in Kconfig
- Update Makefile.mk to remove espi.c from build

The eSPI/LPC initialization was nearly identical across platforms,
differing only in minor header inclusions and ENV_RAMSTAGE wrapper
usage. The common implementation uses the config_t typedef that
each platform defines, providing clean abstraction without
preprocessor conditionals.

Change-Id: Ifb198964c5eda1fceaec6111cd7fba374bacf1b6
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91218
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-03-01 17:02:11 +00:00
Jeremy Compostella
34be3842a1 soc/intel/alderlake: Switch to common eSPI/LPC initialization
Replace platform-specific espi.c with the common eSPI/LPC
initialization driver.

Changes:
- Remove src/soc/intel/alderlake/espi.c
- Enable SOC_INTEL_COMMON_FEATURE_ESPI in Kconfig
- Update Makefile.mk to remove espi.c from build

The eSPI/LPC initialization was nearly identical across platforms,
differing only in minor header inclusions and ENV_RAMSTAGE wrapper
usage. The common implementation uses the config_t typedef that
each platform defines, providing clean abstraction without
preprocessor conditionals.

Change-Id: Ifacdd480a9cfd59d9e54faebad82e1cc2db8a8ed
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91217
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:02:05 +00:00
Jeremy Compostella
0464f1032a soc/intel/common/feature/espi: Add common eSPI/LPC initialization
This introduces a common implementation for eSPI/LPC initialization
that handles generic IO decode range configuration and standard
interrupt setup. This code is nearly identical across multiple Intel
client platforms.

The implementation includes:
- soc_get_gen_io_dec_range(): Configures generic IO decode ranges
  from devicetree (gen1_dec through gen4_dec)
- lpc_soc_init(): Performs legacy ISA/DMA initialization, enables
  CLKRUN for power gating, configures Serial IRQ mode, and sets up
  the interrupt controllers (IOAPIC, PIRQ, i8259)

Platform-specific configuration is handled through the config_t
typedef that each platform defines via its soc_chip.h header,
eliminating the need for preprocessor conditionals.

The common driver is enabled via the SOC_INTEL_COMMON_FEATURE_ESPI
Kconfig option and works across bootblock, romstage, and ramstage.

Platforms that will use this common implementation:
- Alder Lake
- Meteor Lake
- Panther Lake
- Tiger Lake
- Jasper Lake
- Elkhart Lake

Change-Id: Idbdecff1cef44dae90afb35ff6e2afca011ea5b4
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91216
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:01:57 +00:00
Jeremy Compostella
f780b7c576 soc/intel/tigerlake: Use common SoundWire driver
Migrate Tiger Lake to use the common SoundWire driver implementation
from the Intel common feature code. This change eliminates platform-
specific code by leveraging the shared soundwire.c driver.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SOUNDWIRE Kconfig
- Removes src/soc/intel/tigerlake/soundwire.c
- Updates Makefile to remove soundwire.c compilation

Tiger Lake uses the default values (4 SoundWire master links with ACPI
address 0x40000000).

Change-Id: Ife743d28c8760d9de3f593f7d8caafd7a73efe3a
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91280
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-01 17:01:46 +00:00
Jeremy Compostella
620a33f1c8 soc/intel/pantherlake: Use common SoundWire driver
Migrate Panther Lake to use the common SoundWire driver implementation
from the Intel common feature code. This change eliminates platform-
specific code by leveraging the shared soundwire.c driver.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SOUNDWIRE Kconfig
- Removes src/soc/intel/pantherlake/soundwire.c
- Updates Makefile to remove soundwire.c compilation

Panther Lake uses the default values (4 SoundWire master links with ACPI
address 0x40000000).

TEST=Build and boot to the OS on a Fatcat device

Change-Id: Iaebb27ddc44da536c8e6a6aece1dfee3a4ac7bac
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91279
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-01 17:01:40 +00:00
Jeremy Compostella
ffc67b2938 soc/intel/meteorlake: Use common SoundWire driver
Migrate Meteor Lake to use the common SoundWire driver implementation
from the Intel common feature code. This change eliminates platform-
specific code by leveraging the shared soundwire.c driver.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SOUNDWIRE Kconfig
- Removes src/soc/intel/meteorlake/soundwire.c
- Updates Makefile to remove soundwire.c compilation

Meteor Lake uses the default values (4 SoundWire master links with ACPI
address 0x40000000).

Change-Id: Ib6d412b22cce78caf56ca2d09fcf74e57f54d09c
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91278
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:01:33 +00:00
Jeremy Compostella
ef364d623d soc/intel/alderlake: Use common SoundWire driver
Migrate Alder Lake to use the common SoundWire driver implementation
from the Intel common feature code. This change eliminates platform-
specific code by leveraging the shared soundwire.c driver.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SOUNDWIRE Kconfig
- Removes src/soc/intel/alderlake/soundwire.c
- Updates Makefile to remove soundwire.c compilation

Alder Lake uses the default values (4 SoundWire master links with ACPI
address 0x40000000).

Change-Id: Idf21d32d0cab9e3c6ca35e2b9f20c42c0455b5bb
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91277
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
2026-03-01 17:01:26 +00:00
Jeremy Compostella
74d4fac210 soc/intel/common/feature/soundwire: Add common SoundWire driver
Add a common implementation of soc_fill_soundwire_controller() to reduce
code duplication across multiple Intel SoC platforms. This
implementation consolidates identical SoundWire link configuration code
from Alder Lake, Meteor Lake, Panther Lake, and Tiger Lake platforms.

The common driver uses platform-specific Kconfig options:
- SOC_SOUNDWIRE_ACPI_ADDRESS: ACPI address for the controller
  (default 0x40000000)
- SOC_SOUNDWIRE_MASTER_COUNT: Number of SoundWire master links
  (default 4)

Platforms can override these defaults in their Kconfig if needed.

This change enables consolidation of nearly identical soundwire.c files
across four platforms, reducing duplication by approximately 210 lines.

Change-Id: I5e188b0b60da91a33cf0325caefbbcabef0ebcba
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91276
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-03-01 17:01:20 +00:00
Sean Rhodes
7bee4f5efb mb/starlabs: Drop explicit devtree_update calls
devtree_update() is invoked automatically at BS_PRE_DEVICE. Remove the
per-board init_mainboard() calls and associated includes.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: Ifb44080dc2e785a8554f5404902540daa9e872d1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90990
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-28 20:47:47 +00:00
Sean Rhodes
f8494fbeae lib: Add devtree_update bootstate hook
Provide a weak devtree_update() hook and invoke it early in ramstage
at BS_PRE_DEVICE. Mainboards can override devtree_update() to
enable/disable devices at runtime based on CMOS/NVRAM settings.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: Ic84ddb25e1da050543c230ea457042b8a8a3061f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91250
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-28 20:47:37 +00:00
Matt DeVillier
69242d5bb1 drivers/usb/acpi: Add DSM function 3 support for Intel Bluetooth
The Linux btintel driver requires DSM function 3 (DSM_SET_RESET_METHOD)
to be supported before it will use the ACPI _PRR/_RST reset path.
Without it, the driver falls back to GPIO or USB reset.

Add set_reset_method callback that returns success. coreboot only
supports WDISABLE2 (GPIO); the _RST method already implements the
toggle. Update the capability buffer (0x03 -> 0x0b) to advertise
function 3 support. Change RDLY default from 105 to 160 ms to match
the Linux driver.

Change-Id: I6a7c9289dcffbbbd769ab3fb4e59765d2fef7598
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91445
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-28 15:05:45 +00:00
Tom Hiller
50e92c9cf1 mb/lenovo/m920q: Rename to reflect use for m720q variant as well
The m920q and m720q are the same board, so rename the m920q to reflect
that

Change-Id: Ieef22530207ad4c35ac3cb4255d2ad65e62b65bf
Signed-off-by: Tom Hiller <thrilleratplay@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90374
Reviewed-by: Evie (Ivi) Ballou <iviballou@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-28 15:05:35 +00:00
Sean Rhodes
e0c26a05d4 ec/starlabs/merlin: fix OSFG suspend comment
OSFG is toggled from _PTS/_WAK via MPTS/MWAK and therefore runs for all
supported sleep states. Update the suspend/resume comments to match the
unguarded behavior.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I613efd68ed2770798c2754a1c59f802f47986795
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91439
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-28 15:05:27 +00:00
Nicholas Chin
ce5c915344 drivers/spi/flashconsole.c: Fix flashconsole
Commit 1f2408f573 ("console: Fix flushing for slow consoles") fixed a
typo related to some refactoring of the CBMEM fast code path. However,
this also seems to have indirectly broken the SPI flash console, causing
only the console header messages at the beginning of each stage to be
stored.

This is caused by multiple calls to flashconsole_tx_flush() without a
call to flashconsole_tx_byte() in between them. Data is accumulated in a
buffer during calls to flashconsole_tx_byte(), which is then written to
the flash during a flush. If no tx calls occur between flushes, the
second call will try to write data of length 0, which seems to cause
rdev_writeat() to return -1. This causes an early return, since the
return value of rdev_writeat() must match the data length in order for
the rest of the flashconsole_tx_flush to run. The flush function
contains a busy flag to prevent recursive calls to itself, and the early
return prevents it from being reset. Thus, the busy flag remains set for
the remainder of the stage, blocking all future flushes.

The multiple flushes occur because vprintk flushes console drivers after
the string has been sent, but flashconsole_tx_byte() also calls a flush
whenever a newline is encountered. Because of this, flushes are disabled
for the remainder of each stage after the first printk call containing a
newline is stored to the flash console. Although this newline check
could be omitted, flashconsole_tx_byte() also invokes a flush when its
data buffer is full, which shouldn't be avoided.

Prior to the mentioned commit, the incorrect logic happened to prevent
the flush in vprintk, preventing the double flush issue from occurring.
The mentioned commit inverted the logic, allowing the double flush to
occur.

Address this by returning early if len = 0. While we're here,
consolidate the early returns into a single check and change the busy
flag to a bool instead of an int.

TEST=Console messages are not missing in the flashconsole. Tested on the
Lenovo ThinkCentre M900 SFF.

Change-Id: Ic6c2418f04a687610df020df117f7be90b1724b9
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91428
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-02-28 15:05:21 +00:00
Sean Rhodes
c2eea0c96c mainboard/starlabs/adl: add Bluetooth RTD3 CFR option
Expose the existing bluetooth_rtd3 CFR option on ADL boards.

BUG=None
TEST=BUILD_TIMELESS=1 build BOARD_STARLABS_ADL_HORIZON

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I2d2f0abe6f9230f3744d3d7e100eda923b0aabc6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91447
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-28 15:04:14 +00:00
Patrick Rudolph
7847a54eed mb/lenovo: Convert PNP device to generic device
Convert the hybrid graphics mux into a generic device and give it an
alias so that the driver can reference it by name.

Change-Id: Icbf6f298cab9e11acc9363daba68f9fbc613e79d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91440
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-28 15:04:03 +00:00
Patrick Rudolph
091ae533b9 mb/lenovo/t430: Merge into t430 into t530
Both models are quite similar, so reuse existing code and reduce
code duplication.

TEST=TIMELESS build shows identical devicetree.cb, DSDT, cmos layout,
     bootblock, romstage and postcar stages. ramstage shows minor
     differences as static.c is now build before hda_verb.c, resulting
     in different location of data symbols. Binary analysis shows that
     the data itself didn't change, just the position in the final
     binary.

Change-Id: I2e7cf67c9e2542a199b11257e7349a55e0518aac
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91285
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-28 15:03:54 +00:00
Patrick Rudolph
3a5e4660bb mb/lenovo/t530: Unify GEN_DEC entries
Use the same GEN_DEC ranges as on t430. This makes the code look more
similar, but doesn't change the functionality. It changes the TIMELESS
build artifact.

Change-Id: Ibfac61f615fba2b91101125a2187b45af6dadd19
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91283
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-28 15:03:27 +00:00
Patrick Rudolph
416875e93e mb/lenovo/t430|t530: Reduces differences in code
Make the T430 look like the T530 codebase by reordering includes,
update the ACPI code and update the CMOS defaults file. Should have
not influence on functionality, but changes the TIMELESS build artifacts.

Change-Id: I2c300ecbf44fa950183ee5e05ba1e05cdf5ff00d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91281
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-28 15:03:17 +00:00
Matt DeVillier
57f96b83fe mb/google/link/hda_verb: Remove presence detect flag from internal sources
The pin widgets for the internal speakers and microphone should not
have the presence detect flag set, as this causes the jack detect
to fail on some distros, leading to headphone output not working.

TEST=build/boot LINK

Change-Id: I798d0cc4a0f4de65ebe51f1dafaeeb12728d2f40
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91444
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-28 15:02:54 +00:00
Matt DeVillier
6be9ee7ce4 mb/google/link: Use AZALIA_PIN_DESC macros for pin widgets
Update the Creative CA0132 Pin Widget Verb Table from raw hex config
values to AZALIA_PIN_DESC for NIDs 0x0B–0x13, and use
AZALIA_PIN_CFG_NC(0) for N/C pins (0x0C–0x0F).

Mapping generated by hda-decoder utility.

TEST=build/boot LINK

Change-Id: Ia1c9bce2bf0a71aa3a60678828cbc6bc55f7bfc1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91443
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-28 15:02:48 +00:00
Hualin Wei
8718db133a mb/google/fatcat/var/lapis: Add 2 Micron modules to RAM id table
Add Micron MT62F1G32D2DS-020 WT:D  as id 1, and add Micron
MT62F2G32D4DS-020 WT:D as id 0, resulting in the list below:

DRAM Part Name                 ID to assign
H58G66CK8BX147                 0 (0000)
K3KL9L90EM-MGCU                0 (0000)
MT62F2G32D4DS-023 WT:C         0 (0000)
H58G56CK8BX146                 1 (0001)
K3KL8L80EM-MGCU                1 (0001)
MT62F1G32D2DS-023 WT:C         1 (0001)
K3KLALA0EM-MGCU                2 (0010)
MT62F1G32D2DS-020 WT:D         1 (0001)
MT62F2G32D4DS-020 WT:D         0 (0000)

BUG=b:488228474
TEST=emerge-fatcat coreboot, rework by EE
         flash it and boot normal.

Change-Id: I23ee56fe7e8f2e2ade75eaaf1fa19b91e784030f
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91452
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-28 15:02:34 +00:00
Hualin Wei
f9f43d862d spd/lp5: Add Micron memory part
Add Micron memory part MT62F2G32D4DS-023 to LP5
global list.

BUG=b:488228474
TEST=emerge-fatcat coreboot, rework by EE
     flash it and boot normal.

Change-Id: I5c628f35ae789a20688a761c09c1c04578e40f1f
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91451
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-28 15:02:29 +00:00
Rui Zhou
c57b88d74d mb/google/brox/var/lotso: delete mb_get_channel_disable_mask
We found that the lotso project has already used
variant_is_half_populated. If we continue to use the
mb_get_channel_disable_mask API, it will reduce the memory of each DDR
by half. In reality, we are reducing the number of DDR modules (from 4
to 2), so we should remove mb_get_channel_disable_mask to ensure proper
DIMM identification.

BUG=b:468889066
BRANCH=None
TEST=boot to kernel success, and the log shows that the RAM ID is correct.

Change-Id: Ia7fc4610b3257bc20a871080f52f02e089b8531c
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91426
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-27 18:48:11 +00:00
Matt DeVillier
8ba58ef800 mb/samsung/lumpy: Correct NID 0x08 HDA pin config macro usage
Commit eb504eb49a ("mb/samsung/lumpy: Fix HDA pin configuration
issues") incorrectly used AZALIA_PIN_CFG_NC(0) as a standalone entry
for NID 0x08. Change to AZALIA_PIN_CFG(0, 0x08, AZALIA_PIN_CFG_NC(0))
so the verb for NID 0x08 is emitted correctly.

Change-Id: Iaf23b6e8791a352758189d92ad9c89414fc5a22d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91442
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-27 15:01:55 +00:00
Jarried Lin
38988a727e util/mediatek: Reduce non-boot related BROM settings
Reduce BROM settings that are not related to boot to save boot time.

BUG=b:480810041
TEST= 0:1st timestamp reduce from 400ms to 250ms

Change-Id: Ia97a78515d80a141b9b409407f6e41a07261cad9
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91423
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2026-02-27 13:47:47 +00:00
Tony Huang
e84415b8f8 mb/google/nissa/var/yaviks: Add micron memory to RAM ID table
DRAM Part Name                 ID to assign
MT62F1G32D2DS-031RF WT:C       2 (0010)
MT62F2G32D4DS-031RF WT:C       5 (0101)

BUG=b:487113903
TEST=build nissa coreboot

Change-Id: I171d2cdfcd4ec41562b09705dab64f00ce51c6a2
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91407
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
2026-02-27 13:47:32 +00:00
Tony Huang
08dcaf404c mb/google/nissa/var/yavilla: Add micron memory to RAM ID table
DRAM Part Name                 ID to assign
MT62F1G32D2DS-031RF WT:C       2 (0010)
MT62F2G32D4DS-031RF WT:C       5 (0101)

BUG=b:487113903
TEST=build nissa coreboot

Change-Id: I5b49ec3513fd1878942c96bc8b5375d79e049898
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91406
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-27 13:47:27 +00:00
Subrata Banik
523242b2b9 google/bluey: Add RW_CDT region to flash map
Carve out 256K from the RW_UNUSED region to create a new RW_CDT
section at the end of the flash. The RW_UNUSED region is reduced
from 4096K (4M) to 3840K to maintain the existing flash offset
for the start of the unused block.

The RW_CDT region will be used to store Configuration Data Tables,
allowing for platform-specific configuration binary blobs to be
stored and updated in the RW section of the flash.

BUG=b:483194720
TEST=Build bluey and verify the FMAP layout using 'dump_fmap'.
     Ensure RW_CDT exists at the expected offset.

dump_fmap -h ../../out/build/bluey/firmware/image-bluey.serial.bin
RW_CDT                     01fc0000    02000000    00040000
RW_UNUSED                  01c00000    01fc0000    003c0000
RW_LEGACY                  0192e000    01c00000    002d2000
RW_SECTION_B               010ae000    0192e000    00880000
  RW_FWID_B                  0192df00    0192e000    00000100
  FW_MAIN_B                  010b0000    0192df00    0087df00
  VBLOCK_B                   010ae000    010b0000    00002000
RW_SECTION_A               0082e000    010ae000    00880000
  RW_FWID_A                  010adf00    010ae000    00000100
  FW_MAIN_A                  00830000    010adf00    0087df00
  VBLOCK_A                   0082e000    00830000    00002000
RW_MISC                    00800000    0082e000    0002e000
  RW_NVRAM                   0082a000    0082e000    00004000
  RW_VPD                     00822000    0082a000    00008000
  RW_SHARED                  00821000    00822000    00001000
  SHARED_DATA                00821000    00822000    00001000
  RW_ELOG                    00820000    00821000    00001000
  UNIFIED_MRC_CACHE          00800000    00820000    00020000
    RW_MRC_CACHE               00810000    00820000    00010000
    RECOVERY_MRC_CACHE         00800000    00810000    00010000
WP_RO                      00000000    00800000    00800000
  RO_VPD                     007fc000    00800000    00004000
  RO_GSCVD                   007fa000    007fc000    00002000
  RO_SECTION                 00000000    007fa000    007fa000
    RO_FRID                    007f9f00    007fa000    00000100
    GBB                        007f7000    007f9f00    00002f00
    COREBOOT                   00081000    007f7000    00776000
    FMAP                       00080000    00081000    00001000
    BOOTBLOCK                  00000000    00080000    00080000

Change-Id: I7d305647731862e61871e781ad7bfb7cd430b699
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91380
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-27 13:47:09 +00:00
Subrata Banik
5e46ac1364 mb/google/bluey: Resize WP_RO and add RW_UNUSED region
Modify the flash map (fmd) to reduce the Write-Protected RO (WP_RO)
section from 12M to 8M. The recovered 4M of space is reallocated
to a new RW_UNUSED region positioned before RW_LEGACY.

BUG=None
TEST=Build bluey image and verify FMAP table with 'fmap_decode'.
Ensure resulting layout matches the intended offsets.

Change-Id: I6dde5fac5ba3be5fb28f2cd46c5518d87082c067
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91379
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-27 13:47:03 +00:00
Angel Pons
08f2f3a21b Haswell NRI: Implement 1D margin training
Implement an algorithm that performs a simple 1D margin training. This
algorithm is generic, i.e. it can be used with multiple margin params.
Use this algorithm to train three margin parameters: RdT, WrT and RdV.

This algorithm also does per-bit calibration, but only for RdT and WrT
since Haswell does not have per-rank per-bit RdV (c.f. `RX_OFFSET_VDQ`
register). Still, implement support in `change_margin()` for all three
types of per-bit margins (WrTBit, RdTBit, RdVBit) for completeness.

Tested on Asrock Z97 Extreme6 with 2 DIMMs per channel (1R + 2R):
- NRI finishes successfully, board still boots to Arch Linux.
- Both fast training as well as S3 suspend/resume still work.

Change-Id: I382cea8e230aee46a0dc66248f1e678d8a9a0090
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89314
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-27 13:46:53 +00:00
Sowmya V
098a5cf16e mb/google/ocelot: Configure CDCLK frequency for display
Configure the Core Display Clock (CDCLK) frequency selection by setting
the 'vga_cd_clk_freq_sel' register to CD_CLK_461MHZ in the ocelot
baseboard devicetree. This ensures the display engine operates at the
required frequency for the panel to meet the hardware configuration.

TEST=Build and boot ocelot, verify display initialization.

Change-Id: Ic2f8fccc4391febd342f8f140014c5f3e09472c4
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91312
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-27 13:45:24 +00:00
Jarried Lin
7b205808e4 mb/google/rauru: Disable CHROMEOS_USE_EC_WATCHDOG_FLAG
Now that we use the WATCHDOG_TOMBSTONE section to store the watchdog
event magic, there is no need to ask EC for the last reset reason. In
fact, with MEDIATEK_WDT_RESET_BY_SW enabled, EC doesn't even record the
watchdog reset reason.

Enable CHROMEOS_USE_EC_WATCHDOG_FLAG only if MEDIATEK_WDT_RESET_BY_SW is
disabled.

BUG=b:481854714
TEST= After triggering WDT timeout, the following log can be observed:
[NOTE ]  coreboot-coreboot-unknown.9999.782bb84 Mon Feb 23 06:42:21 UTC 2026 aarch64 bootblock starting (log level: 8)
[DEBUG]  ARM64: Exception handlers installed.
[DEBUG]  ARM64: Testing exception
[DEBUG]  ARM64: Done test exception
[DEBUG]  [booker_init] AP hash rule: 0xbe00
[INFO ]  mtk_cksys_init = 0x1
[INFO ]  WDT: Status = 0x20000
[INFO ]  WDT: Last reset was other reset type: 0x00020000
[INFO ]  mtk_wdt_swreset() called!
[INFO ]  board_reset() called!

And "elogtool list" contained "Hardware watchdog reset".

Change-Id: I44a940d88948897e6727fad5c87f364e3ba9ac61
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91421
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-27 13:30:34 +00:00
Jarried Lin
b1e8f87b30 mb/google/rauru: Enable MEDIATEK_WDT_RESET_BY_SW
For MT8196p, watchdog external reset is enabled by kernel configuration,
and EC ignores the reset signal AP_PMIC_WDTRST_L. Therefore, enable
MEDIATEK_WDT_RESET_BY_SW to allow triggering the secondary watchdog
reset via software instead of watchdog hardware.

BUG=b:481854714
TEST=cbmem logs preserved on WDT timeout

Change-Id: Ib6b1ddbe28b0cd2aac2043f18dcd15caf4cac37a
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91420
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-27 13:30:29 +00:00
Patrick Rudolph
f4825e5c12 soc/amd/common: Add I3C driver
Add an I3C driver that allows to use the I3C HW from the OS.
It does:
- Power on/off the I3C HW
- Configures the IOMUX

Add the SoC specific AOAC devices and GPIO pins to reconfigure
the GPIO for I3C HW.

New log messages are seen in coreboot:
[DEBUG]  MMIO: fedd2000 disabled

TEST: The I3C driver loads on amd/glinda using Ubuntu 25.04.

Change-Id: Ibca20e2a4f0cb0e6006cfa47fd4addbe27504645
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87960
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-27 13:02:58 +00:00
Jeremy Compostella
cf5d6f1c88 soc/intel/common/block/gspi: Simplify Makefile using all-$()
Replace individual stage-specific lines with all-$() for each file.
This simplifies the Makefile from 6 lines to 2 lines while maintaining
identical functionality.

The all-$() variable automatically includes the file in all build stages
(bootblock, verstage, romstage, postcar, ramstage, smm), which is
exactly what the original code was doing manually for each stage.

Change-Id: Ie89ba86a545c548fcc4ad0eb48a5cbb33733b541
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91358
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:38:36 +00:00
Jeremy Compostella
56ede20f10 soc/intel/pantherlake: Use common SPI device function driver
Switch to the common SPI device function driver implementation. This
eliminates platform-specific SPI code by leveraging the common driver
with platform-specific Kconfig and macros.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SPI_DEVFN and
  SOC_INTEL_COMMON_FEATURE_SPI_DEVFN_PSF in Kconfig
- Adds CONFIG_SOC_INTEL_SPI_DEV_MAX=3
- Adds CONFIG_SOC_INTEL_SPI_PSF_DESTINATION_ID=0x5140
- Removes src/soc/intel/pantherlake/spi.c
- Updates Makefile.mk to remove spi.c compilation

The common code uses SOC_GSPI_DEVFN(n) macro directly.

TEST=Panther Lake Fatcat OS boots properly

Change-Id: Id7462deeb80c1efe32accf0ab7fc9fa68494ddfd
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91328
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:38:28 +00:00
Jeremy Compostella
4bdeb73635 soc/intel/meteorlake: Use common SPI device function driver
Switch to the common SPI device function driver implementation. This
eliminates platform-specific SPI code by leveraging the common driver
with platform-specific Kconfig and macros.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SPI_DEVFN and
  SOC_INTEL_COMMON_FEATURE_SPI_DEVFN_PSF in Kconfig
- Adds CONFIG_SOC_INTEL_SPI_DEV_MAX=3
- Adds CONFIG_SOC_INTEL_SPI_PSF_DESTINATION_ID=0x5140
- Removes src/soc/intel/meteorlake/spi.c
- Updates Makefile.mk to remove spi.c compilation

The common code uses SOC_GSPI_DEVFN(n) macro directly.

Change-Id: I6ac7bdf4c9eeaab2d0d0ecbe8cd2ea2bf7f9ea19
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91327
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:38:21 +00:00
Jeremy Compostella
8ecff12528 soc/intel/alderlake: Use common SPI device function driver
Switch to the common SPI device function driver implementation. This
eliminates platform-specific SPI code by leveraging the common driver
with platform-specific Kconfig and macros.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SPI_DEVFN and
  SOC_INTEL_COMMON_FEATURE_SPI_DEVFN_PSF in Kconfig
- Adds CONFIG_SOC_INTEL_SPI_DEV_MAX=4
- Adds CONFIG_SOC_INTEL_SPI_PSF_DESTINATION_ID=0x23a8
- Removes src/soc/intel/alderlake/spi.c
- Updates Makefile.mk to remove spi.c compilation

The common code uses SOC_GSPI_DEVFN(n) macro directly.

Change-Id: I346e6c6cbe95c8608009e5f9fc53dbcff5edba4e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91326
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:38:15 +00:00
Jeremy Compostella
0aea05411d soc/intel/tigerlake: Use common SPI device function driver
Switch to the common SPI device function driver implementation. This
eliminates platform-specific SPI code by leveraging the common driver
with platform-specific Kconfig and macros.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SPI_DEVFN and
  SOC_INTEL_COMMON_FEATURE_SPI_DEVFN_PSF in Kconfig
- Adds CONFIG_SOC_INTEL_SPI_DEV_MAX=3
- Adds CONFIG_SOC_INTEL_SPI_PSF_DESTINATION_ID (0x23b0 for PCH-H, 0x23a8
  default)
- Removes src/soc/intel/tigerlake/spi.c
- Updates Makefile.mk to remove spi.c compilation

The common code uses SOC_GSPI_DEVFN(n) macro directly.

Change-Id: Ib195ffcc0d46f7e95eba2d0a2c66fbcdcca615a2
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91325
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:38:09 +00:00
Jeremy Compostella
47f3e7e3cc soc/intel/jasperlake: Use common SPI device function driver
Switch to the common SPI device function driver implementation. This
eliminates platform-specific SPI code by leveraging the common driver
with platform-specific Kconfig and macros.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE_SPI_DEVFN in Kconfig
- Adds CONFIG_SOC_INTEL_SPI_DEV_MAX=3
- Removes src/soc/intel/jasperlake/spi.c
- Updates Makefile.mk to remove spi.c compilation

Note: This platform does not use PSF destination ID.
The common code uses SOC_GSPI_DEVFN(n) macro directly.

Change-Id: If42aa1f955bc0aae2698aac35dbe23b79c68bf09
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91324
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:38:03 +00:00
Jeremy Compostella
91520ab096 soc/intel/common/feature/spi: Add common SPI device function driver
Add a common driver for SPI device function to bus mapping. This
eliminates code duplication across Intel SoC platforms by providing
a generic implementation that can be configured via platform-specific
macros.

The driver provides:
- spi_soc_devfn_to_bus(): Convert device function to bus number using
  platform-defined SOC_SPI_DEVFN(n) macros
- soc_get_spi_psf_destination_id(): Optional PSF destination ID support
  for platforms that need it

Platforms must define SOC_SPI_DEVFN(n) in soc/pci_devs.h.

Platforms must define the following Kconfig:
- SOC_INTEL_SPI_DEV_MAX: Number of SPI controllers available on the
  platform.
- SOC_INTEL_COMMON_FEATURE_SPI_DEVFN_PSF: To enable PSF designation, the
  ID must be provided with SOC_INTEL_SPI_PSF_DESTINATION_ID.
- SOC_INTEL_SPI_PSF_DESTINATION_ID: (optional) PSF destination ID for
  SPI controller.

Change-Id: I07ded6e6d2156a02eef7b4fea86ac1c8fa5ff3ce
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91323
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:37:57 +00:00
Jeremy Compostella
0668959a92 soc/intel/skylake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

Change-Id: Ib7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91321
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:37:42 +00:00
Jeremy Compostella
45d3ab84a8 soc/intel/cannonlake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

Change-Id: Ia6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91320
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:37:34 +00:00
Jeremy Compostella
4aae5fb66d soc/intel/elkhartlake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

Change-Id: If6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91319
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:37:27 +00:00
Jeremy Compostella
78ef2d0433 soc/intel/jasperlake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

Change-Id: Ie5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91318
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:37:20 +00:00
Jeremy Compostella
66a6c25ef8 soc/intel/tigerlake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

Change-Id: Id4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91317
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:37:13 +00:00
Jeremy Compostella
3c92c8402a soc/intel/pantherlake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

TEST=Panther Lake Fatcat OS boots properly

Change-Id: Ic3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91316
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:37:04 +00:00
Jeremy Compostella
6459039b76 soc/intel/meteorlake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

Change-Id: Ib2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91315
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:36:57 +00:00
Jeremy Compostella
039f21b5e3 soc/intel/alderlake: Use common GSPI devfn mapping
Replace platform-specific gspi.c with the common GSPI device function
mapping implementation.

Changes:
- Select SOC_INTEL_COMMON_FEATURE_GSPI_DEVFN in Kconfig
- Define SOC_GSPI_DEVFN(n) macro in pci_devs.h
- Remove platform-specific gspi.c file

Change-Id: Ia1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91314
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:36:50 +00:00
Jeremy Compostella
a4bc3131a5 soc/intel/common/feature/gspi: Add common devfn mapping
Add a common implementation of gspi_soc_bus_to_devfn() to reduce code
duplication across multiple Intel SoC platforms. This implementation
uses the SOC_GSPI_DEVFN(n) macro which must be defined by each platform
in their soc/pci_devs.h header to map GSPI bus numbers to PCI device and
function values.

This change enables consolidation of nearly identical gspi.c files from
Alder Lake, Meteor Lake, Panther Lake, Tiger Lake, Jasper Lake, Elkhart
Lake, Cannon Lake, and Skylake platforms.

The implementation leverages the existing
CONFIG_SOC_INTEL_COMMON_BLOCK_GSPI_MAX Kconfig option and includes
compile-time assertions to ensure the configuration is within supported
limits (up to 7 GSPI controllers).

Change-Id: I776cebd70968fd4b8bbab176bca0a446a0cc76ab
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91322
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 19:36:45 +00:00
Angel Pons
253689aebb sb/intel/lynxpoint/acpi/xhci.asl: Guard PCH-LP methods
The `LPCL` and `LPS0` methods are specific to PCH-LP, and are not used
at all on PCH-H. To prevent accidental use and to reduce the DSDT size
on PCH-H builds, add some preprocessor guards around those methods.

For the ASRock Z97 Extreme, `build/dsdt.aml` size goes from 8538 bytes
down to 7904 bytes, a reduction of about 7%.

Change-Id: I775dcde4932f6039ba7d5673364e495837a386da
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91395
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-26 19:34:05 +00:00
Angel Pons
72ecebf0c3 soc/intel/broadwell/acpi/xhci.asl: Use macros for constants
Declaring named objects for constants is not ideal, especially when done
inside of a method (it is highly inefficient). Instead, use preprocessor
defines.

Change-Id: I2d9d17b820ee72ba628b44ae508a7c467c023dd9
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91394
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-26 19:33:56 +00:00
Angel Pons
813edbbde8 sb/intel/lynxpoint/acpi/xhci.asl: Use macros for constants
Declaring named objects for constants is not ideal, especially when done
inside of a method (it is highly inefficient). Instead, use preprocessor
defines.

Change-Id: I1143f2aa09a2ed04da92edcf6ae9d832c0b5e2fa
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91393
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:33:49 +00:00
Angel Pons
3cde265c28 sb/intel/lynxpoint/acpi/xhci.asl: Drop redundant writes
Setting `SWAI` and `SAIP` is already done in the LPT-H and LPT-LP
specific branches, so there's no need to do it again. WPT-LP does
NOT need these writes.

Change-Id: Ib5156fab1384cdc531fc1d49dd61e5fc4600e894
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91391
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:33:42 +00:00
Purdea Andrei
a59ddda11e Doc/mb/protectli/fw6: describe revisions and more variants
- Add documentation about Old/New motherboard revisions
- Mention that FW6A/B/C exist as both Old and New Revision
- Mention that the current codebase only supports the Old Revision
- Add documentation about FW6D and FW6E variants, currently unsupported

Signed-off-by: Purdea Andrei <andrei@purdea.ro>
Change-Id: Ifdf1624c8d206326c64163382b31c6001300b4df
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88226
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-26 19:33:28 +00:00
Jeremy Compostella
d5161611a4 soc/intel/pantherlake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: I9200c41bf459dfef29599cc1c736e14e8cbd36b9
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91266
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-02-26 16:31:42 +00:00
Jeremy Compostella
78e36f8c78 soc/intel/meteorlake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: Ifab488ada515656a5108aee5a6f481abda6a9c0d
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91265
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-02-26 16:31:33 +00:00
Jeremy Compostella
f703f2800c soc/intel/skylake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: I9ae46e252c599e4ee82a60c03a8d83f874a8da98
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91264
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-02-26 16:31:20 +00:00
Jeremy Compostella
7f922438be soc/intel/cannonlake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: I0117a418d35cea3e7c0442c8c3ea27d17b8bdf06
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91263
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-02-26 16:31:11 +00:00
Jeremy Compostella
a0ba812a09 soc/intel/jasperlake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: Ia98748818fde9d1048355d4a144211a327c453ba
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91262
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 16:31:02 +00:00
Jeremy Compostella
83325f354b soc/intel/tigerlake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: Id8ac536813cadedc8d49ccb922d583a678436d2e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91261
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 16:30:46 +00:00
Jeremy Compostella
fe728d62c9 soc/intel/elkhartlake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: I09aec87fbac0861d3b50d26f475016fdd5aa6fb7
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91260
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-02-26 16:30:37 +00:00
Jeremy Compostella
749bae2f94 soc/intel/alderlake: Use common I2C devfn mapping
Replace platform-specific i2c.c with common implementation.

Defines SOC_I2C_DEVFN(n) macro and uses existing
CONFIG_SOC_INTEL_I2C_DEV_MAX Kconfig.

Change-Id: I5d8420231d1252986b8b7274a4c8c2f6d41f759d
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91259
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 16:30:28 +00:00
Jeremy Compostella
b21e861ab5 soc/intel/common/feature/i2c: Add common devfn mapping
Introduce a common implementation for I2C device function to bus
number mapping that can be shared across multiple Intel SoC platforms.

The implementation uses:
- CONFIG_SOC_INTEL_I2C_DEV_MAX: Kconfig value for max I2C controllers
- SOC_I2C_DEVFN(n): SoC-specific macro for I2C devfn names

This eliminates duplicate code across platforms that follow the
standard I2C controller numbering scheme.

Change-Id: Ib242d7a839ccb26394794382098cecb658adf698
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91258
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-26 16:30:13 +00:00
Patrick Rudolph
34c156427d soc/intel/common/block/lpc: Fix AMASK decoding in window detection
Commit 339ef9b5c9 ("soc/intel/common/block/lpc: Improve automatic
window opening") introduced a bug in the decoding of existing LPC I/O
window sizes from the LGIR (LPC Generic I/O Range) registers.

The AMASK field in the LGIR register stores bits [7:2] of the address
mask, with bits [1:0] implicitly always set to 1 (representing 4-byte
granularity). The original implementation incorrectly calculated the
window size as:

  exist_size = 1 + ((reg32 & LPC_LGIR_AMASK_MASK) >> 16)

This fails to restore the implicit lower bits [1:0] of the mask.

For example, a window programmed with size 8 bytes:
- Stored mask: (8-1) & 0xfc = 0x4 (bits [7:2] only)
- Incorrectly decoded: 0x4 + 1 = 5 bytes (WRONG)
- Correctly decoded: (0x4 | 0x3) + 1 = 8 bytes (CORRECT)

This bug caused failures on Panther Lake boards where existing windows
were not recognized as covering requested ranges, leading to:

  [ERROR] LPC: Cannot open IO window: 800 size 8
  [ERROR] No more IO windows

The fix properly reconstructs the full mask by OR-ing in the implicit
bits [1:0] before calculating the size:

  exist_size = ((amask_raw & 0xfc) | 0x3) + 1

BUG=b:486133237
TEST=Boot Panther Lake Fatcat board, verify no LPC window errors

Change-Id: I0b5f95c01da6ce84924a038106edec600e3b97f8
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91418
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-26 16:12:08 +00:00
Subrata Banik
b50c219557 soc/intel: Use centralized emergency battery shutdown hook
Migrate the low-battery power-off sequence in Intel common reset
logic to use platform_handle_emergency_low_battery().

This ensures that all Intel-based boards benefit from the unified
ChromeOS battery alert flow (LED notification and ELOG recording)
without duplicating the logic in the SOC layer.

BUG=none
BRANCH=none
TEST=Verified that low-battery shutdown on Intel platforms still
correctly logs ELOG and triggers visual alerts via the new hook.

Change-Id: I37c15a1f7dd5acee10389c0521e8c9b2f2d90d42
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91411
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-25 22:56:14 +00:00
Subrata Banik
a96f1a464b mb/google/bluey: Use common platform hook for emergency shutdown
Refactor trigger_critical_battery_shutdown() to use the newly
implemented platform_handle_emergency_low_battery() hook.

This removes duplicate logic from the Bluey mainboard directory and
ensures consistency with the ChromeOS common battery handling code
for visual alerts and ELOG recording.

BUG=none
BRANCH=none
TEST=Build and boot on Bluey; verify emergency shutdown still
triggers red LEDs and logs ELOG events correctly.

Change-Id: I28da29eb3f0033abe524f7ee12d6b823392e9766
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91410
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-25 22:56:05 +00:00
Subrata Banik
5c44e689ee vc/google/chromeos: Add platform hook for emergency battery shutdown
Introduce platform_handle_emergency_low_battery() to handle the
pre-shutdown sequence when battery levels are critical.

This hook ensures:
1. Visual feedback is provided (Lightbar set to red).
2. The event is logged to ELOG for post-mortem analysis.
3. A delay is enforced to ensure logs are committed and the user
   notices the alert before the AP powers off.

BUG=none
BRANCH=none
TEST=Verified lightbar turns red and ELOG is recorded on low battery
     boot.

Change-Id: I3f1b2757002d7a2a76dfb51d24a04e2d81b061bb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91409
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-25 22:55:57 +00:00
Subrata Banik
086d3a3232 mb/google/fatcat: Enable ChromeOS EC LEDs in romstage
Initialize the ChromeOS EC LEDs during the bootblock phase for the
fatcat mainboard. This ensures the LEDs are powered on early in the boot
process to provide visual feedback to the user.

This covers edge cases where the lightbar was left in an OFF state
by AP firmware and no EC reset occurred to restore defaults.

TEST=Boot moonstome and verify the LEDs turns on during the
bootblock stage.

Change-Id: I24ce78e4a30ea8fce7d7a90e01525c328db7e325
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91392
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-25 22:55:48 +00:00
Subrata Banik
2a821d8db6 mb/google/bluey: Early enablement of lightbar
Initialize and turn on the Chrome EC lightbar during the early romstage
initialization phase. This ensures that the lightbar is active and
ready to provide visual feedback as early as possible in the boot
process.

This covers edge cases where the lightbar was left in an OFF state
by AP firmware and no EC reset occurred to restore defaults.

BUG=b:477531197
TEST=Boot bluey and verify the lightbar turns on during the
early romstage.

Change-Id: I9336acc83d0455c21378ef7cb77939d4d5d54250
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91382
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-25 22:55:38 +00:00
Subrata Banik
d39f406f55 mb/google/bluey: Disable lightbar during low-power charging boot
Turn off the lightbar when the system boots into Low-Battery with
Charger or Off-Mode Charging states.

This ensures that the external lightbar does not provide conflicting
visual signals while the built-in display is showing the charging
animation. Additionally, this prevents unnecessary power consumption
from the lightbar in these power-restricted modes.

BUG=b:477531197
TEST=Boot bluey in off-mode charging; verify lightbar is disabled.
     Boot bluey normally; verify lightbar functions as expected.

Change-Id: Ice64d700aee82c780f872a3cb18f8a873e9189f5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91378
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-25 22:55:28 +00:00
Subrata Banik
b68ba24244 ec/google/chromeec: Add API to turn on lightbar
Implement google_chromeec_lightbar_on() to allow the host to
explicitly enable the Chrome EC lightbar. This function sends the
LIGHTBAR_CMD_ON sub-command through the EC_CMD_LIGHTBAR_CMD
host command.

BUG=None
TEST=Verified lightbar can be re-enabled after being turned off on
supported hardware.

Change-Id: I838525ba091281fefb3b6a33b9974037d06706d4
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91381
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-25 22:55:14 +00:00
Subrata Banik
5f9a1ad962 ec/google/chromeec: Add API to turn off lightbar
Implement google_chromeec_lightbar_off() to allow the host to
explicitly disable the Chrome EC lightbar. This is achieved by
sending the LIGHTBAR_CMD_OFF sub-command via the multiplexed
EC_CMD_LIGHTBAR_CMD host command.

This API is useful for power-saving scenarios or UI synchronization
during specific boot modes, such as low-battery or off-mode charging.

BUG=None
TEST=Verified that the lightbar turns off when this function is
called on supported hardware.

Change-Id: Ic118dbd5e9af64d06490dd16aa115aca2c1df3a5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91377
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-25 22:55:06 +00:00
Luca Lai
4028996c9d mb/google/nissa/var/pujjoquince: Add support for Micron MT62F1G32D2DS-031RF
Add Micron MT62F1G32D2DS-031RF memory part to mem_parts_used.txt
and generate corresponding SPD ID entry.

BUG=b:483845259
TEST=Use part_id_gen to generate related settings

Change-Id: I0476c4dcc55204b8fc278d969fa0f09462671b8c
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91172
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-25 18:24:32 +00:00
Angel Pons
800db242bd {soc,sb}/intel: Drop named object from ASL GPLD method
Creation of named objects within a method is highly inefficient, as per
IASL's remarks during DSDT compilation. But it is possible to use local
variables instead of named objects to store a package.

Update the `GPLD` method to use a local variable, instead of creating a
named object. While at it, unify cosmetics of the several copies of the
method across the codebase.

TEST: Build coreboot for the ASRock Z97 Extreme6 (Lynx Point) and run:
  - acpiexec -b "Evaluate _SB.PCI0.XHCI.HUB7.GPLD 0" build/dsdt.aml
  - acpiexec -b "Evaluate _SB.PCI0.XHCI.HUB7.GPLD 1" build/dsdt.aml
Observe return value is the same before and after this change.

Change-Id: Id66322150c90309f42f574584728c6b1db353c0c
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91390
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-25 16:57:48 +00:00
Kenneth Chan
57e30e6b9d mb/google/brask/var/moxoe: Switch memory to DDR5
Moxoe uses DDR5 SODIMM. Configure the board to support DDR5.

BUG=b:481186489
TEST=Builds successfully for moxoe.

Change-Id: Ic2f35dab77c24863cf63f6672ba14cbb560edf14
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91089
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-25 16:57:00 +00:00
Luca Lai
c069dc3eb1 mb/google/fatcat/var/ruby: Add settings for resolving EE noise
Because of EE noise issue, so add acoustic mitigation items.

Acoustic Noise Mitigation → Enable
Slow Slew Rate for IAcore Domain → <Fast/4>
Slow Slew Rate for GT Domain → <Fast/2>
Slow Slew Rate for Ecore Domain →  <Fast/4>
IAcore Disable Fast Package C-state ramp → True
GT Disable Fast Package C-state ramp → True
Ecore Disable Fast Package C-state ramp → True
P-Core Hysteresis  →  <3>
E-Core Hysteresis  →  <3>

BUG=b:479695733
TEST=Build and boot to OS, check EE noise are resolved.

Change-Id: I5d96cb3e87e9e5a2260b278746b7fce72be4fb59
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91412
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-25 16:56:48 +00:00
Tony Huang
5ac3e40282 mb/google/brox/var/caboc: Probe LGD touchscreen by fw_config
1. Probe with fw_config TOUCH_LGD_HID_I2C.
2. Update slave address to 0x10.

BUG=b:483588481
TEST=build brox coreboot image

Change-Id: I1286679f840b8335ab1877bf1c4e8f72d5704586
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91384
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-25 16:56:35 +00:00
Uwe Poeche
61ce86ea3e mb/siemens/mc_ehl6: Reduce clock rate for I2C1
Signal integrity measurement on I2C1 bus showed not optimal rise time.
Therefore the clock frequency is reduced from 400kHz to 100kHz to reach
optimal signal integrity also during coreboot runtime.

TEST=Signal integrity measurement during coreboot runtime.

Change-Id: I9721ede7aa645b2ca46f377bbe557f78c36581f6
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91079
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-25 16:56:05 +00:00
Jeremy Compostella
acd8f42410 soc/intel/skylake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates 12 lines of duplicate code.

The Skylake uart.c simply defined uart_devices[] array. The common
driver now handles this using the PCI_DEVFN_UARTn macros defined in
pci_devs.h.

This commit:
- Adds PCI_DEVFN_UART* aliases pointing to PCH_DEVFN_UART* for naming
  consistency with common code
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: Id686de6bb4dd9ccf78644817881b2abfb5ae0352
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91249
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-25 16:04:45 +00:00
Jeremy Compostella
a69d537e61 soc/intel/cannonlake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates duplicate code.

The cannonlake uart.c simply defined uart_devices[] array. The common
driver now handles this using the PCI_UART_DEVFNn macro defined in
pci_devs.h.

This commit:
- Adds PCI_DEVFN_UART* aliases pointing to PCH_DEVFN_UART* for naming
  consistency with common code
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: I819dc9853b4b44eb97238c1d5ad464dd9ccf7f9a
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91248
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-25 16:04:39 +00:00
Pranava Y N
e31d32443e Revert "mb/google/fatcat: Fix Gen4 SSD power sequencing"
This reverts commit 9702010123.

Fatcat RVP is sometimes unable to boot when non-serial image is flashed.
Reverting this CL until permanent verified fix is landed.

BUG=b:487523987
TEST=Able to boot fatcat to OS from Gen4 SSD slot

Change-Id: I5c61879cfb6e5f54d439284d1f75db5bfceddd1d
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91422
Reviewed-by: <srinivas.kulkarni@intel.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-02-25 10:47:39 +00:00
Jeremy Compostella
7b4fb78e34 soc/intel/elkhartlake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates duplicate code.

The elkhartlake uart.c simply defined uart_devices[] array. The common
driver now handles this using the PCI_UART_DEVFNn macro defined in
pci_devs.h.

This commit:
- Adds PCI_DEVFN_UART* aliases pointing to PCH_DEVFN_UART* for naming
  consistency with common code
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: I778faf19128f41509f70d324dd9ccf71d93cab0b
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91247
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2026-02-24 16:20:29 +00:00
Jeremy Compostella
bb95093b8f soc/intel/jasperlake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates duplicate code.

The jasperlake uart.c simply defined uart_devices[] array. The common
driver now handles this using the PCI_UART_DEVFNn macro defined in
pci_devs.h.

This commit:
- Adds PCI_DEVFN_UART* aliases pointing to PCH_DEVFN_UART* for naming
  consistency with common code
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: I8f7c68c8c44dd9ccf7cb49af8a3561a47d4aacc2
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91246
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2026-02-24 16:20:23 +00:00
Jeremy Compostella
61dc1e04e0 soc/intel/tigerlake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates duplicate code.

The tigerlake uart.c simply defined uart_devices[] array. The common
driver now handles this using the PCI_UART_DEVFNn macros defined in
pci_devs.h.

This commit:
- Adds PCI_DEVFN_UART* aliases pointing to PCH_DEVFN_UART* for naming
  consistency with common code
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: I9520bd3f4dd9ccf777e34c79a8c8237adb8b0fed
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91245
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-24 16:20:18 +00:00
Jeremy Compostella
38baf0c5f6 soc/intel/meteorlake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates duplicate code.

The meteorlake uart.c simply defined uart_devices[] array. The common
driver now handles this using the SOC_UART_DEVFN(n) macro defined in
pci_devs.h which uses token concatenation to map to platform-specific
PCI_DEVFN_UARTn definitions.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: Ic791eaa2521a44aba330e149fb0185094dd9ccf7
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91243
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-24 16:20:13 +00:00
Patrick Rudolph
44fcbf84b3 soc/intel/snowridge: Move defines to soc/pci_devs.h
Move the defines for PCI register SMM_FEATURE_CONTROL to the header
soc/pci_devs.h like it's done on other server platforms as well.

While on it add BIT1 that will be used in the following commit.

TEST=Not a function change, thus untested.

Change-Id: Ib05bb129f069ab1a6f4752a2dac829b3b7b41ec9
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91016
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-24 16:19:35 +00:00
Patrick Rudolph
dfcd63370d cpu/intel: Use existing defines for MTRR_CAP_MSR
Use existing define for SMRR and PMRR support instead of redefining
it in various places.

TEST=No functional change, thus untested.

Change-Id: Ie366a9d695800acd9713bd4e8393201a1f0a5ab2
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91015
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-24 16:19:26 +00:00
Patrick Rudolph
fd2cdf206d cpu/intel/smm/gen1: Optimize cpu_has_alternative_smrr
For most targets it's known if the CPU supports alternative SMRR
registers or not. Only on model_6fx runtime detection is necessary.

On all platforms this allows the compiler to optimize the code and
thus shrink the code size if alternative SMRR aren't supported.

TEST=On Lenovo X220 the ramstage is 308 bytes smaller.

Change-Id: I3a965d142f79ad587b8cedc9b4646b05e2a45f8b
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91014
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-24 16:19:14 +00:00
Angel Pons
f96644e774 nb/intel/haswell: Do not print ME status twice
The `intel_early_me_init_done()` function prints the ME status. In order
to see the ME status once in all paths, have the aforementioned function
only call `intel_early_me_status()` before handling a reset request.

Change-Id: I42ad1b25889a21047b7cf55e7940293e73794d8b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91374
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-24 16:18:56 +00:00
Angel Pons
d9bc4740da nb/intel/haswell: Fix DDR frequency reporting
DDR frequency (in MHz) was doubled for no reason, then doubled again to
convert it to MT/s. Moreover, the calculations assume a reference clock
of 133 MHz, but a 100 MHz reference clock also exists.

Add two functions: `is_100_mhz_refclk()` to check whether the reference
clock is 100 MHz, and `get_ddr_freq_mhz()` to get the DDR frequency, in
MHz. Use both functions in `report_memory_config()` to show the correct
DDR ref. clock and frequency, and use one in `setup_sdram_meminfo()` so
that SMBIOS tables contain the correct memory speed.

Tested on ASRock Z97 Extreme6 with four DDR3-1600 sticks, DDR frequency
is correctly reported as 800 MHz with either reference clock frequency:

Default 133 MHz reference clock:
    memcfg DDR3 ref clock 133 MHz
    memcfg DDR3 clock 800 MHz

After forcing 100 MHz ref clock for 800 MHz (edit NRI's `init_mpll.c`):
    memcfg DDR3 ref clock 100 MHz
    memcfg DDR3 clock 800 MHz

Also, SMBIOS type 17 correctly reports memory speeds of 1600 MT/s:

$ sudo dmidecode --type 17 | grep -i speed
	Speed: 1600 MT/s
	Configured Memory Speed: 1600 MT/s
	Speed: 1600 MT/s
	Configured Memory Speed: 1600 MT/s
	Speed: 1600 MT/s
	Configured Memory Speed: 1600 MT/s
	Speed: 1600 MT/s
	Configured Memory Speed: 1600 MT/s

It is expected that behaviour using either MRC binary is the same since
the `MC_BIOS_REQ` and `MC_BIOS_DATA` registers have to be programmed in
order for the DDR clock to start running. The decision to test with NRI
is because one can easily change the chosen reference clock to 100 MHz.

Resolves: https://ticket.coreboot.org/issues/624

Change-Id: Idead9cd55b453d3ff4695c977dee763ff50830f8
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91375
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-24 16:18:51 +00:00
Angel Pons
6a1b016184 nb/intel/haswell: Tidy up memory info prints
Be consistent when printing the channel assignment, and use unsigned
printf specifiers since the values themselves are unsigned.

Change-Id: I66b93233707dec73dc7a25423789a24770ac678f
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91376
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
2026-02-24 16:18:46 +00:00
Subrata Banik
f89ac4e6ce soc/mediatek/common: Adjust splash logo bottom margin
Increase the logo_bottom_margin from 100 to 200 in the display_logo
configuration if FRAMEBUFFER_SPLASH_TEXT Kconfig is enabled.

This adjustment ensures the OEM footer logo and associated
splash text are rendered higher on the screen, improving visibility
and alignment with updated UX requirements.

BUG=None
TEST=Boot MediaTek device and verify the splash text is 200px from
the screen bottom edge as expected.

Change-Id: I490e50e200dfffedf24cb30fe0ca6ea6ae037d3d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91383
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-24 02:49:07 +00:00
Sowmya V
f01e11ac5c vc/intel/fsp/fsp2_0/wildcatlake: Update WCL FSP headers to version WCL.3515.03
Update Wildcatlake FSP headers to align with the FSP version WCL.3515.03.

BUG=b:475358197
TEST=Build the ocelot CB with the latest header changes.

Change-Id: I1232523e662d91cf43e7ed6bcc4fbefeaf8447e9
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90753
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 16:18:09 +00:00
Jeremy Compostella
326e33b82d soc/intel/pantherlake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates duplicate code.

The pantherlake uart.c simply defined uart_devices[] array. The common
driver now handles this using the PCI_UART_DEVFN macro defined in
pci_devs.h.

This commit:
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: I59443ece21bc45c8b6986fdd2bc24dd9ccf7a543
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91244
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 16:16:41 +00:00
Jeremy Compostella
3337e56b50 soc/intel/alderlake: Use common UART device list driver
Remove platform-specific uart.c and switch to the common UART device
list driver. This eliminates 18 lines of duplicate code.

The Alder Lake uart.c simply defined uart_devices[] array with
PCH_DEVFN_UART* macros. The common driver now handles this using the
PCI_UART_DEVFNn macro defined in pci_devs.h.

This commit:
- Adds PCI_DEVFN_UART* aliases pointing to PCH_DEVFN_UART* for naming
  consistency with common code
- Selects SOC_INTEL_COMMON_FEATURE and
  SOC_INTEL_COMMON_FEATURE_UART_DEVICES in Kconfig
- Removes uart.c and updates Makefile.mk

Change-Id: Iafd4881c44dd9ccf7e204378bbafafbd1c884db0
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91242
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 16:16:07 +00:00
Jeremy Compostella
bb941824ca soc/intel/common/feature/uart: Add common UART device list driver
This patch introduces a common UART device list implementation that
eliminates duplication across multiple Intel SoC platforms. Instead of
maintaining nearly identical uart.c files in each platform directory,
this common driver uses platform-specific macros to define UART device
function numbers.

The common implementation expects each platform to define the following
macros in their soc/pci_devs.h header:
- PCI_DEVFN_UART0
- PCI_DEVFN_UART1
- PCI_DEVFN_UART2

This approach maintains platform flexibility while reducing code
duplication and simplifying maintenance. The driver is compiled across
all stages (bootblock, verstage, romstage, postcar, ramstage, smm) to
support various UART usage scenarios.

Change-Id: Iba82a2fe24dd9ccf704e4a0fadc481b63662b94d
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91241
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-23 15:04:28 +00:00
Jeremy Compostella
78295974f8 soc/intel/common: Add feature directory for SoC-specific common code
Introduce a new directory structure src/soc/intel/common/feature/ for
sharing SoC-specific code across Intel SoC generations to reduce code
duplication.

Unlike the common block code (src/soc/intel/common/block/) which is
intended for reusable IP blocks, the feature code is for SoC-specific
functionality that is similar (but not identical) across multiple
generations. Platform-specific differences are handled through
configuration options or platform-specific macros.

This commit:
- Creates src/soc/intel/common/feature/ directory
- Adds feature/Kconfig defining SOC_INTEL_COMMON_FEATURE
- Adds feature/Makefile.mk to build subdirectories
- Updates src/soc/intel/common/Kconfig.common to source feature/Kconfig
- Updates src/soc/intel/common/Makefile.mk to include feature/ subdirs
- Documents the common code directory structure in
  Documentation/soc/intel/code_development_model/code_development_model.md

Change-Id: Idb842376a0a785a6439eeeb5a3a934d0bc575b09
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91360
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-23 15:04:23 +00:00
Angel Pons
f691421daf soc/intel/common: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

In this case, the callback function already treated the option as if
it were a boolean option, which likely only worked by chance.

Change-Id: Ic4b86c45e4837fcdb30cf594bb7e30400864e77e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91356
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-23 14:58:55 +00:00
Angel Pons
24870f54e0 soc/intel/skylake: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I6c4e44507fc371fc8b693b2289c58eb61ac84aa8
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91355
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:58:52 +00:00
Angel Pons
666e66800c soc/intel/tigerlake: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I3ac872881627179cb4ef344132bb601c78ca3a01
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91354
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-23 14:57:39 +00:00
Angel Pons
12f99ab067 soc/intel/alderlake: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I7f3bb4f13a143e37869c22d66a514581a88deeb2
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91353
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:57:32 +00:00
Angel Pons
47bc0a727c soc/intel/jasperlake: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: If9030e770a59d9de87f7b0f2112887db6126aacf
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91352
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-02-23 14:57:28 +00:00
Angel Pons
1b0147f05b soc/intel/meteorlake: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I4e4f5c071f4299876e4ecd9defe7782c85eac3d8
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91351
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-02-23 14:57:23 +00:00
Angel Pons
b935d5b058 soc/intel/cannonlake: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I4be1ac4644c461fd64766e27383e479ff518a889
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91350
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:57:19 +00:00
Angel Pons
daa32be457 soc/intel/apollolake: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I009413db0873c42a98cfc8bddb8613c66d496947
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91349
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:57:14 +00:00
Angel Pons
90f9d9e7c6 mb/google/poppy: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I491f92b334d0e9f98737b94a7232e9361e86743d
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91348
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:57:09 +00:00
Angel Pons
6b481c73dd mb/google/hatch: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I77bfefd0bf173da34675ad64253daae472834bb8
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91347
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-23 14:57:05 +00:00
Angel Pons
9a58dc7fee mb/google/auron: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: Ib480c7dcd99eb5bf16b124584b4e7dbad90d0c84
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91346
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-23 14:56:59 +00:00
Angel Pons
e7c05d666c mb/google/volteer: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I8f3a69dfb9fb915c44c9a5486512aa82c2615fab
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91345
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-23 14:56:54 +00:00
Angel Pons
71b7167396 mb/lenovo/sklkbl_thinkpad: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

In this case, the callback function already treated the option as if
it were a boolean option, which likely only worked by chance.

Change-Id: I747ecd0b5a33d2773eda409e6578362d694154ee
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91344
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:56:49 +00:00
Angel Pons
ed10b36edf ec/google/chromeec: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

In this case, the callback function already treated the option as if
it were a boolean option, which likely only worked by chance.

Change-Id: I7e53c791d48bd5ce5271505c59856bf7ff18e6d0
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91343
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:56:45 +00:00
Angel Pons
d19e5d2550 ec/lenovo/pmh7: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

Change-Id: I3c73f289271eb4bba899bbfe9d3036171cb31d7b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91342
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-23 14:56:40 +00:00
Angel Pons
0ff3c3d2ec ec/lenovo/h8: Replace CFR enums with booleans
Boolean options are intended to represent generic "Enable"/"Disable"
options, but without enum options' extra bloat in the CFR structures.

The "volume" option has been left as-is because the code reading its
value does not seem to handle it like a boolean.

Change-Id: If183957cff6097187904e0d76c7d3ad997fe365c
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91341
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-23 14:56:35 +00:00
Angel Pons
f9f81e4839 mb/lenovo/x220: Replace CFR enums with booleans
Commit f530d37da7 ("mb/lenovo/x220: Add PCIe ports in CFR") introduced
several enum options for "Enabled"/"Disabled" settings. These work like
bool options, except that they add extra bloat to the resulting CFR data
structures.

Replace the enum options with bool options. Also rename the macro as it
no longer generates an enum option. While we're at it, properly format
"Wi-Fi" and drop a blank line at the start of a file.

Also, since checkpatch complains about the macro including a trailing
semicolon, drop it from the macro definition and add it at the end of
every use of the macro.

Change-Id: I7889e22d12e01171ed77ae98d29bbd067e45d82b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91340
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-23 14:56:28 +00:00
Angel Pons
7e8850a862 mb/google/*/cfr.c: Drop initial empty line
For some reason, there is a blank line at the beginning of these files.
There is no reason to keep this line, so drop it for consistency.

Change-Id: I38092fae7a3f32b34c15d1b4500c4009fca4d5e2
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91339
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-02-23 14:56:16 +00:00
Subrata Banik
220669643b soc/qualcomm: Add Kconfig to skip redundant MMU toggling
Introduce SOC_QUALCOMM_QCLIB_SKIP_MMU_TOGGLE to allow platforms to
maintain the MMU state across the QCLib execution boundary.

Traditionally, coreboot enables the MMU and performs cache maintenance
before disabling it and handing control to QCLib. QCLib then performs
its own initialization: saving MMU registers, performing cache flushes,
and disabling the MMU before returning to coreboot. During the
subsequent entry, QCLib would restore registers and repeat the cycle.

By selecting this Kconfig, we optimize boot time by avoiding these
repeated enable/disable operations. QCLib is permitted to utilize the
MMU context already established by coreboot, bypassing redundant
reinitialization, register restoration, and expensive cache flushes
to the Point of Coherency.

- Legacy platforms continue to toggle the MMU by default.
- Platforms selecting this option bypass mmu_disable() and mmu_enable().

BUG=b:449871690, b:477139887
TEST=Able to reduce boot time by 600ms while booting google/quenbi.

Change-Id: I6b5e199afc27dcb27d74d2753d2ce269ee22f0ac
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90041
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-21 03:59:39 +00:00
Appukuttan V K
c9578eac24 mb/google/ocelot: Add THC-SPI Touchscreen support in fw_config
Add support for THC-SPI touchscreen configuration in the GPIO pad-based
override logic.

The GPP_E17 pin serves dual purposes depending on the hardware
configuration:
 - When touchscreen THC-SPI is present: NF3 (THC HID-SPI CS0)
 - When fingerprint sensor is present: NF5 (GSPI0 CS0)

The firmware configuration logic now prioritizes touchscreen THC-SPI
over fingerprint sensor configuration, as these are mutually exclusive
hardware configurations.

BUG=None
TEST=Build ocelot and verify correct GPIO configuration based on
fw_config settings for both touchscreen THC-SPI and fingerprint sensor
configurations

Change-Id: I93deb6352cd0f1168ad53819151c705c6ce48b28
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91197
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: P, Usha <usha.p@intel.com>
2026-02-19 19:22:37 +00:00
Pranava Y N
d88e98cf49 mb/google/fatcat/lapis: Remove RTD3 config for SSD
The lapis hardware design does not have a power load switch for
the SSD. Without it, the platform cannot cut off the main power rail
to the device to enter D3cold.
Therefore, remove the RTD3 chip driver and its associated configurations
in the overridetree to align with the hardware capability. The system
will support D3hot instead of D3cold.

BUG=None
TEST=Build and boot to OS on Lapis, verify SSD functions correctly and
power state transitions align with HW design.

Change-Id: I61f15165e1d41c4f347499e2a7200f30d18bcca7
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91308
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-19 19:22:24 +00:00
Hualin Wei
24866fefef mb/google/fatcat/var/lapis: Add UFSC bit of new FP MCU
Lapis requires the addition of a new fingerprint module, and
the fingerprint module needs to be distinguished via UFSC when
updating the fingerprint module fw.

BUG=b:463867670
TEST=./config/payload_utils/generate_ufsc.py ap

Change-Id: I69846aa404adc76c6446de68749f0fe469e570a3
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90602
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-19 19:22:09 +00:00
Patrick Rudolph
33d873324e mb/lenovo/*: Drop unused ACPI code
Drop useless ACPI code and make the codebase look more like the
T430 codebase. IASL doesn't remove empty scope blocks and it
causes binary differences in the produced DSDT.

TEST=TIMELESS build shows that T530 DSDT is now identical to the
     T430 DSDT.

Change-Id: Ie65668b98c5ee772a926a265d09ee20ab8d2e15e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91284
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:21:58 +00:00
Patrick Rudolph
571dbbe345 mb/lenovo/t430: Move TPM in devicetree.cb
Move the TPM entry to make the devicetree.cb look like the T530
devicetree.cb. Should not change any functionality, but changes the
TIMELESS build artifact.

Change-Id: Ia49c8fe9781e4d97aaf5ef38d5d76fdfc8c0f0be
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91282
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:21:36 +00:00
Patrick Rudolph
06446dd0ac dram/ddr3: Add speed in MT/s
Fill in the speed in MT/s that the DIMM currently runs at and the
speed it could run at.

Change-Id: I936b97bd517f2fcf80ff403171fc89d4a4487761
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90396
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 19:20:43 +00:00
Michał Żygowski
bf148cae0a lib/dimm_info_util.c: Handle 16-bit memory bus extension for ECC
Some silicon initialization modules, like OpenSIL report bus width
extension as 16 bits for ECC for DDR5 memories. Handle this case
correctly for DDR5 and LPDDR5 memories by reporting appropriate
bitfield of the SPD width. This field is used later by coreboot to
calculate the bus extension again, which results in 16bit extension
for ECC.

Change-Id: Ia0a9c221a5d047dd7feb212027f5da2399ccb8e1
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89482
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:20:28 +00:00
Sean Rhodes
a3923d678f ec/starlabs/merlin: fix ITE CMOS index mapping
ACPI stores trackpad_state and kbl_brightness as small indices in
CMOS (per cmos.layout and RPTS/RWAK). The ITE init path treated the
CMOS byte as the EC's raw encoded value, so non-default settings
would fall back (e.g. trackpad disabled, kbd backlight brightness).

Treat CMOS-backed values as LUT indices and fix the kbl_brightness
fallback to use an index.

Change-Id: Id8d320c9544c9fa73b234817717c47f1fa169c64
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91301
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 19:20:03 +00:00
Keith Hui
e47952c3a7 mb/asus/p8x7x-series: Enable common SIO ASL code
Bring in ACPI ASL code from sio/nuvoton/common and hook up the
SIO ACPI suspend hook.

TEST=PS/2 keyboard can wake asus/p8z77-m from S3 but not S5, as
expected.

Change-Id: I8d38928adb840d6fcb4703dd9ad69480813156ca
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89746
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 19:19:49 +00:00
Keith Hui
e82ecc739d sio/nuvoton/nct6776: Switch to common init code
TEST=abuild

Change-Id: I10ced926e8844a54fe2c6e892f10459689bbd07b
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89745
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 19:19:43 +00:00
Keith Hui
e72a325c40 sio/nuvoton/nct{5535,6779}d: Use new common init code
Retire the short-lived special setup to share C code between them, in
favour of the common init code provided by CB:82632.

Tested on asus/p8z77-m with SeaBIOS 1.17.0.

Change-Id: I699fc08d9bfc56dad28eb20042884e979785c070
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89744
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:19:36 +00:00
Keith Hui
65c4ea0bfb superio/acpi/pnp_kbc.asl: Allow changing device and PNP IDs
Currently DSDT keyboard and mouse device declarations generated by
this file use IDs derived from the logical device number, in the
form of KBD# and PS2# where # is the LDN. This is far from the norm
for mainboards with only one super I/O chip, where they are named
PS2K and PS2M, which is also the names used by the much more
simplistic ASL code in drivers/pc/pc80. They also use hard coded
PNP IDs.

This patch adds two preprocessor symbols, SUPERIO_KBC_PS2KID and
SUPERIO_KBC_PS2MID, to allow these device IDs to be changed, most
likely to PS2K and PS2M. If not defined, existing naming logic is
kept.

Their _HIDs are also changed to refer to EISA ID from Kconfig,
like pc80 does. This in theory allows mainboard to change
their PNP IDs if needed. Only Lenovo laptops actually change this
from the Kconfig default, which is also the formerly hardcoded value.

Goal is to allow eliminating pc80 in favour of this when appropriate,
to avoid potential conflicts that may arise from having duplicate PS/2
devices defined.

TEST=With new symbols undefined, generated dsdt.asl did not change.
Generated dsdt.asl checked for correctness manually via temporary
manual edits, with all combinations of preprocessor controls.

Change-Id: I0dcc94c2cb09fee2e22776fd800c3435a9409c84
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90576
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:19:30 +00:00
Keith Hui
2de0c9575d sio/nuvoton/nct6776: Switch to common Nuvoton ASL code
TEST=Processed dsdt.asl for mainboards using this super I/O chip
only contain changes specifically made by CB:89740.

Change-Id: Id8067e6058b650121e7c830a0cb298752a45d62c
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89743
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-19 19:19:23 +00:00
Keith Hui
94a356e0c8 sio/nuvoton/nct5535d: Use common ASL code
Make this chip use the common Nuvoton ACPI code before mainboards using
this chip begin to come online.

Change-Id: I000ebc92d1c408a865fb803a2e540ca3cca53ee7
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89742
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:19:16 +00:00
Keith Hui
4cee52e457 sio/nuvoton/nct6791d: Enable common ASL code
Define the requisite super I/O chip identities and bring in the common
ACPI code.

Change-Id: I2fbd77b0ddc5618a2da844f6e18ce483774c4cf0
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90575
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:19:10 +00:00
Keith Hui
c30802d6fb sio/nuvoton/nct6779d: Enable common ASL code
Define the requisite super I/O chip identities and bring in the common
ACPI code.

Change-Id: I1db85c8d0028a1c3e4a5582f3d0e503b71beac70
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90574
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:19:02 +00:00
Keith Hui
7876bcaa86 sio/nuvoton: Implement common ramstage keyboard/ACPI init routines
With few exceptions, Nuvoton super I/O chips have the same
configuration registers.

This patch provides a single set of initialization routines to set
up power loss resume, initialize keyboard, and handle switching
PS/2 port role for mainboards with only one PS/2 port.
Power loss resume handling and PS/2 port role switching can be
controlled using nvram or CFR options. Mainboards lacking such
options will need to add them separately.

The common routines support all currently in-tree Nuvoton SIO chips
except nct5104d, nct6687d, npcd378, wpcm450. They will be hooked up
in follow-up patches.

There is also SMM code to disable PS/2 keyboard wakeup before going to
S5, otherwise the system will also power up with any key on the
keyboard, which is most likely undesirable. To use this, mainboards
must set Kconfig SUPERIO_NUVOTON_PNP_BASE, add smm.c to Makefile.mk
and call it from mainboard_smi_sleep().

Update the help text of HAVE_SHARED_PS2_PORT Kconfig with the final
option name used.

TEST=Both power loss resume and PS/2 port role control work on
asus/p8z77-m with entire train of supporting patches applied.

Change-Id: Ibaddcaa2d77c5b06ddfbb6dbaac00df5e72dd4bd
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82632
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:18:57 +00:00
Sean Rhodes
afeca9f422 mb/starlabs: disable TCO INTRUDER# SMI by default
INTRUDER# may be asserted continuously on some Star Labs systems.
Disable routing the event to SMI by default to avoid SMI storms when TCO
SMIs are enabled (e.g. via BOOTMEDIA_SMM_BWP).

This allows boards, like starbook_tgl, which assert INTRUDER# constantly
to boot.

TEST=build/boot starbook_tgl with BOOTMEDIA_SMM_BWP selected

Change-Id: I6a2a188a295cc6be3af2043ea902d45c5bb5b95d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91336
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:18:37 +00:00
Sean Rhodes
c996684f40 intel/smm: make TCO INTRUDER# SMI optional
Some platforms can have INTRUDER# asserted continuously. If it is routed
to SMI, this can cause an SMI storm and prevent boot.

Introduce SOC_INTEL_COMMON_BLOCK_SMM_TCO_INTRUDER_SMI_ENABLE to control
whether INTRUDER# is routed to SMI, while keeping TCO SMIs available for
other uses (e.g. SPI sync SMIs needed by BOOTMEDIA_SMM_BWP).

TEST=build

Change-Id: I33eb8ce3bee64c95a4d5a6f95a096577d55c742d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91335
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:18:31 +00:00
Patrick Rudolph
339ef9b5c9 soc/intel/common/block/lpc: Improve automatic window opening
When an existing LPC window covers an IO range, but is bigger or starts
earlier the current code doesn't recognize it. It will open another
window overlapping an existing one.

Check if an existing LPC IO window covers the current one and allow it
to be bigger than the entry.

TEST=Thinkpad X280 still boots and error messages are gone.

Should fix the following line seen in the coreboot log of the Lenovo
T480 and compatible:
[ERROR]  LPC: Cannot open IO window: 1604 size 1
[ERROR]  No more IO windows
[ERROR]  LPC: Cannot open IO window: 1606 size 1
[ERROR]  No more IO windows
[ERROR]  LPC: Cannot open IO window: 1610 size 10
[ERROR]  No more IO windows

Change-Id: I586066238b801d2abb1122698fb4092ee0b2f6b9
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91171
Reviewed-by: Ladislav Ezr <ladislav@ezr.cz>
Reviewed-by: Johann C Rode <jcrode82@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 19:18:18 +00:00
Matt DeVillier
f1e4de7fbf mb/google/dedede/var/galtic: Add fw_config option for touchpad type
Galtic has two Elan touchpad options, and since both use the same i2c
address, the runtime i2c detection performed during SSDT generation
can't distinquish between them, leading to both devices being added
to the SSDT. This isn't a problem for Linux, but Windows can't
deal with two touchpads being enabled and using the same resources.

To mitigate this, add a new fw_config field which allows selection
between the two touchpad models, as well as a fallback option for
all devices which are not configured. Users who need to can set the
touchpad type in the SSFC using ectool, and then coreboot will
enable only the selected touchpad at boot.

TEST=build/boot google/dedede (galnat) after setting touchpad type
in SSFC. Verify correct touchpad selected via fw_config, only one
touchpad entry present in SSDT, and touchpad functional under both
Linux and Windows 11.

Change-Id: I36797eb5c8f262782380f95ff3c2e38443cf00c0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83606
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-19 19:17:52 +00:00
Matt DeVillier
08b05f56a6 Revert "mb/google/dedede/galtic: Add CFR option for touchpad type"
This reverts commit ee599486ac.

Having the touchpad type selectable via CFR causes more user confusion
than is solves; switch to using SSFC/fw_config in a subsequent patch.

Change-Id: Ie35d1db19dd2f22ea19289f60dbd86cbf1fa137e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90977
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 19:17:45 +00:00
Sowmya V
ed5a993f0f mb/google/fatcat/lapis: Enable eSOL feature
This patch enables the eSOL feature for lapis.

BUG=b:458353982
TEST=Build and boot google/lapis, verify display initialization

Change-Id: I12cf423a48e6b497f3b79f26f40f7d16d87e6668
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91310
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: <srinivas.kulkarni@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 02:45:22 +00:00
Subrata Banik
ae2e78ce31 mb/google/fatcat/var/moonstone: Configure CDCLK frequency for display
Configure the Core Display Clock (CDCLK) frequency selection by setting
the 'vga_cd_clk_freq_sel' register to 1 in the moonstone variant
overridetree. This ensures the display engine operates at the required
frequency (442Mhz) for the panel to meet the hardware configuration.

BUG=b:484559627
TEST=Build and boot google/moonstone, verify display initialization.

Change-Id: I4d3d0082f9f221333150bd5b427b3f20e7a2f154
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91236
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 02:45:13 +00:00
Sowmya V
d0e139437a mb/intel/ptlrvp: Configure CDCLK frequency for display
Configure the Core Display Clock (CDCLK) frequency selection by setting
the 'vga_cd_clk_freq_sel' register to CD_CLK_461MHZ in the ptlrvp
baseboard devicetree. This ensures the display engine operates at
the required frequency for the panel to meet the hardware configuration.

BUG=b:458353982
TEST=Build and boot ptlrvp, verify display initialization.

Change-Id: I34abb742ab5d95da4d21ea22da2b1bc7270f1a9c
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91311
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-19 02:45:05 +00:00
Sowmya V
5eb9e9999d mb/google/fatcat: Configure CDCLK frequency for display
Configure the Core Display Clock (CDCLK) frequency selection by setting
the 'vga_cd_clk_freq_sel' register to CD_CLK_461MHZ in the fatcat
baseboard devicetree. This ensures the display engine operates at the
required frequency for the panel to meet the hardware configuration.

BUG=b:458353982
TEST=Build and boot fatcat/lapis, verify display initialization.

Change-Id: If8812bc66149b402adb7b9159f3a28d35903b785
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91309
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-19 02:44:57 +00:00
Sowmya V
6186399a0f soc/intel/pantherlake: Add CD clock frequency control support
This change adds support for configuring higher CD Clock frequencies
for VGA SOL initialization during the Pre-Memory phase.
This feature allows BIOS to request specific display core clock
frequencies when VGA support is enabled during MRC training.

The VgaInitControl field in IGPU_PEI_PREMEM_CONFIG has been extended
to include BIT6-7 for CD Clock frequency selection:
* 0: No higher CD Clock required
* 1: 442 MHz
* 2: 461 MHz

BUG=b:458353982
TEST=Build and boot fatcat/lapis, verify display initialization.

Change-Id: I82fae0d21bb83ed26aad73b830ed15fcd626a9ae
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90795
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-19 02:44:50 +00:00
Jon Murphy
2439a12a68 mb/google/volteer/var/elemi: Check FP presence against SKU ID
Add/update FP enable/disable based on SKU ID. This is meant
to resolve a UMA issue with devices that had the FPMCU populated on
non-fp devices.  Since the FPMCU is present, and the firmware enables
the power GPIO's based on variant, not SKU, the devices were reporting
data on fingerprint errantly.  Specify the SKUs which should not have a
FP sensor and default to true to maintain the legacy behavior for
undefined devices and limit risk.  Variants which do not have FP SKUs
will be unaffected.

BUG=b:354769653,b:484162286
TEST=Flash on device, test FP.
Disable test SKU, flash on device, test FP.

To test, run `ectool --name=cros_fp version` in the shell
When enabled, the fpmcu fw version should be displayed.
When disabled, an error should be displayed because the fpmcu
is inaccessible.

Change-Id: I6998534e3b9c5909839aceb886ab04a04f394289
Signed-off-by: Jon Murphy <jpmurphy@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91329
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2026-02-18 18:23:23 +00:00
Enzo Potenza
7239385f5e mb/qotom/qdnv01: Add CRB using intel/harcuvar
Mainboard features:
- Intel Atom C3758R SoC, passive heatsink
- DDR4 ECC, 2x SO-DIMM
- 4x 10 GbE (SFP+), Intel X553
- 5x 2.5 GbE (RJ-45), Intel i226
- 2× M.2 (PCIe 3.0 × 2)
- 2x SATA connector
- 1× Serial on RJ-45
- 2x USB3.0, 1x USB2.0
- 1x VGA on AST2400
- 1× Mini SAS (SFF8087)

Tested:
- booted with EDK2 payload
- all devices are recognized correctly

Not working:
- VGA pre OS
- PC speaker

Untested:
- mini SAS (lack of hardware for it)
- special M.2 for 4G/5G (lack of hardware for it)

Change-Id: Idb814ab8b02d85730bf072f57368bbf2ccefc19b
Signed-off-by: Enzo Potenza <enzo.potenza@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89346
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-18 17:55:52 +00:00
Subrata Banik
968c60c0d9 mb/google/bluey: Check for battery presence in off-mode charging
Verify that a battery is actually present before setting the boot
mode to LB_BOOT_MODE_OFFMODE_CHARGING. This prevents the system
from incorrectly entering a charging state when running on AC power
without a battery connected.

TEST=Build and boot on bluey with and without battery present.
Verify boot mode transitions correctly.

Change-Id: I67098bc06b34c25429daf516f3891c50930209fe
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91290
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-18 11:52:25 +00:00
Patrick Rudolph
4e6c9f5954 sb/intel/bd82x6x/early_usb: Add mainboard hook for USB devices
Allow the mainboard code to disable USB ports based on GPIO straps,
SKU or user configuration. The mainboard code must implement
mb_usb20_port_override() in romstage to disable USB ports. Ports
that are statically disabled in devicetree cannot be enabled
using this method.

Change-Id: I0fd01e12c05d633695a5fb19ff804e9dc588d6ed
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91234
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-17 20:47:24 +00:00
Patrick Rudolph
3a6298ad85 mb/lenovo/x220: Correct USB port config
- Drop USB OC2#, OC3#, OC4#, OC6#
  Those are either pulled high or used as GPIO and used by internal
  devices only.
- Disable Port 4, 6, 7. They are unused.
- Add comments with devices connected.

TEST=On Lenovo x220 the USB ports P00, P01, P02, P03, P08, P09, P11,
     P13 are still working.

Change-Id: I00b0a36a80b812adb9a4ee976dabb528afd36409
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91233
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 20:47:15 +00:00
Patrick Rudolph
f530d37da7 mb/lenovo/x220: Add PCIe ports in CFR
Allow the user to disable PCIe ports that are not required.

Change-Id: Id2d7640255c347c768387408f27e9f5448cbef01
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91232
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-17 20:47:08 +00:00
Patrick Rudolph
3bb3188acd mb/lenovo/x220: Select DRIVERS_OPTION_CFR_ENABLED
Automatically use the CFR driver when EDK2 payload and SMMSTORE
are enabled. Selects the UEFI variable option backend by default
when SMMSTORE is enabled.

Change-Id: Ib7cb122dc863d3449c670d1917ebdd2a0a6317d0
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91231
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-17 20:47:03 +00:00
Patrick Rudolph
dec409e9a4 payloads/external/edk2: Warn user about missing Kconfig option
Add a build time warning in case the DRIVERS_EFI_VARIABLE_STORE is not
selected, but UefiPayload will have a working firmware menu and will
write non-volatile variables into flash.

Without DRIVERS_EFI_VARIABLE_STORE coreboot will be fully functional,
but the settings made in the firmware menu have no effect at all.

Change-Id: Ib8872297d5d3451834f8ccfdaaee32f23727c178
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91230
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-17 20:46:56 +00:00
Matt DeVillier
c731fd720c lib/spd_bin: Add support for DDR5 SPD parsing
Without explicit DDR5 support, print_spd_info() was decoding DDR5 DIMMs
with the DDR4 SPD layout, so banks, ranks, rows, columns, and module
size were all displaying incorrect values.

Add DDR5-specific decoding in spd_bin.c using JESD400-5 byte positions.
Define these offsets in ddr5.h and branch in each getter when
dram_type is DDR5 so printed SPD info matches the actual module.

Fix printk reporting DIMM module size to only report "per channel" when
the DIMM actually contains multiple channels.

TEST=build/boot on out-of-tree board Erying SRMJ4 and Starlabs Starbook
MTL. Verify DIMM info printed in cbmem console is correct.

Change-Id: I7f418db3f89c67c2a71b2c327bb511a78faf7300
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91145
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 20:46:41 +00:00
Cliff Huang
59593b5b5c mb/google/fatcat: Add x1 slot power sequence and support AICs with PRSNT2#
Address x1 slot enumeration issues for certain add in cards (AICs)
during boot. This change implements proper power sequencing and adds
support for AICs that use PRSNT2# signaling instead of ClkReq#. The
x1 slot power rail (X1_PCIE_SLOT_PWR_EN via GPP_A8) is pull-high by
design, with GPP_A08 PAD defaulting to GPI configuration. This enables
slot power during early boot phases. PERST# (GPP_D19) is logically
ANDed with PLTRST#, ensuring PLTRST# de-assertion occurs only after x1
slot power stabilization, maintaining proper PCIe timing automatically.

For scenarios requiring power-off at boot, the following sequence
ensures compliance with PCIe link training timing requirements:

Step 1 (romstage): ClkReq PAD off; PERST# asserted; power off
Step 2 (ramstage at BS_PRE_DEVICE exit): Power on; ClkReq PAD on (if
       used)
Step 3 (ramstage at BS_DEV_INIT_CHIPS entry): PERST# de-asserted

The CBI fw_config SD field has been redefined to accommodate different
AIC types:
- SD_BAYHUB: For AICs supporting ClkReq# signaling
- SD_GENSYS: For AICs using only PRSNT2# signaling

BUG=None
TEST=Boot Fatcat board with AIC cards configured via CBI fw_config SD
field (SD_BAYHUB or SD_GENSYS). Confirm PCIe device enumeration
appears correctly in boot log. For instance:
[SPEW ]  do_pci_scan_bridge for PCI: 00:00:1c.0
[DEBUG]  PCI: pci_scan_bus for segment group 00 bus ae
[DEBUG]  PCI: 00:ae:00.0 [1217/9860] enabled

The device should be seen from lspci command, such as:
ae:00.0 Class 0805: Device 1217:9860 (rev 01)

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I94a7ee2ecd8d3fd83006297ef68f97ff49e47595
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90000
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 18:04:09 +00:00
Bora Guvendik
9702010123 mb/google/fatcat: Fix Gen4 SSD power sequencing
Move Gen4 SSD power enable (GPP_B10) from ramstage GPIO table to
pre-memory configuration to ensure proper delay between power enable
and reset signals. This is required to fix PCIe speed downgrade or
link failure issues seen with some NVMe parts when a non-serial image
is used for boot.

Changes:
 - Enable GPP_B10 (GEN4_SSD_PWREN) in pre_mem_gen4_ssd_pwr_pads
 - Remove duplicate GPP_B10 configuration from gen4_ssd_pads
 - Remove GPP_B10 from ramstage gpio_table

BUG=None
TEST=Boot to OS, check PCIe link speed for SSD.

Change-Id: I969a0d5576b9a229f70a4d01737b7f594876b106
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90523
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 18:03:47 +00:00
Matt DeVillier
1f12249ec0 mb/lenovo/{t480,t480s,x280}: Enable TBT support
Select the discrete TBT controller driver, and configure the necessary
GPIOs for the Alpine Ridge TBT controller to be fully functional.
Add ACPI to ensure the TBT controller properly handles S3 sleep and
resume. Update the documentation w/r/t TBT functionality.

TEST=build/boot Lenovo T480, boot Linux, verify all TBT-related PCI
devices populated, lower USB-C port works for USB data and PCIe.

Change-Id: Ie5586fa72ed6819b9d1c37373c21605d39bad7b4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88490
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 14:23:58 +00:00
Tim Crawford
38468f6733 mb/system76/rpl: Select discrete TBT controller driver
The HX boards, using PCH-S, use a discrete Thunderbolt device (Intel
Maple Ridge), as opposed to a built-in one like the boards using PCH-P.

Fixes Thunderbolt on RPL-HX boards using the Maple Ridge controller.

Change-Id: I53d18f3ec5a084431e1113782c791bcb42728350
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76584
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Evie (Ivi) Ballou <iviballou@gmail.com>
2026-02-17 14:23:52 +00:00
Jeremy Soller
5d084f533f drivers/intel/dtbt: Add discrete Thunderbolt driver
Add a new driver which enables basic TBT support for the Alpine Ridge,
Titan Ridge, and Maple Ridge discrete Thunderbolt controllers.

This driver will initially be used on the Lenovo T480/T480s and
System76 RPL-HX platform boards.

Ref: edk2-platforms KabylakeOpenBoardPkg reference implementation
Ref: Titan Ridge BIOS Implementation Guide v1.4
Ref: Maple Ridge BIOS Implementation Guide v1.6 (#632472)

Change-Id: Ib78ce43740956fa2c93b9ebddb0eeb319dcc0364
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75286
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 14:23:40 +00:00
Kilian Krause
5db15609a7 mb/siemens/mc_ehl8: Disable SPD write protection for RTC access
The mc_ehl8 variant has an RTC (RV3028-C7) at SMBus address 0x52, which
falls within the SPD EEPROM address range (0x50-0x57). By default, FSP
write-protects this range.

Disable write protection for mc_ehl8 to allow RTC configuration.

TEST=Boot system into OS and use i2ctools to read out registers
     0x00-0x06 of the RTC to verify that the driver set the correct date
     and time.

Change-Id: I0e6426f57d7e316a74102b1e5352ce9d334eac02
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91200
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 14:23:23 +00:00
Kilian Krause
ca601f7df6 drivers/i2c/rv3028c7: Use byte ops for i801 SMBus compatibility
The RV3028-C7 driver currently uses i2c_dev_read_at() and
i2c_dev_write_at() for block transfers when accessing RTC registers.
These block transfer functions are not universally supported across all
I2C/SMBus controller implementations in coreboot.

Specifically, the Intel i801 SMBus controller does not implement block
read/write operations, causing the RV3028-C7 driver to fail on platforms
using this controller due to missing transfer ops.

Replace block transfers with byte-by-byte operations
i2c_dev_readb_at() and i2c_dev_writeb_at(). These functions are
supported by i801.

TEST=Verified new SMBus functionality on mc_ehl8 (i801 controller).
     Verified I2C functionality still works on mc_ehl2.
     Used i2ctools from OS to read out registers 0x00-0x06 and confirmed
     values match date/time set in coreboot.

Change-Id: I8a40ae14e62e3acf7c3904a8654c1d58fe4eb813
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91199
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 14:23:18 +00:00
Patrick Rudolph
90d9411271 soc/amd/cezanne/acpi: Move SMN accessor to DSDT
Move the SMN accessor code from SSDT code to DSDT.
This allows compiletime verification of the ACPI code.

Change-Id: I3cddea079f3bfc37eb4e2b2f4496dce6441b289f
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91184
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 14:23:06 +00:00
Patrick Rudolph
4e61dd36e4 soc/amd/cezanne: Move SSDT code into DSDT
Now that the ACP device is always present in DSDT move the
MSG0 method and helper functions into DSDT. This allows to clean
the common ACP code and reduces differences in the runtime code
pathes. The newly introduced DSDT is also verified at compile time.

Change-Id: Ifc55278aa66abcb54691017738cc843e3088d8e8
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91159
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 14:22:52 +00:00
Patrick Rudolph
8c56a9c53e mb/amd/birman_plus: Fix ACP Windows driver
The Windows 11 ACP driver depends on the ACPI _DSD method, thus
add the data based on the UEFI implementation.

TEST=Windows 11 ACP driver reports no issues any more.

Change-Id: I3e193ee0dbf736aab9f7d21927a01992e2f84973
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91158
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-17 14:22:43 +00:00
Patrick Rudolph
44b2510db1 soc/amd/common/block/acp/acp: Drop acpi_device_write_pci_dev
Move the ACP ACPI device called ACPD from SSDT to DSDT so that a SoC
or a mainboard DSDT can extend the ACP configuration.
Therefore, drop acpi_device_write_pci_dev() in SSDT. Introduce a STAT
variable in ASL, which defaults to 3 (present, enabled, hidden, not ok)
when the device is set to "off" in the devicetree.cb, since the PCI
device is not actual disabled by FSP. When not disabled in devicetree.cb,
STAT will be overriden in SSDT with the actual device status. The STAT
variable is returned by _STA method.

The ACP child devices where seen on Phoenix and KrackenPoint and not
seen on Rembrandt, Cezanne or Mendocino.
Assume older platforms do not have ACP child devices in ACPI.

TEST=Booted on AMD birman_plus (glinda) and verified ACP is working.
TEST=Set ACP device to off and verified it's marked hidden on Windows 11
     Device Manager.

Change-Id: I31c3f01f83f27d0121f9e003e60a7f12d49427f6
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91157
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-17 14:22:33 +00:00
Matt DeVillier
392529ebb2 mb/starlabs/starbook/tgl: Correct GPIO reset for GPP_C6/C7
Eliminates errors in cbmem log:
[ERROR]  gpio_pad_reset_config_override: Logical to Chipset mapping
         not found

Change-Id: I562e63365599a2dc62526f5789b7c6c79318cb9e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91298
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-02-17 08:45:48 +00:00
Sean Rhodes
e21093b055 mb/starlabs/byte_adl: Disable DMIC NID
This board does not have a DMIC, so update the verb table to
reflect that.

Change-Id: Idd38dc016d7d178002f291ac8a0088e5f7b7490d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91287
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-17 08:45:34 +00:00
Avi Uday
42210fdb28 soc/intel/pantherlake: Fill in SPD data on both channels of DDR5 memory
Commit 91a1276d53 ("soc/intel/alderlake: Implement WA for DDR5 DIMM
modules") was added to allow FSP to perform the SPD read for DDR5
modules since coreboot did not properly support reading SPD from
EEPROM for DDR5. The same code is copied here for Pantherlake.

BUG=None
TEST=Build fatcat and verify there are no errors
Change-Id: Iacd43774c227fae5edc309dc1e163cc5c87160e4
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91202
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-15 13:57:52 +00:00
Avi Uday
835b63980d soc/intel/pantherlake: Fix DDR5 channel mapping
This patch applies commit 0e7cf3d81d ("soc/intel/alderlake: Fix DDR5
channel mapping") to PantherLake.

DDR5 memory modules have two separate 32-bit channels (40-bit on ECC
memory modules), and the SPD info refers to one channel: the primary
bus width is 32 (or 40) bits and the "DIMM size" is halved. On Panther
Lake, there are 2 memory controllers with 4 32-bit channels each for
DDR5. FSP has 16 positions to store SPD data, some of which are only
used with LPDDR4/LPDDR5.

To try to make things less confusing, FSP abstracts the DDR5 channels
so that the configuration works like on DDR4. This is done by copying
each DIMM's SPD data to the other half-channel. Thus, fix the wrapper
parameters for DDR5 accordingly.

BUG=None
TEST=Build fatcat and verify there are no errors

Change-Id: I10226a2e04905040523d95ba8f5bc56f45606fe6
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91201
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-15 13:57:47 +00:00
Patrick Rudolph
e18eb0a38b mb/lenovo/sklkbl_thinkpad: Enable ACPI P-state table generation
Set eist_enable to true to call generate_p_state_entries() while writing
ACPI processor nodes to ACPI.

Resolves: https://ticket.coreboot.org/issues/623

Change-Id: Ic8965dddc0f50ac6dbd1b0af81af546aa53fbb58
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91173
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-14 22:33:01 +00:00
Johann C. Rode
3b9fae176d mb/lenovo/sklkbl/spd: Fix integer overflow
This fixes an integer overflow in the calculation of the offset within
the SPD binary that has caused memory detection failures on some
machines (e.g. this resolves https://ticket.coreboot.org/issues/627 ).
In a nutshell, spd_index (uint8_t) receives an assigned multiplication
by 512 (SPD_SIZE_MAX_DDR4) which will always truncate the result.

Change-Id: I048a73c18c9a3d1b20e2a4276e1714e59550eaf5
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91170
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-14 22:32:52 +00:00
Patrick Rudolph
e95ed7aecf soc/amd/*/acpi: Add root complex ACPI device
The Root complex always resides at 0:0.0 and is always enabled.
Add a static device in DSDT that can be extended later on.

Change-Id: I1d45f7cd732c41343ac154c313a7ca368b0ea2b3
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91183
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-14 22:32:42 +00:00
Hualin Wei
8cc632b5d0 mb/google/fatcat/var/lapis: Turn off ipu
The Lapis project uses a USB camera and does not have
a MIPI camera, therefore the IPU interface is disabled.

BUG=b:475355637
TEST=emerge-fatcat coreboot

Change-Id: I35273251d73a3f885b7dd8750b746dbca06e9564
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91180
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-14 22:31:38 +00:00
Pranava Y N
cb1668acb8 mb/google/fatcat/var/lapis: Enable SMBus controller
The SMBus controller was previously disabled on the Lapis variant.
Enable the SMBus device in the overridetree to allow the system to
communicate with onboard peripherals like the SPD EEPROMs and
thermal sensors.

BUG=none
TEST=Build and boot on Lapis; verify smbus is initialized.

Change-Id: I9d7254b6c2686ec67392294d45b870e3670f2aca
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91196
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-14 22:31:29 +00:00
Jayvik Desai
542289bf56 mb/google/bluey/quartz: Enable charging for debug access port for quartz
Select HAVE_CHARGING_DEBUG_ACCESS_PORT for the Quartz variant.

BUG=b:474297115
TEST=Verified that quartz starts charging when the charger is connected
via the servov4.1 to the C0 port.
TEST=Verified that quartz starts charging when the charger is directly
connected to the C0 port.
TEST=Verified that the battery is charging by checking the battery
State of charge after 20-30 mins of charging.

Change-Id: Ie5e0d980780daa0adeee4e6a3e3525eb2616a29f
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91181
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-14 22:31:15 +00:00
Jayvik Desai
77d5cb358e mb/google/bluey: Add support to enable charging for debug access port
When the system is in a low-power boot state or early charging mode,
it is necessary to enable charging even when a debug access port
is connected. This ensures that developers can charge the
device while using the servov4.1 with the charger.

This patch updates the charging configuration to enable the debug
access sink by writing to the TYPE_C_TYPE_C_DEBUG_ACCESS_SNK_CFG
register.

BUG=b:474297115
TEST=Build Google/quartz

Change-Id: I155b071e678c8bc0ff0d719ac924b5026b21b37a
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91077
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-14 22:31:09 +00:00
Kapil Porwal
93c52ed340 mb/google/bluey: Add parallel charging configuration
BUG=b:468120472
TEST=Probe and verify the GPIOs on Google/Quartz.

Change-Id: I414509d40e3c6e4495dcdb56a8abfd300caf47d9
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91153
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-14 22:30:59 +00:00
Cliff Huang
8d020508fc payloads/depthcharge: Add default 64-bit libpayload config
Add CONFIG_LP_DEFCONFIG_OVERRIDE_X64 flag to select default 64-bit
config file in payloads/libpayload/configs directory.

This is used in standalone environment. The existing libpayload
deconfig file is for boards with 32-bit format and deconfig_64
file is added for 64-bit without adding specific
board.[board name] file in libpayload.

BUG=none
TEST=Build with this new flag and check that the libpayload and
depthcharge.elf are built in 64-bit format.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: Iac07cf9e3c11e49955c69553407be76ef4f8c060
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84107
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
2026-02-14 22:30:52 +00:00
Tony Huang
1148ced5ca mb/google/brox/var/caboc: Add LXST2024 LGD touchscreen
This CL aims to make the code support ready before touchscreen launch.

BUG=b:483588481
TEST=build brox coreboot image

Change-Id: I9f8715311c976e92049ff3058920039c0d38ba3a
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91156
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
2026-02-13 16:49:38 +00:00
Tony Huang
51039db875 /mb/google/nissa/var/yavilla: Add LXST2024 LGD touchscreen
This CL aims to make the code support ready before touchscreen launch.

BUG=b:483762467
TEST=build nissa coreboot image

Change-Id: I919f92b782905ea9184203804f5ea095e37e9893
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91169
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-13 16:49:29 +00:00
Kenneth Chan
61ae24a854 mb/google/brask/var/moxoe: Enable PCIe WiFi 7 support
Add configuration for the PCIe Root Port connected to the WiFi 7 module.

BUG=b:481186489
TEST=Build successfully for moxoe. Verify WiFi 7 functionality on
 moxie.

Change-Id: I8941b587ac35f6c03654de959cc93350b5604b35
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91103
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-02-13 16:49:13 +00:00
Yu-Ping Wu
23c41622a9 commonlib/list: Change to circular list
This is a reland of
commit c4be70f6ff ("commonlib/list: Support circular list").

In some use cases, we want to add items to the linked list and then
iterate over them with the insertion order. With the current API, the
call site needs to either use the inefficient list_append() function to
append items to the end of the list, or manually maintain a "tail"
node pointer.

To support that use case, add an internal helper function _list_init()
to initialize the list as a circular one with a placeholder head node.
_list_init() is automatically called within list_insert_after() and
list_append(). In list_insert_before(), an assertion is added to avoid
an insertion before the head node (which should be invalid). The
implementation ensures that the list is initialized as a circular one
whenever the first element is added. That also allows all call sites to
be auto-upgraded to the "circular list" implementation without any
modification.

Modify list_for_each() to support circular lists, and improve
list_append() efficiency by inserting the new node before the
placeholder head node. Also add a few assertions in the implementation.

Add a new test case to test iterating over an empty list.

Note that '(uintptr_t)ptr + (uintptr_t)offsetof(typeof(*(ptr)), member)'
was used instead of the simpler '&((ptr)->member)' because GCC9+ assumes
that the address can never be NULL. See commit 88991caf00
("include/list.h: Add support for GCC9+") for details. Now, with the
new list_for_each() implementation, that pointer value can never be
NULL.

Change-Id: Idc22887cce71284c9028dce10eeef9cc16669028
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90962
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-13 15:17:00 +00:00
Subrata Banik
6711ce3847 mb/google/fatcat: Increase OEM footer logo bottom margin to 200px
Update the logo_bottom_margin for all fatcat variants from 100px to
200px. This adjustment ensures the OEM footer logo and associated
splash text are rendered higher on the screen, improving visibility
and alignment with updated UX requirements.

Modified variants:
- fatcat
- felino
- francka
- kinmen
- lapis
- moonstone
- ruby

Change-Id: Ia0f446768f1b0b13c09873176f79ed4418f28aa2
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91155
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-13 13:11:53 +00:00
Subrata Banik
b9458ff2bc lib: Implement resolution-based text scaling
Add support for dynamic text scaling based on the display resolution
to ensure bootsplash text remains legible on high-density panels.

Key changes:
- Implement get_resolution_scale() to determine a scaling factor (1x,
  2x, or 3x) based on the panel's major dimension (HD, QHD, or 4K).
- Update draw_char() to render glyphs as scaled blocks, repeating each
  font pixel across a square of the calculated scale factor.
- Apply the scaling factor to all text layout calculations, including
  kerning, character advance, and total string dimensions.
- Ensure anti-aliasing (alpha blending) is correctly applied to each
  individual pixel within the scaled blocks.

Change-Id: I8b22019ddaa46f1a24f38d565d946bb28a213791
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91182
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-13 11:32:28 +00:00
Subrata Banik
5ea25c7ca2 lib: Implement anti-aliased text rendering
Transition the bootsplash text renderer from 1-bit monochrome bitmaps
to 8-bit alpha maps to support text smoothing (anti-aliasing).

Key changes:
- Update fonts.h to declare font_table as a 2D uint8_t array containing
  alpha intensity values (0-255) for each pixel.
- Update draw_char() to perform alpha blending by mixing the text color
  with the existing background pixel using the formula:
  Result = (Color * Alpha + BG * (255 - Alpha)) / 255.
- Regenerate the font table data to reflect the new 8-bit format and
  updated character widths.

Change-Id: I9d4dde74d86fd552b30523f3b8ff34fb8fdba782
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91179
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-13 11:32:22 +00:00
Subrata Banik
d4c3d97917 util/font: Transition to 8-bit anti-aliased font generation
Update generate_font.py to produce 8-bit alpha maps instead of 1-bit
packed bitmaps. This enables text smoothing (anti-aliasing) during
framebuffer rendering by providing pixel intensity values (0-255).

Key changes:
- Switch PIL image mode from "1" (monochrome) to "L" (8-bit grayscale).
- Change C data type from uint32_t bit-packed rows to uint8_t byte arrays.
- Implement vertical centering logic using font metrics (ascent/descent).
- Add glyph clipping detection and warnings for both width and height.
- Format C output so each source line represents one glyph row.

Change-Id: Iec8a0123456789abcdef0123456789abcdef0123
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91178
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-13 11:32:13 +00:00
Subrata Banik
ce431ac056 vc/google/chromeos: Implement splash text for low-battery/off-mode boot
This patch adds platform-level support for dynamic splash screen text
rendering on ChromeOS devices. This implementation interfaces with the
ChromeEC to retrieve battery state-of-charge and charging status,
formatting these into human-readable strings during the bootsplash
stage.

TEST=Able to build and boot google/fatcat.

Change-Id: I5dc57d60cd6be0dc9c79668a8b1560d421e4d6cc
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91095
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-13 11:27:56 +00:00
Subrata Banik
c1db700d43 lib: Integrate splash text rendering into low-battery/off-mode boot
Enable rendering of system status messages during the `low-battery`
bootsplash sequence when `FRAMEBUFFER_SPLASH_TEXT` Kconfig is enabled.

This change adds a 32-byte buffer to capture platform-specific text
(such as battery status) and draws it at the footer of the framebuffer
alongside the logo.

TEST=Able to build and boot google/fatcat.

Change-Id: I298804869eb909201a9056b83e4954e223e2b9bb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91093
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-13 11:27:46 +00:00
Subrata Banik
8cd9454d00 lib: Add support for text rendering on splash screen
Introduce FRAMEBUFFER_SPLASH_TEXT to allow rendering status messages
directly into the linear framebuffer. This enables displaying dynamic
information, such as battery levels or system status, during the
bootsplash stage without requiring complex graphics libraries.

Changes:
- Add Kconfig option to toggle framebuffer text support.
- User to call `render_text_to_framebuffer` to display the text message.
- Include render_text.c in ramstage build when
  FRAMEBUFFER_SPLASH_TEXT is enabled.
- Create 24x32 font table entry using GoogleSansFlex_24pt-Medium.ttf.

TEST=Able to build google/fatcat.

Change-Id: I6ac25d8d8a9d3d77a9cc2f8c6e0139268b2066b9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91092
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-13 11:27:33 +00:00
Subrata Banik
5aeda3e7bb lib: Export calculate_logo_coordinates for external use
Expose calculate_logo_coordinates() by moving its declaration to
bootsplash.h and removing the static qualifier in render_bmp.c.

This allows other parts of the codebase, such as the upcoming text
rendering logic, to reuse the existing logo positioning math to
calculate destination coordinates based on alignment settings.

Change-Id: I8f8b767b093d6bc2befefdc55fe2effa38b95752
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91154
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-13 11:27:23 +00:00
Subrata Banik
96b29e37db util/font: Add support for dynamic canvas dimensions
Update generate_font.py to support user-defined canvas width and height
via command-line arguments. This replaces the hardcoded 16x24 limits.

Key changes:
- Use argparse for --width and --height parameters.
- Ensure glyphs are left-aligned to the MSB (bit 15 or 31) for
  scalability.

TEST=Able to create font table upto 32 pixels wide.

```
python generate_font.py <path_to_ttf> --width 24 --height 32 > font_table.c
```

Change-Id: Ifd02a979abf41a2c2b088ae58bb931f9f6421491
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91165
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-13 11:27:13 +00:00
Pranava Y N
2158ebb933 mb/google/fatcat/var/lapis: configure chipset_lockdown for lapis
Configure lapis to use coreboot (CHIPSET_LOCKDOWN_COREBOOT) to set BIOS
interface lock. Otherwise, FSP code will be responsible for locking the
chipset.

BUG=None
TEST=Able to build and boot lapis

Change-Id: Ia3a13390e4a1862164d820dd1ee220dea682a6a0
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91177
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2026-02-13 11:26:54 +00:00
Alicja Michalska
7d94e5a660 MAINTAINERS: Add myself as maintainer of PantherLake reference board
Change-Id: Ief08115a3a92b4ccb2f52f461506eca2ca64e070
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91151
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-12 20:10:38 +00:00
Alicja Michalska
ab42fceadc MAINTAINERS: Add myself as maintainer for Intel TGL and PTL
I would like to stay on track for everything regarding PantherLake,
given I'm working alongside Intel's engineers to support this SoC
properly.

TigerLake is just a formality, there are only two maintainers currently
and not many systems supported. I own the only TGL-H system in the tree
(erying/tgl) and ELDRID (Google/Volteer baseboard) with TGL-UP3.

Change-Id: I4849aa85787528086e247d9aec8be6138523f5a7
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91150
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-12 20:10:29 +00:00
Patrick Rudolph
255fcb14ba sb/intel/bd82x6x/lpc: Advertise all fixed MMIO ranges
Currently not all fixed MMIO ranges are advertised to the resource
allocator. This is not an issue as long bottom-up allocation is
used and as long as only small PCI BARs are present on the system.

Properly advertise all fixed MMIO ranges decoded by the PCH:
- RCBA
- TXT private
- TXT reserved
- TPM TIS
- LGMR
- HPET

Also remove subtractive decoding from IOAPIC and SPI ROM. Comments
indicate that there's an issue with the OS, but newer platforms also
don't set it to subtractive. No issue was seen with EDK2 payload and
Linux 6.8.8. As a side effect IOAPIC and SPI ROM are now marked as
reserved in e820, which should help payloads not aware of IOAPIC
and SPI ROM to behave more properly.

TEST=Still boots on Lenovo X220. No issues seen in coreboot or Linux.

New e820 reserved ranges:
[DEBUG]  15. 00000000fec00000-00000000fec00fff: RESERVED
[DEBUG]  16. 00000000fed00000-00000000fed00fff: RESERVED
[DEBUG]  18. 00000000fed1c000-00000000fed3ffff: RESERVED
[DEBUG]  19. 00000000fed45000-00000000fed91fff: RESERVED
[DEBUG]  20. 00000000ff000000-00000000ffffffff: RESERVED

Change-Id: I9c251a8c4a4403c5dc0ad535769d8d893dc64a05
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91040
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-12 20:10:07 +00:00
Matt DeVillier
f813e602cf sio/nuvoton/nct6796d: Add additional LDNs
Add new LDNs supported by the NCT6796D:
- 0x11: PGPIO, RI PSOUT Wake-Up
- 0x12: LED control
- 0x15: LED control 2

Change-Id: Icef4d32fad5430cbbe8ee4f3719d603361cfea95
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91101
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-02-12 20:09:56 +00:00
Matt DeVillier
5cb2fa1dc0 sio/nuvoton: Add NCT6796D as a copy of NCT6791D
The -96D is an updated version of the -91D and has additional LDNs.
This initial commit is a clone of the -91D with strings changed;
additional functionality will be added in subsequent commits.

TEST=tested with out-of-tree board Erying SRMJ4

Change-Id: I8f67c999f4076aaca52c93060a6a461dd9bcc62f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91100
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-12 20:09:49 +00:00
Matt DeVillier
855eb93547 sio/nuvoton/nct6791d: Fix fallthrough linter error
Apply the recommended change to correctly notate a switch fallthrough.

Change-Id: If5f26f47dde641e6a5b687c4ab669efad438d8c4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91099
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-02-12 20:09:43 +00:00
Matt DeVillier
458b15b3f6 util/superiotool/nuvoton: Add HWM banked register dump for NCT6791D/NCT6796D
Add extra_dump (-e) support for NCT6791D and NCT6796D to dump all HWM
banked registers: global, SYSFAN, CPUFAN, AUXFAN0, PECI calibration,
PECI setup, AUXFAN1–3 (+AUXFAN4 for -96D). Uses index port at base+5
and data port at base+6, per datasheets.

TEST=build/dump SIO registers for out-of-tree board Erying SRMJ4 with
NCT6796D.

Change-Id: I689374826bc1e38efaa3d68013610a8fa2052b1f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91098
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-12 20:09:37 +00:00
Matt DeVillier
292fcec331 util/superiotool/nuvoton: Drop global CR 0x2d for NCT6791D
Per the NCT6791D datasheet, global configuration register 0x2d is
reserved, so exclude it from the dump like other reserved registers
(0x12, 0x15-0x19, 0x23, etc).

This was discovered when comparing datasheets for the -91D and -96D;
0x2d is a strapped register for the -96D, but reserved for the -91D.

Change-Id: I7d0372c4592f5532480acc5220ee11d9800d2277
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91097
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-02-12 20:09:31 +00:00
Matt DeVillier
c293bab76e soc/intel/apollolake: Add CONFIG_SMM_TSEG_SIZE
Add SMM_TSEG_SIZE for Apollo Lake and Gemini Lake, set to same value as
used by other Intel SoCs. This is required since commit c078552e71
("soc/intel: Replace sa_get_tseg_size() with CONFIG_SMM_TSEG_SIZE")
removed the use of sa_get_tseg_size() without verifying that all SoCs
actually set the Kconfig being used to replace it.

TEST=build google/reef and verify CONFIG_SMM_TSEG_SIZE set in .config.

Change-Id: Iaac2eaddc6ef3ccfa299b8b10103d26d08881370
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91166
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2026-02-12 20:09:22 +00:00
Swathi Tamilselvan
74df39f65e soc/qualcomm/x1p42100: Add support to invoke LPASS Init
Add support to invoke LPASS Initialization. Implement
voting-based enablement for the core HM GDSC and AON CC PLL
instead of direct control.

BUG=b:480195888
Test=1. Create an image.serial.bin and ensure it boots on X1P42100.
2. Verified LP0 BCM vote using serial logs.
Serial Log:
[DEBUG]  BCM: Found address 0x00050048 for resource LP0
[INFO ]  BCM: Successfully voted for LP0 (addr=0x00050048, val=0x60004001)
3. Verified if the clocks are enabled by taking clock dump. Clock
enablement is verified by dumping the 31st bit of the corresponding
clock’s CBCR register. A value of 0 in bit 31 indicates that the clock
is ON. The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/
4. Able to boot X1P42100 w/o any adsp failed to bootup error.

Change-Id: I51ca2b7a5da8b35d0d8dd803000f1db28441c136
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91128
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-12 17:23:48 +00:00
Patrick Rudolph
f4fc769099 mb/amd/birman_plus: Fix graphics init
The Birman+ evaluation board allows to test different display
connectors (HDMI, Displayport, ...) by plugin in different "NOVA"
cards. Every NOVA card has a small EEPROM identifying the connector.
Currently the graphics init isn't working with a DisplayPort
monitor connected to the DP NOVA card.

Fix the auto-detection code of the NOVA card. The code was swapping
the endianness of the connector_type which isn't necessary according
to the spec, but it looks like some cards where programmed with
different endianness.

To support both types, little and big endian, accept both for now.

TEST=Can boot into EDK2 with graphics enabled.

Change-Id: I54754967dd4887363043808116495cb36c636baf
Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91161
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2026-02-12 16:12:14 +00:00
Maximilian Brune
a6015c180b util/mec152x/Makefile.mk: Include commonlib/bsd/compiler.h
cbfstool/flashmap/kv_pair.h uses the `__printf` macro. So we need to
include the header file defining `__printf` in the compilation.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I4ce98f59b94d64ef4e0694e0c83f7b83f6feec7c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91141
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-12 16:02:45 +00:00
Karthikeyan Ramasubramanian
02867c2797 payloads/libpayload/liblz4: Export magic number definitions
Move LZ4 magic number definitions to public header file so that it can
be used in the payload. Also rename LEGACY_MAGICNUMBER to
LZ4_LEGACY_MAGICNUMBER for clarity when using from the payload.

BUG=None
TEST=Build Hylia BIOS image and boot to OS/UI.

Change-Id: Ief180105ec3fa7abf1013d0c5408aa96edde681b
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91152
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-02-12 16:02:28 +00:00
Sean Rhodes
e0121eb463 mb/starlabs/adl: Enable TCP0 Display Output
Enable TCP0 alongside TCP1.

Test=build and boot adl/horizon, check there is video output over
USB-C.

Change-Id: I9db17fd3ed3e1eb0f6ea94320b595ce0d51f33e2
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91168
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-12 15:58:03 +00:00
Sean Rhodes
4ccca8f8c4 mb/starlabs/adl: Fix generic graphics information
Some of the entries were indexed wrong, so fix them.

Change-Id: I76890a3c3b2b30d8123a81352346776a656e8f7f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91167
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-12 15:57:59 +00:00
Kenneth Chan
3b2525eab6 mb/google/brask/var/kulnex: Enable PCIe WiFi 7 support
Add configuration for the PCIe Root Port connected to the WiFi 7 module.

BUG=b:480035819
TEST=Build successfully for kulnex. Verify WiFi 7 functionality on
 moxie.

Change-Id: I46dfe87afe7356cbe48cf15dd87a58b55a528094
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91071
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-12 15:53:59 +00:00
David Wu
332b8a9a1c mb/google/brask/var/kulnex: Switch memory to DDR5
Kulnex uses DDR5 SODIMM. Configure the board to support DDR5.

BUG=b:480035819
TEST=build pass

Change-Id: Idc2205318bc5c9db8a4a699764de247e6fa25e66
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91069
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-12 15:53:45 +00:00
Patrick Rudolph
7493b41f37 mb/amd/birman_plus: Disable PCIe feature programming
Before the PCIe features can be programmed FSP-S must set non
public bits in the EnumInitPhaseAfterPciEnumeration callback.
Violating this rule causes system instabilities and reboot loops,
depending on the selected features and hardware plugged into slots.

Since FSP-S can handle all types of PCIe features disable all of
them in coreboot and let FSP set the bits at the right time.

TEST=Can boot on AMD/glinda with ASPM L1SS enabled without seeing
     system crashed.

Change-Id: Ib4c4597c91d6612018e4f55e1a989a676aff842d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91164
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-12 12:09:16 +00:00
Patrick Rudolph
e9dc589eab soc/amd/glinda: Only allow warm reset on Faegan
Select SOC_AMD_SUPPORTS_WARM_RESET on faegon only.
Glinda doesn't currently support warm resets.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: Ic7a011827d16685bb3f2a13a576b7832a4929119
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91163
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-12 12:08:57 +00:00
Patrick Rudolph
fcc53b1075 mb/amd/birman_plus: Set TDP value
The default CPU for birman_plus is STX1FP8 with a TDP of 28W.

Set SystemConfig to 2 to use the default IRM configuration
for 28W TDP CPUs and tweak slow PPT and fast PPT.

Change-Id: I555326228ad6a1dfa2f18c7fbd5a69b9b95b0f04
Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91162
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-12 12:08:45 +00:00
Patrick Rudolph
6b61e4ce68 soc/amd/glinda: Fill in fch_rt_device_enable_map
Currently FSP modifies the AOAC bits of the FCH devices and
thus needs the current status passed via fch_rt_device_enable_map.
By default fch_rt_device_enable_map is 0, effectly disabling all FCH
devices, including the debug UART. This causes a hang at boot.

Fill fch_rt_device_enable_map in SoC code.

TEST=Can boot on amd/birman_plus again.

Change-Id: I00ef35ea6fe11939c4154940fef8cb902955fe27
Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91160
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-12 12:08:33 +00:00
Subrata Banik
2e8545c441 soc/intel/common: Refactor poweroff() logic for early poweroff support
The existing logic prioritized the check for ENV_ROMSTAGE_OR_BEFORE
over the HAVE_EARLY_POWEROFF_SUPPORT configuration. This meant that
platforms with early poweroff support might still fall through to the
incorrect path depending on the boot phase.

Refactor the logic to:
1. Prioritize CONFIG(HAVE_EARLY_POWEROFF_SUPPORT) as the primary
   mechanism for poweroff.
2. If early support is not available, check the environment stage:
   - Perform standard pmc_control_poweroff() if after romstage.
   - Halt with an emergency message if attempted too early in the
     boot process without platform support.

This structure ensures that platform-specific early poweroff routines
are always preferred when configured.

TEST=Able to verify the AC host event is not getting cleared after
power-off.

Change-Id: Ieec8bcae5e1002d264db59cafe9236aaef6576e0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91149
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2026-02-12 03:09:49 +00:00
Maximilian Brune
7158a1746c treewide: Move check-ramstage-overlap variables
Moves the variables to more appropriate locations to save some lines and
make it more readable. For x86 it now also adds the intermediate, but
since x86 doesn't define any regions (e.g. ramstage) to check against,
the intermediate is effectively skipped.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I28371ae3416040243f238271ba45238ceccfcf0b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90816
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-11 20:00:57 +00:00
Matt DeVillier
31f705f555 mb/google/brya/var/taeko: Fix SoF speaker topology mapping
A Windows driver bug resulted in the max98357a-tdm topology being
identified as the correct one, when in fact the non-TDM version is
correct. Now that the bug has been fixed, correct the speaker
topology. Linux was unaffacted as it uses a different mapping
method.

TEST=build/boot Win11 on RPL Taeko, verify audio functional out
of both left/right speakers and mixer functions properly.

Change-Id: I2f9cc7353540cd8722beada656a8c2a8b1ba8669
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91144
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-11 13:22:59 +00:00
Patrick Rudolph
4b131c945e arch/x86: Add support for socketed CPUs
When SMBIOS_TYPE4_SOCKETED_CPU is selected advertise upgrade
support in SMBIOS Type4 table.

Change-Id: I877c72592277690cdfa9ac6805697494c0e87b4e
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91146
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-11 13:22:49 +00:00
David Wu
86b24f1998 mb/google/nissa/var/riven: Support x32 memory configuration
Use GPP_E5 level to determine whether x32 memory configuration is
supported.

Schematic version: ZDKC-Proto_MB_20260209.pdf

BUG=b:337169542
TEST=Build and boot to OS. Verify functions work.

Change-Id: I51229e99242351d957cbe26a00d9c5440c5d6784
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91115
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-11 13:22:23 +00:00
Patrick Rudolph
a607d831c0 drivers/i2c/at24rf08c: Add option for early locking
Currently the Sandybridge Lenovo devices are spending 25msec waiting
for ME to signal if RAM has been replaced. At the same time the RFID
I2C EEPROM needs to be locked, taking about 26msec.

By moving the locking to romstage the time spent waiting for ME can
be used to do something useful and thus reduce boot time.

TEST=On Lenovo X220 it boots 24msec faster.

Change-Id: Idd1f02a20dab6e422d55e3cf01d7b4a168792272
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91031
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
2026-02-11 13:22:11 +00:00
David Wu
f0bc0a5999 mb/google/brya: Create kulnex variant
Create the kulnex variant of the kuldax project by
copying the files to a new directory named for the variant.

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

Change-Id: Ice06b67aeaa3bb8f36a6d3721014888defbfac15
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91010
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
2026-02-11 13:21:44 +00:00
David Wu
f6f4217bfd mb/google/brya: Create moxoe variant
Create the moxoe variant of the moxie project by
copying the files to a new directory named for the variant.

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

Change-Id: I5dd9cc21b647834144cfffcd43bdcf84e9df3a0c
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91076
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
2026-02-11 13:21:35 +00:00
Patrick Rudolph
b4b9e87669 cpu/intel/model_206xx: Load microcode in pre_mp_init()
Ensure that BSP has latest microcode loaded before MPinit starts.
This aligns the code with other platforms ensuring that the microcode
on the BSP is up to date.

It likely has updated microcode before enabling NEM, so this is a
nop, but it also ensures that the microcode is located in CBFS
before the MTRRs are setup using x86_setup_mtrrs_with_detect() which
removes caching the SPI flash MMIO area.

Since intel_microcode_find() caches the microcode location
get_microcode_info() will be faster since it doesn't need to access
the CBFS.

TEST=Lenovo X220 still boots.

Change-Id: Ic4c5d1a06ce314b38b92e8a9c089ed901716ff27
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90893
Reviewed-by: Naresh <naresh.solanki.2011@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-11 10:02:35 +00:00
jamie_chen
dffdb05223 mb/google/skywalker: Create variant Jaina
Create the variant Jaina.

BUG=b:481949605
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: I5b2f7c46b79b677bbbbaf90fa5b2e05ac9eccdc2
Signed-off-by: jamie_chen <jamie_chen@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91148
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Shawn Ku <shawnku@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Frank Wu <frank_wu@compal.corp-partner.google.com>
2026-02-11 09:53:37 +00:00
Subrata Banik
5778d9f8b2 soc/intel/pantherlake: Add support for USB wake up
Add the same wakeup method that Meteor Lake uses to Panther Lake.

TEST=Able to build and boot google/moonstone where able to wake
the device using differnt USB devices like USB FP, KB and Mouse.

Change-Id: Id680b443791c3dbc502d1b6776fd0fa03bd80691
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91147
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-11 02:52:12 +00:00
Pranava Y N
634d841d30 mb/google/fatcat/var/ruby: Add wake configuration to cnvi_bluetooth
This commit adds a wake configuration to the cnvi_bluetooth device for
the ruby variant. The "wake" setting is now registered to "GPE0_PME_B0"
using the common CNVi block. This enhancement ensures that the
cnvi_bluetooth device can properly wake the system.

TEST=Able to wake up the device from a low power state using a keyboard
     Bluetooth device.

Change-Id: If1b3af2a9ad8c3e3800f5c839190727d78122853
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91087
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2026-02-10 21:15:51 +00:00
Subrata Banik
8f44a8acca mb/google/bluey: Reset FCC limits during charge disable
When disabling slow battery charging, explicitly set the Fast Charge
Current (FCC) configuration to 0x8c (disable) for both SMB1 and SMB2
controllers.

This ensures that the PMIC charging registers are returned to a
neutral/safe state while disabling the charging.

BUG=b:481546101
TEST=Build and boot Bluey. Verified that SMB1/SMB2_CHGR_MAX_FCC_CFG
registers are cleared during the disable_slow_battery_charging call.

Change-Id: Ic5da492b097747dec88b117ac021759644b8b816
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91121
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-10 21:15:35 +00:00
David Wu
e942bc658f mb/google/brox: Create juchi variant
Create the juchi variant of the jubilant project by
copying the files to a new directory named for the variant.

BUG=b:481602501
TEST=util/abuild/abuild -p none -t google/brox -x -a
make sure the build includes GOOGLE_JUCHI.

Change-Id: I4a1919f6a2480e4e2f993fa24658836a1739714c
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91090
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
2026-02-10 21:15:28 +00:00
Subrata Banik
8790998fa5 util/font: Add bitmapped font generation utility
This adds generate_font.py, a Python utility designed to convert
standard TTF/OTF files into a compact bitmapped format suitable for
firmware framebuffers.

Key features:
- Generates a left-aligned (normalized) bitmapped table to eliminate
  dead space in font glyphs.
- Outputs a character width table to support proportional spacing.
- Exports FONT_HEIGHT and FONT_WIDTH macros for C synchronization.
- Limits output to printable ASCII (32-126) to minimize binary bloat.

The tool uses the Pillow (PIL) library to rasterize glyphs and is
intended to be used during the build process to generate C source
files for splash screen text rendering.

Usage:
  python util/font/generate_font.py <font.ttf> > font_table.c

Change-Id: Iec8907f1a5f24d61822230f6a22295c8382d2229
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91122
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-10 21:14:56 +00:00
Bora Guvendik
c078552e71 soc/intel: Replace sa_get_tseg_size() with CONFIG_SMM_TSEG_SIZE
Remove the sa_get_tseg_size() function and replace all its usage with
CONFIG_SMM_TSEG_SIZE configuration option. The TSEG size is now
obtained directly from the configuration instead of being calculated
dynamically. The existing calculation assumes GSM and TSEG regions are
contiguous, but there is no guarantee this is always true depending on
how FSP operates. This could lead to incorrect size calculations.
Using CONFIG_SMM_TSEG_SIZE is more reliable as this value is provided
to the FSP during initialization.

This change:
- Removes sa_get_tseg_size() function declaration and implementation
- Updates smm_region() to use CONFIG_SMM_TSEG_SIZE directly
- Updates Alder Lake, Meteor Lake, and Panther Lake system agent code
to use CONFIG_SMM_TSEG_SIZE instead of sa_get_tseg_size()

Before (sa_get_tseg_size):

[SPEW ]  TsegBase = 0x78000000
[SPEW ]  GsmBase = 0x7BC00000
[DEBUG]  sa_get_tseg_size:0x3c00000
[DEBUG]  New SMBASE=0x7b5ec000 IEDBASE=0x7b800000
[DEBUG]  Writing SMRR. base = 0x78000006, mask=0xfc400c00
System hangs during SMM relocation

After (CONFIG_SMM_TSEG_SIZE):

[SPEW ]  TsegBase = 0x78000000
[SPEW ]  GsmBase = 0x7BC00000
[DEBUG]  CONFIG_SMM_TSEG_SIZE:0x2000000
[DEBUG]  New SMBASE=0x799ec000 IEDBASE=0x79c00000
[DEBUG]  Writing SMRR. base = 0x78000006, mask=0xfe000c00
[DEBUG]  Relocation complete.
System boots successfully

BUG=none

Change-Id: Ie2a1f3dd68941924e056a12f01857c1182b69198
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91063
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-02-10 21:14:31 +00:00
Sowmya Aralguppe
1fe88cc716 mb/google/fatcat: Fix fast_vmode_i_trip indexing in devicetree
Update fast_vmode_i_trip array references as per 813278_Rev2p1p1 to use
PTL_SKU_* constants instead of PTL_CORE_* constants. This aligns with
the corrected indexing scheme used in the SoC VR configuration code.

TEST=Verify IccLimit value for different SKUs in FSP debug log

Change-Id: I90a5c6e03633ba2b4a0a132ed9f94d8e5c4ff8bf
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91049
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-10 21:14:07 +00:00
Filip Lewiński
95461ee3df Documentation/soc/intel/redundancy.md: add
Add documentation for the Intel PCH Top Swap based A/B redundancy
mechanism. Describe the BOOTBLOCK and TOPSWAP bootblock regions,
COREBOOT and COREBOOT_TS CBFS regions, the attempt_slot_b CMOS option
and its application time, and how the active CBFS region is selected
based on the Top Swap state.

This follows the A/B redundancy proposal discussed on the coreboot
mailing list:

https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

Change-Id: I1b88989201e209b2f69964c067c432ff82a0057e
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90412
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-10 21:13:57 +00:00
Subrata Banik
aa16822643 lib: Add support for off-mode charging splash screen
Introduce the infrastructure required to display an off-mode charging
notification. This is used when a device boots due to power cable
insertion but should remain in a charging state rather than booting
the full operating system.

Changes:
- Add BOOTSPLASH_OFF_MODE_CHARGING to bootsplash_type.
- Define platform_is_off_mode_charging_active() with a weak inline
  fallback to allow platforms to signal off-mode charging status.
- Update bmp_logo.c to recognize "off_mode_charging.bmp" and select
  it as the active logo type when charging is active.
- Modify render_bmp.c to handle layout and rendering for the charging
  logo, including support for footer text if enabled.
- Ensure the rendering flow bails out early after displaying the
  charging notification to prevent standard OS boot splash.

BUG=b:473480933
TEST=Able to build google/fatcat.

Change-Id: Ief4c65eaf0178ff3d736363c3e56acfe1adba14a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91106
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-10 02:48:03 +00:00
Subrata Banik
623c0972fd lib: Add support for off-mode charging indicator
Introduce CONFIG_PLATFORM_HAS_OFF_MODE_CHARGING_INDICATOR to support
rendering a dedicated splash screen when a device is in an off-mode
charging state. This provides visual feedback to the user when a
device autoboots upon power cable insertion instead of performing
a full OS boot.

Changes:
- Add Kconfig options for enabling the indicator and specifying
  the logo path.
- Update Makefile.mk to include the off-mode charging BMP file
  in CBFS when the feature is enabled.
- Depend on BMP_LOGO infrastructure for asset rendering.

BUG=b:473480933
TEST=Able to build google/fatcat.

Change-Id: Ib09de15ca3526bf5b10f7404dc58032d63c01e6d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91105
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-10 02:47:56 +00:00
Subrata Banik
3dc9427bec soc/intel/pantherlake: Update IGD stolen memory size
This commit increases the default pre-allocated IGD stolen memory size
from 64MB to 128MB in FSP-M parameters. This ensures sufficient memory
is allocated for higher resolution displays and graphics-intensive
early-boot tasks on Panther Lake platforms.

BUG=b:481209815
TEST=Able to build and boot google/ruby.

Change-Id: Idd3f1bcb9cbb27adc18a31c0dd5952e901ecf5eb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91126
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-10 02:47:36 +00:00
Subrata Banik
fda17b0390 soc/intel/pantherlake: Update IGD stolen memory size definitions
Update the Integrated Graphics Device (IGD) stolen memory size enum
values to align with the Panther Lake Reference Code. This change
introduces the 96MB definition and corrects the value for 128MB.

Modified values:
- IGD_SM_96MB:  Added as 0x03
- IGD_SM_128MB: Updated from 0x03 to 0x04

Change-Id: Id7a547e8a530294a76f201e87865e8508ff67a92
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91140
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-10 02:47:31 +00:00
Patrick Rudolph
1e97b44e41 cpu/intel/microcode: Fix get_microcode_size
Ancient microcode update files do not have a total_size field.
Add support for such platforms and return 2048 in that case.

Change-Id: I952edc12cccf24f396d940bc594d8ef97826a253
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90910
Reviewed-by: Naresh <naresh.solanki.2011@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-02-09 15:22:04 +00:00
Matt DeVillier
6560bc0412 mb/google: Set CBFS_SIZE to IFD BIOS size for Intel-based boards
Set CBFS_SIZE to match the SI_BIOS region size defined in each board's
chromeos.fmd file, up to a maximum of 16MiB. This ensures the largest
possible region is available for CBFS use without requiring manual
CBFS_SIZE overrides. The size is capped at 16MiB as that is the
largest area that can be memory mapped, the FIT pointer must be
located in the top 16MiB.

This change applies to all Intel-based Google mainboards with ChromeOS
FMD layouts that explicitly define SI_BIOS region sizes, and which do
not define a default non-ChromeOS FMAP layout (octopus, reef).

For boards with multiple ChromeOS FMD files, CBFS_SIZE is set
conditionally based on ROM size or silicon variant, using the
same logic as to select the ChromeOS FMD file.

This eliminates the need to override CBFS_SIZE when using larger
payloads (e.g., edk2) or multiple payloads, making the default
configuration more flexible.

TEST=build/boot various google boards with edk2 payload without
overriding CBFS_SIZE.

Change-Id: If7ef6cc96afcdd025958c578ad80fd0db641582a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90883
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-02-09 15:21:00 +00:00
Evie (Ivi) Ballou
d23bd33161 acpi/dsdt_top.asl: Move RBUF out of the _CRS method
This solves the remark:
```
dsdt.asl     28:    Name (RBUF, ResourceTemplate ()
Remark   2173 -             ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PERC._CRS)
```

Change-Id: Ifff2678e351cf6d92a7fba5d3cf64413e15393c0
Signed-off-by: Evie (Ivi) Ballou <iviballou@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91037
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-02-09 15:20:48 +00:00
Mario Scheithauer
b117179256 mb/siemens/{mc_ehl2,mc_ehl5}: Fine-tune Gen1 TX Output De-Emphasis for PCIe RP #7
On these two mainboards, a Gen1 device is connected on PCIe RP #7.
Measurements have shown that a value of -0.137 dB yields an optimal eye
TX mask test.

BUG=none
TEST=Eye TX mask test for PCIe RP #7 passed using an oscilloscope

Change-Id: I2d95e50473e39c325531c6071773a6a3cbb3a1a0
Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90945
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-09 13:49:25 +00:00
Mario Scheithauer
c463b7761e soc/intel/ehl: Add PCIe High Speed I/O ModPHY support
This patch provides support for board-specific fine-tuning of PCIe root
ports.

The following parameters can be adjusted.

PchPcieHsioTxGen1DownscaleAmp:
- Adjust the transmitter driver strength and its output swing for Gen 1
  PCIe devices
PchPcieHsioTxGen2DownscaleAmp:
- Adjust the transmitter driver strength and its output swing for Gen 2
  PCIe devices
PchPcieHsioTxGen3DownscaleAmp:
- Adjust the transmitter driver strength and its output swing for Gen 3
  PCIe devices
PchPcieHsioTxGen1DeEmph:
- Adjust or fine-tune the amount for PCIe Gen 1 devices by which the
  output is de-emphasized for -3.5dB mode
PchPcieHsioTxGen2DeEmph3p5:
- Adjust or fine-tune the amount for PCIe Gen 2 devices by which the
  output is de-emphasized for -3.5dB mode
PchPcieHsioTxGen2DeEmph6p0:
- Adjust or fine-tune the amount for PCIe Gen 2 devices by which the
  output is de-emphasized for -6.0dB mode

Change-Id: I7b51de2b7f75e15d902e471a19b8b29166ddfb48
Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90944
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2026-02-09 13:49:20 +00:00
Matt DeVillier
a8c7ee0235 mb/google/brya: Change HID for Ov 13b10 MIPI camera sensor
Change the HID used from OVTIDB10 to OVTI13B1 for proper attachment
under Windows. Linux/ChromeOS don't use the HID, and so are unaffected
by the change.

TEST=build/boot Win11 on Teliks, verify MIPI camera driver loads
properly.

Change-Id: Ia81bd8cfaf6bb160f4f18214edccdf425d22cf6f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91108
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-08 00:24:03 +00:00
Matt DeVillier
582d86777a mb/google/{brya,dedede}: Add MIPI camera sensor_name where available
Add the corresponding sensor_name value used by the Windows drivers for
each camera sensor. Update the name used for Redrix based on testing.
This value is not used by ChromeOS/Linux.

TEST=build/boot Win11 on redrix, magolor. Verify IPU/MIPI camera works
properly using available drivers.

Change-Id: Id4fba3667f9497f71787e504bf244d54e433e552
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91107
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-02-08 00:23:57 +00:00
Sean Rhodes
16c7e63ae4 mb/starlabs/*: Restructure CFR options
Adjust the option groups into more logical groups, and ensure all
are alphabetised.

Change-Id: I8bac31206e16146ce55c3946fa8e8e4accdc7060
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91112
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-07 20:32:59 +00:00
Sean Rhodes
007a6c492b mb/starlabs/starbook/adl: Update layout to match updated descriptor
The descriptor was updated to support Raptor Lake upgrades, which
increased the ME region size.

Change-Id: I0fa909e8aa58c8825fb9cd0301e9bbc60cf1ca89
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91111
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-07 20:32:53 +00:00
Sean Rhodes
901cac7c3c x86/mtrr: Avoid WC for VGA BARs above 4GiB
On Arrow Lake we ran out of variable MTRRs, leaving PCI BARs uncached.
This made the edk2 setup UI extremely slow due to UC MMIO/framebuffer
writes.

Ensure BAR ranges get a cacheable attribute instead of falling back to
UC.

Change-Id: I74a89cf334d1eb74bbfbb4b0f9621f098bfa4a89
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91109
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-07 20:32:47 +00:00
Subrata Banik
1472a02377 mb/google/bluey: Use PLATFORM_POST_RENDER_DELAY_SEC for battery shutdown
Replace the local LOW_BATTERY_SHUTDOWN_DELAY_SEC macro with the newly
introduced, globally configurable PLATFORM_POST_RENDER_DELAY_SEC
Kconfig.

This aligns the bluey mainboard with the shared platform delay logic,
ensuring a consistent user experience across products while allowing
easier adjustment of the shutdown/teardown timing buffer.

TEST=Verified build and boot on bluey; critical battery shutdown still
respects the intended 5-second delay (as per default Kconfig).

Change-Id: I1ddab276e797b793974e0205a91ba832f3085ead
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91114
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-02-07 04:12:20 +00:00
Subrata Banik
546707da25 lib: Generalize low-battery shutdown delay to post-render delay
The existing PLATFORM_LOW_BATTERY_SHUTDOWN_DELAY_SEC was strictly
tied to the low-battery indicator logic. This change renames and
generalizes the configuration to PLATFORM_POST_RENDER_DELAY_SEC.

By moving this out of the low-battery specific conditional block in
Kconfig, the delay can now be utilized more broadly. While it still
ensures the low-battery warning remains visible before power-off, it
can now also be used to ensure display synchronization or user
notifications are visible before passing control to the OS in normal
boot flows.

Updated Intel common reset logic to utilize the renamed config.

BUG=b:473480933
TEST=Verified that low-battery shutdown still respects the 5-second
default delay on target hardware.

Change-Id: I0277ea278fb299499f6eab2be983761a8f6ba536
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91104
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-07 04:12:11 +00:00
Yu-Ping Wu
283359601e commonlib/list: Drop 'const' qualifier from return type
The 'const' qualifier is unnecessary for the return values of the
following:

- list_next()
- list_prev()
- list_first()
- list_last()

Therefore, drop it. No caller needs to be changed.

Change-Id: I0f5bc2b0ed3cd47d0d6355c8dffea17f6e085407
Signed-off-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91113
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-02-07 02:47:08 +00:00
Nick Vaccaro
f91f18cdc4 mb/goog/ocelot/var/ocelot: add LPSS touchscreen support for Rex Touchscreen
Support for the rex touchscreen panel was needed for the RVP to validate touchscreen functionality. The LPSS touchscreen is mapped to I2C bus 4 and the rex panel is mapped to address 0x10.

BUG=b:458429110
TEST=None

Change-Id: I99b2c7beaab63da1877995c655ff8eddf9c3a69f
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90859
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-06 14:30:58 +00:00
Patrick Rudolph
4772d019f3 soc/intel/apollolake: Align MPinit code
Align the MPinit code with other Intel CPU drivers and move the
microcode update on the BSP to pre_mp_init(). This also ensures that
the microcode is located in CBFS before the MTRRs are set up using
x86_setup_mtrrs_with_detect() which removes caching the SPI flash
MMIO area.

No functional change, thus untested.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: I47573dde5d471c9654ea9f14bd24b2a7087dd6df
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90909
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-06 13:11:09 +00:00
Alicja Michalska
8954bd72a9 mainboard/intel: Add PantherLake CRB for Edge
This patch adds initial support for Intel's Customer Reference Board for
Edge Platforms.

Tested working:
- Serial output (RS232/LPSS) on Micro-USB port
- Built-in DisplayPort (DDI-A, NOT AIC)
- Built-in GbE NIC
- M.2 Gen4 NVME
- M.2 Gen4 WiFi
- PCIe Gen4 x1
- PCIe Gen5 x4
- USB ports
- Booting into Linux from USB/NVME

Not implemented yet (lack of hardware, waiting for upstreaming):
- Audio
- Thunderbolt
- IPU Cameras

Unresolved issues, untested:
- Automatic fan control (Unobtainable IT8659E datasheet).
- System suspend (Unobtainable IT8659E datasheet).
- PCIe Gen5 x8 (Likely an issue with early silicon sample).

For more information please refer to #854345 (Intel CNDA).

Change-Id: I1d4e4dd4d18f49bd72405275fc96b7ca0630f612
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90939
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-05 22:25:09 +00:00
lai.kaiden
1777f962fd mb/google/ocelot/var/ocicat: Remove RTD3 config for SSD
The ocicat hardware design does not have a power load switch for the SSD , so remove the RTD3 chip driver and its associated GPIO configurations (enable/reset) in the overridetree.

BUG=b:481143310
TEST=Build and boot to OS,verify SSD still functions correctly and power state transitions align with HW design.

Change-Id: Iace755963109caa07db036cb7b2fce88eb246d2c
Signed-off-by: lai.kaiden <lai.kaiden@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91070
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-05 22:24:56 +00:00
Ivy Jian
bd634f3860 mb/google/ocelot/matsu: Remove RTD3 config for SSD
The Matsu hardware design does not have a power load switch for
the SSD. Without it, the platform cannot cut off the main power rail
to the device to enter D3cold.
Therefore, remove the RTD3 chip driver and its associated GPIO
configurations (enable/reset) in the overridetree to align with the
hardware capability. The system will support D3hot instead of D3cold.

BUG=443612246
TEST=Build and boot to OS on Matsu, verify SSD still functions
    correctly and power state transitions align with HW design.

Change-Id: I84db81c17afffafbdb6c7abcc752009c824bc2ed
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91086
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-05 22:24:43 +00:00
Ivy Jian
a6e77b1e64 mb/google/fatcat/kinmen: Remove RTD3 config for SSD
The Kinmen hardware design does not have a power load switch for
the SSD. Without it, the platform cannot cut off the main power rail
to the device to enter D3cold.
Therefore, remove the RTD3 chip driver and its associated GPIO
configurations (enable/reset) in the overridetree to align with the
hardware capability. The system will support D3hot instead of D3cold.

BUG=460038237
TEST=Build and boot to OS on Kinmen, verify SSD still functions
    correctly and power state transitions align with HW design.

Change-Id: I5e20c247bd45427f817e7afd8355a71c7a9c161c
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91085
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-05 22:24:38 +00:00
Shon Wang
16ccfc0e80 mb/google/nissa/var/quandiso: Generate RAM ID for BWMYAX32P8A-32G
Generate RAM ID for BWMYAX32P8A-32G

DRAM Part Name                 ID to assign
BWMYAX32P8A-32G                3 (0011)

BUG=b:438402880
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I4b26b3c74c2985d9b663bc8eb72824d1ca82850b
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91052
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kyle Lin <kylelinck@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-02-05 22:24:13 +00:00
Shon Wang
438aa853f8 spd/lp5x: Generate initial SPD for BWMYAX32P8A-32G
Generate initial SPD for BIWIN BWMYAX32P8A-32G

BUG=b:438402880
BRANCH=firmware-nissa-15217.B
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: Ia1ec6d9395ed930f47dcfe23d671b9da977eab6d
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91051
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-05 22:24:08 +00:00
Sowmya Aralguppe
cf147e930a mb/google/fatcat/ruby: Fix fast_vmode_i_trip indexing
Update fast_vmode_i_trip array references to use PTL_SKU_* constants
instead of PTL_CORE_* constants.This change maintains consistency with
the corrected SKU-based indexing scheme implemented across the VR
configuration system and prevents potential runtime errors.

TEST=Build ruby variant, verify correct VR parameter application

Change-Id: I957ec2c81f670108edfb5eb4d7739eb48f111fb4
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91053
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-05 22:23:54 +00:00
Sowmya Aralguppe
708b2b7779 soc/intel/pantherlake: Fix fast_vmode_i_trip array indexing
Fix incorrect indexing for fast_vmode_i_trip arrays. This patch ensures
consistent SKU-based indexing across the VR configuration.

BUG=b:481561587
TEST=Verify VR parameters are correctly applied in FSP debug log

Change-Id: I532d9fc51d7d1342f2f0464f7aeacffe0b603267
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91002
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-05 22:23:41 +00:00
Bora Guvendik
5d46eecbc8 mb/google/fatcat: Update frequency for SaGv work point 4
Update SaGv work point 4 frequency value as per recommendation
from power and performance team.

BUG=b:461762075
TEST=Boot to OS on fatcat board, verified performance improvements
and frequency setting.

Change-Id: Ic4dfe6bf5a441b491a27e952010a43d4f7a68af5
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89693
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-05 20:10:18 +00:00
Patrick Rudolph
72ed0426d8 soc/amd/*/acpi: Define PCI bridges in DSDT
Add all known PCI bridge devices to the DSDT. This allows to reference
the devices from DSDT, allowing to add more SoC DSDT code and it allows
mainboard developers to add board specific ACPI code for devices behind
PCIe bridges (like NVMe D3cold).

Currently this is only possible using SSDT generators. The SSDT ACPI
generation is also broken, since the mainboard SSDT is run before SoC
SSDT, causing the interpreter to complain about missing devices.

TEST=Still boots on amd/birman_plus. No ACPI errors seen in dmesg.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: I9d6f84b97fa943bb531d6b7b3f16c0422cd7901f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89456
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-05 11:37:52 +00:00
Patrick Rudolph
aee21f53cc soc/amd/common/block/cpu/smm: Move microcode load
Load microcode from CBFS before setting up MTRRs using
x86_setup_mtrrs_with_detect(), since it will remove caching the
SPI flash MMIO area and thus slow down CBFS accesses.

TEST=Booted on AMD/crater with CBFS_VERIFICATION enabled. The system
     boots 6msec faster than before.

Change-Id: I3fafb98c1348daa549448707db88954316a12ff2
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90891
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-02-05 11:29:35 +00:00
Subrata Banik
0da04cf675 mb/google/bluey: Consider vboot modes for PD negotiation
This change introduces a check to ensure Power Delivery (PD)
negotiation is enabled when the device is in a specific vboot state.

PD negotiation will now be enabled if:
1. It is explicitly required by the hardware sync logic.
2. The device is in Developer Mode.
3. The device is in Recovery Mode.
4. A recovery request is pending.

This ensures that charging and PD sync are prioritized during
critical recovery and development paths.

This patch ensures the factory process remains powered by enabling
early charging based on the specific vboot mode.

In normal user scenarios, early charging is bypassed to allow higher
-level software to manage power negotiation according to standard
policy.

BUG=b:481546101
TEST=Build and boot on google/quartz. Verified PD negotiation is
active in developer/recovery mode.

Change-Id: I44b2ebd4fe3eec78a6df235df6282264dd97341f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91096
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-05 06:06:23 +00:00
Subrata Banik
9f27b5d5fd vc/google/chromeos: Allow mainboard-specific boot logo overrides
The current bmp_logo_filename implementation returns static filenames
based on Kconfig or ChromeOS branding levels. This lacks flexibility
for boards that need to select a logo dynamically at runtime (e.g.,
based on SKU ID or hardware straps).

Introduce a weak function mainboard_bmp_logo_filename() that can be
overridden by mainboard code. If the mainboard implementation returns
a non-NULL string, that filename is used; otherwise, the logic falls
back to the existing default behavior.

BUG=None
BRANCH=None
TEST=Verified that a mainboard can override the logo filename by
implementing mainboard_bmp_logo_filename. Verified default behavior
is preserved when no override is present.

Change-Id: Ia410dfb2a7a88779bb8eb4551605747bb326d353
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91082
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-05 02:50:33 +00:00
Matt DeVillier
987f61f1a6 mb/google/dedede/var/waddledee: Drop unused IPU devtree entry
waddledee dosn't have a MIPI camera, so drop the unused ipu devicetree
reference.

Change-Id: Ieca23f03d83fe1feeb026a923aec2c5fab6a9fe5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91067
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-02-04 21:06:02 +00:00
Matt DeVillier
1fb063c0da mb/google/dedede: Fix/Clean up IPU/MIPI camera settings
- Add IPUA device under igpu (gfx/generic) for variants with IPU:
  bugzzy, drawcia, haboki, lalala, magolor, storo, waddledoo
- Set ssdb.link_used to match cio2_prt
- Drop ssdb.rom_type and rom_address from mipi_camera sensor nodes;
  JSL doesn't use this, and it causes a BSOD under Windows
- Add missing sensor_name for CAMERA_SENSOR on magolor and waddledoo

TEST=build/boot Win11 on magolor, verify MIPI camera functional

Change-Id: I7fca3c6bb8bca9271a4dbaf888cc28304d6545a8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91066
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-04 21:05:56 +00:00
Matt DeVillier
a49bd22668 mb/google/dedede: Use DRIVERS_GFX_GENERIC for laptops
For dedede laptops, switch from using GMA_DEFAULT_PANEL(0), previously
set in the baseboard, to using a per-variant gfx generic chip driver,
so that variants which use IPU/MIPI cameras can add the IPUA camera
device in a subsequent commit.

For dedede laptops, this is a no-op; for Chromeboxes, it removes the
previously defined internal panel which they do not have.

TEST=build/boot dexi, magolor variants. verify ACPI brightness controls
still functional under Linux and Windows for the latter.

Change-Id: I83fd2d952ca785bef8210024cbbb9280688d6a5e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91065
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-04 21:05:49 +00:00
Matt DeVillier
a45590126f soc/intel/jasperlake: add soc_acpi_name entry for IGD
JSL was missing an entry for the IGD, preventing the use of
DRIVERS_GFX_GENERIC since the call to acpi_device_scope() for it
returned null. Add the missing IGD entry, consistent with other
modern Intel SoCs.

TEST=build/boot google/magolor with chip drivers/gfx/generic entry
and verify SSDT entry correctly created.

Change-Id: Idf1d8992b45c60f68fd2b156c6e7cae816df84b4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91064
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-02-04 21:05:34 +00:00
Jamie Chen
2b976ddd8a mb/google/{nissa,trulo}: select HAVE_CHIPSETINIT_BINARY
According to Intel SA Doc#873795, select HAVE_CHIPSETINIT_BINARY
on nissa and trulo baseboard.

BUG=b:447290550
TEST=1. build coreboot
     2. check log to confirm load chipsetinit.bin successfully.

Change-Id: I66a0c1a3dbfbbf563461b319c5839910dfc11656
Signed-off-by: Jamie Chen <jamie.chen@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90698
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kao, Ben <ben.kao@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-04 21:00:34 +00:00
Matt DeVillier
8108e9f2b6 drivers/generic/gpio_keys: Set ACPI status to HIDDEN
The gpio-keys is a Linux-specific ACPI interface, and the kernel driver
does not care what the status is. Windows does not have drivers
however, so set the ACPI status to HIDDEN to avoid an unknown device
from appearing in Device Manager.

TEST=build/boot Win11 on google/magolor, verify PENH device no longer
listed under Device Manager.

Change-Id: I8a476e57b36c26795bfe9605e725ba3d5f860b3a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91068
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-04 21:00:26 +00:00
Appukuttan V K
a69f91b581 mb/google/ocelot: Update GT VR controller configuration
This patch implements the recommended BIOS power delivery settings
described in Intel WW03 2026 Wildcat Lake platform message of the
week (844458).

Key changes:
 - Enable acoustic noise mitigation with SLEW_FAST_4 for GT domain
 - Enable fast package C-state ramp disable for GT domain
 - Update fast_vmode_i_trip to 25A (was 38A)
 - Enable GT VR fast voltage mode and CEP

BUG=b:467349691
TEST=Build ocelot and verify that the system boots to UI with the
updated parameters.

 [SPEW ]  IccMax[1]:0x90
 [SPEW ]  EnableFastVmode[1]:0x1
 [SPEW ]  IccLimit[1]:0x64
 [SPEW ]  CepEnable[1]:0x1
 [SPEW ]  FastPkgCRampDisable[1]:0x1
 [SPEW ]  SlowSlewRate[1]:0x1
 [SPEW ]  AcousticNoiseMitigation:0x1

Change-Id: I76cefc79457c6bcfb250ba3525c501a126b526fb
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91073
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: P, Usha <usha.p@intel.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-04 13:59:15 +00:00
Hualin Wei
7c57c69e03 mb/google/fatcat/var/lapis: Improve USB2 port 6 strength
Improving the driving capabilities of USB2 enables the eye
diagram of a USB camera to pass the test.

BUG=b:478790360
TEST=emerge-fatcat coreboot, EA test pass

Change-Id: Id400fb541fd1c797ea602e3f8e12be07ed05b5b8
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91047
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-04 12:45:39 +00:00
Cindy Lu
0efea195b2 mb/google/corsola/var/wugtrio: Add TG-XTI05101 MIPI panel
Add TG-XTI05101 MIPI panel for Wugtrio.
Datasheet:TG-XTI05101-01A-SPEC-V1_20260202.pdf

BUG=b:479758139
TEST=emerge-staryu coreboot depthcharge libpayload chromeos-bootimage
     can see the fw screen,jump to kernel and can see chromeos logo
BRANCH=corsola

Change-Id: Ibec69165fe39675d6e6ef4e0db7733825af7bf56
Signed-off-by: Cindy Lu <luyi8@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90873
Reviewed-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-04 11:22:11 +00:00
Cindy Lu
e2d7bd16b3 drivers/mipi: Add support for TG-XTI05101 panel
Add TaiGuan panel TG-XTI05101 serializable data to CBFS.
Datasheet:TG-XTI05101-01A-SPEC-V1_20260202.pdf

[INFO ]  CBFS: Found 'panel-TG_XTI05101' @0x40b40 size 0x1bb in mcache @0xfffdd474

BUG=b:477767887
TEST= check above log during booting
BRANCH=None

Change-Id: I9cdae763d2d570a96228bcc9e3b987b4a3910751
Signed-off-by: Cindy Lu <luyi8@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90872
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-04 11:22:05 +00:00
Patrick Rudolph
77a39d588e drivers/i2c/at24rf08c: Use I2C block read
Use I2C block read command to access the VPD EEPROM to speed up
SMBIOS table generation, but keep the single byte read as fallback.

Shrink the size of the mainboard version string to not crossing the
128 byte block boundary.

TEST=On Lenovo X220 the BS_WRITE_TABLES is 15 msec faster.

Change-Id: Ida21a8dc653551440e79b062abcce9194d11bef4
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91029
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
2026-02-03 22:16:25 +00:00
Patrick Rudolph
702cec8635 drivers/i2c/at24rf08c/lenovo_serials: Fix out of bounds
Ensure that the mainboard version string is fully contained within
one 128byte block of the EEPROM. Since it's read from offset 0x27
it can be 89 characters long. One byte for the final null terminator.

Change-Id: I264ea2d1f634bb3493858da9f066bd6cef1ca960
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91041
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-03 22:16:15 +00:00
Patrick Rudolph
c242193ca4 device/smbus: Add i2c_eeprom_read
Expose the existing i2c block read functionality usually used in
romstage to the smbus_bus_operations for use in ramstage.

This allows faster reading of I2C EEPROM in ramstage.

TEST=Can read I2C EEPROM on Lenovo X220 using I2C block read.

Change-Id: I1264f17317c3095f9661b0ab6aa3124a00ce86c5
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91028
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-02-03 22:16:02 +00:00
Appukuttan V K
051516af1a soc/intel/pantherlake: Consolidate WCL SKUs and update GT VR settings
Simplify Wildcat Lake SKU configuration by consolidating multiple
SKU variants into a single WCL_SKU_1 configuration. All WCL device
IDs (WCL_ID_2 through WCL_ID_5) now map to WCL_SKU_1 instead of
having separate SKU definitions.

Additionally, update GT domain VR controller settings for WCL_SKU_1:
 - Set IccMax to 36A (144 in register units) for GT domain

BUG=b:467349691
TEST=Build ocelot and verify system boots with consolidated WCL SKU
configuration. Confirm GT VR IccMax is set to 36A in coreboot logs.

Change-Id: I6466c150bcd712430cf2595db5be13039688fecb
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90803
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: P, Usha <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-03 19:00:38 +00:00
Kapil Porwal
b999d71c49 mb/google/bluey: Restrict low battery LED alert to closed-lid state
Refine the critically low battery alert logic to only trigger when the
lid is closed. This prevents the red LED alert from firing
unnecessarily when the system is open, or ensures it specifically
targets the user notification flow designed for a closed-lid blocked
boot.

This change requires VBOOT_LID_SWITCH to be enabled to correctly
detect the lid state in romstage.

BUG=none
TEST=Verify LED behavior on Google/Quartz with low battery and AC unplugged.

Change-Id: Ibe9e7b3bd46527f72a873f161cc359e0641c35f4
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91012
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-03 18:20:03 +00:00
Kapil Porwal
eecd2b49ca mb/google/bluey: Skip display initialization when lid is closed
If the system is powered on while the lid is closed (e.g., via a
power button or auto-power-on event), there is no need to initialize
the internal display.

Update display_startup() to check the lid state via get_lid_switch().
Skipping initialization in this state reduces unnecessary power
consumption and slightly improves boot time for closed-lid scenarios.

BUG=none
TEST=Verify display does not initialize when lid is closed on
Google/Quartz.

Change-Id: I2ec48876f102b7309a1401aa9d7bdc0fdc96791a
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91011
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-03 18:19:44 +00:00
Kapil Porwal
37ef6bc245 mb/google/bluey: Enable vboot lid switch support
With the ChromeEC driver now supporting lid state retrieval via host
commands for non-LPC platforms, enable VBOOT_LID_SWITCH for Bluey.

This allows the mainboard to utilize vboot features that depend on
the lid status, such as preventing boot when the lid is closed.

BUG=none
TEST=Verify LID status on Google/Quartz.

Change-Id: Idfc45258170e86a673aede9fc63a87a9a2ca3c3b
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91009
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-03 18:19:34 +00:00
Kapil Porwal
490dba2a8b ec/google/chromeec: Implement host command to read lid state
On non-LPC platforms (such as those using I2C or SPI for EC comms),
the EC memory map is not directly accessible via memory-mapped I/O.
Instead, these platforms must use the EC_CMD_READ_MEMMAP host command
to retrieve system information.

Implement google_chromeec_get_switches() using this host command for
non-LPC systems. This enables get_lid_switch() to function correctly
on eSPI-based and other non-LPC mainboards, allowing them to support
lid-controlled logic.

BUG=none
TEST=Verify the LID state using get_lid_switch() on Google/Quartz.

Change-Id: Ic7dbe1bcf6b528dfefc168e2f0de0357430dc84d
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91008
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-02-03 18:19:20 +00:00
Luca Lai
ca770df1e7 mb/google/fatcat/var/ruby: Correct GPP_V17 configuration
Correct the GPP_V17 gpio pin from platform reset to deep to
avoid uncontrollable behavior in s0ix mode.

BUG=b:475990377
BRANCH=none
TEST=Build and boot to OS, check GPP_V17 behavior is correct.

Change-Id: I8f8bc59b71b8f8b4c5d4dbdbdcf8fcbfdbd96921
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91050
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-03 17:28:28 +00:00
Luca Lai
ab9d9ecd7e mb/google/fatcat/var/ruby: Enable FSP_UGOP_EARLY_SIGN_OF_LIFE
BUG=b:452180266
BRANCH=none
TEST=Build and check system can boot to OS

Change-Id: I6092f620f4ae0635ffbbd9c26cf0ce0d55b44ba8
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91048
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-02-03 17:28:20 +00:00
Pranava Y N
3d4c77c7f4 soc/intel/pantherlake: Set CONFIG_MAX_ROOT_PORTS to 12
Increase the maximum root port count for Panther Lake (PTL) to 12.
While the actual number of active ports may vary depending on the
specific SKU and strapping, setting this constant to 12 is safe
and systematically handled by the existing SoC logic.

Systematic Bounds: The common PCIe root port driver (pcie_rp.c)
and PTL-specific FSP parameter logic utilize ptl_rp_groups and
PCI configuration space accesses to determine the actual hardware
limits at runtime.

Safe Ceiling: CONFIG_MAX_ROOT_PORTS serves as a compile-time upper
bound for array allocations and iteration loops. Setting this to
12 accommodates the maximum possible PTL configuration without
over-allocating resources.

Consistency: This aligns the configuration with the hardware's
maximum capability, allowing the silicon initialization code to
dynamically "fill in" the details for lower-port SKUs without
requiring further Kconfig changes.

BUG=None
TEST=Able to build boards that use different PTL SKUs.

Change-Id: Icb8f2c075aa56531e311d1ce718953fe3366a5e2
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91078
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-03 16:30:03 +00:00
Pranava Y N
28608c503a Revert "soc/intel/pantherlake: Enable all RootPorts on PTL-H484"
This reverts commit 261274992d.

Reason for revert: Panther Lake U/H Processor EDS vol 1/2 says PTL-U/H
12Xe has 12 PCIe RPs where else PTL-H 4Xe has 10 PCIe RPs.

This change has limit the capability for devices that is build with
PTL-U/H 12Xe hence, we are seeing below errors

```
[ERROR]  pcie_rp_update_devicetree: Error: Group exceeds
CONFIG_MAX_ROOT_PORTS.
```

As a result PCIe Gen 5 devices (SSD) unable to init and enabled during
boot.

Change-Id: I0443554ef8f619c485f16edc576794f9cf2e85ea
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91075
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-03 15:49:19 +00:00
Qinghong Zeng
0fd6a83a11 mb/google/nissa/var/rull: Support x32 memory configuration
Use GPP_E19 level to determine whether x32 memory configuration is
supported.

BUG=b:480003949
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I68d9060686f6b48c2fd7a296cd78346233265e24
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91003
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-02-03 13:26:51 +00:00
Kapil Porwal
e2ef764430 Revert "mb/google/bluey: Add support to invoke LPASS Init"
This reverts commit dec1dfe160.

Reason for revert: It is causing ADSP load failure in the OS.

BUG=b:480195888
TEST=Able to load the ADSP on Google/Quenbi.

Change-Id: I029c2b7ba74764a15227e44edc3be755cb8b9363
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91072
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-02-03 10:06:07 +00:00
Sean Rhodes
bf044a9402 soc/intel/meteorlake: add ARL-H 45W power entry
configure_tdp() selects the power limit table based on the
SA PCI device ID and the CPU's nominal TDP.

Add a 45W entry for PCI_DID_INTEL_ARL_H_ID_1 (e.g. Intel
285H) so power limits are programmed instead of being
skipped.

Change-Id: Ia90633b43b78bc616ff0b750ed3ef44333019957
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91056
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-03 09:34:15 +00:00
Sean Rhodes
6b7084a053 mainboard/starlabs: rework power profile limits
Recompute PL1/PL2 from the per-SKU TDP values instead of deriving PL1
from PL2.

- Performance: PL1 = TDP, PL2 = round_up(TDP * 2, 5)
- Balanced/Power saver: scale TDP first, then derive PL2
- Performance TCC offset: 10C with fan, 20C without
- Lower profiles: add +10C offset per step down

PL4 continues to be sourced from CONFIG_PL4_WATTS.

Change-Id: Idc5d008c8db0391fcc600e7485010e15c8fc01d8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91055
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-03 09:34:11 +00:00
Angel Pons
1f20a947c5 util/autoport: Fix newly-added Kconfig select
Commit 4a09db75d9 ("util/autoport: Add
support for 9 Series PCHs (Lynx Point Refresh)") got submitted after
commit 01d82febb2 ("util/autoport:
Separate handling of Kconfig selects").

The latter commit was specifically made so that the former commit could
properly express a Kconfig select with a condition. However, the former
commit did not get updated, and got submitted as-is since there was no
unresolved review comment to keep track of this TODO. As a result, what
should have been a conditional Kconfig select but with the condition in
a comment to work around limitations of the original system accidentally
became a bool option override.

So, simply use the new system to express a conditional Kconfig select.
This fixes the wrongly-generated Kconfig as well as the original issue.

Even though this would still have worked, the `USE_BROADWELL_MRC` option
must be selected for boards with a Lynx Point Refresh PCH, since Haswell
MRC will not work on those PCHs. Still, this can be caught and corrected
during review, in case any board ports are made before this fix lands.

Change-Id: I98f032283e9e5bb5ec13dbff382304b7abfec07e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91027
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-02-02 13:57:38 +00:00
Patrick Rudolph
1b7aa42421 libgfxinit: Bump submodule
Bump the submodule and thus include the following new commits:

hw-gfx-gma-i2c: Reduce EDID I2C timeout
transcoder: Don't try to disable disabled DDI func
gfxtest: Handle 64-bit aperture base and register location
gma: Get DPCD 1.1+ displays out of D3
gma: Work around GNATprove issue with nested loops

TEST=libgfxinit still works on Lenovo X220 and is 450msec faster.

Change-Id: If32fd0256280ee8539c6bbc0440c30d89711996c
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91030
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-02 13:57:30 +00:00
Patrick Rudolph
be31c8a212 nb/intel/sandybridge: Advertise all MCH BARs
Currently not all fixed	MMIO ranges are	advertised to the resource
allocator. This	is not an issue	as long	bottom-up allocation is
used and as long as only small PCI BARs are present on the system.

Tell the PCI resource allocator about active MCH BARs to not overlap
PCI BARs with MCH BARs.

TEST=Can still boot on Lenovo X220. No issues seen in coreboot or Linux.

Change-Id: I9148ce492b3b16542bae2737c98b0e6fd0701745
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91039
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-02-02 13:57:17 +00:00
Matt DeVillier
4499c6d65c util/inteltool: Unify LPC/eSPI handling for ADL/RPL
Handle ADL-P and ADL-M PCI IDs the same as ADL-N and RPL-P for
dumping LPC registers. Add southbridge names/labels for ADL-P
and ADL-M.

TEST=build and run 'inteltool -l' to dump LPC/eSPI registers on
google/taeko (RPL-P), verify output matches LPC decode set in devicetree

Change-Id: I84901a8e25eb679acb31be1caa8fffa667454c62
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91026
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-01 02:26:21 +00:00
Yu-Ping Wu
b9aecb89bb lib/fit: Switch to commonlib/list public API
CB:90961 introduces list_is_empty() function. Use it to improve
readability.

Change-Id: Icffbce9e77b19c3885e0a0466f8d109ec84d70c4
Signed-off-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91006
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-02-01 02:25:58 +00:00
Yu-Ping Wu
e50f7e8b49 commonlib/list: Add list_length() and more to API
In a follow-up patch (CB:90962), the list will be changed to a circular
one, and list_node fields 'next' and 'prev' will become private to the
implementation.

To allow smooth transition to circular lists for all call sites, add the
following functions to the list API:

- list_is_empty()
- list_next()
- list_prev()
- list_first()
- list_last()
- list_length()

All list API call sites are expected to use the public API instead of
the raw 'next' and 'prev' pointers.

Change-Id: Ib1040f5caab8550ea52db9b55a074d7d79c591e5
Signed-off-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90961
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-02-01 02:25:52 +00:00
KangMin Wang
a1048f6093 mb/google/bluey:Add support for Mica variant
BUG=b:479018455
TEST=build mica board

Change-Id: I77a8e118cf2d03cdd09c3e5babab307f0be3d8c6
Signed-off-by: KangMin Wang <kangmin.wang@luxshare.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90951
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2026-01-31 22:37:50 +00:00
Patrick Rudolph
4ae5366ba2 cpu/intel/smm/gen1/smmrelocate: Fix comments
The code was copied from newer generation SoC supporting parallel
SMM relocation, but it wasn't properly cleaned.

Gen1 doesn't support parallel SMM relocation, so fix the comments.

Change-Id: Idbe6d2c18f668a9c1922b93ce1b2cc3d126ff2f9
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91013
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-31 22:37:29 +00:00
Alicja Michalska
1e1e99d723 soc/intel/pantherlake: Include FSP API header globally
As discussed under CB:88768, building for PantherLake targets fails due
to odd race-condition:
```
src/include/stdint.h:66:9: error: "INT32_MAX" redefined [-Werror]
   66 | #define INT32_MAX  ((int32_t)0x7FFFFFFF)
      |         ^~~~~~~~~
[...]
  129 |   #define INT32_MAX                       (0x7FFFFFFF)
      |           ^~~~~~~~~
cc1: all warnings being treated as errors
make: *** Waiting for unfinished jobs....
```

Board maintainers shouldn't need to include the FSP API header in their
ports, adding this header globally to meminit.h resolves the
race-condition and allows the build to finish.

Change-Id: Id7656d476ca6db78ea74629ef37a20323362997a
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91023
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-31 22:20:03 +00:00
Matt DeVillier
42927e8273 device/pci_device: Fix comment for leftover devices
Commit dd817408e1 ("device/pci_device: Fix leftover devices") changed
the conditions for a device to be considered leftover to include not
being disabled, so update the comment to reflect that.

Change-Id: If80a5aae00ba97c1e0580dedb460a605a71bb627
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90998
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-31 22:09:29 +00:00
Sean Rhodes
616469062a soc/intel/common: Add CFR dependencies for PCIe ASPM
Make PCIe ASPM/L1SS CFR options depend on PCIe Clock Power Management
so the setup UI can hide them when CLK PM is disabled.

Change-Id: I7dc778bc2d6fb15d6062a4ab855bc8b700c22fad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90996
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-31 22:09:06 +00:00
Sean Rhodes
781a8a98f1 starlabs/starlite_adl: hide touchscreen CFR when accel off
The touchscreen device is dependent on the accelerometer on starlite_adl,
so offer the touchscreen CFR option only when the accelerometer option is
enabled.

Implement a new weak cfr_touchscreen_update() callback in the starlabs
common CFR code and override it in starlite_adl to suppress the
touchscreen option when accelerometer is disabled

Change-Id: I4bab6ccb92c40190014ab55200ff214064d5d2ae
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91024
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-31 22:08:57 +00:00
Subrata Banik
9263722f41 mb/google/fatcat: Refine low battery LED alert conditions
Update platform_romstage_pre_mem() to only trigger the red LED alert
when the lid is closed.

Previously, the critical low battery alert would trigger regardless of
the lid state. Checking the lid switch ensures the visual alert is
targeted at "closed-lid" scenarios where the user needs a physical
indicator of a power-critical state that prevents booting.

Change-Id: I9833fb26df9c31989abec142536e1fe7efb93c10
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91007
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-31 05:26:18 +00:00
Riku Viitanen
05c7869dd5 util/inteltool: Support more Comet Lake-S IDs (Q470)
Tested on a HP ProDesk 400 G7, with an i5-10500 and a Q470 chipset.

Dumping MCH, SPI/BIOS CONTROL, LPC/eSPI, GPIO, EPBAR and DMIBAR work.

Change-Id: I0eca3a72c42b0cb85bcda8502bccbb4a80704b3b
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90012
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-31 02:53:44 +00:00
Nicholas Chin
e2d3d9758d soc/intel/skylake: Set pad_cfg_lock_offset in skl_gpio_communities
The GPIO pad community definition for Skylake does not set the
pad_cfg_lock_offset member, leading to an "offset not defined for pad"
error when trying to lock a pad config in gpio_non_smm_lock_pad(). This
must be set to the offset of the first Pad Configuration Lock register
within each GPIO communities register blocks which can be found in the
GPIO sections of the processor I/O and PCH-H datasheets.

References:
Skylake-U/Y: Intel 332691
Sunrise Point-H: Intel 332996
Kaby Lake-U/Y: Intel 334659
Union Point-H: Intel 335193

Change-Id: I2991a7cbfb333d9fdda008cbb4cbc272aa508ef0
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90884
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-30 21:15:19 +00:00
Alicja Michalska
261274992d soc/intel/pantherlake: Enable all RootPorts on PTL-H484
According to EDS #872188, PTL-H484 has 8 more PCIe
lanes than PTL-H404 and 12Xe SKUs.

I believe there's been a mixup during bringup, as PCIe ACPI tables are
"gated" for an SKU with more PCIe 5.0 lanes.

To be exact, in a file: "src/soc/intel/pantherlake/acpi/ptl_pcie.asl"
we can notice PCIe 5.0 RootPorts depending on SOC_INTEL_PANTHERLAKE_H.
Google/Fatcat boards seem to be using PANTHERLAKE_U_H instead.

TEST: Build/boot intel/pantherlake_crb. Make sure Linux doesn't report
PCIe routing errors.

Change-Id: I1d136cf1959a3851d0ac37b256fd4df28a8d30df
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90863
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-30 17:12:24 +00:00
Matt DeVillier
025d45ac76 drivers/genesyslogic/gl9763e: Generate ACPI device for attached eMMC
Generate an 'EMMC' ACPI device under the PCIe root port to which the
GL9763E is attached. The EMMC device contains a child CARD device whose
_RMV method returns 0. This allows Windows to identify the eMMC as a
fixed internal drive instead of a removable one.

This fixes an issue where the Windows 11 installer fails around 55%
with a generic 'Windows 11 installation has failed' error. Install
logs show the failure is due to Windows identifying the storage
device as removable and aborting (error 0xC1420134).

TEST=build/boot Win11 installer on google/taeko with eMMC installed,
verify Windows installer identifies it as a non-removable drive via
diskpart, and install completes successfully.

Change-Id: I51e59cb9e9dc2459724138b4bd404fb1eea64680
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90982
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-30 17:08:00 +00:00
Pierce Chou
d2f98171ee mb/google/ocelot/var/ocicat: Fix ELAN Touchpad i2c error
Revised the GPP_E18 configuration to use GPI IRQ.

BUG=b:473955137
TEST=Confirmed that the ELAN touchpad functionality
is operating correctly,and no occurrences of the
following error message are observed in the logs:
elan_i2c i2c-ELAN0000:00: invalid report id data (0)

Change-Id: Ie8fd2f13f5db4f830e4ffcd88a5a7b55f4d9bee3
Signed-off-by: Pierce Chou <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90908
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 14:19:07 +00:00
Maximilian Brune
235bb1e617 util/crossgcc: Update clang to 21.1.8
The current clang version cannot be built using GCC-15 so switch to a
more recent release.

It also adds a new dependency called third party. Its used in various
LLVM components and is needed to build clang.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I0f2ebc214726fd4ae4f7bba50a662dd5cb89a718
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89377
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 14:18:31 +00:00
Matt DeVillier
0f9940bf89 mb/google/volteer: Mark PCIe root ports with attached eMMC as built-in
Set PcieRpSlotImplemented to 0 on the PCIe root ports which have eMMC
attached via a GL9763E bridge/controller for chronicler and elemi
variants. This ensures that FSP correctly treats these RPs as built-in
rather than slot devices.

TEST=tested with rest of patch train

Change-Id: I0e06df689164f95ee9f0253fde3df2891239fa63
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90981
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-30 14:17:41 +00:00
Matt DeVillier
fa2e54907b mb/google/brya: Mark PCIe root ports with attached eMMC as built-in
Set the PCIE_RP_BUILT_IN flag on the PCIe root ports which have eMMC
attached via a GL9763E bridge/controller for all variants using PCIe-
attached eMMC. This ensures the FSP PcieRpSlotImplemented UPD is set
properly and that FSP correctly treats these RPs as built-in rather
than slot devices.

TEST=tested with rest of patch train

Change-Id: Ifb4b255ea5367733405a7ac5d73c616ce7f8aad5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90980
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-30 14:17:35 +00:00
Nicholas Chin
4a09db75d9 util/autoport: Add support for 9 Series PCHs (Lynx Point Refresh)
The existing Lynx Point code is known to work with 9 series PCHs, as
evidenced by commit f5105313cf ("mb/asrock/z97_extreme6: Add new
mainboard") and commit 58c7a84097 ("mb/asrock: Add Z97E-ITX/ac
(Haswell/Broadwell)"). Add the missing IDs to autoport's existing Lynx
Point code.

These IDs were taken from the Intel 9 Series Chipset Family Platform
Controller Hub datasheet (document 330550), section 1.4 "Device and
Revision ID Table".

TEST=Autoport output for the ASRock Z87E-ITX remains unchanged
TEST=Autoport generates output for the ASRock Z97E-ITX/ac

Change-Id: I94c0b35245624d1a68ab69332fe9a5c5abfc5310
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90054
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 13:17:09 +00:00
Subrata Banik
3c9077cb81 mb/google/bluey: Implement graceful critical battery shutdown
When a critical battery level is detected without a charger present,
the system must shutdown to protect the battery from deep discharge.
Previously, this was an immediate power-off with minimal feedback.

This patch improves the shutdown sequence by:
1.  Adding trigger_critical_battery_shutdown() to encapsulate the
    safety logic.
2.  Providing visual feedback by setting the ChromeOS LED to Red
    during early boot flow (at romstage) for user feedback..
3.  Logging an ELOG_TYPE_LOW_BATTERY_INDICATOR event to the event log
    for post-mortem analysis.
4.  Introducing a 5-second delay before power-off to ensure UART
    logs are flushed and the user can observe the LED alert.

The shutdown logic remains in ramstage to ensure the user is able to
see the low-battery notification before powering off the system.

TEST=Boot Bluey with battery < critical threshold and no charger:
- Observed LED turning Red.
- Observed "Critical battery level..." warning in serial log.
- System powered off after 5 seconds.
- Verified 'cbmem -l' showed the low battery event after next boot.

Change-Id: I52948eac87417bca895000cb10dbaa87bb6a9384
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90850
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 08:32:12 +00:00
Kapil Porwal
642433813f mb/google/bluey: Initialize display before low-power boot check
Currently, display_startup() is called near the end of mainboard_init.
If the system enters a low-power boot mode (such as low-battery or
off-mode charging), the function returns early, leaving the display
uninitialized.

Move display_startup() before the is_low_power_boot() check. This
ensures the display is ready to show user notifications, such as
battery status or charging icons, even when the rest of the
mainboard initialization is skipped.

TEST=Build and boot Google/Quartz.

Change-Id: Ibaa2b20d3ea1ca8548ea6ebf93efbc48cb7a6b95
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90968
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 08:31:54 +00:00
Subrata Banik
772270c2c1 mb/google/bluey: Differentiate low battery boot modes
Currently, the system does not explicitly distinguish between a low
battery boot with a charger and one without. This is critical for
deciding whether to allow the boot to proceed or to protect the
battery.

This patch:
1.  Re-introduces LB_BOOT_MODE_LOW_BATTERY to represent a critical
    battery state without a charger present.
2.  Refactors set_boot_mode() to accommodate off-mode charging and
    evaluating battery health (low-batter w/ or w/o charger present)..

TEST=Verified on Bluey:
- Boot with charger + low battery enters LOW_BATTERY_CHARGING.
- Boot without charger + low battery enters LOW_BATTERY..
- Boot with normal battery enters NORMAL mode.

Change-Id: I2c9fa7eb61d1bbd6f9379c81577aee53ab6a0761
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90849
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 08:31:46 +00:00
Subrata Banik
219b6c8438 mb/google/bluey: Rename LB_BOOT_MODE_LOW_BATTERY for clarity
The current LB_BOOT_MODE_LOW_BATTERY actually implies a state where the
battery is below the critical threshold but a charger is attached,
allowing the system to boot into a charging-only or limited state.

Update the enum name to LB_BOOT_MODE_LOW_BATTERY_CHARGING across
coreboot tables and libpayload to better reflect this hardware state.

Changes:
- Rename boot mode enums in commonlib and libpayload.
- Update bluey mainboard logic to use the more descriptive name.
- Refactor is_low_power_boot() to is_low_power_boot_with_charger()
  to improve code readability.
- Ensure the charger-present condition is explicitly checked in
  romstage when setting the boot mode.

TEST=Verify bluey boots into off-mode charging and low-battery
charging modes correctly.

Change-Id: I2478c7519c781a8b5af78445899b7f9bf412cf42
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90845
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-01-30 08:31:40 +00:00
Subrata Banik
9b663182d3 mb/google/fatcat: Move battery LED logic to platform hook
This patch moves the ChromeEC battery-low LED signaling from the
Panther Lake SoC romstage code to the Fatcat mainboard-specific
romstage.

By utilizing the platform_romstage_pre_mem() hook, we remove Google-
specific EC logic from the generic Intel SoC directory, adhering better
to the separation of concerns between SoC and Mainboard code.

- Implement platform_romstage_pre_mem() in google/fatcat.
- Remove redundant EC include and LED logic from Panther Lake SoC.

Change-Id: I09f7dd516f1a98cf99313db379cfbef5157c9869
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91000
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-30 08:31:31 +00:00
Subrata Banik
e13c79a31e arch/x86: Add pre- and post-memory platform hooks to romstage
Introduce platform_romstage_pre_mem() and platform_romstage_post_mem()
as weak symbols in the x86 romstage cycle.

These hooks allow SoCs and mainboards to execute low-level setup or
instrumentation immediately before and after memory initialization
without modifying the core romstage.c flow.

- platform_romstage_pre_mem: Called before mainboard_romstage_entry.
- platform_romstage_post_mem: Called after memory is up but while still
  running on the Cache-as-RAM (CAR) stack.

Change-Id: I59cb115de0d512106d9a029d683c10b025076893
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90999
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 08:31:21 +00:00
Subrata Banik
57c6f5e995 ec/google/chromeec: Add helper for critical battery state detection
Implement google_chromeec_is_critically_low_on_battery() to check if
the system is at risk of an imminent power-off.

This function returns true only if the battery is below the critical
threshold and no charger is detected. Combining these checks into a
single helper ensures that firmware notifications (like a red
lightbar) or emergency power-down logic do not trigger while the
device is successfully connected to AC power.

- Implement google_chromeec_is_critically_low_on_battery in ec.c.
- Export the function in ec.h for use in romstage/ramstage.

TEST=Verified on Fatcat & Bluey that the function correctly identifies
the low-power state and suppresses warnings when a charger is plugged
in.

Change-Id: I9f0f268d6660d913f989a9deffa24ab1f585b508
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90963
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-30 08:31:12 +00:00
Yang Wu
6fa7f0cba4 drivers/mipi: Fix flicker on TM_TL121BVMS07_00C by tuning RX params
Display flickering and occasional corruption were observed during panel
initialization on some TM_TL121BVMS07_00C panels when using an EMI-type
FPC.

According to Ilitek, this is caused by insufficient RX margin under
higher EMI conditions. Increasing receiver EQ, mask, bias, and voltage
settings improves signal tolerance and stabilizes display output.

Update the panel initialization code with the following parameters:

EQ:
  P6_8F = 0xF0
Mask:
  P8_82 = 0x13
  P8_7D = 0x84
  P8_7F = 0xDA
Bias:
  P6_90 = 0x55
Voltage:
  P5_3F = 0x47

Datasheet: Preliminary+specification+TL121BVMS07+-00+V01+20250721.pdf

BUG=b:479436242
TEST=build and check firmware screen.
BRANCH=skywalker

Change-Id: Id8272103abfb94f4d4f4d915107eafb9d0f4edc9
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90983
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2026-01-30 06:16:09 +00:00
Pranava Y N
9d262b9e2d mb/starlabs/common: Define type for Kconfigs
Define `BOOTMEDIA_SMM_BWP`, `BOOTMEDIA_SMM_PWP_RUNTIME_OPTION` and
`DRIVERS_EFI_FW_INFO` Kconfig type as bool to satisfy Kconfig lint
requirements.

TEST=None

Change-Id: Ie798378665e6bd3e00ce271e17b36e81df92e2ad
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90997
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jon Murphy <jpmurphy@google.com>
2026-01-29 17:31:39 +00:00
Sean Rhodes
dd60a48763 mb/starlabs/adl: Add StarBook Horizon (N305)
Tested using `edk2` from
`https://github.com/starlabsltd/edk2/tree/uefipayload_vs`:
* Ubuntu 24.04
* Manjaro 24

No known issues.

https://starlabs.systems/pages/starbook-horizon-specification

Change-Id: I7535bc5f49324027eacc9c2750a9abe742fee470
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90570
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 15:49:00 +00:00
Matt DeVillier
388fb318ad soc/intel/common: Add opt-in runtime control for BIOS SMM write
protection

Add support for runtime control of BIOS lock
(BOOTMEDIA_SMM_BWP) via the CFR option API. This allows
users to enable/disable BIOS write protection in SMM
through the setup menu when explicitly enabled.

The implementation adds a new "bios_lock" CFR option that:
- Controls SMM BIOS write protection at runtime
- Sets EISS (Enable InSMM.STS) when enabled
- Enables SPI/LPC write protection in SMM
- Prevents unauthorised BIOS modifications outside SMM

Security model:
- Runtime control is opt-in via
  BOOTMEDIA_SMM_BWP_RUNTIME_OPTION config
- When disabled, the option is suppressed in CFR
  (not exposed in UI)
- Compile-time CONFIG(BOOTMEDIA_SMM_BWP) serves as the
  default/fallback
- Protects against unauthorised EFI variable
  modifications, bypassing BIOS lock when the runtime
  option is not enabled

The option is integrated into Intel's common lockdown
code and SMI handlers, replacing compile-time-only
checks with conditional runtime lookups where
BOOTMEDIA_SMM_BWP_RUNTIME_OPTION is enabled.

Change-Id: Ie3b63462501e0d204c33dc3f8a006b73da0899d3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89919
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 14:41:46 +00:00
Mario Scheithauer
9ae5af54cc soc/intel/jasperlake: Move PCIe ModPHY parameter to common pcie_rp.h
Since the ModPHY settings are also available on other Intel platforms,
these parameters should be moved to common code.

Change-Id: Ic2666c7bbd576681dea7f360c396c068b42306e2
Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90943
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 14:30:56 +00:00
Maximilian Brune
1658fb9893 treewide: Use __printf macro instead of "__attribute__(format(printf"
Using this, the compiler is going to check if the printf formatting is
correct for our printk messages.

Since we already have the macro, might as well use it.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I247f24ed64c2be7fc411f5e2fdd38715698bc4e3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90829
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 14:30:31 +00:00
Matt DeVillier
e464a02635 ec/google/chromeec: Add Kconfig to enable battery full workaround
Commit 55a972236e ("chromeec: Disable battery remaining capacity
workaround") disabled the workaround for all ChromeEC devices, since
newer EC firmware applies compensation via battery_compensate_params.
Older boards use EC branches that lack this logic; without it, users can
see 93–100% charge–discharge cycling and stale full-capacity reporting.

Add a Kconfig to configure the workaround, and select it for older
boards whose EC firmware lacks battery_compensate_params logic.
EC firmware branches were inspected to determine which ones lack this
logic.


TEST=build/boot google/lulu, verify battery full indication works
     correctly with the Kconfig selected.

Change-Id: I096e0cf402e07f846b961319e01fb8f2c2dde7fc
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90960
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-29 14:30:04 +00:00
Anand Vaikar
85e59e87e9 soc/amd/common/block/apob: Fix APOB data hash mismatch issue
In the first boot after coreboot is flashed, ABL FW performs
memory training and passes APOB data to coreboot. coreboot
writes APOB data in SPI flash along with hash of the APOB data.
If APOB signature is not written in CMOS, Memory context is
not restored by ABL in subsequent boot and full training is
initiated which increases boot time.coreboot keeps writing the
APOB data to flash in every boot due to hash mismatch of APOB
data which inturn increases boot time.This change fixes the
issue of ABL FW not doing Memory Context restore due to missing
CMOS signature.On some older platforms FSP writes this signature
unconditionally and hence this coreboot patch doesnt impact
the older platforms.

TEST= Validated on crater platform. APOB write is not initiated
by coreboot on every boot. APOB write to flash happens only once
after the coreboot flash.

Change-Id: Id799d0d2ed9f54e29db7681509f3d66c1638b6ac
Signed-off-by: Anand Vaikar <a.vaikar2021@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90947
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 14:21:00 +00:00
Subrata Banik
8ade2c8239 mb/google/fatcat/var/lapis: Remove redundant splash logo alignment
This patch removes logo_valignment from overridetree.cb. The alignment
`FW_SPLASH_VALIGNMENT_CENTER` is the default behavior in the coreboot
splash driver, making this explicit assignment unnecessary.

BUG=none
TEST=Build and boot lapis; verify logo remains centered.

Change-Id: Ibf3ea2a9843b31f39fd08621f6056e63c2676ff7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90965
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-29 13:13:43 +00:00
Patrick Rudolph
8ec0dc7356 soc/intel/common/block/cpu/smmrelocate: Fix regression
Fix regression introduced by commit d18cc50e6a ("soc/intel/xeon_sp:
Use common smm_relocate").

The MSR SMM_FEATURE_CONTROL_MSR is only implemented on client SoCs.
Starting from Haswell server onwards the "SMM feature control" on
server platforms resides on the UBOX in PCI space.

Parallel SMM relocation was never supported on server platforms, thus
disable parallel SMM relocation for now and thus fix booting on all
Xeon-SP platforms. Added a FIXME to possibly implement this feature
in the future.

TEST=Can boot on OCP/tiogapass again.

Change-Id: I7b4fbe633046acbf9f921cca722ff343a64962cd
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90970
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-01-29 09:54:51 +00:00
Sean Rhodes
56403e52a1 mb/starlabs/*: Expose BIOS Lock option
Expose BIOS Lock option in CFR, that controls SMM BIOS Write
Protection.

Change-Id: I327881785d3292d8fd4805f5dd5ac0f2f0ed32dd
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90810
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 09:00:51 +00:00
Sean Rhodes
37fee37cea Revert "ec/starlabs/merlin: Add retry to get_ec_version()"
This reverts commit 60c8496afe.

The reason for needing that was the EC initialising PM1DO to 0
on reset, which set the OBF flag, leading to coreboot consuming
0 on it's first read.

This issue has now been fixed, so the rety is no longer needed.

Change-Id: I87b779e3859daecfe6285cd499e8d6b61cdbb852
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90979
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 09:00:38 +00:00
Patrick Rudolph
dd817408e1 device/pci_device: Fix leftover devices
Don't print leftover devices when they are disabled in the devicetree.
It's expected to not find a device when it's not enabled.

Change-Id: Ia6e998d3088fbd329f976e66a92e08ecae9f760a
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86491
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-01-29 09:00:17 +00:00
Sean Rhodes
7c4a0479dd mb/starlabs/byte_adl: Allow WOL in S5
Utilise mainboard_smi_sleep_finalize to leave LAN_WAKE# armed
when entering S5.

Change-Id: I85d3bea71f07dae1c9d6caa89015d52dca5116ce
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90793
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-29 08:59:43 +00:00
Sean Rhodes
8602d0e2aa soc/intel/common/block/smm: Keep selected wake sources enabled in S5
The generic Intel SMM S5 entry path disables all GPEs before asserting
SLP_EN, which clears OS-armed wake enables (e.g. LAN_WAKE) and prevents
Wake-on-LAN from S5.

Add a mainboard override hook, mainboard_smi_sleep_finalize(), called
after the S5 teardown but before SLP_EN is asserted, allowing boards to
restore required wake sources.

Change-Id: I9e97308ed94961fc4c08a10714b1b53f198bb593
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90792
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-29 08:59:32 +00:00
Matt DeVillier
2bccc76db6 mb/google/reef: Convert to use variant overridetrees
Rather than separate devicetrees for each variant, convert to using a
single baseboard devicetree plus overridetrees for each variant.
The Reef uses variant uses the baseboard only (no override).

- Set DEVICETREE to variants/baseboard/devicetree.cb for all variants
- Add OVERRIDE_DEVICETREE for non-reef variants
- Add overridetree.cb for coral, sand, pyro, snappy with only the
  differences from the baseboard
- Remove variant devicetree.cb files

TEST=build all REEF variants

Change-Id: I1e8edc968cb0a733b23007dc2295b7f1189ea4fa
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90928
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 08:59:16 +00:00
Matt DeVillier
bbc3042bbf mb/google/reef: Use aliases in devicetrees
Convert all PCI device and USB port references in the reef devicetrees
to use aliases from the Apollolake chipset.cb instead of direct device/
function numbers. This improves maintainability by using symbolic
names, and reduces file size by eliminating entries which match those
in the chipset devicetree.

TEST=Build all reef variants

Change-Id: I08f96d2367fa8fc1ac7eb785c0d5cc08e293921b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90927
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-29 08:59:11 +00:00
Matt DeVillier
8cf6088ba5 mb/google/octopus: Use aliases in device/overridetrees
Convert all PCI device and USB port references in octopus baseboard
devicetree and variant overridetrees to use aliases from the Geminilake
chipset.cb instead of direct device/function numbers. This improves
maintainability by using symbolic names, and reduces file size by
eliminating entries which match those in the chipset or baseboard
devicetrees.

TEST=Build all octopus variants

Change-Id: Ic4f93608234b52d548d8e5f94b137754e8924484
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90925
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-29 08:59:05 +00:00
Matt DeVillier
94d1bb7ff9 mb/google/octopus: Drop selection of DRIVERS_USB_ACPI
It's selected at the SoC level now, so no need for the mainboard to
select it as well.

TEST=build octopus

Change-Id: Id8bf73de73fd9c93e875c52b339b63970c32d50a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90926
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-29 08:59:00 +00:00
Matt DeVillier
317d2e43e5 soc/intel/apollolake: Add USB port aliases to chipset.cb
Add USB port aliases to chipset_glk.cb and chipset_apl.cb to enable
boards to use device ref syntax for USB devices. Port counts match
hardware specs: GLK has 9 USB2/7 USB3 ports, APL has 8 USB2/7 USB3
ports.

Select 'DRIVERS_USB_ACPI' so that the required USB ACPI drivers are
built and linked for all boards.

Change-Id: Ibc7dd2cbfda8c8eb42b243ea7adcdb6d1fdea98b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90924
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-01-29 08:58:56 +00:00
Matt DeVillier
8a8b0df24d soc/intel/pantherlake/fsp_params: Use common PCIe RP power management
Select SOC_INTEL_COMMON_BLOCK_ASPM and use the SoC common code for
programming PCIe root port power management. This adds programming of
PCIe RP clock PM and port speed, as well as allows for user override
via setup options for all fields. Remove the now-unused static methods
get_l1_substate_control() and get_aspm_control().

Additionally, check the port enable status before declaring the root
port config struct, to be consistent with ADL and MTL.

Change-Id: Ic30d714e609612ea46d34252c7c1d799652a9c2b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90879
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 16:23:39 +00:00
Matt DeVillier
b4b4d6c730 soc/intel: Use chipset.cb for SDXC device ops linking
Move SDXC device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from sd.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

This standardizes the approach across Intel SoCs and makes the
SDXC controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: Ifee16988d0e5625a7b3c2be51ab70d2c8471747a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90923
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-28 13:39:10 +00:00
Matt DeVillier
0d947e59cb soc/intel: Use chipset.cb for CNVI WiFi device ops linking
Move CNVI WiFi device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them.

Remove corresponding DIDs from cnvi.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

Remove the static declaration from cnvi_wifi_ops so the symbol is
exported and visible outside of cnvi.c.

This standardizes the approach across Intel SoCs and makes the
CNVI WiFi controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: I82a2b20a8b967d1a3d5a80ae477def260c366be7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90922
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:39:02 +00:00
Matt DeVillier
32563645a9 soc/intel: Use chipset.cb for XDCI device ops linking
Move XDCI device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from xdci.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

This standardizes the approach across Intel SoCs and makes the
XDCI controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: Ie8f8b5a952d072ecd1721bc8537734e85769b09d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90921
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-28 13:38:56 +00:00
Matt DeVillier
b6e80702a1 soc/intel: Use chipset.cb for XHCI device ops linking
Move XHCI device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from xhci.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

This standardizes the approach across Intel SoCs and makes the
XHCI controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: I4a0551a0fc5a233153c62d5bb7b0b2f3596a81ac
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90920
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-28 13:38:49 +00:00
Matt DeVillier
f2d9c137e6 soc/intel: Use chipset.cb for HDA device ops linking
Move HDA device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from hda.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

Add 'Select SOC_INTEL_COMMON_BLOCK_HDA` to Apollolake/Geminilake
so those platforms can make use of the common driver. Since no
APL/GLK boards currently select `SOC_INTEL_COMMON_BLOCK_HDA_VERB`
the addition is a no-op.

This standardizes the approach across Intel SoCs and makes the
HDA controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common HDA driver code.

Change-Id: I0b3af4c2a441d4897341ee6c2cc5d75d70a6ebc4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90919
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:38:42 +00:00
Matt DeVillier
038829feb3 soc/intel: Use chipset.cb for SMBUS device ops linking
Move SMBUS device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from smbus.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

This standardizes the approach across Intel SoCs and makes the
SMBUS controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: I1c742836d923eb8f521bdbd7fa8260c82c1156ac
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90918
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-28 13:38:33 +00:00
Matt DeVillier
e519cacd26 soc/intel: Use chipset.cb for GSPI device ops linking
Move GSPI/SPI device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from spi.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

This standardizes the approach across Intel SoCs and makes the
GSPI/SPI controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: Ia379cff36a5b277d89cad757edc094a5d786a51b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90917
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:38:26 +00:00
Matt DeVillier
d1e1d36fff soc/intel: Use chipset.cb for UART device ops linking
Move UART device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from uart.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

This standardizes the approach across Intel SoCs and makes the
UART controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: Id26dad7997d64bcaad53fa39be23e52cb47dcc1d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90916
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:38:19 +00:00
Matt DeVillier
fafa37d2bd soc/intel: Use chipset.cb for SATA device ops linking
Move SATA device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from sata.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

Add `select SOC_INTEL_COMMON_BLOCK_SATA` to Apollolake SoC so that
the common block code is included, which it was not previously, even
though the APL/GLK PCI DIDs were included in the list. The net
effect is that the `SATA` ACPI device is now added to SSDT for
APL/GLK boards when they have SATA enabled.

This standardizes the approach across Intel SoCs and makes the
SATA controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common driver code.

Change-Id: I4c296a88c4da5f91d1039877ec858857496527f0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90915
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-28 13:38:08 +00:00
Matt DeVillier
7d9fb0c187 soc/intel: Use chipset.cb for I2C device ops linking
Move I2C device operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from i2c.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files.

This standardizes the approach across Intel SoCs and makes the
I2C controller configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common I2C driver code.

Change-Id: Ib68dd19c7c94d4cb6b41a1caf092b77f463c1c74
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90906
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-28 13:37:58 +00:00
Sean Rhodes
d80482400f drivers/option/cfr: Fix numeric default override
CFR default overrides use SM_OBJ_* kinds, but
write_numeric_option() compared them to CFR_TAG_OPTION_*,
so enum/number/bool overrides were always skipped.

Compare kinds against the expected SM_OBJ_* for each numeric
tag, then apply the override.

Change-Id: I02046974a7b0a3ef32973689833e1b0d38a5d6f4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90911
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:37:52 +00:00
Matt DeVillier
a1ef551f4a soc/intel: Use chipset.cb for PCIe root port ops linking
Move PCIe root port operations linking from PCI Device ID matching
to chipset.cb files for all Intel SoCs that have them, matching the
approach used by Skylake.

Remove corresponding DIDs from pcie.c for these SoCs; keep DID
matching only for SoCs without chipset.cb files. Some of these
will be removed/cleaned up in subsequent patches.

This standardizes the approach across Intel SoCs and makes the
PCIe root port configuration explicit in devicetree, and prevents
the endless proliferation of DIDs in the common PCIe driver code.

Change-Id: I8586b6efb8dbe164bc2a1d68b7131ffa22b00001
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90905
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-28 13:37:46 +00:00
Matt DeVillier
7ee1bdf9b3 mb/purism/librem_jsl: Use device aliases in devicetree
Convert all PCI device and USB port references in the librem_jsl
devicetree to use device aliases from the Jasperlake chipset.cb instead
of direct device/function numbers. This improves maintainability by
using symbolic names, and reduces file size by eliminating entries
which match those in the chipset devicetree.

Additionally, the p2sb device reference is dropped, as the correct state
(hidden) is set by the chipset devicetree.

TEST=Build librem_jsl

Change-Id: Iba2959156ccede68bceb46f8458676bc7a88247a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90903
Reviewed-by: Jonathon Hall <jonathon.hall@puri.sm>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:37:35 +00:00
Sean Rhodes
90b819b279 mb/starlabs/starfighter/mtl: Add missing control for Bluetooth
This board was missing the control of Bluetooth; add it so it
matches all the other Star Labs boards.

Change-Id: I11e39b4c02095b762717ff041a654838fd4c5897
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90958
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:37:33 +00:00
Sean Rhodes
6bf998765c mb/starlabs/starfighter/mtl: Correct option name to control wireless
This board used the older "wireless" option, which no longer exists to
control wireless. Update it to check "wifi".

Change-Id: I8ddec94ea729790c9d13cd54516b8802df0e77aa
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90957
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:37:28 +00:00
Matt DeVillier
438d1b1c1a mb/intel/jasperlake_rvp: Use aliases in devicetree
Convert all PCI device and USB port references in the jasperlake_rvp
devicetree to use device aliases from the Jasperlake chipset.cb instead
of direct device/function numbers. This improves maintainability by
using symbolic names, and reduces file size by eliminating entries
which match those in the chipset devicetree.

Additionally, the p2sb device reference is dropped, as the correct state
(hidden) is set by the chipset devicetree.

TEST=Build jslrvp

Change-Id: I04fd2d1655f08fb0671deeeb55a3e88eb97b7f44
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90902
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:37:22 +00:00
Matt DeVillier
5f666a5f68 mb/google/dedede/var/cret: Drop unused PCIe RP8
CRET uses CNVi WiFi, not discrete, and has nothing attached to this
port, so don't enable it.

TEST=build/boot CRET

Change-Id: Iac9e01c6ecd4f3f32cd1c39a87a10530a36b40a4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90901
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:37:13 +00:00
Matt DeVillier
c7b016bb7f mb/google/dedede: Use aliases in device/overridetrees
Convert all PCI device and USB port references in dedede baseboard
devicetree and variant overridetrees to use aliases from the Jasperlake
chipset.cb instead of direct device/function numbers. This improves
maintainability by using symbolic names, and reduces file size by
eliminating entries which match those in the chipset or baseboard
devicetrees.

TEST=Build all dedede variants

Change-Id: I00c8f79ab040cd634ea94d4d596128ef3d6f7e73
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90900
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-28 13:37:06 +00:00
Matt DeVillier
23f97be610 soc/intel/jasperlake: Add initial chipset.cb
Similar to other Intel SoCs, create a chipset.cb for Jasperlake
giving alias names to all known PCI devices. Taken from comments in
existing JSL board devicetrees, cross-referenced against the publicly
available JSL EDS.

At the same time, remove the usb2_lte device aliases in the BOTEN and
DRAWCIA dedede variants, and replace their references with the new
usb2_port4 alias, since we can only have a single alias per device.

TEST=build boten and drawcia dedede variants

Change-Id: I32552dbe0ab5305ea44b5e89432603884cf6589f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90899
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-28 13:36:57 +00:00
Matt DeVillier
4a71e5fe66 tree: Remove Ice Lake PCI ID remnants
Commit ad6e3c847f ("tree: Drop Intel Ice Lake support") removed most
of the Ice Lake PCI IDs, but missed the ones with the ICP prefix
(Ice Point? Ice Lake Point?). Remove all PCI_DID_INTEL_ICP* defines
and references in common block drivers.

Change-Id: I9d33c69d174130aa781a00441fca367e0a67bcb4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90904
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-28 13:36:23 +00:00
Luca Lai
90a5942254 mb/fatcat/var/ruby: Remove rtd3 setting
I checked with the EE team. The previous status was neither D3hot
nor D3cold; it was in idle state, with power consumption around 1W.

With the locally tested BIOS that includes this change, the system
now enters D3hot and the power consumption is reduced to about 0.4W,
achieving the power-saving goal.

BUG=b:475990377
BRANCH=none
TEST=Build and boot to OS, check the code change could obtain
power saving.

Change-Id: Ib407e68dc70509e4431d87993597cd096dc0d9bc
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90907
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:33:03 +00:00
Michał Żygowski
4d1d27fcf3 vendorcode/amd/opensil: Add Turin OpenSIL
Add Turin OpenSIL driver and submodule pointing to turin_poc branch
of github.com/openSIL/openSIL repository.

Change-Id: Idd6d4e78a055926061de330da620c943b42a50a7
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88711
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-28 13:32:33 +00:00
Vladimir Epifantsev
7ce04e9291 util/inteltool: improve support for Comet Lake-U/H
Add support for MCH, spi and bios_cntrl, LPC/eSPI, GPIO, EPBAR, DMIBAR
and add product description.

References:
* 10th Generation Intel® Core™ Processors, Datasheet Volume 1 of 2
* 10th Generation Intel® Core™ Processors, Datasheet Volume 2 of 2
* Intel® 400 Series Chipset Family Platform Controller Hub, Datasheet
  Volume 1 of 2
* Intel® 400 Series Chipset Family Platform Controller Hub, Datasheet
  Volume 2 of 2

Change-Id: I9ae2447d2f122b9c05bcd50c16c1f19330ee9656
Signed-off-by: Vladimir Epifantsev <volatilefield@outlook.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89098
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-28 13:31:18 +00:00
Matt DeVillier
a2a868f199 device/pciexp: Enable ASPM on root ports without endpoints
Program ASPM on PCIe root ports when no endpoint device is connected
at boot. This ensures proper power management for TBT ports that often
do not have devices connected at boot.

Add pciexp_enable_aspm_root_port_only() to program ASPM based on the
root port's Link Capabilities, and call it from pciexp_scan_bus() when
no children are detected on a root port.

TEST=build/boot Starlabs Starfighter MTL, verify ASPM enabled on TBT
ports even when no devices attached via lspci:
  LnkCtrl: ASPM L1 Enabled

Change-Id: I1da6d36afcbe18411c01ceabf8b903c4ae13cd73
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90913
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-28 13:31:02 +00:00
Matt DeVillier
0d18307640 device/pciexp: Make aspm_type_str pointer const
Fix checkpatch warning by changing aspm_type_str array to use
'static const char * const' instead of 'static const char *'.

Change-Id: Id1082447e309b840c965326a74c4ab00f3a1536c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90914
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-28 13:30:21 +00:00
Matt DeVillier
a09f541e03 mb/google/dedede: Disable PCIe RP8 by default
All variants which use a discrete (vs CNVi) WiFi module enable
RP8 (or RP7) in their overridetree, so enabling RP8 in the baseboard
is superfluous. Additionally, disabling it in the baseboard makes
things cleaner when switching to using chipset devicetree references
in a subsequent patch.

Change-Id: I591508e5c41f2019a6360e08c89b0a4982178a07
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90898
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-28 13:29:45 +00:00
Matt DeVillier
e1e79dc53b mb/google/dedede: Rework I2C enablement
In order to keep coreboot and FSP in sync for which i2c ports are
enabled, disable all I2C ports in the baseboard, in both the PCI
devices and the SerialIoI2cMode register. Each variant enables only the
ports it uses by overriding the SerialIoI2cMode register index for
those ports, and enabling the PCI device(s) and defining the attached
devices. References to i2c ports which were off/disabled are removed
from all variants, as they are redundant.

TEST=build google/dedede (dexi), verify SerialIoI2cMode in static.c
enables only the single port used (i2c4)

Change-Id: I7fcab382cc0eaf4fb0bc9d8095587018b4e226b1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90897
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-28 13:29:36 +00:00
Matt DeVillier
58aed45731 mb/google/dedede: Remove alias for shared_ram from devicetree
The alias isn't referenced anywhere, so remove it in preparation of
adding a chipset devicetree using the same alias in a subsequent patch.

TEST=build google/dedede (dexi)

Change-Id: I0745eab9b0947b790f64383549e205bd906ba555
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90896
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:29:20 +00:00
Rui Zhou
db0f677fd1 mb/google/brox/var/lotso: Add RAM ID for K3KL8L80CM-MGCT
Add RAM ID for K3KL8L80CM-MGCT. And importing a single RAM device,
so use mb_get_channel_disable_mask to distinguish it.

BUG=b/468889066
BRANCH=None
TEST=boot to kernel success, and the log shows that the RAM ID is correct.

Change-Id: Idc1e890ab826ec008031f54e0fc445fa5ee62978
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90752
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-28 13:28:56 +00:00
Varun Upadhyay
47a24d1d51 mb/google/ocelot: Add support for AUDIO_MAX98360_ALC5682I_I2S
This change adds support for I2S codec in the device tree and enables
it based on the fw_config based on WCL_GPIO_Implementation Rev0p7.

RDC Doc no: 836031

BUG=b:465888555
TEST=Boot on google ocelot board and Enable I2C Codec for Audio.
Check Mic and Speaker functionality

Change-Id: I51fb849bf365108be1ff59d65069329e5fd08824
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90427
Reviewed-by: P, Usha <usha.p@intel.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 13:28:40 +00:00
Luca Lai
6cb3e3e4a6 mb/fatcat/var/ruby: Change touchscreen HID
Checked with the SED team and confirmed that the HID name needs
to be changed to "GT 7936".

BUG=b:478990702
BRANCH=none
TEST=Build the image and boot to the OS, then check that
the touchscreen HID name has changed to "GT 7936"
in the diagnostics app.

Change-Id: Id0ce797b121c4a7bcf7bf15bfc81e9b079ebb3c4
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90941
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-28 13:28:22 +00:00
Maximilian Brune
81af46e68b vc/amd/fsp: Add SMBIOS Type 19 and 20
TEST=Boot glinda based mainboard and see Type 19 and 20 entries using
     dmidecode tool.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I9a0abab9a5324f83659180a3842a8b5d9c6b3820
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87586
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-28 13:28:08 +00:00
Subrata Banik
50099def6f soc/qualcomm/x1p42100: Relocate CBMEM top to PIL region base
The current CBMEM top is situated at the base of 'dram_xbl_log'
(0x81A00000), leaving only 4.4MB of usable memory below it. This
space has become insufficient for the growing size requirements of
the coreboot configuration tables and boot services.

Relocate the CBMEM top to the base of the PIL region (0x866C0000).
This move increases the available contiguous memory for CBMEM
allocation from 4.4MB to 7.3MB, ensuring sufficient headroom for
the tables and reducing fragmentation for the OS and runtime services.

Changes:
- Update cbmem_top_chipset() to return _dram_pil as the new boundary.
- Update memlayout.ld documentation to reflect CBMEM's new position
  directly below the PIL region.

TEST=Verified CBMEM initialization on Bluey; confirmed coreboot
tables are correctly allocated at the new high-memory boundary and
no overlaps occur with reserved regions.

Change-Id: I26d95b952634ce06ed2171c75bc6a129c15ec3b8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90912
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
2026-01-28 05:51:14 +00:00
Subrata Banik
a1e602f8ca mb/google/bluey: Reduce WP_RO size to 8MB for SPI compatibility
The previous 12MB WP_RO size is an invalid range for the SPI controller.
Hardware write-protection requires power-of-two or specific
block-aligned boundaries, making 12MB unenforceable.

Reduce WP_RO to 8MB to ensure hardware WP can be correctly enabled.

The reclaimed space is assigned to RW_UNUSED.

BUG=b:479139462
TEST=Build and verify FMAP layout on Bluey; confirm hardware WP
enforcement.

Change-Id: I4515eab3941913942fc5994e7094986e2edbd6d6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90952
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-28 05:50:17 +00:00
Subrata Banik
4a5567071d Revert "commonlib/list: Support circular list"
This reverts commit c4be70f6ff.

Reason for revert: The CL caused a hang in Depthcharge on
Google/Quartz.

BUG=b:479143030
TEST=Verify boot on Google/Quartz.

Change-Id: I38087d0b2dd218dfb32a02c343b199708bb47d49
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90956
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-27 17:41:30 +00:00
Yu-Ping Wu
c4be70f6ff commonlib/list: Support circular list
In some use cases, we want to add items to the linked list and then
iterate over them with the insertion order. With the current API, the
call site needs to either use the inefficient list_append() function to
append items to the end of the list, or manually maintain a "tail"
node pointer.

To support that use case and make the change backward compatible, add a
helper list_init() function to initialize the list as a circular linked
list. list_init() is automatically called within list_insert_after() and
list_append(). In list_insert_before(), an assertion is added to avoid
an insertion before the head node (which should be invalid). The
implementation ensures that the list is initialized as a circular one
whenever the first element is added. That also allows all call sites to
be auto-upgraded to the "circular list" implementation without any
modification.

Modify list_for_each() to support circular lists, and improve
list_append() efficiency by inserting the new node before the
placeholder head node. Also add a few assertions in the implementation.

Add a new test case to test iterating over an empty list.

Note that '(uintptr_t)ptr + (uintptr_t)offsetof(typeof(*(ptr)), member)'
was used instead of the simpler '&((ptr)->member)' because GCC9+ assumes
that the address can never be NULL. See commit 88991caf00
("include/list.h: Add support for GCC9+) for details. Now, with the
new list_for_each() implementation, that pointer value can never be
NULL.

Change-Id: I8451f711d4e522e239c241b3943e00070896dec9
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90799
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-27 03:56:52 +00:00
Subrata Banik
4fa14338ef soc/qualcomm/x1p42100: Align and expand DMA and stack regions
Fix the 4K alignment for PRERAM_DMA_COHERENT and adjust the post-RAM
memory layout to ensure page-aligned boundaries.

- Shift PRERAM_DMA_COHERENT from 0x14857000 to 0x14858000. This 4K
  alignment is required for the MMU to correctly apply uncached
  attributes without overlapping adjacent regions.
- Increase POSTRAM_STACK from 16K to 32K to provide more headroom
  for complex ramstage operations.
- Shift and expand POSTRAM_DMA_COHERENT to 0x8000C000 (16K). This
  ensures the coherent region starts on a 4K boundary after the
  expanded stack, preventing cache coherency issues.

This alignment fix resolves intermittent SPI DMA failures and hash
mismatches observed when the DMA engine was handed unaligned
buffer addresses.

BUG=b:477842629
TEST=Verified successful boot on Bluey; confirmed SPI read
stability and vboot verification pass.

Change-Id: Ic5f813e4722d732c122186897abf845e4060db37
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90888
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-27 02:01:20 +00:00
Subrata Banik
c31c194228 soc/qualcomm/x1p42100: Increase SPI bus frequency to 75MHz
Boost the SPI bus clock frequency from 50MHz to 75MHz in the
bootblock early initialization.

This increase reduces the latency for loading subsequent stages
(romstage/ramstage) from the SPI flash. Since the QSPI core
can now be configured to 300MHz, this 75MHz bus speed
maintains a stable 1:4 integer divider ratio, ensuring optimal
signal integrity and timing margins for the flash interface.

BUG=b:478226455
TEST=Verified successful boot on Bluey. Observed a reduction (10ms)
in 'read SPI' duration in the console logs and confirmed that the
vboot hash verification passes consistently.

Change-Id: Idea0dbdd435cbbfe22a756d2b94b1cdfa3c70ffe
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90887
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
2026-01-27 02:01:08 +00:00
Subrata Banik
54e7b5734f soc/qualcomm/x1p42100: Add 75MHz configuration for QSPI core
Add a new frequency entry to the QSPI core clock configuration table
to support 75MHz (75 * 4 = 300MHz).

This is achieved by using the GPLL0 600MHz source with a divisor of 2.

Providing a 300MHz core clock allows for more granular control over
the physical bus speed (SCK). Specifically, it enables a stable 75MHz
SPI bus frequency via a clean 1/4 divider, which is an optimization
target for improving boot times on Bluey/Quenbi platforms.

BUG=b:478226455
TEST=Verified that 'clock_configure_qspi' can correctly look up and
set the 300MHz frequency in romstage.

Change-Id: I5320a68ff50a0d79daa2fc855b18b0f3ae819bbe
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90886
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2026-01-27 02:01:02 +00:00
Yu-Ping Wu
23410a873a assert.h: Remove printk dependency for ENV_TEST
With the current implementation of assert() for ENV_TEST, the printk()
function must be linked. As we are already using cmocka's mock_assert()
implementation for unit tests, those printk() calls within
assert-related macros should be changed to no-ops.

Also, disable __build_time_assert() for ENV_TEST.

Change-Id: Ia9bea29a32362d68dff89bb7bbf417126ac31fb7
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90870
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-27 01:59:50 +00:00
Maximilian Brune
5cae481856 Makefile.mk: Use same FMAP_FLASH_SIZE for all architectures
For both x86 and non-x86 its the same anyway, so factor it out.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I30e6d1da8a663cd79d59d55446eda2b70269f118
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90812
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-26 21:35:11 +00:00
Maximilian Brune
76149f25c6 treewide: Rename FMAP_ROM_SIZE -> FMAP_FLASH_SIZE
Its actually the size FMAP flash region so the name is more appropriate.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I152b66abedb68f1ab809d918502efe096e9dde59
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90811
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-26 21:34:57 +00:00
Matt DeVillier
bb299bb530 mb/starlabs/starfighter/mtl: Add detection delay to PCH-attached SSD
Some SSDs connected to the PCH-attached PCIe root port/m.2 socket need
a small delay in order to be reliably detected. Add a 15ms delay (the
default is 0) to ensure this.

TEST=build/boot Starfighter MTL 125H/285H with Samsung 970 EVO plus,
WD SN720, and Intel Optane P1600x SSDs in outer SSD socket. Ensure
all drives detected and bootable after both cold and warm resets.

Change-Id: I16ec0a313fc7cccb2807593c07db04cdbb59c979
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90880
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-26 14:48:16 +00:00
Patrick Rudolph
e98bc0e02a ec/lenovo/h8: Properly advertised used I/O
Properly advertise I/O ports decoded by H8 and PMH7. Therefore
implement read_resources() and set_resources() in coreboot and
advertise the ports using ACPI.

TEST=I/O ports are properly seen as fixed and assigned in
     coreboot and the OS.

Change-Id: Iae1b72d2d565750020f2943804165b9d5d2efdfb
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90723
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-25 19:23:22 +00:00
Patrick Rudolph
673ce1845e ec/lenovo/h8: Cache EC version string
When APM_CNT_ACPI_DISABLE is issued during LPC init it will
enable SMI's when the EC asserts the GPE_EC_SCI GPIO, looking like:

[NOTE ]  coreboot-25.12 x86_64 smm starting (log level: 6)...
[DEBUG]  GPI (mask 0002)

This happens on all ec_read() calls whenever bits in the status
register change, causing lots of unnecessary SMIs at boot.

Cache the EC version string when it's first read and use the
cached version when writing SMBIOS tables.
While on it introduce defines for registers and drop function
from global scope.

TEST=Seen less SMIs during boot. Version string is still correctly
     shown in dmidecode.

Change-Id: I514c628947c4e14f2379f7e2f265f28a9c7086d6
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90722
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-01-25 19:23:15 +00:00
Matt DeVillier
97d9c985ce soc/intel/{mtl,ptl}/fsp_params: Program PcieRpDetectTimeoutMs
This UPD is programmed for ADL, but not MTL and PTL. Add it to the
latter two so it functions as expected when set in devicetree for a
given PCIe root port.

TEST=build/boot Starlabs Starfighter MTL, verify Samsung NVMe drive
reliably detected in PCH-attached socket when timeout increased.

Change-Id: Iea744fed987d413c6487559005d668329a05fff4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90877
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-25 19:06:40 +00:00
Chen-Tsung Hsieh
aa77ddb44a soc/mediatek/common: Combine dsi_cmdq_size register writes
Combine the size calculation and the CMDQ_SIZE_SEL bit setting into a
single write32 call for dsi->dsi_cmdq_size to optimize register access.

BUG=b:474187570
TEST=util/abuild/abuild -x -t GOOGLE_SKYWALKER -a --clean
BRANCH=skywalker

Change-Id: Idd08c8fab4120878c53fb94bf0e3cddb9a7eb513
Signed-off-by: Chen-Tsung Hsieh <chentsung@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90874
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-01-25 19:06:22 +00:00
Maximilian Brune
8dd881ea47 Makefile.mk: Remove "crt0" dead code
Also removes some dead code below which uses a dongle.py binary.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ia9b31a79f7637d31bbd824a8f6ad9137df429711
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90818
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-25 19:05:42 +00:00
Maximilian Brune
deeb884c8d Makefile.mk: Remove RISC-V workaround
The issue has been fixed since binutils version 2.43

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I9d8802aa0908dd2838199399e739b13c345702f3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90815
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-25 19:05:20 +00:00
Patrick Rudolph
09b8b5a33a mb/lenovo/*: Add CBFS_SIZE for some boards
Add a default CBFS_SIZE for some boards to make sure they use
the whole BIOS region by default.

Change-Id: Ia032a9d5b3ba271390cc5f35ee734a1bbb1b90a4
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90721
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-01-25 19:05:00 +00:00
Felix Held
c9cbd45cbe soc/amd/glinda,picasso/xhci: use XHCI_GEVENT define
The other AMD SoCs already use the XHCI_GEVENT define and since it's
defined as GEVENT_31, this won't change the behavior.

Change-Id: I895f453497f6e03e1aff237ba6d6ec1ebecfaaaf
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90876
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2026-01-24 17:10:09 +00:00
Michał Żygowski
6c7f734f7b util/amdfwtool: Fix a bug clearing two bits of soft fuse value
The PSP soft fuse is a 64bit value which does not use address mode
bits. Those address mode bits are also part of the soft fuse value,
thus must not be hardcoded to 0.

Change-Id: I5a3e078800653d15baf1939fdce11a60031b9978
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90789
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-24 17:07:03 +00:00
Matt DeVillier
c377682973 util/inteltool: Add support for Arrow Lake H
Add PCI IDs necessary to support Intel Core Ultra 9 285H (Arrow Lake-H
platform). Arrow Lake is a Meteor Lake variant, so handle the same as
Meteor Lake-P. Add a missing PCI ID for MTL-P as well.

TEST=dump GPIOs on Starlabs Starfighter with Core Ultra 125H (MTL) and
285H (ARL) CPUs.

Change-Id: I14b74227ce808a7b4269741b7e2c5f23326bced4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90868
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-24 17:02:23 +00:00
Michał Żygowski
472b2928f3 util/amdfwtool: Use enum values for address mode
Replace hardcoded values of address mode with its corresponding
enum value to increase code readability.

Change-Id: Ib2d97f36aa19235a312558e397f97e2607476e61
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90391
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-24 17:01:41 +00:00
Jeremy Compostella
177c2b8624 ec/google/chromeec/acpi: Fix typo in sensor event comment
Correct a spelling error in the comment within the EC0 device block,
changing "reaading" to "reading".

Change-Id: I5cc57cad86f72be96e1465a1e8de9b9850adf7c1
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90869
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2026-01-24 17:01:13 +00:00
Maximilian Brune
cbca308a05 include/console/console.h: Enable console for ENV_TEST
`tests/stubs/console.c` also implements printk for our test functions.

Change-Id: Ic6ad8832515b90f4706cb9c5b9d9525a25485992
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90831
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-23 21:59:55 +00:00
Maximilian Brune
71296476a8 tests/lib/coreboot_table-test.c: Add lb_string_platform_blob_version
A later patch changes the .config file which we use for our tests.
However that causes the PLATFORM_USES_FSP2_0 option to be enabled, which
in turn causes build errors in our tests, because the function is
obviously not defined in our tests. Create a stub function of sorts like
we do for other coreboot table entries.

It also moves the declaration of the `lb_string_platform_blob_version`
function to coreboot_tables.h, since it doesn't belong in the FSP header
file. Because of that we can also remove the
`if (CONFIG_PLATFORM_USES_FSP2_0)`
check, which makes the code a bit cleaner.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7721dfe4d287b2274a383bb7e5337b85a0f3f148
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90830
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2026-01-23 21:38:33 +00:00
Bora Guvendik
f650bf95ab soc/intel: Add Nova Lake device IDs
This patch adds Nova Lake specific device IDs to the header files and
driver-specific code.

Note: Device IDs D750h - D75Fh are intentionally omitted and will be
added in a future patch once validation is complete.

Reference:
- Nova Lake External Design Specification (EDS) Volume 1 (#844316)

BUG=none

Change-Id: I00900c4f796b8bcc40f2bc09917172c71039c8a6
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90748
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-23 18:57:02 +00:00
Ren Kuo
d19cb01129 mb/google/fatcat/moonstone: Remove RTD3 config for SSD
The Moonstone hardware design does not have a power load switch for
the SSD. Without it, the platform cannot cut off the main power rail
to the device to enter D3cold.
Therefore, remove the RTD3 chip driver and its associated GPIO
configurations (enable/reset) in the overridetree to align with the
hardware capability. The system will support D3hot instead of D3cold.

BUG=460038237
TEST=Build and boot to OS on Moonstone, verify SSD still functions
correctly and power state transitions align with HW design.

Change-Id: I8fd12d2f629977f939d11f26aef21552a947c5e3
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90841
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-23 18:56:48 +00:00
Alicja Michalska
cd8e9cd717 soc/intel/pantherlake: Allow access to eSPI 4e address in bootblock
Some Intel development boards have SuperIO located at address 4e instead
of "default" 2e.

In order to correctly initialize the SIO/EC, we need to allow access to
that address in bootblock.
For further information refer to #854345 (Intel CNDA).

TEST: Build/boot intel/pantherlake_crb (out-of-tree, pending clearance).
Make sure that RS232 is working and SIO ACPI tables are correct.

Change-Id: I7944a48738fe0146cdf94635a01153a5d2331b24
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90854
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-23 18:56:27 +00:00
P, Usha
df44756c8a mb/google/ocelot: Disable EC software sync for Microchip EC
This patch disables EC software sync specifically for the Microchip EC
on the ocelot board. This change selects
`GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC` for boards w/ microchip EC
(EC_GOOGLE_CHROMEEC_MEC) like ocelot.

This allows other ocelot variants (Nuvoton, ITE EC AIC) to potentially
enable EC software sync, which is not compatible with the Microchip EC.

TEST= Verified EC software sync functionality on a Nuvoton AIC ocelot
variant.
Change-Id: Ibcd6b0231a5390a9843419da86acee54811ec3d7
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89357
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
2026-01-23 18:56:07 +00:00
Jeremy Compostella
c852840f11 soc/intel/pantherlake: Disable TCC MSR lock in FSP
Since Panther Lake, the FSP locks the TCC (Thermal Control Circuit) MSR
by default. However, Linux-based thermal management systems typically
configure this register from the operating system rather than the
firmware. Locking the TCC MSR in firmware prevents the OS from adjusting
thermal parameters as needed, potentially impacting system thermal
management and flexibility.

This commit explicitly sets the TccOffsetLock field to 0 in the FSP-M
configuration, ensuring that the TCC MSR remains unlocked after firmware
initialization.

BUG=b:474002582
TEST=MSR 0x1A2 is writable from the OS, as indicated by the successful
     operation of
     /sys/bus/pci/devices/0000:00:04/tcc_offset_degree_celsius on a
     Fatcat device.

Change-Id: I445bc1408018d3de82919e46c8a368d93bbb1a77
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90718
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-23 18:55:35 +00:00
Jeremy Compostella
c8386195e1 vc/intel/fsp/fsp2_0/wcl: Export TccOffsetLock UPD
This commit exposes the TccOffsetLock UPD option in the FSP-M UPD
structure for Wildcat Lake platforms. Since Panther Lake, the FSP locks
the TCC (Thermal Control Circuit) MSR by default, which can interfere
with Linux-based thermal management systems that expect to configure
this register from the operating system.

By making TccOffsetLock available to coreboot, firmware integrators can
now prevent the FSP from locking the TCC MSR, thereby allowing the OS to
manage thermal parameters as needed.

BUG=b:474002582

Change-Id: I934dec88f88179c7859c6e1a35ea22c24bcfcbde
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90839
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-23 18:55:29 +00:00
Michał Żygowski
6127a1d19d amdblock/lpc: Add SoC hook to set up SPI TPM decoding
Some SoCs may require additional programming to get the SPI TPM
work properly. This hook is especially needed if mainboard selects
TPM_MEASURED_BOOT_INIT_BOOTBLOCK and TPM is initialized before any
vendor silicon initialization code runs (FSP or OpenSIL).

Change-Id: I90dbcbfb554ac3cfbcf23d708c3440d27959c632
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89191
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-01-23 18:54:39 +00:00
Maximilian Brune
f8a32a1cfa include/fmap.h: Require FMAP_FLASH_SIZE == CONFIG_ROM_SIZE
In our current tree this is always the case. The coreboot code (as far
as I know) doesn't have a hard requirement on that. But if these values
differ then it is usually always a mistake made by the programmer and it
is hard to catch since the value don't really depend on each other.
So until a time in which there comes a platform which needs a flashmap
that doesn't cover the whole flash, this check is introduced.

For that purpose we need to replace the default .config file for tests,
because otherwise the check won't match.

The config file that is used now is based on the fact that we use the
same mainboard for the `.config` as for the `fmap_config.h` in
`tests/include/tests/lib/fmap/fmap_config.h`

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I8bc05a17a2630516ede949660b4fc428f199f3ab
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90264
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-23 18:54:11 +00:00
Maximilian Brune
4cc705e56d mb/amd/mayan: Increase flash size to 32M
Update as per schematics.

Since the commit wasn't actually tested on the mainboard, keep the
BIOS region in the first 16M.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I0f1ae9d410804380d5465dcae35cc5965515506f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90268
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-01-23 18:53:59 +00:00
Maximilian Brune
f97a933140 mb/amd/crater/Kconfig: Decrease flash size to 16M
Update because the board by default has 16M flash.

TEST=build and run on the crater mainboard

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7ecb7721c523d8995e124b61715afac2090b3235
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90267
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-01-23 18:53:52 +00:00
Maximilian Brune
f65f674343 mb/amd/birman: Increase flash size to 32M
Update as per schematics.

Since the commit wasn't actually tested on the mainboard, keep the BIOS
region in the first 16M.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I6d3cdbec82539007c6a0923c1f1415882dd9f2c1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90266
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-01-23 18:53:42 +00:00
Maximilian Brune
cb25e6cb72 mb/amd/birman_plus: Increase flash size to 64M
Update it as per schematics.

Since the commit wasn't actually tested with the phoenix SOC, keep the
BIOS region in the first 16M.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I6138d37be1b56178ce989996109157671f6973b1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90265
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-23 18:53:27 +00:00
Michał Żygowski
68551a79ce soc/amd/turin_poc: Adjust sources for Turin SOC
Update the SOC code based on the PPR for C1 stepping, doc 57238.

1. Turin CPU has less USB ports than Genoa, so the chip structure has
   to reflect that. The number of ports has been reduced to match the
   hardware capabilities.
2. Added early FCH initialization: legacy ISA devices, eSPI, I/O
   decoding, UARTs, SMBus and SPI.
3. Updated AOAC device numbers.
4. Updated MMIO and I/O base addresses for CPU internal devices.
5. Added reserved RAM and MMIO reporting.
6. Adjusted root complex layout to match Turin IOHCs base addresses
   and fabric IDs.
7. Extended chipset.cb devicetree to match the layout of devices on a
   single socket Turin system.

Change-Id: I5272c1f2cd2aa259569d0bc6fa5c4073907b1673
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88708
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-23 12:49:31 +00:00
Michał Żygowski
56922d914b soc/amd/common/block/lpc: Report ESPI1 MMIO
ESPI1 MMIO is reported in ACPI already, but the resource allocator
must also know about it to avoid the allocation of resources in that
range.

TEST=Boot Gigabyte MZ33-AR1 and verify that ESPI1 address (0xfec30000)
is reported for PCI device 00:00.14.3 in coreboot logs:
dev: PCI: 00:00:14.3, index: 0x3, base: 0xfec30000, size: 0x1000

Change-Id: Ic4024e6aa37bd7568dcecbd7cae29be9ae587a7f
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90853
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-01-23 09:29:01 +00:00
Sean Rhodes
f84a676cc7 src/lib/smbios: Advertise UEFI support for EDK2
fwupd checks SMBIOS Type 0 BIOS Characteristics Extension Byte 2 bit 3
(UEFI Specification Supported) when deciding if UEFI capsule updates are
supported.

Set the flag when coreboot is built with the EDK2 payload.

Change-Id: I4d24deeca88cde5411225f8d113704f5a04e8a34
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90860
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-23 09:23:42 +00:00
Swathi Tamilselvan
dec1dfe160 mb/google/bluey: Add support to invoke LPASS Init
Add support in mainboard to invoke LPASS Initialization.

Test=1. Create an image.serial.bin and ensure it boots on X1P42100.
2. Verified LP0 BCM vote using serial logs.
Serial Log:
[DEBUG]  BCM: Found address 0x00050048 for resource LP0
[INFO ]  BCM: Successfully voted for LP0 (addr=0x00050048, val=0x60004001)
3. Verified if the clocks are enabled by taking clock dump. Clock
enablement is verified by dumping the 31st bit of the corresponding
clock’s CBCR register. A value of 0 in bit 31 indicates that the clock
is ON. The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

Change-Id: Icdcb8176639d4c6d24ab6cd2741d7e44e2370eb0
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90852
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-23 03:47:31 +00:00
Swathi Tamilselvan
b3e8bd4125 soc/qualcomm/x1p42100: Add API support for audio clock configuration
Add API support to enable LPASS core clocks and vote for LP0 BCM
resource required for LPASS. This change includes support to enable
audio clocks.

LPASS is Low Power Audio Subsystem that runs audio and voice
processing on a dedicated DSP. This enables low-power audio operation
while the main CPUs remain in low-power states.

Test=1. Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: If7684bee10d127866acac80e6aeefadaa177dc1f
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90851
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-23 03:47:22 +00:00
Sean Rhodes
57bfc9184b mb/starlabs/starfighter: Make the memory speed configurable
Let the user chose between 5500, 6400 and 7500MT/s.

Change-Id: I91171f252e83e409904031109ee084115f6b3708
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90825
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-22 20:17:14 +00:00
Sean Rhodes
82a2e328dc mb/starlabs/starfighter/mtl: Fix 64GB spd binary
This somehow lost a few bytes when initially addded, so restore
the whole binary that was originally generated with spd_tools.

Change-Id: I7aa828c8e358a0d40597a265a8fc54e01ff105e8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90824
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-22 20:16:56 +00:00
Matt DeVillier
36f0b12570 util/chromeos/crosfirmware.sh: Exit if shellball extraction fails
Test if shellball extraction fails, and if it does, show the output of
the command and then exit, as nothing more can be done.

Change-Id: I0cd7416c988d11e019bfd0b4cd52af8811e6d1e2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90787
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-22 17:44:13 +00:00
Matt DeVillier
369c47d00e util/chromeos/crosfirmware.sh: Add 7z as a dependency
Many newer ChromeOS recovery shellballs require 7z to decompress, so
add it as a dependency.

Change-Id: Ibe0391567736a39c31914c573b154d8ed7de617b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90786
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-22 17:44:07 +00:00
Matt DeVillier
4222a1ffd6 util/chromeos/crosfirmware.sh: Refactor dependency checking
Refactor exit_if_dependencies_are_missing() to check all dependencies
in a single pass using an associative array, collect any missing ones,
and report them all together before exiting. This provides better UX
by showing all missing dependencies at once rather than exiting after
the first one.

This replaces the previous approach that would exit immediately upon
finding the first missing dependency, often causing users to run the
script several times to identify and install all missing dependencies.

Change-Id: Ieb03756b24fd2aa1af2c0ffaed717d06c9e85cbb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90785
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-22 17:44:02 +00:00
Chen-Tsung Hsieh
ee2cbba939 soc/mediatek/mt8196: Remove unused MTE_TAG_ADDR macro
The MTE_TAG_ADDR macro is no longer used after the changes in CB:90144.
Remove the unused definition.

BUG=b:438666196
TEST=util/abuild/abuild -x -t GOOGLE_SAPPHIRE -a --clean
BRANCH=none

Change-Id: Ic71fa22292793162de882d3c764e7805301250c5
Signed-off-by: Chen-Tsung Hsieh <chentsung@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90864
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2026-01-22 16:24:48 +00:00
Yu-Ping Wu
87731a704a soc/mediatek/common/dp: Print unexpected eDP pattern in error log
BUG=none
TEST=emerge-tanjiro coreboot
BRANCH=rauru

Change-Id: Ib7f06a8da0f6ae89fa9ac2189f6c38b35362a609
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90844
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-22 16:24:19 +00:00
Yu-Ping Wu
0750412241 soc/mediatek/mt8196: Fix missing read_resources for non-NVMe SKUs
The following error will be shown on non-NVMe SKUs.

 [ERROR]  DOMAIN: 00000000 missing read_resources

That's because when mainboard_needs_pcie_init() returns false, dev->ops
will be NULL, causing the '!curdev->ops || !curdev->ops->read_resources'
check to fail in device/device.c read_resources().

To prevent the misleading error message from showing up, for non-NVMe
SKUs, assign 'noop_domain_ops' to dev->ops.

BUG=none
TEST=emerge-tanjiro coreboot
BRANCH=rauru

Change-Id: If0f81aadda3fbde99f4df794cbdd885a607c9625
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90843
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-22 16:24:04 +00:00
Michał Żygowski
e8e3fc9cf7 vendorcode/amd/opensil/turin_poc: Add turin_poc as a copy of genoa_poc
Add a copy of genoa_poc OpenSIL directory with all genoa occurrences
changed to turin. Submodule has been omitted. Adjustment for Turin
OpenSIL will be made in subsequent patch.

Change-Id: I71e3b85f162971d6497783d4631a33780dc0e560
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90369
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-22 10:21:04 +00:00
Subrata Banik
a7a627d8f5 ec/google/chromeec: Add helper to set LED RGB colors
This patch adds google_chromeec_set_lightbar_rgb() to allow mainboards
to manually control the individual LED colors. This is useful for
providing visual feedback during early boot or platform-specific
events, such as low-battery warnings.

TEST=Build and boot google/fatcat.

Change-Id: I146006511ea727787ea496b0674b67fa950ce8f2
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90807
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-22 04:52:20 +00:00
Subrata Banik
d216ea151c mb/google/bluey: Change ADSP I2C transfer mode to MIXED
Update QUPV3_2_SE4 (ADSP I2C) configuration to use MIXED mode
instead of GSI. This allows the I2C controller for the charger
and fuel gauge to handle both GSI (DMA) and non-GSI transfers,
ensuring better compatibility during different boot stages.

BUG=b:472358270
BRANCH=None
TEST=TBD.

Change-Id: Ie2ed3cd6991c3d98b7902c1331e68ec5a4f35d92
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90796
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-22 04:52:08 +00:00
Sean Rhodes
90c1d8654c mb/starlabs/*: Expose TME CFR option
Change-Id: I806b8af593626dc3125435ba56ce18dfcd7f6946
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89920
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-21 20:08:15 +00:00
Sean Rhodes
5ad87a4de9 soc/intel/{adl,mtl,ptl): Hook Intel TME up to the option table
This makes it runtime configurable; disabling it can save around
100ms boot time.

Change-Id: I9cddb07fc2e7caf754fa8d665249536c4885a4fe
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89918
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 20:08:01 +00:00
Sean Rhodes
7d4e2c6150 mb/starlabs/*: Default to ASPM_L0S_L1 over ASPM_AUTO
Set the default for ASPM to ASPM_L0S_L1 rather than ASPM_AUTO, as
using AUTO won't always enable ASPM for some SSDs (Western Digital).

Test=build and flash starbook/mtl; check new default is ASPM_L0S_L1
in edk2 menu.

Change-Id: If66dcabe5eca717565e0378ab36db8a4cb220d43
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90838
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 20:07:41 +00:00
Sean Rhodes
53d31a4152 mb/starlabs/*: Adjust the default power profile
If the board has a fan, set the default profile to Performance. If not,
use Balanced.

Change-Id: I8adb22f38a8aec55ed86a3aa29e8abfde5670867
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90837
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 20:07:36 +00:00
Sean Rhodes
96d5c3dd54 ec/starlabs/merlin: Set the default changing speed to 1.0C
Change-Id: I0aed42d85bbcebb2eba329d818b8e7b153a9f3b1
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90836
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 20:07:30 +00:00
Michał Żygowski
9e865fb880 amdblocks/acpi/ivrs: Fix IVRS generation for multiple IOMMUs
More complex systems, such as servers, have multiple IOMMUs. For
example, Turin CPUs have a total of 4 IOMMUs per socket. Abort IVHD
generation only if IOMMU is not present on domain 0. For other domains
simply continue the loop, so that other domains have their IOMMUs
described properly in the IVRS. To keep simple systems working as
before, IVHD generation is aborted, if IOMMU is not present in domain 0.

TEST=See IOMMUs on domains 1,3,4,6 being skipped during IVHD generation
instead of IVHD generation being aborted on domain 1 on
Gigabyte MZ33-AR1 console log.

Change-Id: Icd3a51621908dc3ee5c85aa1e5814f3b3ac69007
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89111
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 13:17:24 +00:00
Pierce Chou
edae16f6f2 mb/google/ocelot/var/ocicat: Add wake support for touchscreen
This commit introduces support for touch functionalities on the
ocicat board. Changes include:

- Support for touchscreen devices in THC-I2C
- Wake support from S0ix state for touchscreen
- PMC GPE DW0 is reconfigured to GPP_F for Touchscreen in
variant.c for wake support

BUG=b:444942125
TEST= Build Ocicat and Test wake from S0ix state via touchscreen inputs.

Change-Id: Icf6fb0e170a64a5aec05590450a3bd40ab95cbf3
Signed-off-by: Pierce Chou <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90750
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2026-01-21 13:17:02 +00:00
Appukuttan V K
63ec633ccd mb/google/ocelot: Update sagv_freq_mhz as per platform POR config
Update the SaGV frequency registers in the devicetree as per
platform Plan of Record (POR) configuration:

 - sagv_freq_mhz[1]: 3200 MHz -> 4800 MHz
 - sagv_freq_mhz[2]: 6000 MHz -> 6400 MHz
 - sagv_freq_mhz[3]: 6400 MHz -> 7467 MHz

The current frequency points were configured lower than the
platform's expected specifications.

BUG=None
TEST=Boot ocelot and verify that the system boots and MRC training
is successful for each SAGV point.

 [SPEW ]  Requested/actual ratio 72/72, Frequency=2400,
		GearMode=1, RefClk=33MHz, tCK=3333333fs
 [SPEW ]  Requested/actual ratio 144/144, Frequency=4800,
	        GearMode=1, RefClk=33MHz, tCK=1666667fs
 [SPEW ]  Requested/actual ratio 192/192, Frequency=6400,
                GearMode=1, RefClk=33MHz, tCK=1250000fs
 [SPEW ]  Requested/actual ratio 224/224, Frequency=7467,
                GearMode=1, RefClk=33MHz, tCK=1071429fs

Change-Id: I7beab13bd9188aa47a45bc4a265aba75f00eded8
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90688
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: P, Usha <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-21 13:16:32 +00:00
alokagarwal
80d48a6288 vc/intel/fsp/fsp2_0/ptl: Expose all the UPDs
As Panther Lake code is moving to a new phase, the full FSP headers,
including all the UPDs, can now be published. This CL is not tied to the
FSP update; it only provides the full list of UPDs for the current FSP
version 3442.07.

Details:
- FspmUpd.h : Expose all UPDs
- FspsUpd.h : Expose all UPDs

BUG=b:474393325
TEST=Build fatcat without any errors.

Change-Id: If02f9bf8d920497b0dcb52f5652839fae7fd0919
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90704
Reviewed-by: <srinivas.kulkarni@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Sowmya, V <v.sowmya@intel.com>
Reviewed-by: Zhixing Ma <zhixing.ma@intel.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-21 10:04:06 +00:00
Sean Rhodes
6118dbe0a3 mb/starlabs/*: Set bluetooth_rdt3 to disabled by default
Change-Id: I78e526722446110821256698922c2a39eab24c9f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90835
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-21 09:12:35 +00:00
Matt DeVillier
60c8496afe ec/starlabs/merlin: Add retry to get_ec_version()
Occasionally when reading the EC version from ECRAM, the major
version fails to read and returns zero. To avoid having an incorrect
version reported, retry up to 10x with a 10ms delay between retries.

TEST=build/boot various Starlabs hardware, update the EC firmware,
verify the EC version is reported correctly every time.

Change-Id: I78d921e7230e8e180041097672661e744f70dde2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90834
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 09:12:26 +00:00
Sean Rhodes
b2c24afcf5 mb/starlabs/starfighter/mtl: Adjust FMAP to match descriptor
Adjust the FMAP to match a newer version of the descriptor generated
with mFIT.

Change-Id: I546697f5c3352358a715f8783a7eda650c771c78
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90823
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 09:11:51 +00:00
Sean Rhodes
9c19c973f6 mb/starlabs/starlite_adl: Adjust FMAP to match descriptor
Adjust the FMAP to match a newer version of the descriptor generated
with mFIT.

Change-Id: Id2eeec5269e8988e425e497f797645fa940922b3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90822
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-21 09:11:46 +00:00
Sean Rhodes
cb08e29ba7 mb/starlabs/*: Move powercap configuration to common dir
Move the code that configures power limits, tcc and other power related
settings into common code. The end result is the same, but the PL4 is
set by reading the battery capacity, rather than being hardcoded.

This patch also appends `_group` to each form group, to avoid conflicts
with objects now visible with the extra headers.

Change-Id: I41235039bc984686fa43f5c712e836d0b8d5d24a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89775
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-21 09:11:40 +00:00
Sean Rhodes
a198e7b8d6 mb/starlabs/*: Use inline DEV_PTR calls
Remove the intermediate struct device's, and replace with the DEV_PTR
macro. This isn't a functional change, just cleaner.

Change-Id: I1a6a596a4d4215f6b670a8a7f7749a4f9bd391b0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90820
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-21 09:11:35 +00:00
Sean Rhodes
9f8094575e soc/intel/meteorlake: Include Arrow Lake microcode binaries
Include the ARL-U A1 and ARL-S/HX B0 microode binaries.

Change-Id: I6ba458892f89b956cd8a1f1b8600c1ce1bc72a65
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90809
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-21 09:11:29 +00:00
Sowmya Aralguppe
fcd716d9a2 mb/google/ocelot: Limit Power Limit when battery is missing
Ensure the board can boot by limiting the power limits if the battery
is missing. This addresses the factory use case for Wildcat Lake
processors.

BUG=b:None
TEST= Use cutoff at-shutdown and reboot
The device should boot with reduced power limits value and the log
is as shown below
[INFO ]  Battery not connected, booting with reduced PL values
[INFO ]  Overriding power limits PL1 (mW) (10000, 15000) PL2 (mW) (35000, 35000) PL4 (W) (45)

Change-Id: Iadb9c4c8450e6a55dd9fc644785742cc7aafd671
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90755
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-20 20:18:35 +00:00
Yu-Ping Wu
d246e2ca7e tests/Makefile.common: Fix inverted USE_SYSTEM_CMOCKA condition
"-I$(cmockasrc)/include" should be added to TEST_CFLAGS if we are
building cmocka from source (i.e., USE_SYSTEM_CMOCKA is NOT 1). Fix the
condition in Makefile.common.

Change-Id: I957066fb24f03712a5b4b396aa9e04f3861940ee
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90798
Reviewed-by: Hsuan-ting Chen <roccochen@google.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-20 20:17:15 +00:00
Yu-Ping Wu
e64507638e tests/lib/ux_locales-test: Avoid double quotes in CMUnitTest.name
From the Jenkins result of CB:90798, it appears that the generated
junit-tests_lib_ux_locales-test(tests).xml is not a valid XML file
possibly due to incorrect quotes handling by cmocka.

Therefore, in the UX_LOCALES_GET_TEXT_TEST macro definition, replace
`#_expect` with `_expect`, so that the `name` field of the CMUnitTest
struct won't contain double quotes.

Change-Id: Idfec437ae627208031854694e66ca79e22132385
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90801
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-20 20:16:59 +00:00
Pranava Y N
4427a34b6b drivers/intel/fsp2_0: Fix string length handling in timestamp printing
The current implementation uses '%*s' which treats the calculated
str_len as a minimum field width. If the underlying string buffer is not
null-terminated, printk will continue reading past the buffer until it
encounters a null byte.

Switch to '%.*s' to correctly use the precision field, which specifies
the maximum number of characters to be printed from the string.

BUG=None
TEST=Able to dump FSP performance data with `DISPLAY_FSP_TIMESTAMPS`
Kconfig selected and meeting the FSP prerequisites. Verify that the
performance data table is printed correctly.

```
[INFO ]  +---------------------------------------------------+
[INFO ]  |------ FSP Performance Timestamp Table Dump -------|
[INFO ]  +---------------------------------------------------+
[INFO ]  | Perf-ID	Timestamp(us)		String/GUID |
[INFO ]  +---------------------------------------------------+
[INFO ]      0	         1242275		SEC/52c05b14-0b98-496c-bc3b04b50211d680
[INFO ]     50	         1242282		PEI/52c05b14-0b98-496c-bc3b04b50211d680
[INFO ]     40	         1242284		PreMem/52c05b14-0b98-496c-bc3b04b50211d680
```

Change-Id: Id95bd34b9c7d45d2c363339eb18adc5ac731c72b
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90788
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-20 15:50:48 +00:00
Sean Rhodes
40dbe0807d Documentation/mb: Add missing entry for starfighter_mtl
Change-Id: I6d7dfe2ab0eb1f4c79dfc5f87ddb8666b79a535b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90569
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-20 12:19:21 +00:00
Sean Rhodes
f070e0add8 mb/starlabs/byte_adl: Fix WOL
The GPIO used for WOL was not configured to support WOL, so configure
this and adjust devicetree accordingly. Also, set the supported state
to S3, as coreboot disables this in S5.

Change-Id: Iaaac1aac3319473fe9e04f44043bf300620915cc
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90791
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-20 09:55:03 +00:00
Sean Rhodes
fc20f238f6 mb/starlabs/*: Select DRIVERS_EFI_FW_INFO
Select DRIVERS_EFI_FW_INFO as to allow updating with EFI
capsules.

Change-Id: I6f0198cea69397be58693c8d48cf7855a1179771
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90790
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-20 09:54:53 +00:00
Patrick Rudolph
225e635ea1 soc/amd/common/block/spi: Operate on multiple SPI flashes
On AMD glinda up to 3 CS# lines are available. Drive the correct
SPI flash chip select using register 0x1d when necessary. This
allows to modifiy the contents of the "backup" SPI flash when
booting from the primary SPI flash.

TEST=Can access backup SPI flash on AMD Glinda SoC.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I446ef54a27c7a29155948cef9219cdef7b52b776
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90779
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-19 20:44:39 +00:00
Patrick Rudolph
b9bd924847 soc/amd/common/block/spi: Implement boot_device_spi_cs()
The PSP can choose the SPI flash to boot from. One such case
would be a corrupted EFS or invalid PSP directory tables.
Read the active SPI CS index from register SPI_ALT_CS_REG and
use it in boot_device_spi_cs().

Register name is taken from Linux kernel.

TEST=Booted on AMD/glinda with EFS on SPI CS0 corrupted. Will
     boot from SPI CS2 and log shows:

     spi_init: Booting from SPI CS2

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I2c806d4d1563aa2403e84dec9f8768081e5e208a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90778
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-19 20:41:51 +00:00
Yu-Ping Wu
d7d4b67c6a commonlib/mipi/cmd: Remove unnecessary 'const void *' cast
The 'buf' variable is already 'const void *'.

Change-Id: I0d52f7386853bf353df637085be0f38f787bf6d5
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90797
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2026-01-19 08:27:06 +00:00
Yu-Ping Wu
5af56ddf92 mb/google/skywalker: Implement lb_board() to pass LB_TAG_PANEL_POWEROFF
To allow payloads to run MIPI panel power-off commands, create a new
LB_TAG_PANEL_POWEROFF record and pass it to payloads.

BUG=b:474187570
TEST=emerge-jedi coreboot
BRANCH=skywalker

Change-Id: Ie11e1e78129188cc26d56764449fbafafa8fa316
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90768
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-19 08:26:58 +00:00
Yu-Ping Wu
d110cf4669 commonlib/mipi/cmd: Add mipi_panel_get_commands_len()
Introduce a helper function mipi_panel_get_commands_len() to calculate
the MIPI panel commands array length.

BUG=b:474187570
TEST=emerge-jedi coreboot
BRANCH=skywalker

Change-Id: I3fef37144f6856057b44415caf578629a35fe573
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90773
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-19 08:26:49 +00:00
Yu-Ping Wu
0ee48a475c drivers/mipi: Add power-off commands for TM_TL121BVMS07_00C
Add DSI power-off commands for TM_TL121BVMS07_00C, so that payloads can
run it to properly disable the display.

Also refactor the init commands using MIPI_DCS_* macros to improve
readability.

BUG=b:474187570
TEST=emerge-jedi coreboot libpayload
BRANCH=skywalker

Change-Id: I0e7da1d23c658d7f3594cbb651c229057810319c
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90740
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-19 06:29:02 +00:00
Ulysse Ballesteros
a974b7668e soc/intel/*: Disable InternalGfx w/o iGPU to prevent FSP-M/S crash
Add verification to ensure that the integrated GPU is available,
avoiding crashes in FSP-M and FSP-S. The problem was first identified
on Skylake systems where the iGPU is missing or disabled, particularly
when VT-D is enabled, which can cause FSP-S to hang during boot.
Enabling SGX hides the issue, but it also leads to unstable
virtualization.

Apply the fix to Alderlake, Cannonlake, and Tigerlake SoCs in addition
to Skylake.

TEST=Build and boot to OS (Windows, Proxmox). Check to verify
functions work. (Skylake H110 + Xeon E3-1245 V5, E3-1260L V5,
i7-6700K, i3-7100)

Change-Id: I394f46ed5a277218a8dd587705eaecabe59fd110
Signed-off-by: Ulysse Ballesteros <ulysseballesteros@gmail.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89821
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-01-17 23:43:17 +00:00
Kapil Porwal
18ffcafa61 mb/google/bluey/quartz: Adjust PS8820 init sequence
List of changes:
- Increase the delay between romstage and ramstage GPIO init sequence.
- Delay the USB host initialization to meet the timing requirements.

BUG=b:475214332
TEST=Verify USB 3.0 storage key detection on Google/Quartz.

Change-Id: Ib6044b1e65fe0fe2fde5b688a9491d6e3fc75727
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90758
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:43:06 +00:00
Uwe Poeche
532543027a mb/siemens/{mc_ehl6,mc_ehl7}: Configure GPIO GPP_G5 (SD CD) pull-up
On mc_ehl6/7 mainboards, the internal GPIO pull-up is required for the
SD card "Card Detect" signal to function properly.
This patch updates the GPIO configuration accordingly.

TEST=Booted mc_ehl6 and verified the voltage level at the
relevant pin before and after the patch.

Change-Id: I96a381f100dd9886ced030434316125d60a13a72
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90769
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:42:47 +00:00
Uwe Poeche
d420e1fb87 mb/siemens/mc_ehl8: Switch from LPSS UART to legacy 8250 I/O UART
Replace the memory-mapped LPSS UART2 with I/O port-mapped legacy
8250 UART for the serial console which is placed on mainboard.

- Removing INTEL_LPSS_UART_FOR_CONSOLE activates the
  DRIVERS_UART_8250IO switch by default.
- Change UART_FOR_CONSOLE from 2 to 0 (COM1 at I/O 0x3F8).
- Add SOC_INTEL_COMMON_BLOCK_LPC_COMB_ENABLE (to enable COM2 at I/O
  0x2F8).
- Sort Kconfig switches alphabetically.

TEST=Built and booted on mc_ehl8
- Verifed boot log on COM1.
- Verifed functionality in OS via:
1) stty -F /dev/ttySx 115200 cs8 -cstopb -parenb
2) sending: echo "teststring" > /dev/ttySx
3) receiving: cat /dev/ttySx

Change-Id: I72b2c0e745b40beab862ee3b68fdb6bfc54ed9ed
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90767
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2026-01-17 23:42:41 +00:00
Uwe Poeche
483c3e51ae mb/siemens/mc_ehl8: Configure I2C and SMB devices
On this board, different I2C controllers must be activated and a
different RTC chip is used compared to mc_ehl1.

TEST=Booted into OS and verified that all relevant devices are detected.

Change-Id: If2990b7d8d599c6e5f5841d8018d2a3f00dbc515
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90766
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:42:36 +00:00
Uwe Poeche
d810257008 mb/siemens/mc_ehl8: Configure PCIe root ports
This patch updates the PCIe root port settings, as the PCIe topology
differs from the mc_ehl1 mainboard.

TEST=Booted into OS and verifed that all relevant PCIe devices are
detected.

Change-Id: I0953a139b63080489128cc0a0dc865b65632b575
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90765
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:42:30 +00:00
Uwe Poeche
cf2c2555f4 mb/siemens/mc_ehl8: Add new board variant based on mc_ehl1
This mainboard is based on mc_ehl1. As a first step, it contains a copy
of the mc_ehl1 directory with minimal changes.
Special adaptations for mc_ehl8 mainboard will follow in separate
commits.

TEST=Built siemens/mc_ehl8 successfully.

Change-Id: Icf8e90e7d3ed58ea4500cb6132fef37e32c5a4c2
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90764
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:42:25 +00:00
Patrick Rudolph
a12663fd88 drivers/spi: Allow SoC to provide the SPI flash CS index
On AMD platforms the PSP can boot from different SPI CS lines
and do a recovery boot in case the default CS0 isn't usable.

Allow the SoC to provide the current boot_device CS line by
adding a new weak function.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ic9ed54b7979405d433f22458265f09701cda842e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90777
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-17 23:41:39 +00:00
Maximilian Brune
cacc11de4f include/cpu/x86/msr.h: Update return types from int -> bool
For all functions which check flags, return a bool type instead of an
int type.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I39f0e2f392ec999f7622ed28c5755dd4d0eecf42
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90776
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-17 23:41:12 +00:00
Tony Huang
d5fb4becd5 mb/google/nissa/var/yavilla: Update DTT parameters
This CL update max TDP from 6W to 7W as requested by thermal team.

Increase tdp_pl1_override value from 6 W to 7 W.
Increase PL1 max power value from 6 W to 7 W.

The settings has been verified by thermal team.

BUG=b:476292154, b:476292156
TEST=emerge-nissa coreboot chromeos-bootimage
     verified test result by thermal team

Change-Id: Iaedfb2caec589dd5f5be5cc872e302d55fa51dd6
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90774
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-17 23:40:46 +00:00
Matt DeVillier
3b18467e8a payloads/ipxe: Unconditionally restore config files post-build
Replace backup file mechanism with git restore to fix restoration
bugs and simplify the build system. Files are now always restored
after build completion, ensuring a clean git state regardless of
which configuration options modify the config files.

TEST=build samsung/stumpy with iPXE for edk2 twice in a row without
failure due to dirty repo state.

Change-Id: I9c88f5ca5e5a0172f7c0a94e4edfe0192340d1e2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90772
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:40:33 +00:00
Matt DeVillier
4374bbd37b payloads/ipxe: Update and use the stable version
Recent changes to iPXE related to UEFI SecureBoot handling are causing
builds to break, so update the "stable" tag to the last commit in
December 2025 and use that by default until things are sorted out in
the master branch.

TEST=build samsung/stumpy with iPXE for edk2

Change-Id: I5ccdbbf35273cf1e963b913327ffa94df46a1497
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90771
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:40:27 +00:00
Matt DeVillier
c0998983d0 ec/google/chromeec: Fix uninitialized buffer in cbi_get_uint32()
Commit e59c5abd13 ("ec/google/chromeec: Add
EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC") refactored cbi_get_uint32() to
write directly to the caller's buffer instead of using a local variable.
This caused uninitialized memory (containing garbage addresses) to be
passed to the EC as the return buffer during CBI reads.

In the case of google/zork, the call to
google_chromeec_cbi_get_board_version() returned garbage data (e.g.,
0xae6ccd05 vs 0x5)  which caused incorrect code paths to be taken:

- variant_override_gpio_table() selected wrong GPIO tables based on
  invalid board version comparisons
- variant_touchscreen_update() skipped touchscreen GPIO configuration
  because variant_uses_v3_6_schematics() returned true for garbage
  values
- variant_uses_codec_gpi() returned wrong value, preventing
  headphone jack interrupt setup

These misconfigurations caused input devices (touchpad, touchscreen,
trackpoint) to be non-functional, despite being detected by the OS.

The fix restores the original behavior by using a local variable
initialized to 0, ensuring a clean buffer is always passed to the EC.

TEST=build/boot google/zork, verify board version is read correctly,
all input devices functional under Linux/Windows.

Change-Id: Ia7be0bcc588075ab5c994edc3d68e979cc01ac79
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90761
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:40:19 +00:00
Yu-Ping Wu
03b47f947f soc/mediatek: Add mtk_get_mipi_panel_data() API
Introduce mtk_get_mipi_panel_data() API for the mainboard code to get
the MIPI panel data.

BUG=b:474187570
TEST=emerge-jedi coreboot
BRANCH=skywalker

Change-Id: Ibd3bccb7ce164a4ad3d6cb36345514240495e62f
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90739
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 02:16:43 +00:00
Yu-Ping Wu
8cfc71d9e0 libpayload: Pass panel power-off commands to payloads
Introduce the lb_panel_poweroff/cb_panel_poweroff structs to pass the
panel power-off commands from coreboot to payloads.

Also add mipi_panel_parse_commands() to libpayload libc, so that
payloads can utilize it to parse the power-off commands.

BUG=b:474187570
TEST=emerge-jedi coreboot libpayload
BRANCH=skywalker

Change-Id: I652178c8075a1f3aee356502e682ef9a4f3d1cf8
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90738
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-01-17 02:16:28 +00:00
Sean Rhodes
d94d4b8a25 mb/starlabs/starlite_adl: Add trace length for the card reader
Add the trace length for the card reader USB port, and based on this
value adjust the macro used accordingly.

Change-Id: I1c7661f492b9193b75ed39abb2f5d14614cfc213
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90675
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-16 20:16:05 +00:00
Sean Rhodes
0f450a8d9c mb/starlabs/starlite: Set card_reader fallback value to 0
The `card_reader` option is only available on specific boards,
so to avoid enabling a USB port that isn't connected, set the
fallback value to 0 instead of 1.

Change-Id: Ied540d6242758663db7a7a11fbefb5c4a84b942d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90770
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-16 20:16:01 +00:00
Nicholas Sudsgaard
94672e2b45 sb/intel/ibexpeak: Remove 6/7 series chipset PCI IDs
Support for the Ibex Peak chipset was added in commit 888d559b03
("Support for Ibexpeak southbridge") by copy-pasting the bd82x6x
implementation and making appropriate changes. This resulted in some
of the PCI IDs for 6/7 series chipsets being left behind.

While some of these PCI IDs were removed in a commit b7d8788880
("ibexpeak/lpc: Fix PCIIDs."), there are still some that remain, we
remove those in this commit.

Change-Id: I5dc0e4fb2694eec9ef6246e0ae9211dff604d5b9
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89569
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-16 16:46:49 +00:00
Angel Pons
2fc8051679 util/autoport: Factor out getting sorted Kconfig option names
Using generics (introduced in go 1.18) we can avoid repeating the same
code multiple times by encapsulating it into a generic function.

Change-Id: I5dc6696f8802d3fe57290121e22b2c27c545d3ef
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90586
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-16 16:46:37 +00:00
Angel Pons
01d82febb2 util/autoport: Separate handling of Kconfig selects
Previously, `KconfigBool` was used to generate selects (if the option
value is true) or bool option overrides (if the option value is false).
This approach is not particularly flexible: one cannot have conditions
for selects, and bool option overrides can only disable options.

Introduce a new `KconfigStatement` map of Kconfig names to conditions.
An empty condition string means that no condition is to be added. Also
update uses of `KconfigBool` to `KconfigSelect` to preserve autoport's
current behaviour.

TEST=Generated files for HP ProBook 4740s (Sandy Bridge) do not change.

Change-Id: I88666ce0d761c1d393ac602196229ec0878fed42
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90585
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-16 16:46:27 +00:00
Cliff Huang
b7763a5973 mb/google/fatcat: Implement Google Rex touchscreen integration
This update introduces support for Google touchscreen devices
to the existing framework, enhancing compatibility with Google's
hardware interfaces. It extends the fw_config field with new
options to accommodate different connection types used by Google
touchscreens. Specifically, it adds:
- TOUCHSCREEN_LPSS_I2C_ELAN_REX for ELAN9006 interfaced via LPSS-I2C.
- TOUCHSCREEN_THC_SPI_ELAN_REX for ELAN6918 interfaced via THC-SPI.
- TOUCHSCREEN_THC_I2C_ELAN_REX for ELAN9006 interfaced via THC-I2C.

BUG=none
TEST=Connect Google's REX touchscreen with the conversion cables. Boot
to OS with fw_config setting for Google's touchscreen and verify
device enumeration in /sys/bus/hid/devices directory.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I3fda0e4587d8484881c844674053a0badfc23a11
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89181
Reviewed-by: Kim, Kyoung Il <kyoung.il.kim@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-16 16:46:19 +00:00
Uwe Poeche
3f5807ce10 mb/siemens/mc_ehl7: Deactivate SATA interface
On this mainboard no SATA interface is assembled. Therefore, it is
deactivated.

TEST=Boot into OS and verify via lspci if relevant SATA Controller is
deactivated and no error in coreboot log is shown.

Change-Id: Iea01c30d18d81e67087ac8abef5cece0040087e5
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90730
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-16 16:45:48 +00:00
Uwe Poeche
5f76f78383 mb/siemens/mc_ehl7: Deactivate GbE and PSE GbE 0
Remove the unused GbE and PSE TSN GbE device 0. These devices are not
required for the current board functionality. Removing them simplifies
the configuration.
Also PSE is not used for any other functionality, the local host
interface is deacitivated as well.

TEST=Check if all other GbE ports of mainboard still work.

Change-Id: I83c7e9731d3684a0b0a7f16b533ee3ea2989f3c6
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90726
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-16 16:45:40 +00:00
Yunlong Jia
b5ad97a268 mb/google/nissa/var/gothrax: Add wifi sar table
Add AX211 wifi sar table for gothrax wifi sar config.
Use fw_config to separate different wifi card settings.

WLAN_AX211_Intel: 1

BUG=b:454207611
Test=emerge-nissa coreboot

Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Change-Id: I11cf6cd61a13f5365530fc07b589d749c9459d26
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90763
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-01-16 06:32:36 +00:00
Yunlong Jia
7351e663d2 mb/google/nissa: Enable early EC SW sync & eSOL for gothrax/epic
`VBOOT_EARLY_EC_SYNC` enables EC software sync in romstage.
This is useful to achieve full USB-PD negotiation early in the boot
flow. It eliminates a problem where PMC is wrongly configured in
depthcharge during the EC-sync scenario which prevents USB devices
from getting detected when connected via a self-powered USB hub.

`VBOOT_EC_SYNC_ESOL` displays early sign-of-life (eSOL) during EC
firmware updates.

BUG=b:386920751,b:467506959,b:468885646
TEST=Verify detection and booting to OS from USB drive connected to
the Servo v4 debugger (self-powered hub) during the EC-sync scenario.
Verify that eSOL is displayed during EC firmware update.

Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Change-Id: I612b4dc13be2efaee863e6cacf8fc4c432edc313
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90762
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-16 06:32:31 +00:00
Subrata Banik
f9b917d391 soc/qualcomm/x1p42100: Relocate CBMEM top below XBL log
Relocate the CBMEM top address from a hardcoded 0xC7800000 to the
start of the XBL log region (_dram_xbl_log).

This change moves the CBMEM region from the high Linux Kernel Reserve
block down into the lower DRAM Space 0, adjacent to other firmware
reserved regions. This consolidation prevents marking CBMEM range as
`reserved` and ensures CBMEM is placed in a more stable memory location
(marked available aka System RAM).

- Remove CBMEM_TOP define from addressmap.h.
- Update cbmem_top_chipset() to return (uintptr_t)_dram_xbl_log.
- Update memlayout.ld documentation to reflect the new memory map.

BUG=none
TEST=Boot on X1P42100 platform, verify CBMEM console and tables are
accessible and correctly located via 'cbmem -l'.

w/o this patch:

```
c7800000-cb7fffff : reserved
```

w/ this patch:

```
815a0000-819fffff : System RAM
```

Change-Id: I7392bb7a62d50640696301931940a7baa00351e3
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90760
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2026-01-16 06:28:36 +00:00
Keith Hui
a306987ae4 util/superiotool: Add experimental Nuvoton NPCD378 support
I use this to dump SIO config on an HP Z210 CMT workstation.

It's a shotgun blast into the dark, although based on what was
done for Z220, already in tree.

Change-Id: I83184f29c11c92384f6a09b671ed9e24956e9e57
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82627
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-15 19:58:20 +00:00
Matt DeVillier
139f6c3e64 mb/google/brya/var/redrix: Configure cameras for Windows/Linux ACPI mode
Update device tree configuration to work with the newly-added Windows/
Linux ACPI device type mode (MIPI_ACPI_TYPE_WINDOWS_LINUX):

- Add IPUA device to GFX generic driver as non-VGA device (required for
  IPU enumeration in Windows/Linux mode where IPU is attached to iGPU)
- Add sensor_name ("S5VM17" and "CJFLE25") for device identification

TEST=build/boot Win11/Linux (Ubuntu 25.10) on google/redrix, verify MIPI
camera functional under both OSes using the Intel IPU6 driver stack.

Change-Id: Ic72a96e93706c096b3839ab4c951e1d0a725b5ce
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90744
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-01-15 19:58:06 +00:00
Matt DeVillier
3883118ed9 mb/google/brya/var/kano: Configure cameras for Windows/Linux ACPI mode
Update device tree configuration to work with the newly-added Windows/
Linux ACPI device type mode (MIPI_ACPI_TYPE_WINDOWS_LINUX):

- Add IPUA device to GFX generic driver as non-VGA device (required for
  IPU enumeration in Windows/Linux mode where IPU is attached to iGPU)
- Add sensor_name ("CJFLE23" and "CJFLE25") for device identification

TEST=build/boot Win11/Linux (Arch) on google/kano, verify MIPI camera
functional under both OSes using the Intel IPU6 driver stack.

Change-Id: I9232318c30ba0eee6dcd54f7199f6995a8ffa48b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90743
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-15 19:58:00 +00:00
Nicholas Chin
ae7b75fb0d mb/lenovo/sklkbl_thinkpad/cfr.c: Fix X280 build error
As there is no model of the X280 with a dGPU, its devicetree does not
declare a device with a dgpu alias like the other Skylake/Kaby Lake
Thinkpad ports. This breaks the DEV_PTR(dgpu) reference in cfr.c,
causing the following build error if CONFIG_DRIVERS_OPTION_CFR is set:

In file included from src/mainboard/lenovo/sklkbl_thinkpad/cfr.c:9:
src/mainboard/lenovo/sklkbl_thinkpad/cfr.c: In function 'update_dgpu':
build/static.h:11:33: error: '_dev_dgpu_ptr' undeclared (first use in this function); did you mean '_dev_igpu_ptr'?
   11 | #define DEV_PTR(_alias)         _dev_##_alias##_ptr
      |                                 ^~~~~
src/mainboard/lenovo/sklkbl_thinkpad/cfr.c:14:31: note: in expansion of macro 'DEV_PTR'
   14 |         struct device *dgpu = DEV_PTR(dgpu);
      |                               ^~~~~~~
build/static.h:11:33: note: each undeclared identifier is reported only once for each function it appears in
   11 | #define DEV_PTR(_alias)         _dev_##_alias##_ptr
      |                                 ^~~~~
src/mainboard/lenovo/sklkbl_thinkpad/cfr.c:14:31: note: in expansion of macro 'DEV_PTR'
   14 |         struct device *dgpu = DEV_PTR(dgpu);
      |                               ^~~~~~~
make: *** [Makefile:431: build/ramstage/mainboard/lenovo/sklkbl_thinkpad/cfr.o] Error 1

Fix this by declaring a WEAK_DEV_PTR for the dgpu device, which will be
overridden by the compiled devicetree if the board variant declares a
dgpu device in its overridetree.

TEST=X280 builds successfully with the following defconfig:

CONFIG_VENDOR_LENOVO=y
CONFIG_BOARD_LENOVO_X280=y
CONFIG_DRIVERS_OPTION_CFR=y

Change-Id: I18cc18a88851bb943de8ab6d2d1fdcbf0f4aea86
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90674
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-01-15 19:57:52 +00:00
Michał Żygowski
7639118729 drivers/amd/opensil: Add hooks to populate CBMEM_ID_MEMINFO
Add a hooks that will populate mem_info structure with DIMM data
obtained from OpenSIL. As the memory population may be SoC-specific,
call a SoC-specific hook to fill the data.

Change-Id: I0b489c685877ac56f45e0e3abd0bd1b64549585b
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89484
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-15 19:57:44 +00:00
Maximilian Brune
23f0b0b313 util/xcompile/xcompile: Fix clang target parameter
It updates the target variable that is used for `clang -target`.
Simply because the format was wrong. According to the documentation the
format of the so called "target triple" is:
<arch><sub>-<vendor>-<sys>-<env>
with:
arch = x86_64, i386, arm, thumb, mips, etc.
sub = for ex. on ARM: v5, v6m, v7a, v7m, etc.
vendor = pc, apple, nvidia, ibm, etc.  (can be omitted)
sys = none, linux, win32, darwin, cuda, etc.
env = eabi, gnu, android, macho, elf, etc.

In case of powerpc that causes an issue when trying to update clang to
version 21. The target parameter for clang ends up being
"powerpc64-none-unknown-linux-gnu". After testing, it turns out that in
clang version 18 that is actually a valid target parameter, although not
according to the documentation. In clang 21 however its not valid so fix
it accordingly.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I958416e6c56459766794830fbeac57ac827ffdd9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90643
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-15 19:57:35 +00:00
Matt DeVillier
f712c965e4 payloads/edk2: Update default MrChromebox branch from 2508 to 2511
Update the default MrChromebox branch to uefipayload_2511.
This branch is rebased on the latest upstream edk tag
'edk2-stable202511', and includes a number of other improvements,
such as setup menu password protection.

TEST=tested on multiple ChromeOS devices from Sandybridge through
Meteorlake.

Change-Id: I5addbcf37e0b1a1afbd731163b4419d4bd9a3747
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90747
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-15 19:57:20 +00:00
Matt DeVillier
b4917ed44d payloads/edk2: rework serial output configuration
Make EDK2_DEBUG automatically select CONSOLE_SERIAL, require
EDK2_CBMEM_LOGGING to depend on EDK2_RELEASE, and make serial console
mutually exclusive with CBMEM logging. Revise the Kconfig text to
indicate the option is for the serial console, not serial debug output.

This prevents users from selecting options which conflict or will
result in a different result than expected. It simplifes the build
options into 4 clear choices:

- Release build
- Release build with cbmem logging
- Release build with serial console support
- Debug build with serial debugging + serial console support

TEST=build/boot google/drobit with above 4 build configurations.

Change-Id: I15bbbcfcb2d9d0b1d4c2074f2c33012ec94f6c01
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90719
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-15 19:57:14 +00:00
Patrick Rudolph
282c27c95c arch/x86/acpi_bert_storage.c: Allow vendor specific BERT entries
Add a Kconfg option to allow the SoC to add vendor specific
BERT entries, not yet defined in the ACPI spec. The function
only has to return the size of payload data and the generic
code will allocate space on the BERT table.

The caller must fill in all BERT fields since the generic
code doesn't know anything about the BERT entry.

Change-Id: I361700098ce1a3cc6acae991456a1901d2f07fb6
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90639
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-15 11:03:44 +00:00
Yidi Lin
00fbc08b76 Reapply "soc/mediatek/mt8196: Call fsp_init via boot state"
This reverts commit 292d7b9d3d.

The resume failure is caused by the improper DEVAPC setting in fsp_init
for DM/PM and SPM. If fsp_init runs prior to dpm_init and spm_init, it
requires AP to grant the access to DM/PM and SPM from DEVAPC. The fix is
done in CB:90756.

BUG=b:474254985
TEST=Run suspend/resume test

Change-Id: Id21327f6d65d31659cdb8b4bda3b0a0510c438e8
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90757
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-01-15 09:03:16 +00:00
一颗小土豆
e6c5ee6450 mb/google/hatch/var/kohaku: Add Samsung S-pen driver support
Modify the Wacom digitizer HID to support the Samsung S-pen. This allows
a different driver to attach under Windows, which adds support for the
side buttons as eraser function and air command.

TEST=build/boot kahaku, verify S-pen works under Windows/Linux

Change-Id: I60b75f7f16f6bb028ad1747e78cc49cac810fc92
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90735
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-15 00:37:39 +00:00
Matt DeVillier
b890ca0648 mb/google/brya/var/yaviks: select USE_MTCL only if CHROMEOS
There is no wifi_mtcl.bin file publicly available, nor can it be
extracted from the stock Google firmware for YAVIKS, so restrict
USE_MTCL to downstream ChromeOS builds since validate_mtcl() fails
when no file is present in CBFS.

TEST=build/boot yaviks, verify no MTCL error in cbmem

Change-Id: I450db6fd8c460109aa4e491d88ec874c5f6429d0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90734
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-01-15 00:37:23 +00:00
Matt DeVillier
a8737c5f86 mb/google/cyan: Set CBFS_SIZE default to match IFD BIOS size
All cyan-based boards define the size of the BIOS region in their IFD
as 6MB in size; it is likewise defined as such in chromeos.fmd. To
avoid having to override this in the board's config file when building
with a modern payload like edk2, set the default CBFS_SIZE to 6MB as
well to avoid issues with the payload not fitting.

TEST=build/boot google/edgar w/edk2 payload and default CBFS_SIZE

Change-Id: I17122aa2eb9848799c284d13d8c903ad125092b9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90733
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-15 00:37:10 +00:00
Matt DeVillier
72af15f1de mb/google/zork: Fix missing comma in CFR object list
When CFR support was added in commit c1f0be39da ("mb/google/zork:
Add CFR option menu support"), a comma was inadvertently left off
the end the first CFR object in the list, which breaks compilation.
Fix this by adding the missing comma.

TEST=build/boot zork

Change-Id: I5f13d87cbc81f440b0c14d253a6334adab45631e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90732
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-15 00:37:04 +00:00
Jeremy Compostella
5db16ea6fc soc/intel/pantherlake: Fix incorrect use of logical OR for TDP selection
The previous implementation used the logical OR (||) operator to select
between config->tdp and get_cpu_tdp(). In C, the || operator returns a
boolean value (0 or 1), not the value of the first true operand. This
caused the function to return incorrect TDP values.

This commit replaces the logical OR with the ternary operator (?:),
ensuring that config->tdp is returned if it is non-zero; otherwise,
get_cpu_tdp() is used. This change restores the intended behavior of
selecting the correct TDP value.

TEST=The power map is properly found and applied on a Panther Lake B005
     SoC.

Change-Id: I3a02f804510f87cb4d28bd929869570c355c5242
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90759
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-14 18:58:03 +00:00
Cliff Huang
2c58e525e8 soc/intel/ptl: Add ACPI IOST support
Add and enable IOST feature to support Intel's IO Self-Testing Software
(IOST), which is an OS tool for performing electrical margining analysis
on USB4 Host and Device Routers, DP2.1 displays, memory, UFS, and PCIe
Gen4+ devices. This change includes the IOST ACPI device in the SoC's
southbridge ASL and implements the SoC-specific soc_fill_p2sb_ssdt
function used by the common P2SB code to generate ACPI code for enabling
IOST in the DSDT. Additionally, the CBFS option "iost_enable" is
required to enable IOST. Command to add this option to the image:
cbfstool <coreboot_image> add-int -r COREBOOT -i 1 -n option/iost_enable
Note that this cbfstool command is an example, for its syntax format
could be changed in the future versions.

BUG=none
TEST=Build coreboot and add the CBFS option flag to the built image.
Boot to OS and verify IOST can access P2SB registers through the ACPI
interface for electrical margining tests.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I6929fa3a44646c5385199a8b1e3d0b681d36c9cc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90045
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-14 18:13:05 +00:00
Cliff Huang
52aeb078ce soc/intel/common/acpi: Add IOST device
Add ACPI device for Intel's IO Self-Testing Software (IOST), which is an
OS tool for performing electrical margining analysis on USB4 Host and
Device Routers, DP2.1 displays, memory, UFS, and PCIe Gen4+ devices.
This ACPI device provides the necessary P2SB access interface to enable
IOST to interact with hardware registers for comprehensive IO testing
and validation. The ASL file should be included in the SoC's
southbridge.asl.

BUG=none
TEST=Build coreboot with this ASL file included in the SoC's
southbridge.asl. Boot to OS and verify IOST objects appear correctly in
the DSDT tables.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I9417da8322931c2afbf75aa9062bceb52b8320d6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90128
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-01-14 18:12:45 +00:00
Cliff Huang
d62764df87 soc/intel/common/block/p2sb: Add SSDT function for SoC-specific features
Add weak function to fill SSDT for SoC-specific P2SB extensions. SoCs
can implement this function to fill additional P2SB-related ACPI
objects. For instance, a SoC might include the IOST ACPI interface that
uses P2SB and enable it via SSDT for debug purposes at the OS level.

BUG=none
TEST=This change cannot be tested in isolation as it only adds an empty
weak function. Testing requires SoCs to implement the function. Add the
necessary code with the same function name in the SoC to generate ACPI
objects and examine the SSDT for changes after boot.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I352f13b9b05dc4b61608a33c76946883bf0d3de3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90691
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-01-14 18:12:35 +00:00
Bora Guvendik
96b4754c35 soc/intel: Add CPU ID support for Nova Lake
Add CPUID definition and CPU table entry for Intel Nova Lake processor
(CPUID 0x300f30). This enables basic CPU initialization and
multiprocessor support for Nova Lake platforms

Reference:
- Nova Lake External Design Specification (EDS) Volume 1 (#844316)

BUG=none

Change-Id: Iea89ebfa8bae3448edfb3b757443ec9902cede5e
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90695
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
2026-01-14 18:10:08 +00:00
Patrick Rudolph
b741e2274e acpi: Add enums for TPM2 start method
Based on the "TCG ACPI Specification" Version 1.3 published 2021.
Add an enum for the ACPI start methods and use it instead of hardcoding
various numbers in plain code.

Change-Id: I8b66527ee7417e231fe52e0a609b8c100de522b0
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89458
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-01-14 17:03:18 +00:00
Patrick Rudolph
6fd865f409 drivers/amd/ftpm: Add fTPM driver for PSP emulated CRB TPMs
The AMD fTPM uses the CRB interface, but doesn't implement all registers
defined in the TCG specification. Add a new driver that deals with the
reduced register set.

The reduced CRB MMIO register space has:
- A START register to ring the doorbell
- An error STATUS register with only one bit
- DMA address and size register for the CRB
- No other status or control registers
- No way to read current locality (assumption is locality 0)
- No interface ID register
- No read only registers

The TPM interface also assumes that the DRTM is always using locality 0.

The fTPM needs to access the SPI flash and this is currently done using
the PSP SMI handler. Thus the fTPM will only operate after SMM has been
set up.

The fTPM needs the PSP directory files type 0x04 and type 0x54. When
the regions are missing or corrupted the fTPM won't be operational.

Based off https://github.com/teslamotors/coreboot/tree/tesla-4.12-amd

TEST=Works on AMD glinda (Fam 1Ah).

This adds the following new log messages:
[DEBUG]  PSP: Querying PSP capabilities...OK
[DEBUG]  PSP: Querying fTPM capabilities... OK
[DEBUG]  PSP: Querying fTPM capabilities... OK
[DEBUG]  TPM: CRB buffer created at 0x7b5ee000
[SPEW ]  fTPM: CRB TPM initialized successfully
[INFO ]  Initialized TPM device fTPM

...

[DEBUG]  PSP: Querying fTPM capabilities... OK
[DEBUG]  TPM2 log created at 0x7b5b1000
[DEBUG]  PSP: Querying fTPM capabilities... OK
[DEBUG]  ACPI:    * TPM2
[DEBUG]  ACPI: added table 4/32, length now 68

Change-Id: I780bdab621228e12b37f3a89868e16bc62a05e7b
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88247
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2026-01-14 17:02:47 +00:00
Jeremy Compostella
c09352d58d soc/intel/pantherlake: Update PS1 threshold to the latest recommendations
Update the PS1 threshold values for VR_DOMAIN_IA, VR_DOMAIN_GT, and
VR_DOMAIN_SA from 20 A to 15 A, following the recommendations in the
Panther Lake H Platform Design Guide (Draft > 2.1). This change ensures
that power state thresholds are consistent with the most recent platform
specifications, improving accuracy and system behavior under varying
power conditions.

TEST=Fatcat device boots to OS.

Change-Id: I358d4d94c3800ff5b658cb875c90ee7409d86377
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90727
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-14 16:45:18 +00:00
Uwe Poeche
093ae8eeaa mb/siemens/mc_ehl7: Enable reboot after HW Watchdog expiry
Configure the board to perform a hardware reboot when the TCO watchdog
expires. This is achieved by using the default Kconfig option
SOC_INTEL_ELKHARTLAKE_TCO_NO_REBOOT_EN with 'n'.

TEST=Verified in the OS on mc_ehl7:
Checked IO-mapped register 0x408 Bit 0.
Without this patch, the bit is 1 (No Reboot enabled).
With this patch, the bit is 0 (Reboot on expiry enabled).

Change-Id: If3bee9db84c92480762f8a802031d2b01541dbdb
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90716
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2026-01-14 16:44:05 +00:00
Uwe Poeche
ddf4748c22 mb/siemens/mc_ehl7: Deactivate RTC
On this mainboard no RTC is assembled. Therefore, it is deactivated.

TEST=Boot into OS and verify if relevant I2C Controller is disabled and
no error in coreboot log is shown.

Change-Id: I23b4a735a09686fa2636280d7b410db59d884c49
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90715
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2026-01-14 16:43:57 +00:00
Uwe Poeche
e8ac9ffcd9 mb/siemens/mc_ehl7: Add new board variant based on mc_ehl6
This new mainboard variant for the Siemens mc_ehl6 is initially based on
a direct copy of the mc_ehl6 configuration. This commit contains the
basic board setup with only minimal changes to enable the new variant.

Further specific adaptations for the mc_ehl7 hardware will be handled
in subsequent commits.

TEST=Build and boot to OS on mc_ehl7.

Change-Id: I46148492f65630175abb3ce884261d098314f2bc
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90714
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-14 16:43:45 +00:00
Avi Uday
94e6e5cd0d mb/google/ocelot: Add option to enable VGA mode 12
This commit adds a new Kconfig option to the ocelot mainboard
to enable VGA mode 12 support for early Sign of Life (eSOL).

- This option, `OCELOT_VGA_MODE12_SUPPORT`, is dependent on
  `FSP_UGOP_EARLY_SIGN_OF_LIFE`.
- It selects `ROMSTAGE_VGA` and `FSP_VGA_MODE12` to enable the
  necessary VGA components.

BUG=None
TEST=Verify VGA text rotation on ocelot RVP.

Change-Id: I71dff6e58c3e4487079c0090848ecde9da5153d7
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90731
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-14 16:43:30 +00:00
Pierce Chou
fbf0087918 mb/google/ocelot/var/ocicat: Use GPP_F10 for ISH
Currently, Linux is unable to load the ISH firmware,
as GPP_F10 define  lost
Update gpio pins GPP_F10 for ISH

bug=b:465776760
TEST=Flash and boot to OS on ocicat,
Verified ISH fw load in cpu console using below command.
    ~ # dmesg | grep ish
    output:
    intel_ish_ipc 0000:00:12.0: ISH loader: load firmware:
intel/ish/ish_wcl.bin

Change-Id: I4642560d3b14560e93158d1d19b496e22811600c
Signed-off-by: Pierce Chou <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90708
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-14 16:43:21 +00:00
Patrick Rudolph
f2788e963f device: Rename PCI_EXP_SEC_CAP_ID -> PCI_CAP_ID_SEC_PCIE
Rename the define for "Secondary PCI Express Extended
Capability" and move it close to the other existing defines.

Cosmetic change. No functionality was changed.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I3b1ce6820f508661d3241c36c90febe0c73b7a5a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90694
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-14 11:19:33 +00:00
Maximilian Brune
e01baafbe2 include/cper.h: Add check information structures
It is needed in a later commit that is not upstream yet.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I260dcf199178d28387e7af06c6fb0b03c97c4bb8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90692
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-14 11:17:54 +00:00
Yu-Ping Wu
a6407000f1 mipi/panel: Add 'poweroff' field to panel_serializable_data
Some payloads such as depthcharge need to run MIPI panel power-off
commands before booting to the kernel. Otherwise, the abnormal power-off
timing would prevent the pixel charge from being cleared before
power-off, leading to the risk of LCD overpotential hence resulting in
image stickiness or flicker upon restarting.

Therefore, add a 'poweroff' field to the panel_serializable_data struct,
which, in a follow-up patch, will be passed to payloads for running the
power-off commands. Each MIPI panel can define the power-off commands in
that field.

As both init and power-off commands are supported, remove "_init" from
related structs and enums.

BUG=b:474187570
TEST=emerge-jedi coreboot libpayload
BRANCH=skywalker

Change-Id: I1a7c0a14d5c197a0887a26269e4c36e498e8b7ae
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90737
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2026-01-14 09:40:54 +00:00
Yu-Ping Wu
b4fbc59c6f treewide: Move mipi_panel_parse_commands() to commonlib
Move the MIPI panel init command parsing function
mipi_panel_parse_init_commands() and related macros and structs from
drivers/mipi/ to commonlib/mipi/, so that the function can be shared
with payloads.

In a follow-up patch, a 'poweroff' field will be added to the
panel_serializable_data struct and then passed to payloads, so that
payloads can utilize mipi_panel_parse_init_commands() to run the panel
poweroff commands.

BUG=b:474187570
TEST=emerge-jedi coreboot libpayload
BRANCH=skywalker

Change-Id: I19011669f03d060e9f030b673687cbe5965d7e2f
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90736
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2026-01-14 09:38:36 +00:00
Yidi Lin
1d2b399fd7 lib: Rename fill_lb_framebuffer to get_lb_framebuffer
Rename `fill_lb_framebuffer` to `get_lb_framebuffer` to better
reflect that it returns framebuffer information.

The new `get_lb_framebuffer` returns a constant pointer to the
framebuffer structure instead of filling a provided structure.
This simplifies the API and avoids an unnecessary memory copy.

The file `edid_fill_fb.c` is renamed to `framebuffer_info.c`
to better match the function it now contains.

Call sites in `coreboot_table.c` and `render_bmp.c` are
updated to use the new API.

TEST=emerge-tanjiro coreboot; check the FW logo is correctly drawn.
BUG=b:319511268

Change-Id: I8d7b20a0524b6bc9fff9e6461fa0c253345df790
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90725
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-01-14 04:17:14 +00:00
Wonkyu Kim
5f86aba4b3 soc/intel/common: Enable high address support for MCHBAR in ACPI
Increased MHBR field width in ACPI northbridge.asl from 17 to 27 bits,
allowing MCHBAR to be set above 4GB (up to 42 bits).

Reference: Section 10.3 in 850519
BUG=none
TEST=boot to OS with ACPI debug enabled and check GMHB log

Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Change-Id: I885ff64598367ddadcec05926af3556024b61250
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90729
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-13 19:36:29 +00:00
Michał Żygowski
f00a2ff7b8 arch/x86/ioapic.c: Support 8-bit IOAPIC IDs
AMD systems support 8-bit IOAPIC IDs. Some silicon initialization code
modules, like OpenSIL, may allocate an 8-bit ID by default. To respect
that configuration or set ID properly in coreboot, whole 8-bit ID field
has to be cleared and set.

Add new IOAPIC_8BIT_ID Kconfig option to allow setting 8-bit long IOAPIC
IDs.

TEST=Set IOAPIC IDs starting with 240 on Gigabyte MZ33-AR1.

Change-Id: Ie85b2272b0bc64a95d76c5677816941f1334901d
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89476
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
2026-01-13 16:19:43 +00:00
Maximilian Brune
3c3fbbaabf arch/x86/acpi_bert_storage.c: Remove unused variable
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7fb8486f265be071fd59267ce120256c183d8dd6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90693
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-13 16:19:23 +00:00
Jamie Chen
9f4132712f soc/intel/alderlake: add chipsetinit support
Intel chipsetinit.bin is for PCH modphy initialize.
Add code to read chipsetinit.bin from CBFS and fill UPD params.

BUG=b:447290550
TEST=1. build coreboot
     2. check log to confirm load chipsetinit.bin successfully.

Change-Id: I65740f52c779daeea1a27a9e078336daee29cf3b
Signed-off-by: Jamie Chen <jamie.chen@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90687
Reviewed-by: Simon Yang <simon1.yang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kao, Ben <ben.kao@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-13 15:45:53 +00:00
Subrata Banik
a5c0307e9c commonlib/device_tree: Add dt_add_reserved_memory_region helper
Introduce a centralized helper function, dt_add_reserved_memory_region,
to simplify the creation of sub-nodes under /reserved-memory.

Currently, various features (such as pKVM, ramoops, and platform-
specific firmware reservations) manually handle the creation of
reserved memory nodes. This involves repetitive logic for:
 - Navigating or creating the /reserved-memory parent path.
 - Calculating cell sizes for 'reg' properties.
 - Manually adding 'no-map' or 'compatible' properties.

This helper abstracts those steps into a single call, reducing
boilerplate and the risk of cell-size mismatches across the codebase.

The function handles:
 - Node creation if the path doesn't exist.
 - Optional 'compatible' string assignment.
 - Automatic 'reg' property generation using appropriate address/size
   cells.
 - Optional 'no-map' property assignment via a boolean flag.

Change-Id: Ie58f5fdcfd1863b41c177b63ed9fc25d6d220e3a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90713
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2026-01-13 00:46:32 +00:00
Luca Lai
a3a556f05d mb/google/fatcat/var/ruby: Add wifi SAR table
Based on the WiFi firmware configuration to add function for
getting WiFi SAR cbfs filename.

BUG=b:460231264
TEST=Build and check the system could boot to OS, and check the SAR table could work fine.

Change-Id: Ieec65debdc9f506e779352fcf8e54daa9296c0f7
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90376
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-12 01:35:52 +00:00
Matt DeVillier
8bc1372f72 sb/intel/common/spi: Prevent transfers across 4KiB boundaries
The ICH SPI controller fails when a single transfer spans a 4KiB
boundary. Limit data_length in spi_ctrlr_xfer() to stay within the
current 4KiB page when with_address is true, avoiding the hardware
limitation at the platform driver level.

This fixes SPI read errors observed on SandyBridge, IvyBridge, Haswell,
and Broadwell when reading option variables stored in SMMSTORE. When
scanning the store to locate a given variable, reads would often cross
into the next 4KiB page (eg, reading 60 bytes from 0x313ff0).

TEST=build/boot stumpy, link, beltino, jecht boards, verify no SPI read
errors in cbmem, CFR options work properly.

Change-Id: I73d9c0acdbbb2faf5caff1f73049bff900774156
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90689
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-10 21:47:04 +00:00
Matt DeVillier
95ad028274 drivers/smmstore: Use lookup_store() for memory-mapped reads
The smmstore_lookup_region() function was using
fmap_locate_area_as_rdev_rw() directly, which only provides
direct SPI access. This bypassed the optimized lookup_store()
function that uses incoherent_rdev to enable memory-mapped
reads via the read-only device while keeping direct SPI writes
via the read-write device.

Change smmstore_lookup_region() to call lookup_store() instead,
enabling memory-mapped reads for the public API and matching
the behavior of the internal implementation.

This improves read performance for EFI options and other
consumers of the SMMSTORE region device. It also fixes an issue
where direct SPI reads were crossing 4k page boundaries on older
platforms (Broadwell and earlier) causing them to fail and the
fallback option to be used, leading to a disconnect between the
user-selected option and device beahvior.

TEST=build/boot google/guado, verify all CFR options work properly
and no errors in cbmem.

Change-Id: I34947be932ede19a3fe896fe0da6373035fe6db7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90717
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2026-01-10 21:46:55 +00:00
Matt DeVillier
c421847fe2 util/crossgcc: Fix GNAT detection for gnat-15
GCC's configure script requires gnat1, gnatbind, and gnatmake to be
available as unversioned executables in PATH when building with Ada
support. The previous detection logic only checked for gnat1 and used
a lenient searchtool check for gnatbind, which could incorrectly
enable Ada support when gnatmake was missing, causing configure to
fail with "GNAT is required to build ada".

In GNAT 15+, tools may only be available as versioned executables
(e.g., gnatbind-15, gnatmake-15), but GCC configure still requires
unversioned names. This change:

1. Adds explicit checks for gnatbind and gnatmake (unversioned)
2. Updates have_gnat() to require all three tools
3. Detects GNAT 15+ versioned tools and provides helpful error
   messages with instructions to create symlinks
4. Falls back to generic installation instructions if no GNAT tools
   are found

This prevents the configure error and provides clear guidance for
users with GNAT 15+ installations.

Change-Id: Idc16ec48612e88fc9bdd16b343ae267aa20490f3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90635
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2026-01-10 21:46:47 +00:00
Yidi Lin
292d7b9d3d Revert "soc/mediatek/mt8196: Call fsp_init via boot state"
This reverts commit 14a7a2315e.

Reason for revert: The change causes DUT failed to resume from S3.

BUG=b:474254985
TEST=Wake up DUT by power key.

Change-Id: I2f2291a12d9b440d000a28e38bb590bc77a02c8a
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90703
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2026-01-10 03:59:20 +00:00
Yidi Lin
e705c39009 libpayload/arch/arm64/mmu: Add CB_MEM_TAG to usedmem_ranges
CB_MEM_TAG is considered as an reserved memory. But we want to mange
this region in the payload and release this region when MTE is inactive.
Add CB_MEM_TAG memory range to usedmem_ranges to get a page table
mapping and mark it as used.

BUG=b:438666196,b:474306129
TEST=Check the tag region is wiped out in DEV mode.

Change-Id: I498407cbd44b1cc70ef769a63b8e40665ea67b28
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90702
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-10 03:59:06 +00:00
Maximilian Brune
18a986c5fe soc/amd/cmn/block/cpu/mca: Support MCA_SYND1 and MCA_SYND2
The number of MCAX register used inside an MCA BANK changed from phoenix
onwards. Since phoenix all 16 MCAX register are used inside an MCA bank.

According to spec:
The MCA_SYND register stores a syndrome associated with the error logged
in MCA_STATUS or MCA_DESTAT. The “syndrome” may include syndrome values
associated with an error correcting code or other information about the
error. The contents of this register are valid if MCA_STATUS[SYNDV] bit
is set to 1 or MCA_DESTAT[SYNDV] bit is set to 1.

source: AMD64 Architecture Programmers Manual Rev 3.42

Change-Id: I20a31776d4b031c810ef0dc6502c421ade6f4315
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90640
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-09 19:32:59 +00:00
Kapil Porwal
c45e153dfb mb/google/bluey/var/quartz: Enable PS8820 support
Select MAINBOARD_HAS_PS8820_RETIMER for the Quartz board variant.
Quartz uses external PS8820 retimers that require explicit
configuration to achieve SuperSpeed data rates.

BUG=b:473489095
TEST=Verify USB SS detection on Quartz.

Sample xHCI PORTSC register output:
```
firmware-shell: md 0x0a800420 8
0a800420: 000002a0 00000000 00000000 00000000    ................
0a800430: 00001203 00000000 00000000 00000000    ................
firmware-shell: md 0x0a600420 8
0a600420: 000002a0 00000000 00000000 00000000    ................
0a600430: 00001203 00000000 00000000 00000000    ................
```

Change-Id: Ibb801adc5f7e874a403c644a5c1b3aa592a3d067
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90712
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-09 18:18:23 +00:00
Kapil Porwal
e303357cb9 soc/qualcomm/x1p42100: Call mainboard Type-C config hook
Update the SoC USB driver to invoke mainboard_usb_typec_configure for
both primary and secondary ports. This is called after the QMP PHY
initialization to ensure the external signal path is correctly
muxed for the detected orientation.

BUG=b:473489095
TEST=Verify USB SS detection on Quartz.

Sample output:
```
firmware-shell: md 0x0a800420 8
0a800420: 000002a0 00000000 00000000 00000000    ................
0a800430: 00001203 00000000 00000000 00000000    ................
firmware-shell: md 0x0a600420 8
0a600420: 000002a0 00000000 00000000 00000000    ................
0a600430: 00001203 00000000 00000000 00000000    ................
```

Change-Id: Ic90a62b1f6ad62a8870c6d5333d06b6a11d26d4f
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90711
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-09 18:18:16 +00:00
Kapil Porwal
f9efe53cb0 mb/google/bluey: Implement PS8820 retimer configuration
Implement mainboard_usb_typec_configure to program the Parade PS8820
retimers over I2C. The function sets the USB3 mode registers for
either normal or flipped orientation based on the polarity reported
by the SoC.

Additionally, update mainboard_init to perform standard I2C
initialization for the retimer buses when this feature is enabled,
ensuring the buses are ready for transactions during the USB
sequencing.

BUG=b:473489095
TEST=Verify USB SS detection on Quartz.

Sample output:
```
firmware-shell: md 0x0a800420 8
0a800420: 000002a0 00000000 00000000 00000000    ................
0a800430: 00001203 00000000 00000000 00000000    ................
firmware-shell: md 0x0a600420 8
0a600420: 000002a0 00000000 00000000 00000000    ................
0a600430: 00001203 00000000 00000000 00000000    ................
```

Change-Id: I14f86945aeea9b83a9433edd53f5023231ca859d
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90707
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-09 18:18:07 +00:00
Kapil Porwal
657bcd32d9 mb/google/bluey: Add Kconfig for PS8820 retimer support
Introduce the MAINBOARD_HAS_PS8820_RETIMER Kconfig option. This will
be used to conditionally enable I2C initialization and retimer
configuration logic on Bluey variants.

BUG=b:473489095
TEST=Verify USB SS detection on Quartz.

Change-Id: I949fb16f8c46a8375b50d2b108b8edde3231f4e9
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90710
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-09 18:17:57 +00:00
Kapil Porwal
17a52ce94e soc/qualcomm/x1p42100: Add mainboard USB Type-C config hook
Add a function declaration for mainboard_usb_typec_configure. This
allows mainboards to implement custom logic for external components,
such as retimers or muxes, that need orientation-aware configuration.

BUG=b:473489095
TEST=Verify USB SS detection on Quartz.

Change-Id: I20d9a23da5b855a413f8358b8783f44c1632ccdf
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90709
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-09 18:17:48 +00:00
Subrata Banik
16cb8d0d0c mb/google/bluey: Add power sequencing for USB-C1 retimer
This patch implements the power-on and reset sequence for the USB-C1
retimer on the Bluey mainboard.

Sequence Details:
 - romstage: Added early_setup_usb_typec to ensure all power rails
   (3.3V, 1.8V, 0.9V) are disabled and the retimer is held in reset
   early in the boot process.
 - ramstage (mainboard): Added setup_usb_typec to perform the power-up
   sequence with the required 1ms delays between rails to ensure
   hardware stability:

BUG=b:473489095
TEST=Able to detect USB devices in HS mode.

Change-Id: Ia93c0078aecdec98f3af28e73e7af5af7a3b20d8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90699
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-09 18:17:35 +00:00
Matt DeVillier
5034f8629f soc/intel/common: Add spinlock protection to fast SPI flash operations
Add spinlock synchronization to prevent concurrent SPI flash controller
access from multiple CPUs in SMP environments. The spinlock serializes
access to the SPI controller hardware in exec_sync_hwseq_xfer().

If SMP is not enabled, spinlock functions are no-ops, so this change
is safe for both SMP and non-SMP configurations.

This resolves an issue seen on the Starlabs Starfighter MTL where
multiple SPI transaction errors occurred when reading option variables
stored in SMMSTORE:

[ERROR] SPI Transaction Error at Flash Offset 103002a HSFSTS = 0x01016022
[ERROR] SPI Transaction Error at Flash Offset 1030004 HSFSTS = 0x01006022
[ERROR] SPI Transaction Error at Flash Offset 1030000 HSFSTS = 0x3f006022
...

Change-Id: Ic3003b0a986b587622102b6f36714bcb16c3d976
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90283
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2026-01-09 16:40:56 +00:00
Pranava Y N
ceaa41c9e4 drv/intel/mipi_camera: Verify SSDB only for camera sensors
The MIPI camera driver currently validates SSDB parameters for all
devices using the driver. However, some devices (VCM/NVM) does not have
these parameters configured.

Wrap the SSDB verification logic in a check for
`INTEL_ACPI_CAMERA_SENSOR`. This prevents the driver from throwing
"Parameters not set" errors and failing to create ACPI devices for
non-sensor devices.

BUG=b:474223827
TEST=Build and boot fatcat, verify that MIPI initialization no longer
fails for non-sensor MIPI devices while still enforcing validation for
actual camera sensors.

Change-Id: I34ef416cdc9fa35fdca21e9fecaa8d7fc2914338
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90697
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-09 16:40:38 +00:00
Matt DeVillier
ede97ef9da mb/google/volteer: Add IPUA device and sensor names
Add missing configuration items for volteer variants to have functional
MIPI cameras under Windows/mainline Linux:

- Add IPUA device to graphics device configuration
- Add sensor_name register to sensor device configurations

Change-Id: Icd80ccc09b9c0436978d781fefb6ab85fbe71484
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90580
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-01-09 15:03:23 +00:00
Matt DeVillier
65cbf312af mb/google/volteer: Convert MIPI camera cfg from static ASL to devicetree
Convert MIPI camera configurations from static ASL files to devicetree-
based runtime ACPI generation using the mipi_camera driver. This moves
the camera IPU and device definitions from static ASL includes to
devicetree overridetree files.

Changes:
- Convert baseboard, voema, volteer, and volteer2 from static
  mipi_camera.asl files to devicetree configuration
- Move IPU0 configuration with CAM0 and CAM1 to volteer/volteer2
  variant overridetree files (baseboard devicetree not used directly)
- Remove all static ASL camera definition files (mipi_camera.asl)
- Simplify voema variant to use only 1 IPU port (CAM1 only) instead
  of 2 ports, removing unused CAM0 port definition
- Add SSDB config based on sensor name/type and CIO2 config

This, along with follow-on patches, will allow volteer variants to be
properly supported under Windows/Linux as well as ChromeOS.

Change-Id: I7bd4ef2812a3d21b6541469bc3a126498d72f5ef
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90579
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2026-01-09 15:03:14 +00:00
Matt DeVillier
2aca802e85 mb/google/brya/acpi/cnvi_bt_reset: Fix BT re-enumeration under Windows
The previous implementation violated ACPI spec by attempting to
implement a reset via _ON/_OFF, which are to be used exclusively for
device power management/power state transitions. As a result, under
Windows the CNVi BT device was continually re-enumerating and unable
to be used.

Fix this by moving the reset logic out of _ON/_OFF and into _RST, where
it belongs.

TEST=build/boot Win11 on google/taeko, verify BT device is functional.

Change-Id: I1627fefbf7747129344291cc8855c15dda50cf5f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90582
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-09 15:03:00 +00:00
Matt DeVillier
524ad684af mb/google/brya/var/taeko: Fix SOF speaker topology selection
taeko/taeko4es use max98357a-tdm, not max98357a.

TEST=build/boot Win11 on taeko, verify speaker output functional.

Change-Id: I854a9c75ded94474ad440013dad64ee03c40d6e5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90581
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-09 15:02:53 +00:00
Tomasz Michalec
829b8be432 libpayload: Add bulk with timeout callback to USB
Add bulk_timeout() callback to USB controllers that allows to issue bulk
transaction with configurable timeout. This allows to peek if there is
any incoming data from USB device without needing to wait 5 seconds if
there is no data.

'finalize' argument is omitted in bulk_timeout(), because any recent
controller doesn't use it in bulk() method anyway. For OHCI and UHCI,
which are only controllers using 'finalize', issuing bulk_timeout() with
USB_MAX_PROCESSING_TIME_US timeout is the same as issuing bulk() with
'finalize' set to zero.

Change-Id: I82dbe307b566e4fc6cca314924168f7ad677efe7
Signed-off-by: Tomasz Michalec <tmichalec@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90043
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2026-01-09 15:02:44 +00:00
Ian Feng
f4fe5514fe mb/google/ocelot/var/kodkod: Update gpio settings for NC pins
- Remove unused I2C3 pin configurations.
- Remove RST control. The ETU925 fingerprint module does not
  need to control the RST pin.

BUG=b:452542491, b:467835297
TEST=emerge-ocelot coreboot

Change-Id: Ib4db733187d1b15f89654b53c1cf98420d652546
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90696
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2026-01-09 14:59:46 +00:00
Michał Żygowski
c7f0697867 coreboot_tables: Add new CBMEM ID to hold the PCI RB aperture info
On AMD server systems there are multiple PCI root bridges. The root
bridge scanning in UEFI Payload is not sufficient to detect the
memory and I/O apertures properly. For example on Turin system, the
I/O aperture on the first root bridge containing the FCH may not
have any I/O resources detected on the PCI devices. This results in
the I/O decoding to be disabled on the root bridge, effectively
breaking the I/O based serial ports, e.g. on Super I/Os and BMCs.

Add new CBMEM ID to report the PCI root bridge aperture information
to the payload. The intention is to use the Universal Payload PCI Root
Bridges Info HOB that is already supported in the UEFI Payload. The HOB
will take priority over the root bridge scanning and properly report
the apertures of the PCI root bridges on AMD system.

Change-Id: If7f7dc6710f389884adfd292bc5ce77e0c37766f
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89486
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-09 00:30:03 +00:00
Maximilian Brune
3ded43722a soc/amd/cmn/block/acpi/ivrs: Use less PCI accesses
Refactor code to use less redundant PCI accesses to decrease boot time.

Change-Id: Ic2bb610ebf22dd43580ac94360d905b1c782224a
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90641
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-09 00:29:43 +00:00
Maximilian Brune
1da7c31810 include/cpu/x86/msr.h: Add MCA related MSRs
They are needed in a later patch which is not yet upstream.

source: AMD64 Architecture Programmers Manual Rev 3.42

Change-Id: I4f5bb5533d8f0e1765749d24ef0b22805ad1554a
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90480
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-08 18:24:23 +00:00
Kirubakaran E
7deb82d744 mb/google/bluey: Configure QUPV3_0_SE3 and QUPV3_0_SE7 for USB-C0
and USB-C1 Retimer I2C access

Load I2C firmware to QUPV3_0_SE3 and QUPV3_0_SE7 Serial Engines and
configure both in MIXED mode to enable I2C access for USB-C0 and USB-C1
retimers.

Test=
1. Created image.serial.bin and verified successful boot on X1P42100.
2. Read the corresponding QUP SE firmware revision read-only register
   and confirmed that the protocol field (bits 8-15) matches the
   programmed value. Register details are in HRD-X1P42100-S1
   documentation:
   https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/
   Example:If programmed as I2C, the register value read is 0x00000303,
   where 3 denotes the I2C protocol.

Change-Id: I337329628ac04246ab579e062a802a028cb4c560
Signed-off-by: Kirubakaran E <kirue@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90690
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-08 11:05:44 +00:00
Sowmya V
b00d2ad5c2 vc/intel/fsp/fsp2_0/pantherlake: Update PTL FSP headers to FSP 3442.07
Update Panther lake FSP headers from version 3373.03 to 3442.07

FspmUpd.h: Add below upds
* Vdd2HVoltage
* Vdd1Voltage
* Vdd2LVoltage
* VddqVoltage

FspsUpd.h: Add below upds
* UfsInlineEncryption
* MaxActiveDisplays

MemInfoHob.h:
* FailingChannelMask - Limp Home mode failing channel bitmask

BUG=b:463516609
TEST=Able to build google/fatcat with the latest header changes

Change-Id: Ifd9d3476626f4028ea01eddef23b3b61f5e76d17
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90332
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-08 07:12:12 +00:00
Subrata Banik
b7ad850fd6 mb/google/bluey: Add percentage symbol to battery level log
Update the battery state-of-charge print statement in romstage to
include a percentage symbol. This makes the log output more
readable and consistent with battery level reporting.

Use '%%' to correctly escape and print the literal '%' sign in
the printk statement.

BUG=None
TEST=Boot Bluey and verify romstage logs show "Battery
state-of-charge 95%" instead of "Battery state-of-charge 95".

Change-Id: I97b533567b56bfaba41508e35a6f324f0dbf331e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90684
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-08 04:01:53 +00:00
Tony Huang
ae48ff8c0b drivers/wwan/fm: Use _EVT method to enhance GPIO event handling
Currently _Exx suppots the wake pin under 255, for Caboc it's wake pin
is 325 which is out of range.

This CL change to use _EVT method to enhance GPIO event handling.

BUG=b:463410386
TEST=Compiled and tested on google/redrix and google/caboc:
1. emerge-brya coreboot, emerge-brox coreboot
2. Check /proc/interrupts has ACPI:Event
2. Wait for WWAN device to enter suspended state
3. Insert SIM card and modem is able to wake up WWAN device

Change-Id: Ifbb83ab48bbe4876269010adb2710641bdc879a5
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90492
Reviewed-by: Kevin Chiu <kevin.chiu.17802@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-07 16:25:22 +00:00
Fabio Baltieri
7ed7abbd92 acpigen_ps2_keybd: map screenlock
This is going to be used by some devices, map the next available
extended code to it.

Change-Id: Ib4fc6c33e10f273a73f3a6ca40deeefa3ab70f20
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90617
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-07 16:24:50 +00:00
Michał Żygowski
6b52f82df2 util/amdfwtool: Remove AMD_FW_GFXIMU_2 entry
AMD_FW_GFXIMU_2 entry has the same type value as AMD_FW_SRAM_FW_EXT.
The tool may integrate one of these blobs incorrectly, because
it searches for the first entry of given type in the amd_psp_fw_table.

AMD_FW_GFXIMU_2 could have been added by mistake, because there is no
board that actually defines PSP_GFX_IMMU_FILE_2 in fw.cfg file.

Change-Id: I7e1f38c77156d06e9e6d801bdfa9b9eefcbb374e
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90388
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-07 12:21:01 +00:00
Michał Żygowski
b9145e1588 util/amdfwtool: Remove duplicated AMD_TA_IKEK
The AMD_TA_IKEK occurrs twice in the amd_psp_fw_table, but the tool
will only add it once anyways, so remove redundant entry.

Change-Id: I7fd13552edf98d7adc749726c8bba46124aed495
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90389
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2026-01-07 12:20:47 +00:00
Maximilian Brune
e393fd00a4 include/cper.h: Update cper_ia32x64_context_t
Use flexible array member cper_ia32x64_context to simplify the struct
usage.

Change-Id: I729cb914031b55b2b58bc9e459ee0ea15c7626e8
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90479
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-07 09:41:26 +00:00
Yidi Lin
14a7a2315e soc/mediatek/mt8196: Call fsp_init via boot state
Refactor fsp_init to be called as a boot state entry
(BS_DEV_INIT, BS_ON_ENTRY) instead of directly from soc_init. This
ensures fsp initialization occurs at the appropriate boot stage.

This change is necessary for FW logo rendering in the ramstage. fsp_init
must be run before FW display starts rendering the logo.

BUG=b:471111147
TEST=Check FW logo

Change-Id: I41b32229d4c582d84afac5c336eb98b1b1274ba8
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90686
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2026-01-07 08:05:42 +00:00
Ziang Wang
82f9c593ab payloads/libpayload: Add support for RISC-V 64-bit architecture
This patch adds config ARCH_RISCV_RV64 to support build of riscv64
payloads. New files under arch/riscv contain:
- Basic ldscript and payload entry point.
- Functions for riscv64 io and cache operations.
- Default timer code based on mtime delegation.
- Default cb_header_ptr passing with device tree to payload.

Change-Id: Ieb3d456d5edda87a3a4886ccfc17a7824c630427
Signed-off-by: Ziang Wang <wangziang.ok@bytedance.com>
Signed-off-by: Dong Wei <weidong.wd@bytedance.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89646
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-07 00:31:24 +00:00
Cliff Huang
4decc72c23 drivers/intel/touch: Change ELAN device name for Google's Rex touch device
Change Google's Rex touch device name from TH_SENSOR_GOOGLE to
TH_SENSOR_ELAN_REX to better reflect the specific vendor and platform
combination. This provides clearer identification and avoids generic
naming that could cause confusion with other Google touch
implementations.

BUG=none
TEST=This change cannot be tested in isolation as it only contains
naming changes. Testing requires hardware that supports Rex touchscreen
functionality, such as: Fatcat board with Google's specialized cable
connected to a Rex touchscreen. Verify that the new naming convention
works correctly with change:
https://review.coreboot.org/c/coreboot/+/89181 (This change uses the new
naming convention introduced here). Touch functionality should work
identically to before, with only the internal naming updated.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I40bb33dee14e9a567ad9dfcf956f3a9cca26dcad
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90645
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kim, Kyoung Il <kyoung.il.kim@intel.com>
2026-01-07 00:31:09 +00:00
Matt DeVillier
17b36286c8 mb/google/hatch/var/kindred: Drop VBT for KLED variant
The KLED VBT file is misconfigured and results in an error under Linux:

    [drm] ERROR VBT has malformed LFP data table pointers

Inspecting the VBT using the Intel BMP tool reveals invalid data for
many of the panel definitions, as well as other settings.

KLED works perfectly fine with the kindred VBT, so use that instead.

TEST=build/boot Win11/Linux on KLED, verify display output works
properly.

Change-Id: I09aaa5c17517633fdae508239ecf8e72e3990e33
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90637
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-07 00:30:59 +00:00
Michał Żygowski
cf280eaa7f amdblocks/root_complex.h: Add new IOHC base addresses
Starting with Turin there are 8 IOHCs per SoC. Add new definitions
for the missing IOHCs. Based on Turin C1 PPR (doc 57238).

Change-Id: I31e93e680e3f0ba03d2595f632d6827b4e3042b8
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90368
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-05 20:52:58 +00:00
Michał Żygowski
ba0483c94a soc/amd/common/Makefile.mk: Strip quotes from AMDFW_CONFIG_FILE
Strip quotes from CONFIG_AMDFW_CONFIG_FILE, otherwise the IF condition
may not catch the case when CONFIG_AMDFW_CONFIG_FILE is an empty string.

TEST=Omit PSP blobs when building coreboot for Gigabyte MZ33-AR1 by
clearing the AMDFW_CONFIG_FILE path.

Change-Id: I1ecf61844c03c89b3429e23936172f79c8d4b2f4
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90367
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-05 20:48:11 +00:00
Michał Żygowski
b2b1eb3c5a soc/amd/common/block/smn: Add simple SMN I/O accessors
Add PCI I/O-based SMN accessors. These accessors can be used for
early workarounds when the PCI ECAM MMCONF is not working yet.
An example of such workaround is the patching of PCI ECAM MMCONF
base address in Turin SoC, which has to be done via SMN, but it
cannot use PCI ECAM MMCONF to access SMN yet.

Change-Id: I5e0faaa48e4d7b4479e3af9b795ad2a879f569fd
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89471
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2026-01-05 20:47:01 +00:00
Yunlong Jia
f8c10eda36 mb/google/nissa/var/gothrax: Add Rayson parts to RAM ID table
Add the support RAM parts for gothrax.
Here is the ram part number list:
DRAM Part Name                 ID to assign
MT62F512M32D2DR-031 WT:B       0 (0000)
H58G56AK6BX069                 1 (0001)
K3LKBKB0BM-MGCP                2 (0010)
H9JCNNNBK3MLYR-N6E             0 (0000)
H9JCNNNCP3MLYR-N6E             3 (0011)
K3KL8L80CM-MGCT                4 (0100)
RS1G32LO5D2FDB-23BT            5 (0101)

BUG=b:472596025
BRANCH=None
TEST=emerge-nissa coreboot

Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Change-Id: Iff12898dd6fb08a7e932de6e1902886a6f251761
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90663
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-01-05 04:46:41 +00:00
Swathi Tamilselvan
0c26c4494d mainboard/google/bluey: Enable display clocks and MMCX power rail
Add support to enable MMCX power rail and vote for MM0 BCM resource
required for display. This change includes support to enable display
clocks.

TEST= 1. Create an image.serial.bin and ensure it boots on X1P42100.
2. Verified MMCX rail enablement and MM0 BCM vote using ARC and
BCM AOP dump.
Serial Log:
[INFO ]  RPMH_REG: Initialized mmcx.lvl at addr=0x30080
[INFO ]  ARC regulator initialized successfully
[DEBUG]  RPMH_REG: Sent active request for mmcx.lvl
[INFO ]  ARC level has been set successfully
[DEBUG]  BCM: Found address 0x00050024 for resource MM0
[INFO ]  BCM: Successfully voted for MM0 (addr=0x00050024, val=0x60004001)
[INFO ]  BCM vote for MM0 sent successfully
3. Verified if the clocks are enabled by taking clock dump. Clock
enablement is verified by dumping the 31st bit of the corresponding
clock’s CBCR register. A value of 0 in bit 31 indicates that the clock
is ON. The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

Change-Id: I89715fb4e3a6122388068a819e24cb409e204155
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90507
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-05 03:10:47 +00:00
Swathi Tamilselvan
e1e7b9b203 soc/qualcomm/x1p42100: Add API to enable display clocks
Add API to enable the essential display clocks required for display
subsystem initialization.

Test=1. Build and boot on X1P42100.

Change-Id: Ifc634f2c00eb933bf03b898e132ab5bf137149f8
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90468
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-05 03:10:37 +00:00
Swathi Tamilselvan
02e6f2a214 soc/qualcomm/x1p42100: Add API to intialize RPMh resources for display
Add API to initialize RPMh resources for display. It includes CMD-DB
initialization, enable the MMCX power rail and cast a vote for the MM0
Bus Clock Manager (BCM) resource to enable display clocks.

Test=1. Create an image.serial.bin and ensure it boots on X1P42100.
2. Verified MMCX rail enablement and MM0 BCM vote using ARC and
BCM AOP dump with API invoking changes hooked up with follow-on
commits.
Serial Log:
[INFO ]  RPMH_REG: Initialized mmcx.lvl at addr=0x30080
[INFO ]  ARC regulator initialized successfully
[DEBUG]  RPMH_REG: Sent active request for mmcx.lvl
[INFO ]  ARC level was set successfully
[DEBUG]  BCM: Found address 0x00050024 for resource MM0
[INFO ]  BCM: Successfully voted for MM0 (addr=0x00050024, val=0x60004001)
[INFO ]  BCM vote for MM0 sent successfully

Change-Id: I1997ce7a1ced4504d6a3170e5f2ddd4f52e0763d
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90467
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-05 03:10:27 +00:00
Swathi Tamilselvan
dc162f84be soc/qualcomm/common: Add RPMh driver support
Add RPMh driver support, introducing the core driver that provides
an interface to the RPMh protocol for managing ARC/VRM/BCM type
resource requests. This includes basic TCS (Trigger Command Sets)
handling and helper functions for sending RPMh requests.

RPMh (Resource Power Manager – hardware) is a protocol that enables
processors (e.g., APSS, LPASS) to send power-related commands to the
RPMh hardware block. Dynamic management of power and clocks for shared
resources is handled either directly by hardware or by RPM.

Key features include:
- Core infrastructure for submitting TCS (Trigger Command Sets)
commands to the RPMh.
- Regulator driver using RPMh for LDOs and SMPS control.
- BCM (Bus Clock Manager) voting for clock resources.

Test=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I1f85459c68d0256e15765b0716856dc928080df9
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90466
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-05 03:10:19 +00:00
Yidi Lin
999dd8905a lib/bootmem: Replace conditional return with assert in bootmem_add_range_from
Promote the condition where new_tag equals from_tag from a runtime error
to an assertion, indicating it as a critical programming error that
should not occur.

Change-Id: I1fe93b7ee0593d27f70ab3702ad4feae85857ea3
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90678
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-05 03:09:45 +00:00
Yidi Lin
eb814f3b12 lib/bootmem: Remove forward declaration of bootmem_range_string
This commit removes the forward declaration of the static function
`bootmem_range_string` by reordering the definition of
`bootmem_range_string` and the `type_strings` array.

Change-Id: I533660cd06f64011b861656b729eadee07803bf0
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90677
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-01-05 03:09:39 +00:00
Yidi Lin
6f394ce50d coreboot_tables: Update CB_MEM_TAG and LB_MEM_TAG values to 17
Update the values of CB_MEM_TAG and LB_MEM_TAG from 7 to 17. This change
is necessary to avoid conflicts with the ACPI System Address Map
Interfaces specification.

Change-Id: I802cd724b8f330a9f814fb952ab824cfc23c0e67
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90676
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-05 03:09:30 +00:00
Yang Wu
6966885290 mb/google/skywalker: Extend MIPI panel delay to meet T3 timing
Measured on Padme, the T3 (AVEE-to-RESET) timing in the current MIPI
panel power-on sequence is only ~120us, which is significantly shorter
than the panel specification requirement (>=3ms). This may cause panel
initialization instability due to RESET being asserted too early after
AVEE is enabled.

Increase the delay between AVEE enable and panel reset from 1ms to 5ms
to satisfy the panel T3 (AVEE-to-RESET) timing requirement.

IL79900A Power on off sequence V1.pdf

BUG=b:451746079
TEST=Boot Padme and confirm panel power-on timing is correct.
BRANCH=skywalker

Change-Id: Ided93c34f7c6695a2928c23eea679f32a0ee9a17
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90664
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-01-04 11:39:26 +00:00
Keith Hui
273e84976b mb/asus/p8z77-v: Apply vendor PCH interrupt mapping
Got this information from Bill Xie while troubleshooting CB:85413.
Apply the differences from vendor to coreboot.

Change-Id: I56f4314eca101cdfcac12594115d373472d1e1db
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86191
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Bill XIE <persmule@hardenedlinux.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-03 03:40:25 +00:00
Keith Hui
573c37a518 sio/nuvoton/common: Refactor nuvoton_pnp_*_config_state()
Move the pair of non-ramstage Nuvoton SIO PNP config mode entry/exit
functions from early_serial.c into nuvoton.h as inline functions for
both pre-RAM and SMM code use. Availability is limited to
__SIMPLE_DEVICE__ environments, or if this symbol is defined such as
when mainboards specifically request it.

Cuts outdated comment from early_serial.c and transplant its key parts
to nuvoton.h.

Remove the temporarily refactored local copies from
mb/asrock/{z87_extreme4,fatal1ty_z87_professional}.

Build tested on these two Asrock boards and asus/p8x7x-series.

Change-Id: I0238f006dd86742f937e9dcd6134ed7be566677c
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90657
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-03 03:40:12 +00:00
Keith Hui
0c2a3002d9 mb/asrock/z87_extreme4: Temporarily refactor nuvoton_pnp_*_conf_state()
As the pair of non-ramstage Nuvoton SIO config mode entry/exit functions
see wider use, they are being moved to sio/nuvoton/common.

This mainboard carries 2 local copies. This preparatory patch moves them
out of smihandler.c and mainboard.c into a temporary C file to prevent
build breakage. It is to be removed when the shared copy is in place.

WARNING: Disassembly of	compiled SMM code shows	a possible stack issue.
Do not flash a binary with this patch applied but without the final
shared version above.

Change-Id: I7a5394478281ac3b92d257e2f0201264b95bb4e5
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90656
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-03 03:40:07 +00:00
Keith Hui
19deb55f02 mb/asrock/fatal1ty_z87_professional: Temporarily refactor nuvoton_pnp_*()
As the pair of non-ramstage Nuvoton SIO config mode entry/exit functions
see wider use, they are being moved to sio/nuvoton/common/.

This mainboard carries 2 local copies. This preparatory patch moves it
out of smihandler.c into a temporary C file to prevent build breakage.
It is to be removed when the shared copy is in place.

WARNING: Disassembly of compiled SMM code shows a possible stack issue.
Do not flash a binary with this patch applied but without the final
shared version above.

Change-Id: I685ebe6c2bb638d815ccf1fcdd1d73edc176c69e
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90655
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-03 03:39:53 +00:00
Yanqiong Huang
3d980dae22 mb/google/nissa/var/rull: Add 3 DDR modules to RAM id table
Add HYNIX H9JCNNNCP3MLYR-N6E and MICRON MT62F1G32D4DR-031 WT:B as id 5,
and add SAMSUNG K3LKBKB0BM-MGCP as id 6, resulting in the list below:

DRAM Part Name                 ID to assign
MT62F512M32D2DR-031 WT:B       0 (0000)
H9JCNNNBK3MLYR-N6E             0 (0000)
K3KL8L80CM-MGCT                1 (0001)
H58G56BK7BX068                 1 (0001)
K3KL9L90CM-MGCT                2 (0010)
H58G66BK8BX067                 3 (0011)
H58G56BK8BX068                 4 (0100)
MT62F1G32D2DS-023 WT:B         4 (0100)
H58G56CK8BX146                 4 (0100)
H9JCNNNCP3MLYR-N6E             5 (0101)
MT62F1G32D4DR-031 WT:B         5 (0101)
K3LKBKB0BM-MGCP                6 (0110)

BUG=b:470691660
TEST=Use part_id_gen to generate related settings

Change-Id: Id37f83e54f5be12087010c8045b6dfe407820f48
Signed-off-by: Yanqiong Huang <huangyanqiong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90548
Reviewed-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-01-01 17:14:21 +00:00
Matt DeVillier
4030fc5f91 device/Kconfig: Gate early libgfxinit default on ChromeOS
Early libgfxinit is currently only used for ChromeOS ESOL features, so
only auto-enable MAINBOARD_USE_EARLY_LIBGFXINIT when both
MAINBOARD_HAS_EARLY_LIBGFXINIT and CHROMEOS are enabled, preventing
unnecessary Ada toolchain requirements for non-ChromeOS builds.

TEST=build/boot google/yaviks w/o CHROMEOS support, verify ADA/gnat
not needed to compile.

Change-Id: Ieec2a15783ce57015579d14aba0f67783c79b02c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90636
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2026-01-01 17:14:14 +00:00
Venkateshwar S
b8402a8dfc src/qualcomm/common: Remove display buffer region declarations
The display buffer reservation logic has been removed, so the related
symbol declarations are no longer needed.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I873fdcff4071e0d2cf683017557abdfdb13e8b16
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90653
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-01 17:14:02 +00:00
Venkateshwar S
7896d94c76 soc/qualcomm/x1p42100: Avoid reserving display buffer region
The display buffer was previously reserved as unavailable by coreboot,
which prevented the kernel from mapping it. When the splash driver
released the buffer, the kernel later crashed on access because the
region was never mapped.

This patch removes the reservation so the kernel can map the display
buffer and reuse it safely.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.
Check that the display memory region is mapped by kernel in UART logs:

[    0.000000][    T0]   node   0: [mem 0x00000000e36a0000-
						0x00000000f7bfffff]

Change-Id: I507d48713690bac3030f81a29c7e123fd3a03b95
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90648
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2026-01-01 17:13:57 +00:00
Venkateshwar S
fe0e14d716 soc/qualcomm/x1p42100: Skip SHRM meta firmware load in ramdump mode
QCLib passes SHRM metadata to TME for authentication and to bring SHRM
out of reset. In RAM dump mode, this sequence is unnecessary because
the system is preserving state for post-crash analysis.

This patch adds a RAM-dump-mode check and ensures:
- SHRM metadata is not loaded or populated into the interface table
  when RAM dump mode is detected, preventing QCLib from sending it to
  TME.

Test=Create an image.serial.bin and verify it boots on X1P42100.

Change-Id: I921a2b99543ee462433bec8e8471ad836cabc5dd
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90652
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-01 17:13:43 +00:00
Venkateshwar S
56013ce0ff mainboard/google/bluey: Skip SHRM firmware load/reset in ramdump mode
The SHRM firmware load and reset sequence currently runs
unconditionally during the boot process. This causes issues during RAM
dump collection, where the contents of the SHRM region must remain
intact for post‑crash analysis.

This patch adds a Dload‑mode check (which indicates RAM‑dump mode) and
skips shrm_fw_load_reset() when that bit is set. This prevents
unintended SHRM resets during RAM dump capture and ensures the firmware
load/reset sequence only runs during a normal cold boot.

A RAM dump is a debug image used after a crash to preserve system
memory for post‑crash analysis.

Test=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: Ie3d1ff9462a48d21f1daae1f80322ea397731be5
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90651
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-01 17:13:38 +00:00
Pierce Chou
b8680d53ac mb/google/ocelot/var/ocicat: Add fw_config definitions with UFSC
Enable Unified Firmware and Secondary Source Configuration (UFSC)
support for ocicat.
UFSC standardizes the bitfields and bitmap definitions for firmware
configuration. Update overridetree.cb with new UFSC definitions and
enable EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC.

BUG=b:471067114
TEST=Ensure the probed fw_config matches the written configuration.

Change-Id: I6be36f6cec2b7e25b7e6170f12e71ae3fabf283e
Signed-off-by: Pierce Chou <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90598
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-01 17:13:13 +00:00
Pierce Chou
c3ff1addde mb/google/ocelot/var/ocicat: Add WIFI SAR table
- Add WIFI SAR table for intel WIFI SAR table
- Follow new UFSC definitions to rename WIFI config

BUG=b:469226622
TEST=Build and flash to DUT, check that SAR table is
loaded by cbmem -1 | grep sar

Change-Id: Iba3c4588c969a74dd83d176124addfa2d115edbd
Signed-off-by: Pierce Chou <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90520
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2026-01-01 17:13:04 +00:00
Pierce Chou
9b5d985838 mb/google/ocelot/var/ocicat: Update audio settings
Ocicat use ALC3247, and confirm with vendor,
That ALC3247 driver is mapping to ALC236 not AL256.

- Follow ocelot setting, add Audio settings
- Update ALC236 Verb table
- Enable hda codec

BUG=b:469132497
TEST=Flash and boot on DUT, audio works normally

Change-Id: Id60dcaadfefafb499b0555a81192b03b77ad9030
Signed-off-by: Pierce Chou <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90518
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-01 17:12:58 +00:00
Yunlong Jia
091e8140ea spd/lp5: Add SPD for RS1G32LO5D2FDB-23BT
Add RS1G32LO5D2FDB-23BT in the memory_parts.json and re-generate
the SPD.

BUG=b:472596025
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: Ic249e6216c927b5080873928509b32587a8a53f6
Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90662
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2026-01-01 17:12:37 +00:00
Ivan Kuzneczov
bc240baba5 Documentation: Add method for GRUB2 to load seabios from drive
Confirmed on an image with GRUB2 payload and without seabios as
secondary payload.

Signed-off-by: Ivan Kuzneczov <ivan.kuzneczov@hardenedvault.net>
Change-Id: I093a9b9e8cabe6b21ec9d755a1592438209a86c6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90658
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-01 17:12:26 +00:00
Keith Hui
02c57577f3 superio/nuvoton: Add common ACPI ASL code
This commit gives the Nuvoton super I/O chip family a common ACPI
ASL code, based on nct6776 with the addition of a suspend (_PTS)
hook that disables keyboard wakeup when shutting down and records
the power state for an alternate power loss resume logic, both to
be completed by subsequent patches. This code is not active until
included by a mainboard's ASL code, and the suspend hook needs to
be invoked from there as well.

This common code supports pretty much all the nct???? super I/O chips
in tree except nct5104d, nct6687d, npcd378, wpcm450.

Change-Id: I7d8cf66e69688d1c53e4c313358174883710b374
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89740
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2026-01-01 17:12:15 +00:00
Keith Hui
7273a5b932 mb/asus/p8x7x-series: Move CONFIG_SUPERIO_PNP_BASE to sio/nuvoton
sio/nuvoton will soon make use of this for common code. Move the
definition there; mainboard will only set it.

To mitigate possible conflicts in case of multiple SIO chips on
the same mainboard, rename Kconfig to add _NUVOTON_.
Change all existing references to match.

Change-Id: I8e0516411c74b162c31142b02bf5c45e4ca30a1d
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89741
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-01 17:11:33 +00:00
Yidi Lin
40eca2934f soc/mediatek/common: Track firmware splash screen rendering completion
Add timestamp, TS_FIRMWARE_SPLASH_RENDERED, to precisely mark the moment
the firmware splash screen has finished displaying.

TEST=check cbmem log

Change-Id: I5c5c61e03486a5939fdb2753c35326d53277c2b2
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90661
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2026-01-01 12:48:22 +00:00
Yang Wu
49d34a6f6c mb/google/skywalker: Add MIPI panel GPIOs via lb_gpio
Add MIPI panel related GPIOs to lb_gpio so Depthcharge can manage panel
reset and power signals when needed.

The following GPIOs are added:
- panel_resx (GPIO_EN_PP3300_EDP_X)
- mipi_iovcc_en (GPIO_EN_PP6000_MIPI_DISP)
- mipi_tp_rstn (GPIO_TCHSCR_RST_1V8_L)

This allows Depthcharge to release reset and disable IOVCC in the
required order to meet the panel power-off timing specification.

[1] Preliminary+specification+TL121BVMS07+-00+V01+20250721.pdf

BUG=b:461907110
TEST=Boot Padme and check cbmem log is correct.
BRANCH=skywalker

Change-Id: I7f73e41bc4814e8a5ca3579d235001cfafb77bf9
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90646
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-01 12:48:06 +00:00
Yang Wu
b354b49d58 libpayload: Increase SYSINFO_MAX_GPIOS to 10
Some boards require exposing more GPIOs to the payload via sysinfo.
Increase the maximum number of supported GPIO entries accordingly.
For example Padme will pass 9 GPIOs to payload.

BUG=b:461907110
TEST=Boot firmware and check GPIO counts in sysinfo.
BRANCH=None

Change-Id: Idb90896b82b56f65c3d46e53b36238717de0a6d1
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90654
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2026-01-01 12:47:46 +00:00
Vince Liu
25d159a7ec mb/google/skywalker: Use FW_CONFIG for storage and dual init support
Replace AUXADC with FW_CONFIG for storage type detection, and allow
unprovisioned CBI to initialize both eMMC and UFS, providing greater
flexibility for ODMs.

BUG=b:469517374
TEST=boot successfully with both UFS and eMMC SKUs
BRANCH=skywalker

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I400d0a452a5c25b5f429b99bf0b62591ac6cbe1f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90649
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2026-01-01 12:47:24 +00:00
mikelee
4063a4c3f1 mb/google/skywalker: Create variant Mace
Create the variant Mace.

BUG=None
TEST=emerge-skywalker coreboot
BRANCH=None

Change-Id: If016e1812d4005a5fd49fac635dc4d93fae3be5d
Signed-off-by: mikelee <mike.lee@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90660
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-01 12:47:15 +00:00
Venkateshwar S
a1e9cd3669 mb/google/bluey: Configure QUPV3_2_SE4 for ADSP I2C access
Load I2C firmware to QUPV3_2_SE4 Serial Engine and configure it in
GSI mode to enable ADSP-controlled access to charger and fuel
gauge.

Test=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I58bfe5c65f3dbd2790512c5e013fa7b91cae2933
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90647
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-31 14:16:17 +00:00
Maximilian Brune
2b9653cf34 arch/x86/acpi_bert_storage.c: rename check -> proc_err_info
The name check is a bit confusing, since it is not a check structure.
The check structure is below it.

Change-Id: I000e9e5f2ce8210fce76ef81b4242150d02fceed
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90478
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-30 00:00:26 +00:00
Maximilian Brune
a3236ef110 arch/x86/acpi_bert_storage.c: Fix array size calculation
The naming of the parameters was quite confusing which caused them to be
used incorrectly. For example the cper_ia32x64_ctx_sz_bytype function
was given the register size in bytes, but it sill multiplied it by 8,
thinking that it got the number of registers instead.

Fix the parameter names to make it more obvious what is the number of
register array entries and what is the actual size in bytes of the
array.

Change-Id: I17a0fadba57ee8ede996eead4cdfb20f1ab3031e
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90477
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-30 00:00:13 +00:00
Matt DeVillier
e3fc4a1f69 ec/starlabs/merlin: Reorganize Kconfig and guard options properly
Reorganize the Kconfig file to improve structure and ensure proper
dependencies, to prevent options from showing in menuconfig. Drop
text string from EC_STARLABS_MERLIN as it should only be selected
at the mainboard level. Ensure all config options are only available
when one of the 3 Starlabs EC types is selected by the mainboard.

TEST=use menuconfig to build for Lenovo T440p, verify Merlin EC option
not shown.

Change-Id: I3f961342de25a22a8ebe1ae03dcf09c6ac2a0fb8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90627
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
2025-12-29 23:59:52 +00:00
Xiang W
4a07174d0e util/cbfstool: Fix RISC-V relocations
The RISC-V relocations are not correct. Resolved by referring to
binutils-gdb/blob/master/include/elf/riscv.h

Change-Id: I38306f511c96be75192e222e86526a87714126ea
Signed-off-by: Xiang W <wangxiang@iscas.ac.cn>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90600
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-29 23:59:43 +00:00
Kapil Porwal
d912ae91b0 mb/google/bluey: Configure GPIOs for USB camera
Configure and enable the GPIOs required for the USB camera. GPIO 10
(RESET_L) and GPIO 206 (ENABLE) are set as outputs and driven high
during mainboard initialization to ensure the camera is powered on
and ready for use by the OS.

Schematics version: 0.2

BUG=b:453773922
TEST=Verify detection of USB camera using `lsusb` in the OS.

Change-Id: I1f7afcf730f37b1a2e36e3230ae9774508465691
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90616
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-28 15:01:56 +00:00
Eren Peng
a27a7f0c11 mb/google/trulo/var/kaladin: Decrease G2 touch stop delay time to 150 ms
We found that our UI resume time will exceed using G2 touch panel. After discussing with vendor they suggested to reduce the stop delay time to 150ms. We can get pass result after this modification. Please see b/468147191 for more details.

BUG=b:468147191
TEST=Pass UI Resume test with G2 touch panel

Change-Id: Iec78e27c4716e3442babad4f377efccb26773183
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90599
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-12-27 16:12:16 +00:00
Subrata Banik
3bebadd347 mb/google/bluey: Enable dynamic SoC calculation and log battery level
Enable EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC for the Quenbi and Quartz
models. These Qualcomm-based boards require State of Charge (SoC) to be
calculated from dynamic battery metrics because the standard charge
state command is restricted during certain active power states.

Additionally, add platform_dump_battery_soc_information() to romstage
to log the battery percentage early in the boot process. This helps
with debugging power-related issues during the early boot sequence
when serial console is enabled.

Details:
- Select EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC for Quenbi and Quartz.
- Call the SoC dump in platform_romstage_main() if CONSOLE_SERIAL is on.

BUG=none
TEST=Boot Quenbi/Quartz and verify "Battery state-of-charge X" appears
in the romstage serial console logs.

Change-Id: I6184762140884762140884762140884762140884
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90619
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-26 18:54:45 +00:00
Subrata Banik
bab8ca2bd0 ec/google/chromeec: Refactor Battery SoC calculation
On certain platforms, such as Qualcomm X1P42100 (Hamoa), the AP cannot
successfully execute the standard CHARGE_STATE_CMD_GET_STATE host
command while in the S0 power state. This is typically due to hardware
arbitration or access restrictions to the battery fuel gauge bus during
active operating states.

This patch introduces a mechanism to fallback to manual State of Charge
(SoC) calculation using dynamic battery metrics:

1. Add EC_GOOGLE_CHROMEEC_BATTERY_SOC_DYNAMIC Kconfig: Allows platforms
   to opt-in to manual SoC calculation.
2. Refactor existing logic: The standard command is moved to an internal
   static helper google_chromeec_read_batt_state_of_charge_cmd().
3. Unified API: google_chromeec_read_batt_state_of_charge() now switches
   between the standard command and the raw/dynamic calculation at
   compile-time based on the Kconfig selection.

By using ec_cmd_battery_get_dynamic(), the AP retrieves cached telemetry
from the EC. This avoids triggering synchronous bus transactions to the
battery, ensuring SoC data is available even when direct fuel gauge
access is restricted.

BUG=none
BRANCH=none
TEST=Build for Hamoa and verify SoC is correctly calculated via the
dynamic info path. Verify standard platforms still use the charge
state command path.

Change-Id: I4928017362140884762140884762140884762140
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90618
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-12-26 18:54:31 +00:00
Subrata Banik
02b3674198 ec/google/chromeec: Add SoC calculation from battery dynamic info
Implement google_chromeec_read_batt_state_of_charge_raw() to
calculate the battery percentage using raw capacity metrics.

Unlike the standard charge state command, this function retrieves data
via EC_CMD_BATTERY_GET_DYNAMIC. It manually calculates the State of
Charge (SoC) by comparing remaining_capacity against full_capacity.

This provides a fallback mechanism for platforms where the high-level
CHARGE_STATE_CMD_GET_STATE command is not implemented or when working
directly with the fuel gauge's dynamic data cache.

Includes:
- Zero-capacity check to prevent division by zero.
- 100% clamping to handle fuel gauge rounding/calibration drift.

Change-Id: I86d6313884762140884762140884762140884762
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90615
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-26 18:54:05 +00:00
Subrata Banik
06c83d473b ec/google/chromeec: Add function to read battery state of charge
Implement google_chromeec_read_batt_state_of_charge() to retrieve the
current battery percentage from the Embedded Controller.

The function uses the CHARGE_STATE_CMD_GET_STATE host command to fetch
the State of Charge (SoC) as calculated by the EC's fuel gauge logic.
This provides a high-level percentage (0-100) suitable for power
management decisions or UI display.

Change-Id: Iec88476214088476214088476214088476214088
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90614
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-12-26 18:53:55 +00:00
Sean Rhodes
7c3d45d94f drivers/usb/intel_bluetooth: Correct S-state level for power resource
This power resource is valid in S5, so correct the advertised level.

Change-Id: I208182a7633c03d818a5b8892d305e3bcd5b835f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90611
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-26 15:18:46 +00:00
Sean Rhodes
091ac10059 soc/intel/cnvi: Correct S-state level for CNVP
This power resource is valid in S5, so correct the level that is
set. This makes it match the reference code, and the CNVi Bluetooth
power resource.

Change-Id: I430cafafc0326dc189a337bf2b67cf200afc4f17
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90610
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-26 15:18:40 +00:00
Sean Rhodes
4631f94e51 drivers/usb/intel_bluetooth: Advertise D2 for S0W
Bluetooth only signal wake while in USB suspend (D2). It is not possible
for it to wake when in D3 (low-power mode) so D3 is incorrect.

Change-Id: I1c2052507dfae235140e667b9a5580b4a7a8cb5d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90609
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-26 15:18:34 +00:00
Sean Rhodes
ea045bd322 soc/intel/cnvi: Re-enable Bluetooth on reset timeout
The current code left Bluetooth disabled if it times out during reset.
Following the flow of the reference code, re-enable it to avoid it
ending up "stuck" off.

Change-Id: Ib1c49f28ec13068d9d7e59841ae35d1d26c30770
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90607
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-26 15:18:28 +00:00
Sean Rhodes
ffac7d90da soc/intel/cnvi: Correct error values for _RST
The saved error values were reversed, so correct these.

This isn't a functional change, as the value isn't used in ACPI.

Change-Id: I9d3abcb4b17c36d33f2660e5d20fd5e6fb15fc34
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90606
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-26 15:18:23 +00:00
Walter Sonius
f24a2f35bf mb/asrock: Correct vendor name ASROCK to ASRock
Both ASRock H110 Pro BTC+ and ASRock Q1900-ITX have their vendor name
spelled as ASRock listed by Memtest86+ when ran on their OEM BIOS. This
patch will restore that vendor name casing behaviour when Memtest86+ is
run from a corebooted port of these mainboards. Cannot verify for the
current mainboards in the repository but this casing is also consistent
with the casing used on the vendor website: www.asrock.com

Change-Id: Icca8a0c0cba4e093a64cc26996de1fb34ee60089
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90623
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-26 12:03:00 +00:00
Yidi Lin
aeb9dcf2fa libpayload: Add new memory type CB_MEM_TAG
Add new memory type CB_MEM_TAG to coreboot_tables.h. This definition was
missing when CB:90470 was instroduced.

Change-Id: I76990706649bc1a4e45478760446dff40e871d77
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90612
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-26 11:38:39 +00:00
Payne Lin
c093b52c20 soc/mediatek: Correct BIAS_ON value to get bias ready
Fix the value of BIAS_POWER_ON in the MT8189 dptx_reg.h file,
by changing it from 0x01 to 0x03. The MT8189 needs to enable one
more power register bit to make bias work rather than timeout.

BUG=b:461384417
TEST=Boot up can see develop mode.
BRANCH=skywalker

Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Change-Id: I345b23af0b5802e71d6d7bcd3fe806aaa71cc3cc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90613
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-26 05:46:02 +00:00
Zhaoming Luo
531c24cd0a Documentation: Fix typo in 'particularly'
Correct 'particullary' to 'particularly'.

Change-Id: I6a4b78db143298b1b60106031fdd5d698ccf1e32
Signed-off-by: Zhaoming Luo <zhml@posteo.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90605
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-25 15:43:46 +00:00
Felix Singer
331e93cbd2 libpayload/tests: Disable generation of lcov HTML
Commit de4148888c ("tests: Disable generation of lcov HTML") only
disabled the HTML generation for the coreboot tests, but not for
libpayload tests. So do it here as well.

Change-Id: I35458345c81de8b9936a17bb6fb5670b29a6d05e
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90608
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-23 18:27:30 +00:00
Frank Wu
7d38a96c44 mb/google/skywalker: Create variant Vader
Create the variant Vader.

BUG=b:470833369
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: I92ace678b9b9206c36ed147426699cef6510b210
Signed-off-by: Frank Wu <frank_wu@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90595
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-23 15:34:00 +00:00
Kapil Porwal
75333ea7c8 mb/google/bluey: Refactor is_pd_sync_required function
BUG=none
TEST=Verify boot on Google/Quenbi.

Change-Id: Ic2f779d963105ef24b9cae3747ac7cc78ec9ae8b
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90596
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-23 14:17:48 +00:00
Jeremy Compostella
3f00ecb05c soc/intel/pantherlake: Add ChromeOS board-specific TDP setting
This commit introduces ChromeOS-specific logic to the Panther Lake SoC
TDP selection. It addresses the need to correctly set the CPU TDP to 15
W without having to set the desired_tdp flag in each mainboard device
tree.

BUG=b:465698900

Change-Id: Ibaee530159f7e3b94aac16ab50b749cb161cee10
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90373
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-23 14:16:08 +00:00
Jeremy Compostella
1dfa80f02c soc/intel/pantherlake: Add configurable TDP support
This commit introduces a mechanism to configure the Thermal Design Power
(TDP) for Panther Lake, allowing board designers to override the default
TDP reported by hardware and select the value that matches their
specific board requirements.

Previously, the TDP value was determined solely by the hardware, which
limited flexibility for platforms that support multiple TDP options. By
adding a new field to the `soc_intel_pantherlake_config` structure and
implementing the `soc_get_cpu_tdp()` function, this change enables
boards to opt out of the default TDP and specify a custom value.

BUG=b:465698900

Change-Id: I6e401c2c7d7d0cda24fa07ec024813874fac3ed5
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90150
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-23 14:15:55 +00:00
Jeremy Compostella
dc68f5b265 soc/intel/pantherlake: Let common code set PL1 to TDP
Update PL1 override values from a fixed value to zero, indicating that
the platform should use the default TDP value. This change allows the
common code to dynamically set PL1 according to the specific TDP SKU,
improving flexibility and ensuring correct power limit configuration
across different hardware variants.

Previously, PL1 was hardcoded to 15 for some SKUs, which could lead to
instabilities for SKUs with different TDP requirements.

TEST=No instability was observed on certain Fatcat SKUs.

Change-Id: Ibfb6b52aa15ad66740abc39f6f869dfa5e90de3c
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89934
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Reviewed-by: Ryu, Jamie M <jamie.m.ryu@intel.com>
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
2025-12-23 14:15:27 +00:00
Angel Pons
bb3f40627d util/autoport: Fix style issue in generated code
Checkpatch emits the following warning about autoport-generated code:
WARNING: space prohibited between function name and open parenthesis '('

So, simply get rid of that space.

Change-Id: If52e3d56c6b254efb61c70c8e482014dd4208172
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90584
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-23 14:11:39 +00:00
Venkateshwar S
94b326469b mb/google/bluey: Increase FW_MAIN_A/B slot size to 8.5MB
This patch increases the size of the FW_MAIN_A and FW_MAIN_B slots to
8.5MB to accommodate APDP, Ramdump and ADSP-lite images. A 5MB
estimated size of QTEE image is also taken into account to avoid future
resizing.

Size required for QTEE:
  Current size -> 2776K, Estimated size -> 5120K (5MB)
  Additional size needed -> 5120K-2776K = 2344K

Size required for new images:
  Ramdump	- 449K
  APDP		- 0.7K
  ramdump_meta	- 0.1K
  apdp_meta	- 1.4K
  ADSP_Lite	- 1192K
  Total		= 1643K

Additional size needed (QTEE + new images):
  2344K+1643K = 3987K

Current Layout of FW_MAIN_A/B slots:
  Total size	- 4608K (4.5MB)
  Used size	- 4126K
  Free size	- 482K

Additional size needed (excluding free size):
  3987K-482K = 3505K

Total size of FW_MAIN_A/B slots:
  4608K+3505K = 8133K

An additional buffer of 591K is included in the final size to
provide room for increase in size of other blobs. So,

Final size of FW_MAIN_A/B slots:
  8133K+591K = 8704K (8.5MB).

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I3b3ba5c4bf8b5d3830174a890ea7cd089e3f274f
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90594
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-23 14:11:28 +00:00
Yu-Ping Wu
e6c3250912 mipi/panel: Remove pic_width and pic_height from dsc_config
The pic_width and pic_height fields of dsc_config are equivalent to
edid.mode.ha and edid.mode.va, respectively. To remove duplicate
information in panel_serializable_data, remove these two fields from
dsc_config.

BUG=b:424782827
TEST=emerge-tanjiro coreboot
BRANCH=none

Change-Id: I7f1dd4b431a610fa928b29da420b0c0e0bef5fcc
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90561
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-23 04:39:06 +00:00
Yu-Ping Wu
456403d9ba soc/mediatek/mt8196: Stop using dsc_config.pic_width
The pic_width and pic_height in the dsc_config struct are equivalent to
edid.mode.ha and edid.mode.va. The duplicate information should be
removed from the panel_serializable_data struct, by removing from
dsc_config. To do that, replace references of dsc_config.pic_width with
edid.mode.ha in the MT8196 code.

BUG=b:424782827
TEST=emerge-tanjiro coreboot
BRANCH=none

Change-Id: Id1014886851a999ccdfec7ec86df2e7341ba9ffd
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90560
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-23 04:38:55 +00:00
Yu-Ping Wu
7d50f63213 soc/mediatek: Drop mtk_ddp_soc_mode_set()
We'd like to replace dsc_cfg->pic_width with edid->mode.ha in MT8196's
dsc_configure_registers() and then deprecate the 'pic_width' field. To
do that, we will first need to pass the edid struct pointer from
mtk_ddp_mode_set() all the way to that function.

Currently mtk_ddp_mode_set() is in the MediaTek common code, which calls
SoC's mtk_ddp_soc_mode_set(), but the edid isn't passed. To simplify the
edid pointer passing, drop mtk_ddp_soc_mode_set() and replace it with
SoC's mtk_ddp_mode_set(). To minimize the duplicate code of calculating
vrefresh, introduce mtk_get_vrefresh() to the display API, and reference
it from SoC's code.

BUG=b:424782827
TEST=emerge-tanjiro coreboot
BRANCH=none

Change-Id: Ifb84c6b954dde2f25c3ac491a5392b7725c13a43
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90559
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-23 04:38:47 +00:00
Yu-Ping Wu
61c9450d62 soc/mediatek/common: Pass dsi_regs to mtk_dsi_cphy_timing()
Pass dsi_regs to mtk_dsi_cphy_timing() to be consistent with other DSI
APIs and mtk_dsi_dphy_timing(). This also supports C-PHY with dual
channel, although there is currently no such a device.

BUG=b:424782827
TEST=emerge-tanjiro coreboot
BRANCH=none

Change-Id: I81805aa181c46fb29c70d18553dbf0c0c06c2888
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90558
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-12-23 04:38:17 +00:00
Yidi Lin
ba5b5ea406 soc/mediatek/mt8196: Move DPM and SPM initialization
Move dpm_init() and spm_init() from mainboard_init() in rauru to
soc_init() in mt8196. This centralizes the power management
initialization within the SoC-specific code.

BUG=none
TEST=Build pass, boot ok.

Change-Id: Ic2914fd0fc85032c96ce076416e9b9c46fe19e0d
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90550
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-12-23 01:14:07 +00:00
Felix Singer
206025754f libpayload/tests: Remove unrecognized flag --ignore-errors inconsistent
That parameter was mistakenly added here while trying to silent lcov
complaints. Drop it again since it's not supported here.

Change-Id: I77bed4ebb7d3ef6daea39c812bacfcad7a72aee7
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90597
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-22 19:58:13 +00:00
Felix Singer
82c06da584 3rdparty/fsp: Update to upstream master
Updating from commit id 9623d524500c:
2025-08-21 11:29:54 -0700 - (BirchStream FSP (0041D92))

to commit id a5b3d0e056ad:
2025-12-22 09:38:25 +0800 - (Renaming directory back to "IoT" to fix the corrupted path)

This brings in 29 new commits:
a5b3d0e056ad Renaming directory back to "IoT" to fix the corrupted path
b221ba5eb8fa Renaming directory back to "IoT" to fix the corrupted path
2e4673109868 ECG BTL-S Hybrid MR2 (6311_03) FSP
07e258cd90b1 ECG BTL-S Hybrid MR2 (6311_03) FSP
8701f48b18f0 Edge Platforms ARL -S MR3 (5303_41) FSP
19e14bfd1fe6 Edge Platforms ARL-U/H MR3 (5272_44) FSP
48af2c8e8a27 Edge Platforms MTL-U/H_MTL-PS MR4 (5272_44) FSP
4da2c4207396 Edge Platforms ADL-N/ASL/TWL IPU2026.1 (v6457_50)
3eda9a327426 NEX AZB IPU 2025.2 (6033_00) FSP
066a84c5950a Edge Platforms ADL -PS IPU 2026.1 (6311_00) FSP
c18800c791d6 Edge Platforms ADL -PS IPU 2025.4 (6074_01) FSP
4e19ab2857bd Edge Platforms ADL -S IPU 2026.1 (6311_00) FSP
cd05b3f8bd07 Edge Platforms ADL -S IPU 2025.4 (6074_00) FSP
2348ab42fd74 Edge Platforms ADL -P IPU 2026.1 (6311_00) FSP
b392cfd566f2 Edge Platforms ADL -P IPU 2026.1 (6311_00) FSP
2fcf87972e49 Modify folder name
975246e2ae82 Edge Platforms RPL -S/S Refresh IPU 2026.1 (6311_00) FSP
a53f7ccb4b71 Edge Platforms RPL -P IPU 2026.1 (6311_00) FSP
77028f7f3b07 Edge Platforms ADL -PS IPU 2026.1 (6311_00) FSP
7ac503b829e6 Edge Platforms ADL -S IPU 2026.1 (6311_00) FSP
3ffd2a70fb83 Edge Platforms ADL -P IPU 2026.1 (6311_00) FSP
ba2bddbc0418 IPU2026.1
239368c7d743 Edge Platforms TGL-UP3/H IPU 2026.1 (8063_03) FSP
41d3ae12bdb6 Merge branch 'master' of https://github.com/intel/FSP
8340338aaee7 Edge Platforms RPL-PS IPU2026.1 (6311_00) FSP
7c4aaf2266e8 ECG ARL-S MR2 (5192_41) FSP
bb073b44232f ECG ARL-UH MR2 (5204_40) FSP
5d0424c89ddd IoT TWL MR1/ASL MR4 (6247_00)
e1ce5bb0748a IoT TWL MR1/ASL MR4 (6247_00)

Change-Id: Ia8084c7f8025936e694644579eeef4da37c4fe89
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90336
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-22 15:25:33 +00:00
Matt DeVillier
c5eecee5e9 mb/google/rex: Add IPUA device and sensor names
Add missing configuration items for rex variants to have functional
MIPI cameras under Windows/mainline Linux:

- Add IPUA device to graphics device configuration
- Add sensor_name register to sensor device configurations

Screebo was missing the gfx/generic configuration for all other display
outputs present in other variants, so add that as well.

TEST=build/boot Win11/Linux on karis and screebo, verify MIPI camera
functional under both OSes using the standard driver stack.

Change-Id: I14ec0efd88c43ca94ebde2be4652775bcb6d73c3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90573
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-12-22 14:51:25 +00:00
Matt DeVillier
bceb2c83ad mb/{google/intel}: Fix/add missing MIPI camera SSDB lanes_used/link_used
Ensure all mipi_camera sensor configurations have both ssdb.lanes_used
and ssdb.link_used defined, and that these values correctly match the
corresponding (known good) CIO2 IPU port configuration:

- ssdb.lanes_used must match cio2_lanes_used = {x} for CAMx
- ssdb.link_used must match cio2_prt[x] for CAMx

Change-Id: Ifbf22c69d29c71138b7f59f08782d90425a09e30
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90571
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-12-22 14:51:19 +00:00
Felix Singer
de4148888c tests: Disable generation of lcov HTML
The issues still appears even after commit 65833355ca ("tests: Disable
gcov warnings"). So, disable the HTML generation completely until the
issue is figured out.

Change-Id: I683889ff8a0769697154079f99fe1d6ff9773281
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90578
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-22 14:35:20 +00:00
Payne Lin
188cd88ac7 soc/mediatek/mt8196: Correct MIPI register control
Configuring pll_con1 is wrong. Change it to voltage_sel.

BUG=b:424782827
TEST=Build pass, boot ok.
Verify display output on the following platforms:
- 8196 Navi: eDP path.
- 8189 Skywalker: eDP path.
- 8189 Padme: single MIPI path (without DSC).
- 8196 Sapphire: dual MIPI path (with DSC).

Change-Id: I300af87f3b7850cb994bc01c0572279ba18efac0
Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90557
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-22 06:04:58 +00:00
Matt DeVillier
080ca011fe Documentation: Finalize 25.12 release notes
This adds a few items which were merged after the preliminary release
notes were merged, and updates the statistics for actual release tag.

Change-Id: I3b59568a67a3caa553c5f409edfed3053c1d4b7d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90553
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-21 20:21:47 +00:00
Matt DeVillier
695041a9bf mb/starlabs/*: Increase size of SMMSTORE region to 512KB
The previous default size of 256KB provided for only 64KB of actual
space for EFI variables, and after accounting for fragmentation, did
not provide enough free space for applying updates, such as for the
UEFI revocation database (DBX). Increasing it to 512KB allows for
192KB space for variables, and allows the UEFI DBX to be updated
properly via fwupd.

TEST=build/boot starlite_adl, verify UEFI DBX able to be successfully
updated via fwupd.

Change-Id: I0fd28e38f5d3ad1e4db33fa3ab075929044ac831
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90284
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-21 20:20:42 +00:00
Matt DeVillier
975e48faaf mb/starlabs/starlite_adl: Add CFR option for charge LED brightness
Add a CFR option to expose the newly-added EC control to set the charge
LED brightness (normal/dim/off).

TEST=build/boot starlabs/lite_adl, verify charge LED control via CFR

Change-Id: I090437e8de2fd65bfad93a2037fd9346347e9fc1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: Ali Hamid <ali@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90566
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-21 20:20:35 +00:00
Matt DeVillier
951c28c1bf mb/starlabs/starfighter: Add CFR options for power/charge LED brightness
Add CFR options to expose EC controls to set the brightness of the
power and charge LEDs (normal/dim/off).

TEST=build/boot starfighter_mtl, verify LED control via CFR

Change-Id: I2af8372f923f92af62e48da77d4bddb87ab1eba0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90565
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-21 20:20:29 +00:00
Matt DeVillier
ab2c69c4f3 mb/starlabs/starbook: Add CFR options for power/charge LED brightness
Add CFR options to expose EC controls to set the brightness of the
power and charge LEDs (normal/dim/off).

TEST=build/boot starbook_mtl, verify LED control via CFR

Change-Id: I7e1fe4efaab4327c8b95b108a9014e50058d6ed4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90564
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-21 20:20:21 +00:00
Matt DeVillier
84ff3d3d12 ec/starlabs/merlin: Add charge LED brightness control
Add support for controlling charge LED brightness similar to the
existing power LED brightness control. This includes:
- New Kconfig option EC_STARLABS_CHARGE_LED
- Charge LED CFR option in cfr.h
- Implementation in ite.c using shared led_brightness array
- ECRAM_CHARGE_LED register definition

Refactor LED brightness enum values into shared led_brightness array
for reuse between power and charge LED controls.
EC changes for charge LED brightness

TEST=build/boot starlabs/lite_adl and verify LED control via CFR

Change-Id: I0f243d666e1fdc7d6df9859bb1cdcf460b6029ec
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: Ali Hamid <ali@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90563
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-21 20:20:16 +00:00
Sean Rhodes
ac170631d5 mb/starlabs/starlite: Fix ddr5 entry
This fixes the duplicate ddr6 entry which should have been ddr5.

Change-Id: I3bbee8a2fbacc7fa057e225fcfe307877b4f2716
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90442
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-21 20:18:56 +00:00
Yidi Lin
0e217cf1d3 soc/mediatek/mt8196: Increase FRAMEBUFFER to 32MiB
Increase FRAMEBUFFER from 24MiB to 32MiB to support UHD display panel.

BUG=b:319511268
TEST=emerge-tanjiro coreboot

Change-Id: Ib9cf14328d1b5d56246d4cc1ecfd3613af008d00
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90549
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-20 23:49:32 +00:00
Yidi Lin
003ea85115 soc/mediatek/mt8196: Support logo display on DISP_PATH_DUAL_MIPI path
The mtk_ddp_ovlsys_start function is updated to take edid and path
as arguments. This allows the function to configure the framebuffer
address and overlay for DISP_PATH_DUAL_MIPI path.

BUG=b:319511268
TEST=cherry pick CB:90504 and manual enable BMP_LOGO related configs.
     The logo is drawn in the ramstage.

Change-Id: I60809f7062907617f2af1badcad9f53477911020
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90537
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-12-20 23:49:23 +00:00
Filip Lewiński
7e7ba6fb11 security/lockdown/lockdown.c: option to lock COREBOOT and BOOTBLOCK
Add an option to lock the regions BOOTBLOCK and COREBOOT, leaving the
regions TOPSWAP and COREBOOT_TS for updates in an Intel Top Swap
redundancy scenario.

This means that the user can now write and choose to boot from the
update regions, selecting the attempt_slot_b CMOS option, and there is
a protected golden copy of the entire firmware, that cannot be
overwritten and can be reverted to by resetting CMOS.

This is part of an ongoing implementation of a redundancy feature
proposed on the mailing list:
https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

Change-Id: Ia6dea22c41e2fc778af6ca7049b72c92686ec85f
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90413
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2025-12-20 17:40:10 +00:00
Jarried Lin
56a7ae4389 soc/mediatek/mt8196: Notify MCUPM to support MTE
Before CPU resume, it is necessary to reinitialize the MTE-related
settings of booker in MCUPM to prevent the loss of booker
configurations after resume.

BUG=b:467186613
TEST=Build pass, Verify S/R OK on Navi and Sapphire.

Change-Id: Ieaf4c2ea0f8a5c372a5dbf4d0f6c44fbd978e6a6
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90546
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-20 17:39:55 +00:00
Filip Gołaś
7c7feca258 CBFS verification: support Top Swap redundancy
Separating the bootblock into two copies (in BOOTBLOCK and TOPSWAP fmap
regions) breaks the CBFS verification as TSPI CRTM knows nothing about
the new regions and looks for bootblock in a hard-coded COREBOOT fmap
region.

Introduce and use cbfs_unverified_area_type_alloc() which is an
extension of cbfs_unverified_area_alloc(), very similar to how
cbfs_ro_type_map() is an extension of cbfs_ro_map().  This allows to
specify a region of the bootblock file and skip verification because
bootblock serves as a container of hashes and is not verified itself.

The branching is done on the state of RTC BUC to always use the current
bootblock.  Somewhat confusingly, the measurement always uses BOOTBLOCK
region because with active Top Swap that's the way to access a
memory-mapped TOPSWAP region.

Makefile.mk now verifies both COREBOOT and COREBOOT_TS regions.
cbfstool needed a few updates as well:
 - recognize both "BOOTBLOCK" and "TOPSWAP" regions
 - recognize both "COREBOOT" and "COREBOOT_TS" regions
 - reset metadata cache before processing each region as cache may now
   be invalid

SMM doesn't link with vboot functions, so cbfs_file_hash_mismatch() has
to skip verification in SMM due to the use of CMOS options backend.

This is a part of the bootblock redundancy feature proposed
on the mailing list:
https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

Tested by successfully booting into Protectli VP6670 with Top Swap and
CBFS Verification features enabled and Top Swap state being toggled.

Change-Id: Ia75e714ae84d8c0ae09b27495e3056313b109999
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89691
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-20 17:39:43 +00:00
Sergii Dmytruk
739808011a Makefile.mk: don't add bootblock after other files
This is a correction of CB:89570 (commit 04ea4724e2 ("Makefile.mk:
separate bootblocks into BOOTBLOCK and TOPSWAP")).  It wasn't obvious
that CBFS verification depends on bootblock being added first (otherwise
cbfstool considers CBFS verification to be disabled because anchor is
part of a bootblock).  Correct this and add a comment for anyone else
who might edit this code in the future.

The issue manifested itself in build failing to perform CBFS
verification via cbfstool when the firmware was built with
CBFS_VERIFICATION enabled.

Change-Id: If775480394270fc05206cde0707c511b126265d3
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90436
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
2025-12-20 17:39:33 +00:00
Sergii Dmytruk
cbac0d7a25 Makefile.mk,cpu/intel/fit/Makefile.mk: introduce CBFS_REGIONS
Take advantage of cbfstool's ability to operate on multiple regions and
introduce a variable with a list of main CBFS regions: it's just
"COREBOOT" in most cases, but becomes "COREBOOT,COREBOOT_TS" when Top
Swap update mechanism is enabled (see [0]).

This is meant to simplify Makefiles by avoiding extra branches in
existing and future changes.

[0]: https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

Change-Id: If537d0d21a2867fafc2241ea9a0b4c0c6ca290a8
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90435
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: Filip Gołaś <filip.golas@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
2025-12-20 17:39:22 +00:00
Sergii Dmytruk
f773a0faac cpu/intel/fit/Makefile.mk: make FIT in TOPSWAP point at MCU in COREBOOT_TS
This is a correction of CB:89570 (commit 04ea4724e2 ("Makefile.mk:
separate bootblocks into BOOTBLOCK and TOPSWAP")) which has FITs in both
BOOTBLOCK and TOPSWAP point at microcode in COREBOOT region.

This can be tested by comparing outputs of
    build/util/cbfstool/ifittool -f build/coreboot.rom -r TOPSWAP -D
and
    build/util/cbfstool/ifittool -f build/coreboot.rom -r BOOTBLOCK -D
with microcode addresses as shown by
    uefitool build/coreboot.rom
The addresses in two regions must not be identical and their last six
hex digits must match what uefitool shows in "Base:" field (not
"Offset:").

Change-Id: Ie37aee7a26be18d1a4d8993afd2a2484c38c0b1e
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90434
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Filip Gołaś <filip.golas@3mdeb.com>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
2025-12-20 17:39:12 +00:00
Sergii Dmytruk
fa80ab0146 src/Kconfig: add MAINBOARD_NEEDS_CMOS_OPTIONS
The addition provides a way to select USE_OPTION_TABLE for a mainboard
which depends on the CMOS backend for options.  This is needed to
support update mechanism based on Top Swap that permits recovery via a
CMOS reset (see [0]).  The indirection is necessary because
USE_OPTION_TABLE is part of a `choice`.

[0]: https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

Change-Id: I9e8f044077a5158650627a305c352cc9de578293
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90433
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: Filip Gołaś <filip.golas@3mdeb.com>
2025-12-20 17:39:00 +00:00
Kapil Porwal
59d438f5c7 mb/google/bluey: Remove GSCVD region from Bluey and BlueyH variants
BUG=b:452872947
TEST=Build all the variants of baseboard Google/Bluey.

Change-Id: I1ac76d8fcefbc5f27373723dbabda109ca042fa5
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90562
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-20 17:38:36 +00:00
Alicja Michalska
7c4d9e0862 mb/google/*: Update Kconfig names with all known board names
In addition to adding all currently-known names for the boards, add SoC
names to baseboards to make finding boards based on SoC family easier.

Change-Id: I389f68f09409ce3eb51422dbcfe7e80d463a1594
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90555
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-20 17:38:28 +00:00
Patrick Rudolph
35be1ab679 configs: Build test ramstage zstd compressed
Build test the zstd code on qemu x86 and qemu aarch64.

Change-Id: Ib1f10b983492e01f74c7218e03e04615a41e7312
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89277
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-20 17:36:35 +00:00
Arthur Heymans
2d99da12a9 commonlib/bsd: Add zstd support
This adds the option to compress ramstage and payloads with zstd.

zstd compressed ramstages are typically +5% bigger than lzma compressed
ramstages. The decompressor .text section grows by 20KiB and the
decompressor needs 16KiB more heap than the lzma decompressor.

To use less heap inside the zstd decompressor the build time define
ZSTD_DECODER_INTERNAL_BUFFER is used.

Quote:
 The build macro `ZSTD_DECODER_INTERNAL_BUFFER` can be set to control
 the amount of extra memory used during decompression to store
 literals. This defaults to 64kB.  Reducing this value reduces the
 memory footprint of `ZSTD_DCtx` decompression contexts, but might
 also result in a small decompression speed cost

TEST=Booted on Lenovo X220 with zstd ramstage showed no disadvantage
     over a bigger internal buffer used.
TEST=Booted on Lenovo X220. The zstd decompressor is twice as fast
     as the lzma decompressor.
     cbmem -t shows:
   - finished ZSTD decompress (ignore for x86)         79,444 (24,494)
   - finished LZMA decompress (ignore for x86)         94,971 (45,545)

TEST=Booted on QEMU Q35, QEMU aarch64 virt, QEMU riscv RV64 with
     zstd compressed ramstage.

Change-Id: Ic1b1f53327c598d07bd83d4391e8012d41696a16
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69893
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-20 17:36:01 +00:00
Patrick Rudolph
4ca5e9c8c6 rules.h: Add ENV_RAMSTAGE_LOADER
Define ENV_RAMSTAGE_LOADER in rules.h similar to ENV_PAYLOAD_LOADER
to simplify the current code and avoid code duplication when adding
zstd support.

Change-Id: I8c049c640b11c6f0b51e37dd2c368bb786ca9b0f
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90153
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-20 17:35:52 +00:00
Arthur Heymans
0421ef2cd8 util/cbfstool: Add zstd support
This adds zstd support to cbfstool. The code is taken from zstd-1.5.7
with modifications:
- renaming bits.h to zstd_bits.h to avoid conflicts with coreboot's
  bits.h used on riscv
- renaming compiler.h to zstd_compiler.h to avoid conflicts with
  coreboot's compiler.h
- Dropped all streaming API functions
- Dropped multithreaded support, since it's now unused
- Dropped local DDict support

zstd offers similar compression ratios to LZMA, but a vastly fast
decompress speed. Typically zstd results in slightly larger binaries
than LZMA. Whether zstd should then be preferred over LZMA depends on
a few things:
- Caching: When loading from memory mapped boot devices, zstd will read
  the boot medium multiple times, while LZMA will not. If the memory
  mapped boot medium is not cached zstd results in much slower
  decompression.
- Boot medium speed: Often, but not always LZMA results in smaller
  binaries. If the boot medium is the bottleneck, than loading smaller
  binaries might actually be faster. On a fast boot medium (high spi
  freq, using quad/dual io), the performance benefits from zstd might be
  more substantial
- zstd decompression code has a much larger footprint than LZMA. If the
  stage (postcar) is loaded in uncached memory the size increase might
  slow things down.
  On QEMU Q35 postcar .text section size doubled, while heap section
  has growen by 50%.
- zstd uses a lot of .bss (CTX is about 32KiB large). This might not be
  available in some environments.

Orignal commit from 2022 was using zstd-1.5.2. Updated to zstd-1.5.7.

Change-Id: I34508268f8767008ef25cb9e466d201345881232
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69753
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-20 17:35:43 +00:00
Patrick Rudolph
0302b2ee07 lib/xxhash: Move to commonlib/bsd
Move the xxhash lib to commonlib/bsd folder so that it can be
easily included by tools. Update use of standard headers to
allow compilation on POSIX compatible systems as well.

Use the new xxhash lib in cbfstool over the existing duplicated
xxhash lib residing in lz4/lib.

Change-Id: I21041409d5b734cecf43294dcaf3bf17531dbc15
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89682
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-20 17:35:33 +00:00
Patrick Rudolph
76e9635346 amdfwread: Parse and print directory sizes
Parse the directory table size field and print along walking
the PSP directory tables.

Example output:
Table: FW   Offset     Size
PSPL1: Dir  [0x00b10000-0x00b12000)
+-->PSPL1: 0x48 0x00b30000 0x00010000
    +-->PSPL2: Dir  [0x00030000-0x00081000)
        +-->PSPL2: 0x00 0x00040000 0x00000440

Change-Id: I355c301c83af25524353a2e980066ce78b01fc37
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90329
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-19 15:07:03 +00:00
Zheng Li
a3adf4898b mb/google/brya/var/pujjocento: Add 2 Micron modules to RAM id table
Add support for the new memory Micron MT62F1G32D2DS-031RF WT:C using
spd-3.hex, and MT62F2G32D4DS-031RF WT:C using spd-6.hex

DRAM Part Name                 ID to assign
K3KL6L60GM-MGCT                0 (0000)
H9JCNNNBK3MLYR-N6E             1 (0001)
H58G56CK8BX146                 2 (0010)
K3KL8L80CM-MGCT                3 (0011)
MT62F1G32D2DS-031RF WT:C       4 (0100)
MT62F2G32D4DS-031RF WT:C       5 (0101)

BUG=b:447273470
BRANCH=firmware-trulo-15217.771.B
TEST=util/spd_tools/bin/part_id_gen ADL lp5 \
src/mainboard/google/brya/variants/pujjocento/memory \
src/mainboard/google/brya/variants/pujjocento/memory/mem_parts_used.txt

Change-Id: Ica96fefb3fb8b18ed693383641960c67e128e7e7
Signed-off-by: Zheng Li <lizheng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90454
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-19 15:06:39 +00:00
Zheng Li
d1e1003217 spd/lp5: Add SPD for MT62F2G32D4DS-031RFWT:C
Add MT62F2G32D4DS-031RFWT:C  in the memory_parts.json and re-generate
the SPD.

Micron: MT62F2G32D4DS-031RFWT:C

BUG=b:447273470
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I2dc0151db31ed07c61454e800d539c9b546a1ea7
Signed-off-by: Zheng Li <lizheng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90109
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-12-19 15:06:34 +00:00
Kapil Porwal
d528561130 mb/google/bluey: Use PMIC for off-mode detection
Refactor boot mode detection to use is_pon_on_ac() for identifying
off-mode charging, relying on the underlying PMIC registers.
Additionally, introduce is_pd_sync_required() to centralize logic
for enabling Power Delivery negotiation during off-mode, low
battery, or no-battery boot scenarios.

BUG=b:457566143
TEST=Verify different boot modes on Google/Quenbi.

Change-Id: I7bdece2fc920310f3b1c59a1a6b90cf3bd03e3d9
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90551
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-19 13:07:48 +00:00
Felix Singer
65833355ca tests: Disable gcov warnings
Newer gcov/lcov versions shipped in CI container images throw a warning
and thus cause the CI to fail. It's unclear how to fix this warning at
the moment, but gcov isn't critical anyway. So disable this specific
warning for now, so that we can roll out new CI images.

Excluding file '/home/coreboot/node-root/workspace/test_coreboot/payloads/libpayload/tests/libcbfs/cbfs-lookup-test.c'
lcov: WARNING: (inconsistent) /home/coreboot/node-root/workspace/test_coreboot/payloads/libpayload/libcbfs/cbfs.c:79: unexecuted block on non-branch line with non-zero hit count.  Use "geninfo --rc geninfo_unexecuted_blocks=1 to set count to zero.
    (use "lcov --ignore-errors inconsistent,inconsistent ..." to suppress this warning)
Excluding file '/home/coreboot/node-root/workspace/test_coreboot/payloads/libpayload/tests/libcbfs/cbfs-lookup-test.c'

[snip]

Message summary:
  1 warning message:
    inconsistent: 1
genhtml: ERROR: (corrupt) unable to read trace file 'build/coverage/tests.info': genhtml: ERROR: (inconsistent) "/home/coreboot/node-root/workspace/test_coreboot/payloads/libpayload/libcbfs/cbfs.c":77: function 'cbfs_unmap' is not hit but line 79 is.
    To skip consistency checks, see the 'check_data_consistency' section in man lcovrc(5).
    (use "genhtml --ignore-errors inconsistent ..." to bypass this error)
    (use "genhtml --ignore-errors corrupt ..." to bypass this error)
make[1]: *** [tests/Makefile.mk:277: coverage-report] Error 1
make: *** [util/testing/Makefile.mk:103: what-jenkins-does] Error 2

Change-Id: I2c52c53fbe856a8bca062f34c576fdfda3818f2b
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90554
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-19 11:50:41 +00:00
Payne Lin
060d18f070 soc/mediatek/mt8196: Add DSI dual channel
Add support for DSI dual channel and dual Display Stream Compression
(DSC) features.
- Add DSI dual channel and dual DSC feature.
- Add dsi1, mipi1, dsc0, dsc1 engine drivers.
- Add configuration for dual channel feature selection.
- Add 'dsi.c' for mt8196 mipi data rate calculation.
- Add 'mtk_mipi_dphy.c' for mt8196 timing calculation.

BUG=b:424782827
TEST=Build pass, boot ok.
Verify display output on the following platforms:
- 8196 Navi: eDP path.
- 8189 Skywalker: eDP path.
- 8189 Padme: single MIPI path (without DSC).
- 8196 Sapphire: dual MIPI path (with DSC).

Change-Id: I2bea829da72d23165a74b399eabfcdd55a7f28a1
Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90504
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-19 07:20:02 +00:00
Maximilian Brune
def7aa7094 arch/riscv/smp: Fix race condition
If the APs are much faster then the working hart, it is possible that it
will enter HART_SLEEPING state before the working hart checks whether or
not the APs woke up by checking the HART_AWAKE state.

One can reproduce this issue by adding the following print message and
testing it in QEMU. One will notice that it will get stuck.
+ printk(BIOS_SPEW, "waiting for hart %d\n", i);
while (atomic_read(&OTHER_HLS(i)->entry.sync_a) != HART_AWAKE)

Fix it by adding another sync step at the end of `smp_resume()`.

Tested: QEMU RISC-V with -smp 64 parameter

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I1e0485831f71dde400d793b9f7bda88ae6519913
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87299
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-18 22:25:26 +00:00
Jason Glenesk
fc37085ddb Documentation/vboot: Update vboot supported boards list
Auto-generated by util/vboot_list/vboot_list.sh.

Change-Id: I0f8d5a7857a9a1ad954204481cf56f64f34ee7ca
Signed-off-by: Jason Glenesk <jason.glenesk@amd.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90552
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-18 17:36:57 +00:00
Michał Żygowski
5bb7a83a7a acpi/acpi_apic.c: Generate MADT LAPIC entries based on current mode
Depending on the Kconfig, LAPIC may be in either xAPIC or x2APIC mode.
However, coreboot generates MADT LAPIC entries based on APIC ID rather
than currently enabled LAPIC mode. This resulted in LAPICs enabled in
x2APIC mode being described as xAPICs in MADT.

Create appropriate MADT LAPIC entries based on currently enabled mode
by calling is_x2apic_mode.

TEST=MADT describes LAPICs in x2APIC mode on Gigabyte MZ33-AR1, matching
the actually enabled LAPIC mode.

Change-Id: Iebbbca415f0b775339cbfab5c24848940d92878d
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89475
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-18 15:45:18 +00:00
Michał Żygowski
077191641b vendorcode/amd/opensil/Makefile.mk: Add 0x prefix for BIOS address
The Makefile is patching the BIOS moudule base address and size so that
the openSIL knows where the reset vector resides. However, the printf
used for hex convertion is missing 0x prefix for hexvalue. Kconfig hex
values start with 0x prefix. Otherwise, there is a chance the bios_base
variable could be interpreted as decimal integer. This could result
in improper reset vector address being calculated in OpenSIL and APs not
able to be brought up.

Change-Id: Ib528491b266ec2e8d74b9c8713788f8f37037162
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89472
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-18 15:44:57 +00:00
Michał Żygowski
4b353affd4 soc/amd/common/acpi/lpc.asl: Add HPET device
FWTS complains on HPET base not being found in DSDT/SSDT:

Test 3 of 4: Test HPET base in DSDT and/or SSDT.
WARNING: Test 3, Test skipped because HPET Device address was not
found in DSDT/SSDT.

Declare HPET device under LPC device to fix the issue.

TEST=Run FWTS on Gigabyte MZ33-AR1 and see no error in HPET tests.

Change-Id: I68b872291dc93320e7a0b33a79e3336e1372b178
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89924
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-18 15:44:35 +00:00
Michał Żygowski
0a867b3971 acpi/ivrs: Fill second EFR image value
Based on AMD doc #48882 PUB Rev 3.10 [1]. Now, the IVHD type 11h and
40h have a second 64bit EFR value that should be filled with IOMMU MMIO
offset 0x1A0 register value if EFR is supported.

[1] https://docs.amd.com/v/u/en-US/48882_IOMMU

Change-Id: I0da79bed8994671c651328cd7a29d9480a122528
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89200
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-12-18 15:43:54 +00:00
Ian Feng
92f03c0c28 mb/google/ocelot/var/kodkod: Config touchpad I2C frequency
Configure the touchpad I2C bus high and low time.

BUG=b:466136598
TEST=Build and boot to OS in kodkod.
kodkod:/ # getevent
add device 2: /dev/input/event4
  name:     "Elan Touchpad"

Change-Id: I5c996ccf69e8dfe1485c7161ea2efd5579190975
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90423
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-18 15:42:28 +00:00
Matt DeVillier
a923470688 drv/intel/mipi_camera: Remove duplicate comments for DSM methods
The DSM methods already have the full ASL generated by the acpigen
calls in a comment above the function, so there's no need for line-
by-line comments for the acpigen calls. Keep the comments for
acpigen_pop_len() as they do enhance readability.

TEST=n/a, non functional change

Change-Id: I95bbc0b36706a45883ea50b7947c6c0235f546f7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90544
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-18 14:54:54 +00:00
Kapil Porwal
896984e800 mb/google/bluey/quartz: Enable parallel charging support
Select MAINBOARD_SUPPORTS_PARALLEL_CHARGING for the Quartz variant
to enable the PMC8380F GPIO configuration required for parallel
charging.

BUG=b:468120472
TEST=Build Google/Quartz.

Change-Id: I3f6eacae589ac0496d766e56ac82aa4d1138df3b
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90515
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-12-18 06:37:11 +00:00
Kapil Porwal
de87ea0efa mb/google/bluey: Add parallel charging infrastructure
Add support for parallel charging by configuring PMC8380F GPIO07
and GPIO09. These GPIOs are configured as outputs with inverted
logic. A new Kconfig option MAINBOARD_SUPPORTS_PARALLEL_CHARGING
is introduced to allow variants to opt-in to this configuration.

BUG=b:468120472
TEST=Build Google/Quartz.

Change-Id: I0126d987650c660e305f704708c09356908633e4
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90514
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-18 06:37:06 +00:00
Kapil Porwal
cfb0d8a144 mb/google/bluey: Enable PD negotiation when battery is missing
Update the qclib_mainboard_override hook to enable Power Delivery
negotiation if no battery is detected, even in normal boot mode.
This allows the system to negotiate higher power levels when
running solely on AC power.

BUG=b:457566143
TEST=Verify different boot modes on Google/Quenbi.

Change-Id: If1660e4c50575eb4b6d5af606c35accdb4c67982
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90539
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-18 03:20:42 +00:00
Kapil Porwal
ddc1b51b43 mb/google/bluey: Enable PD negotiation in charging modes
Implement the qclib_mainboard_override hook to enable Power
Delivery negotiation when the system boots into off-mode charging
or low battery mode. This ensures proper charging levels are
negotiated early in the boot process.

BUG=b:457566143
TEST=Verify different boot modes on Google/Quenbi.
TEST=Verify that PD negotiation is skipped in normal mode.

Change-Id: I6c4b861862d739b002c4043ade21328e02186bbd
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90513
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-18 03:20:32 +00:00
Kapil Porwal
c4ee22e267 Reapply "mb/google/bluey: Implement EC-based off-mode detection"
This reverts commit b67725d3f5.

Reason: Warm reset issue is fixed in new QC blobs.

Change-Id: Iab1e0b7085f5d116704c54da4d286bb41b502853
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90542
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-18 03:20:14 +00:00
Alicja Michalska
a225eefd4c drivers/spi: Add Macronix MX77U51250F chip id
Change-Id: I7526c2bad1ee1f2c532ffeb182298797d00de40b
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89157
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-18 00:41:55 +00:00
Appukuttan V K
793c15a866 mb/google/ocelot: Fix Gen4 SSD power sequencing
Move Gen4 SSD power enable (GPP_H18) from ramstage GPIO table to
pre-memory configuration to ensure proper delay between power enable
and reset signals. This is required to fix PCIe speed downgrade or
link failure issues seen with some NVMe parts when a non-serial image
is used for boot.

Changes:
 - Enable GPP_H18 (GEN4_SSD_PWREN) in pre_mem_gen4_ssd_pwr_pads
 - Remove duplicate GPP_H18 configuration from gen4_ssd_pads
 - Remove GPP_H18 from ramstage gpio_table

BUG=None
TEST=Build Ocelot and check PCIe link speed over multiple cold boot
iterations and ensure that the link is trained to maximum capability.

Test Steps:
 - Cold reboot the system: ectool reboot_ec
 - Check the current link speed and max link speed:
    cat /sys/bus/pci/devices/0000:00\:1c.0/current_link_speed
	16.0 GT/s PCIe
    cat /sys/bus/pci/devices/0000:00\:1c.0/max_link_speed
	16.0 GT/s PCIe
 - Repeat these steps for multiple iterations and ensure that current
   link speed is equivalent to max link speed.

Change-Id: I31a0a92c168e9c851246359e69faabd786248b5c
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90363
Reviewed-by: P, Usha <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 23:56:11 +00:00
Maximilian Brune
b689671e79 include/acpi/acpi_apei.h: Add MCE APEI structs
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I31527048dd5ac12f05f299e3226d8fbde502f626
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90473
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 23:54:20 +00:00
Maximilian Brune
7a41dc416b include/acpi/acpi_apei.h: Add NMI APEI struct
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I2f9d9f91d6f322da79ce86c98d1e458d8193b9ac
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90472
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-17 23:54:13 +00:00
Maximilian Brune
5251284e39 include/acpi/acpi_apei.h: Add PCIe APEI structs
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ib1da20c03026437a24df76218c2b78fc2d4093a7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90471
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-17 23:54:03 +00:00
Maximilian Brune
53350d5c8d include/acpi/acpi_apei.h: Add internal acpi_head_t struct
Each error source descriptor basically has these values at the
beginning. The error source descriptors are added in the follow up
patches.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ic6873cb8cf7373435be3ce26382aa8ae37cd5938
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90481
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-17 23:53:49 +00:00
Matt DeVillier
5001b07f9c drivers/intel/mipi_camera: Add validation and remove unused defaults
Add validation checks in camera_enable() for required parameters:
- ssdb.lanes_used
- ssdb.platform
- rom_address (when rom_type is set)
- vcm_address (when vcm_type is set)

Remove default values for ssdb.platform and ssdb.lanes_used from
camera_fill_ssdb_defaults() since these parameters are now required
and validated. All boards in the tree explicitly set these values
in their devicetree configurations, so the defaults were never used.

Also remove the unused cio2 and cio2_config variables that were only
used for the lanes_used default logic.

Change-Id: Idcb84c25b94ed9259698aafba201cc4f4e0f1af7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90517
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-17 20:24:50 +00:00
Matt DeVillier
0f1ae4ae5f drivers/gfx/generic: Add support for non-VGA devices
Add support for non-VGA devices (e.g., Intel IPU) in the generic
graphics driver by:

- Adding DOD_NONVGA bit definition per ACPI spec 6.5 table B-2
- Adding non_vga_device boolean field to device config structure
- Increasing device array size from 6 to 7 to accommodate IPU
- Updating ACPI _DOD generation to use DOD_NONVGA flag for non-VGA
  devices instead of DOD_FW_DETECT

This allows proper ACPI enumeration of non-VGA devices whose power
is related to the VGA device, such as Intel Image Processing Units.

TEST=tested with rest of patch train on screebo, redrix, and others.

Change-Id: I60472e1232959fe407f63b4b8e6bffba995e7f79
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90516
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-17 20:24:43 +00:00
Matt DeVillier
ae0d232402 drivers/intel/mipi_camera: Add ACPI device type selection
Refactor the MIPI camera driver to support two ACPI device generation
modes via a Kconfig choice:

1. Windows/Linux mode (MIPI_ACPI_TYPE_WINDOWS_LINUX): Generates a
   single ACPI device for the camera sensor and any associated VCM or
   NVM devices on the same I2C bus. The IPU ACPI device is attached to
   the iGPU, not standalone. This is the preferred method for Windows
   and mainline Linux.

2. ChromeOS mode (MIPI_ACPI_TYPE_CHROMEOS): Generates separate ACPI
   devices for each camera component (sensor, CIO2, VCM, NVM). The IPU
   ACPI device is generated separately from the iGPU. This maintains
   compatibility with the existing ChromeOS-style setup.

The implementation uses runtime conditionals to select between the two
modes. Common helper functions are shared between modes, while device-
specific logic is conditional based on the selected ACPI type.

The default selection is MIPI_ACPI_TYPE_CHROMEOS for ChromeOS builds and
MIPI_ACPI_TYPE_WINDOWS_LINUX otherwise.

Change-Id: I0bc4894aff04d6b296011e85d790d624890da055
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90522
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-17 20:24:35 +00:00
Matt DeVillier
1532eb60ee drv/intel/mipi_camera: Add CVF Support DSM function
Add support for Computer Vision Framework Support DSM UUID with ACPI-
compliant query handling and ASL documentation. Currently we are
always returning Zero (unsupported/disabled), but support will be
added in future patches.

This UUID is utilized by the standard Intel drivers under both Windows
and mainline Linux.

TEST=tested with rest of patch train on screebo, redrix, and others.

Change-Id: I6db88285d757826fa0f3eb5aa4bb1cc4176b95b3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90490
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 20:24:28 +00:00
Matt DeVillier
a64b93562d drv/intel/mipi_camera: Add I2C V2 DSM function
Add camera_generate_dsm_i2c_v2() to support the I2C V2 DSM UUID
(5815c5c8-c47d-477b-9a8d-76173176414b) which returns I2C device
addresses in a buffer format, rather than individually. Includes
ACPI-compliant function query handling (Arg2==0) and ASL code
documentation.

This UUID is utilized by the standard Intel drivers under both Windows
and mainline Linux.

TEST=tested with rest of patch train on screebo, redrix, and others.

Change-Id: Ifd35b53b21d0d1be9e9802059c724bf544ca1a1a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90489
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 20:24:21 +00:00
Matt DeVillier
c8f89e00e4 drv/intel/mipi_camera: Refactor DSM generator functions
Rename UUID macros to match external conventions used in Linux kernel
and Windows Camera DDK:
- SENSOR_NAME_UUID -> UUID_DSM_SENSOR
- SENSOR_TYPE_UUID -> UUID_DSM_I2C

Rename functions for clarity:
- camera_generate_dsm_sensor_name -> camera_generate_dsm_sensor
- camera_generate_dsm_sensor_type -> camera_generate_dsm_i2c

Add ACPI-compliant function query support (Arg2==0) to sensor DSM,
returning bitmask of supported functions as required by ACPI spec.

Add ASL documentation comment blocks above each DSM generator function
showing the generated ACPI code structure.

Improve variable naming (i2c_dev_count, i2c_dev_idx) for readability.

TEST=tested with rest of patch train on screebo, redrix, and others.

Change-Id: I38facaf85ea59aa82621d82555858c0d72b1ee30
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90488
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-17 20:24:15 +00:00
Matt DeVillier
ea099e8b8c drivers/intel/mipi_camera: Split DSM generation into per-UUID functions
Refactor camera_generate_dsm() to call separate functions for each
DSM UUID type, improving code organization and maintainability, in
preparation for adding the generation of additional DSM UUIDs in
subsequent patches.

This is a non-functional change.

TEST=tested with rest of patch train on screebo, redrix, and others.

Change-Id: I8b3fb6e3004ea30aa7c11217c9971bddb977ded5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90487
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-17 20:24:08 +00:00
Matt DeVillier
6459a2007a mb/{google,intel}: Add ROM type and address for MIPI camera sensors
Add ssdb.rom_type and rom_address registers to board variants for MIPI
camera sensor SSDB settings, which are necessary for the Intel driver
stack under Windows and mainline Linux. A handful of boards, mostly not
released to the public, include a commented-out placeholder as ROM type
24C1024 is currently unsupported.

TEST=tested with rest of patch train on screebo, redrix, and others.

Change-Id: I16b44609c1b07ac686d67cc59b4b5311495117ae
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90486
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-17 20:24:02 +00:00
Ingo Reitz
11ea868b02 mb/google/volteer/var/drobit: Update pl2 minimum value
Apply the change of commit a97fb7f960
("mb/google/volteer/variants: Update Power Limit2 minimum value")
to drobit since it looks like it has been forgotten. It is the
last variant where pl2 min != max.

TEST=Build and boot google/drobit and verify sane clock speeds and
tempoeratures under full CPU load.

Change-Id: I7b09825ebd95fd2795408cdaa0396bbf19baded9
Signed-off-by: Ingo Reitz <9l@9lo.re>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90501
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 18:23:10 +00:00
Matt DeVillier
8ed87f71ec mb/google/volteer: Make touchpad wake user-selectable via CFR
Add CFR option "touchpad_wake" (default: false) to allow users to
enable touchpad wake from sleep. Wake is disabled by default to
prevent random wakeups when systems are moved while sleeping.

Implementation:
- Add touchpad_wake CFR option to System form
- Add device alias "touchpad" to variant devicetree files
  (add touchpad2 where a 2nd touchpad option is present)
- Update variant GPIO configs to support wake capability
  (this was set inconsistently)
- Conditionally disable wake in ramstage based on CFR option

When the option is disabled (default), config->wake and
config->irq.wake are set to 0, preventing the touchpad ACPI device
from defining wake methods and capability.

TEST_1: Build for ELDRID, boot system into mainlinue Linux (Fedora).
Close the lid to suspend the system, firmly grab it with both hands and
jump 10 times. Make sure that system doesn't wake up from sleep state.

TEST_2: Build for DROBIT, boot system into mainline Linux (NixOS).
Close the lid to suspend the system, firmly grab it with both hands and
jump few times. Make sure that system doesn't wake up from sleep state.

Tested-by: Ingo Reitz <9l@9lo.re>
Change-Id: Ie3b5013bcf2d5ea45388bcdce987dd9ae5870597
Co-authored-by: Alicja Michalska <alicja.michalska@9elements.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90500
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-17 18:22:44 +00:00
Matt DeVillier
7e1962a3cc mb/google/hatch: Make touchpad wake user-selectable via CFR
Add CFR option "touchpad_wake" (default: false) to allow users to
enable touchpad wake from sleep. Wake is disabled by default to
prevent random wakeups when systems are moved while sleeping.

Implementation:
- Add touchpad_wake CFR option to System form
- Add device alias "touchpad" to variant devicetree files
- Conditionally disable wake in ramstage based on CFR option

When the option is disabled (default), config->wake and
config->irq.wake are set to 0, preventing the touchpad ACPI device
from defining wake methods and capability.

TEST=Build for KOHAKU, boot into mainline Linux (Fedora 43, kernel
6.18). Suspend the machine, close the lid, apply pressure to trackpad
area. Ensure that system doesn't wake up.

Change-Id: I620d7c0f0ebec8ca72ec018c93747f58735fd3e5
Co-authored-by: Alicja Michalska <alicja.michalska@9elements.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90491
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 18:22:38 +00:00
Nico Huber
152914272c device/azalia: Drop spurious read-back of STATESTS
The STATESTS register is a very simple read/write-1-clear status
register. OS drivers have to read and clear it all the time with-
out any quirk handling.  So it seems unlikely that this sequence
was ever necessary for any coreboot-supported chip.

More likely, that sequence was copied from the dance around the
reset bit when Poulsbo support was added in commit be61a17351
("Support Intel SCH (Poulsbo) and add iwave/iWRainbowG6 board
which uses it.").

TEST= Verbs were loaded correctly on off-tree HP ProBook 450 G3.

Change-Id: I1fbea8ffb71a2fcb4ce5f42b3cb8f816ec336c5b
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89653
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 18:15:10 +00:00
Nico Huber
6e074550a5 device/azalia: Repurpose azalia_set_bits() for link-reset only
The azalia_set_bits() function does some sequencing specific to the
CRST# bit. Name it accordingly and adapt its signature.

The while loop was also changed to match the other functions (e.g.
wait_for_ready()).

TEST= Verbs were loaded correctly on off-tree HP ProBook 450 G3.

Change-Id: I5ac766f2ddf8b48b436a54469815bf799ae31d52
Signed-off-by: Nico Huber <nico.h@gmx.de>
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89652
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 18:14:54 +00:00
Nico Huber
ecf202b8e4 device/azalia: Add missing 521us delay after RESET# de-assertion
The spec[1] says a codec is allowed to take up to 521us before sig-
naling an initialization request. Our original SB600 implementation
had a 1ms delay here since commit 4505948fae ("Use the correct device
for switching on HDA.")

Most codecs are a lot faster, which is probably why nobody noticed
the missing delay. For instance, the Realtek ALC272 datasheet spe-
cifies a 1 frame (1/48kHz) maximum[2]. It doesn't hurt, though, to
be correct here. We have a lot longer delays around.

[1] High Definition Audio Specification 1.0a: "4.3 Codec Discovery"
[2] ALC272 datasheet: "9.2.1. Link Reset and Initialization Timing"

TEST= Verbs were loaded correctly on off-tree HP ProBook 450 G3.

Change-Id: Ifd3357758fb3678e60b4c6edcfbdb60b3bda9746
Signed-off-by: Nico Huber <nico.h@gmx.de>
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89651
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-17 18:14:21 +00:00
Matt DeVillier
d5d27badd4 Documentation: Add coreboot release 26.03 template
This adds the release notes template for the upcoming March 2026
release of coreboot.

Change-Id: I7702ee6b5dffce067503ff6e4ccb6508d30bf48f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90498
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-17 18:08:24 +00:00
Matt DeVillier
8e23c46beb Docs/releases: Update release notes for 25.12 release
These are the preliminary release notes. They'll need to be updated
with any changes done this week. We'll need another patch after the tag
to capture the final statistics. The notes will be changed from
"Upcoming release" after the tag is done.

Change-Id: Ic8c5a4f374adc6560eff8383d45d05d16ba84759
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90497
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 18:08:09 +00:00
Swathi Tamilselvan
01bc527afa soc/qualcomm/common: Add CMD-DB driver support
Introduce CMD-DB driver to enable reading command database entries,
querying SoC resource data, and providing helper functions required
by AOP and other subsystems.

Test=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I3788bf7c97cc1133ae4893f4fdeaf36882e71276
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90465
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-17 13:55:02 +00:00
Swathi Tamilselvan
2277edff88 soc/qualcomm/x1p42100: Split dram_aop region to map dram_aop_cmd_db as
non-cacheable

Add support to split the dram_aop memory region into three in order to
map dram_aop_cmd_db as non-cacheable. The purpose of dram_aop_config
is memory region where the aop_devcfg.mbn image is loaded.

Test=1. Build and boot on X1P42100.
2. Dump the MMU table in coreboot ramstage and verify whether the region
is mapped as non-cacheable.

Change-Id: Id73d878b7d343f248a845bd5727c43e22c4c348a
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90521
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 13:54:52 +00:00
Swathi Tamilselvan
a4cc178486 soc/qualcomm/common: Map AOP CMD-DB region as uncached region in MMU
Add support to map AOP CMD-DB region as uncached region in MMU. The
reason for this change is that the CMD-DB region is configured as
read-only region and any write to this region will be treated as
fatal. Mapping it as cacheable can lead to cache-line writebacks,
causing invalid accesses and device crashes.

Test=1. Create an image.serial.bin and ensure it boots on X1P42100.
MMU Table dump from Trace32:
'M:0000000081C60000--0000000081C7FFFF|    AM:0000000081C60000--0000000081C7FFFF| s  |  | 00001000| read/write access        exec        | yes| inn| non-cacheable                     |  1| no | \\ramstage\Global\_dram_aop_cmd_db'

Change-Id: I296b505f670f3be28eb998fdac8164a85bf757b0
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90464
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-17 13:54:44 +00:00
Megha Verma
1b5f105595 mb/google/ocelot/var/ocelot: disable ISH UART0 RX pin
On WCL RVP, ISH (Intel Sensor Hub) shares UART with FPS (Finger Print
Sensor), we can enable either ISH UART or FPS UART, or disable both
UART by changing the DIP switch settings. When DIP switch is not set
for ISH, ISH RX signal is disconnected, causing ISH low power mode
failure. Therefore, NC ISH RX pin mux to minimize the impact on ISH PM.
As a result, ISH console won't accept input since this pin is not
connected.

BUG=b:428084925
TEST=DIP SW1317 3-6, 4-5 on WCL RVP DT card ON to enable FPS UART,
ISH main firmware boots up and runs successfully.
SW1317 all switches OFF to disable both FPS and ISH UART, ISH main
firmware boots up and runs successfully.
Put system into suspend state and resume back. System enters into
low power mode as substate_residencies are updated. Verified using
console command "cat /sys/kernel/debug/pmc_core/substate_residencies".

Change-Id: I1165e0151c0a6d0e82038215703626e863739b39
Signed-off-by: Megha Verma <megha.verma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90022
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bhat D, Krishna P <krishna.p.bhat.d@intel.com>
Reviewed-by: P, Usha <usha.p@intel.com>
2025-12-17 13:54:23 +00:00
Kapil Porwal
b67725d3f5 Revert "mb/google/bluey: Implement EC-based off-mode detection"
This reverts commit 42c1947d99.

Reason: It breaks warm reboot flow.

Change-Id: Id3662c70853a4bbb14870d2d0225396f66ea5dee
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90540
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-17 10:21:19 +00:00
Yu-Ping Wu
1dc3e45f7c mipi: Support passing user data to mipi_cmd_func_t
The mipi_cmd_func_t callback for mipi_panel_parse_init_commands()
currently doesn't support passing additional data for storing context.
Therefore user code would need to store any extra data in global
variables. For example, in the upcoming DSI dual channel support for
MediaTek platforms, the callback needs to know whether the MIPI panel
supports dual channel or not. To support that use case, pass an extra
`user_data` argument to mipi_cmd_func_t.

BUG=b:424782827
TEST=util/abuild/abuild -x -t GOOGLE_SAPPHIRE -a
BRANCH=none

Change-Id: Id5d7b168cdcadfe8d8435c29d7e855a535815057
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90519
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-17 06:56:00 +00:00
Kapil Porwal
42c1947d99 mb/google/bluey: Implement EC-based off-mode detection
Update off-mode detection logic to use ChromeEC host events. If
the system is powered on by AC insertion (without power button
or lid open events), identify the boot as off-mode charging.

BUG=b:457566143
TEST=Verify off-mode battery charging on Google/Quenbi.

Change-Id: Ibfbbf9cbeabd229595f625104f94eb814012e2f8
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90511
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-16 19:01:47 +00:00
Ian Feng
e54b82b85b mb/google/ocelot/var/kodkod: Enable pcie_rp5 to allow proper enumeration of pcie_rp6
pcie_rp5 and pcie_rp6 belong to the same PCIe controller group
(Port C1–C2). Within this controller, pcie_rp5 represents function 0
and pcie_rp6 represents function 1. For multi-function PCIe root
ports, function 0 must be enabled for the controller to initialize
fully.

If only pcie_rp6 (function 1) is enabled, the controller does not
complete initialization and the downstream LAN device fails to
enumerate. Enabling pcie_rp5 ensures the PCIe controller group is
brought up correctly and allows the RTL8111H LAN device behind
pcie_rp6 to enumerate as expected.

BUG=b:466908212
TEST=Build and boot to OS in kodkod.
kodkod:/ # pclspci -v
01:00.0 Class 0200: Device 10ec:8168 (rev 15)
	DeviceName: Ethernet controller
	Kernel driver in use: r8169

Change-Id: I4332f3d612f1f66cd30dda7da723c47bcfce35a3
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90422
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-12-16 17:18:25 +00:00
Kenneth Chan
4cc830349c mb/google/rex/var/karis: Add fw_config probe to enable all wifi
Add fw_config probe to enable all wifi for factory usage.

TEST=Build and run Google/Rex/Karis

Change-Id: I4934699a9fc83feadae7c5e3c3027c3a11fb0f6e
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90456
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-12-16 17:18:13 +00:00
Jayvik Desai
173a32aa55 MAINTAINERS: Add Jayvik Desai to Google Bluey & Qualcomm SoCs
Change-Id: Ie9059d68cc661fb421d8f280a77865a114ba4b78
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90508
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-16 17:17:14 +00:00
Kapil Porwal
f28997dcdd soc/qualcomm/common: Add PD negotiation attribute macro
Define the QCLIB_GA_ENABLE_PD_NEGOTIATION bit in the QcLib global
attributes. This flag signals to QcLib that Power Delivery
negotiation should be performed.

BUG=b:457566143
TEST=Verify different boot modes on Google/Quenbi.
TEST=Verify that PD negotiation is skipped in normal mode.

Change-Id: Ia046f68ebeacaa1c1d9a73c4b957315c9f7b68b6
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90512
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-16 17:16:04 +00:00
Maximilian Brune
b70309350f arch/x86/acpi_bert_storage.c: Fix Error Section GUID compare
If the section guid is CPER_SEC_PROC_IA32X64_GUID we want the x86
processor specific section instead of the generic one.
This was probably some kind copy error from the line above.

Change-Id: I6a6a885bf8ab97cb5d256513cf8134078b707d3c
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90476
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-12-16 15:48:34 +00:00
Maximilian Brune
847d91b82e include/acpi/acpi_apei.h: Update APEI structs for better readability
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I380c793700b3b42373df556c17718e4fd2b147d5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90475
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-16 15:48:17 +00:00
Maximilian Brune
679ea61d4d include/acpi/acpi_apei.h: Add APEI definitions
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: If391b0fdc31f513bef5d1e940c008eb5a5b1f802
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90474
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-16 15:47:58 +00:00
Kapil Porwal
eb79807bec soc/qualcomm/x1p42100: Add mainboard hook for QcLib override
Introduce a weak function qclib_mainboard_override to allow
mainboards to customize QcLib policies or global attributes.
This hook is called from the SoC-specific QcLib initialization
path.

BUG=b:457566143
TEST=Configure QcLib policy for Google/Quenbi.

Change-Id: I0397b7138db260973ea86852cfa9f408e14d195d
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90510
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-16 08:00:30 +00:00
Kapil Porwal
8ece648c30 soc/qualcomm/common: Use bitwise OR for global_attributes
Ensure that existing flags in global_attributes are not overwritten
when enabling UART logging. Using a bitwise OR preserves any
previously set attributes.

BUG=b:457566143
TEST=Verify the QcLib global attributes.

With this CL -
```
[DEBUG]  Global Attributes[0x3]..Table Entries Count[8]
```

Change-Id: Iffceb06cb800ba4c9e5c07381745cbed1fb7d550
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90509
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-16 08:00:18 +00:00
Subrata Banik
22e54a701d soc/qualcomm/x1p42100: Add AOP, QDSS, and QSEE regions to SSRAM layout
This commit updates the SSRAM memory layout in memlayout.ld to reserve
space for several new regions.

The following regions are added to the SSRAM section:
 - qsee: 100K at 0x14680000
 - qdss_usb_trace: 8K at 0x146A6000
 - aop_imem: 8K at 0x146A8000

The memory map diagram in the comments is also updated to reflect the
reservation of aop_imem and qdss_usb_trace.

BUG=b:456953373
TEST=Able to build and boot google/quenbih.

Change-Id: I17c2a97d31cdcb81ffdd0c83d8c6d19b9a03a91b
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90443
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-12-15 10:49:52 +00:00
Subrata Banik
4d53aa7704 soc/qualcomm/x1p42100: Relocate PRERAM stack to BSRAM memory
Relocate the PRERAM_STACK region to a new address to resolve a memory
conflict with the QSEE Trust Zone environment.

Details:
 - The previous location of the PRERAM_STACK starting at 0x14680000 in
   SSRAM is now reserved for QC QSEE.

 - This change moves the 16KB PRERAM_STACK from 0x14680000 (SSRAM) to
   the available memory region starting at 0x14850000 in the BSRAM.

BUG=b:456953373
BRANCH=None
TEST=Able to build google/bluey.

Change-Id: Ifa9bc457e28b9ec21aa59c6ab9114993f23b2bc8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90406
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-12-15 10:49:40 +00:00
Subrata Banik
a26b718d5a soc/qc/x1p42100: Define pre- & post-RAM stack regions in linker script
Implement the newly introduced PRERAM_STACK and POSTRAM_STACK macros in
the x1p42100 memory layout, addressing the memory constraints on this
SoC.

Changes
 - Pre-RAM Stack: The temporary stack used before DRAM is ready is
   defined using PRERAM_STACK(0x14680000, 16K) in the SSRAM region,
   replacing the old generic STACK definition.

 - Post-RAM Stack: The final stack is defined using
   POSTRAM_STACK(0x80000000, 16K) at the start of DRAM.

 - The POSTRAM_DMA_COHERENT region is shifted up to 0x80004000 to
   accommodate the new 16KB post-RAM stack, avoiding memory overlap.

This guarantees a distinct and properly sized stack region for each
stage of the boot process, resolving conflicts with Trust Zone and
ensuring a clean stack transition during the RAM stage.

BUG=b:456953373
BRANCH=None
TEST=Able to build google/bluey.

w/o this patch

```
[SPEW ]  stack: top_of_stack address is 0x14684000
```

w/ this patch

```
[SPEW ]  stack: top_of_stack address is 0x80004000
```

Change-Id: Iccf3f99aff31a8e44386ea52b2196b49797caa79
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90405
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-15 10:49:32 +00:00
Subrata Banik
1b599a8844 arch/arm64: Add an alternative entry point for ramstage code
This change prepares an alternative entry point for the ARM64
ramstage. It is written in assembly language, avoids the usage of the
stack, and overrides the program stack pointer (SP register) if the
`preram_stack` and `postram_stack` point to different addresses.

Previous Boot Flow:
 - header.ld -> jump into `stage_entry` C code for ROMSTAGE onwards ->
     `stage_entry` being called and followed by `main` function

Updated Boot Flow:
 - header.ld -> jump into `_start` (assembly entry point) for
      ramstage specifically -> Update the existing SP (stack pointer)
      register if the `preram_` or `postram_` stack address is not
      same -> call into `stage_entry` and follow the `main` function.

BUG=b:456953373
BRANCH=None
TEST=Able to build google/bluey.

Change-Id: I4eec24aff1c9d01180c3452a3631dd344656c771
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90403
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-15 10:49:03 +00:00
Subrata Banik
641f7ac677 arch/arm64: Introduce distinct PRERAM and POSTRAM stack regions
Refactor the stack definition macros to explicitly define separate
memory regions for the stack, addressing resource conflicts on
certain SoCs like Qualcomm x1p42100.

The original STACK macro is split into PRERAM_STACK and
POSTRAM_STACK.

Motivation:
On the Qualcomm x1p42100 SoC, the boot flow presents two
constraints for the initial stack location:
 - Boot IMEM is unavailable after the ADSP is loaded.
 - The existing SSRAM stack address is reserved for QC QSEE by the
   Trust Zone.

Solution:
 - PRERAM_STACK: Used by coreboot (e.g., till romstage) for static
   stack allocation (from an alternative SSRAM or BOOT IMEM region).
 - POSTRAM_STACK: Used starting from ramstage, leveraging the
   DRAM-mapped memory.

This conditional split allows coreboot to manage stack memory
independently for the limited environment before DRAM is fully
initialized (ENV_ROMSTAGE_OR_BEFORE), resolving the hardware memory
conflicts while maintaining compatibility with existing code via
aliasing.

BUG=b:456953373
BRANCH=None
TEST=Able to build google/bluey.

Change-Id: I6356adc63d595f59050e6dc5961404be4a9534c0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90402
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-12-15 10:48:34 +00:00
Subrata Banik
2183326306 soc/qualcomm/x1p42100: Rename qcsdi region to aop_sdi in memlayout
On the X1P42100 SoC, the System Debug Image (SDI) flow is handled by
the Always-On Processor (AOP), unlike previous architectures (e.g.,
Kodiak) which utilized a dedicated 'QcSDI' image.

Rename the memory region at 0x14699000 from 'qcsdi' to 'aop_sdi' to
accurately reflect ownership by the AOP and to align with the new
chipset architecture. This change clarifies the memory map and serves
as a prerequisite for removing legacy QcSDI artifacts once the
modern SDI flow is fully enabled.

BUG=b:456953373
TEST=Build and boot on google/quenbih target.

Change-Id: Ic5626c06decaadfd459aa21bde4efcfec92e1e47
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90505
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-15 10:48:28 +00:00
Sowmya V
fad9878a3e vc/intel/fsp/fsp2_0/wildcatlake: Update WCL FSP headers to FSP WCL.3393.02
Update Wildcatlake FSP headers from version WCL.3393.02

FspmUpd.h: Add below upds
* Vdd2HVoltage
* Vdd1Voltage
* Vdd2LVoltage
* VddqVoltage

FspsUpd.h: Add below upds
* UfsInlineEncryption
* MaxActiveDisplays

MemInfoHob.h:
* PprTargetedStatus - PPR status of each Targeted PPR request

BUG=b:464402767
TEST=Able to build google/ocelot with the latest header changes

Change-Id: I66f22452fb7cd771752afe8bd7c0c3e5dac2106e
Signed-off-by: Sowmya V <v.sowmya@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90496
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-12-15 00:45:38 +00:00
Matt DeVillier
71b79018da util/release/genrelnotes: Restore to saved HEAD instead of origin/main
The script was failing when origin/main doesn't exist. Instead of
trying to detect or use a main branch, simply save the current HEAD
hash and restore it when done. This works regardless of branch names
or remote configuration.

Also improve the clean check to use git diff-files instead of
comparing to a specific branch.

Change-Id: I237de4b1e8a06fd4e1e3ef08286208c130e7a6bd
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90502
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-15 00:45:29 +00:00
Appukuttan V K
9f6e297399 vc/intel/fsp/mtl: Fix license header in MemInfoHob.h
Replace the incorrect Intel confidential license header with the
proper BSD license header in the MemInfoHob.h file to align with
the standard licensing used for Intel FSP vendorcode.

BUG=None
TEST=None

Change-Id: I242d9abedc2910f819c70be597c5d1cbca996a2a
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90494
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-15 00:45:18 +00:00
Johann C. Rode
2171af0f5f mb/lenovo/sklkbl_x280: Fix build failure
This fixes the build failure for commit 0b4d41004 (mb/lenovo/sklkbl: Add
Lenovo Thinkpad X280 as a variant) caused by a discrepancy between
memory/Makefile.mk and the actual content of spd/ddr4.

Change-Id: I92a4446e7bd457a7f09a107a0cb0fe1d7a6e1de4
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90503
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-14 03:33:13 +00:00
Johann C. Rode
a5d3c4c119 mb/lenovo/sklkbl: Fix headphone jack
This proliferates the fixes from commit e5d10e5d23, CB:90023 ("mb/
lenovo/t480: Fix headphone jack") to the other SKL/KBL Thinkpad
variants T580, T470s, and T480s. This has been only validated on the
former two machines, but since the hardware changes between the
different models appear to be minimal, it should be safe to deploy
this fix to the T480s variant blindly.

Change-Id: I1edf8dc33231b9d1e1cf2eaf3f4f296736b7be32
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90482
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-13 18:05:25 +00:00
Johann C. Rode
0b4d41004d mb/lenovo/sklkbl: Add Lenovo Thinkpad X280 as a variant
The hardware of this machine is mostly identical to the already
supported Thinkpad Tx80 machines. Minor differences are the absence of
SODIMM slots (i.e. all RAM is soldered on), two fewer eDP lane pairs,
and different PCIe lane assignment.

All the hardware configuration settings (VBT, GPIO register dumps,
hda verbs, and so on) have been obtained running the latest BIOS/EC
firmware (1.59/N20ET74W, 1.15/N20HT28W). PCIe port assignments as well
as USB, RAM SPD and GPIO assignments have been cross-checked against
publicly available schematics (Finn-1).

Basic functionality has been validated on a Thinkpad X280 part number
20KF-002QUS with 16GB onboard RAM, i7-8650U CPU. The laptop has been
tested with SeaBIOS 1.17 as a payload booting either debian 13 or
Windows 10. A cursory check of the hardware (video, wifi, audio, wired
ethernet, reboot, sleep) shows no issues. This patch also includes a
fix for the headphone jack detection that's been already validated
on the Thinkpad T480 with commit e5d10e5d23 ("mb/lenovo/t480: Fix
headphone jack").

Change-Id: Ia8e6c40b200dee240d08d79253fbbe0842882a80
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90254
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-13 18:05:20 +00:00
Yu-Ping Wu
9a3818f9b6 soc/mediatek/common: Print DRAM calibration status as string
Logs such as "DRAM-K: calibration failed: status = 1" give little
information about the failure reason. Add get_status_string() and use it
to print the return status as a string.

Change-Id: If20282f0de7ba8ce884d0016fe8da1dc93a33ea4
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90484
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-12-13 14:30:19 +00:00
Yidi Lin
1e8cea55a0 soc/mediatek/common/emi: Cache SDRAM size
Optimize the `sdram_size` function by caching the calculated SDRAM
size in a static variable. This prevents redundant calls to
`mtk_dram_size()` or `mem_chip_info_total_density_bytes()` if the size
has already been determined, improving performance in scenarios where
`sdram_size` is called multiple times.

BUG=none
TEST=emerege-tanjiro coreboot

Change-Id: I0ca0df80ee9cb781a5bb6d55ee28a2c1153be0ad
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90485
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
2025-12-13 14:30:06 +00:00
Yidi Lin
9203cc827f soc/mediatek/mt8196: Add MTE tag memory to bootmem
This patch enables MTE (Memory Tagging Extension) for the MediaTek
MT8196 SoC.

During `soc_init`, it calculates the required size and start address for
the MTE tag storage based on the physical DRAM size. It then calls
`booker_mte_init` to initialize the MTE hardware with the calculated
start address.

Later, during memory initialization, `bootmem_platform_add_ranges` uses
`bootmem_add_range_from` to reserve the calculated memory region for
MTE tag storage, preventing it from being used for other purposes.

BUG=b:438666196
TEST=Check cbmem log.
[DEBUG]  booker_mte_init: MTE tag addr 0x460f70000
...
[DEBUG]  17. 0000000460f70000-000000047ffeffff: TAG STORAGE
[DEBUG]  18. 000000047fff0000-000000047fffffff: RESERVED

Change-Id: I7caa4fde4f314261383a68e942b0e3fb06c6184b
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90144
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-13 14:29:37 +00:00
Yidi Lin
3d5135fdd0 lib/bootmem: Add memory type for Armv9 MTE tag storage
The Armv9-A architecture introduces the Memory Tagging Extension (MTE),
which uses a dedicated memory region for tag storage.

This patch adds a new memory type, BM_MEM_TAG, to allow for the proper
accounting and reservation of this memory region. This ensures that the
payload, e.g. depthcharge, can correctly identify and utilize the tag
storage area.

BUG=b:438666196

Change-Id: I2f6d2b3c2c1a8e1f0e9b2c3d4e5f6a7b8c9d0e1f
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90470
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-13 14:29:29 +00:00
Yidi Lin
2d45723d87 lib/bootmem: Add bootmem_add_range_from function
This patch introduces a new function, bootmem_add_range_from, which
allows adding a memory range of a specific type only if it is carved
out from a range of another specific type. This is useful for cases
where memory needs to be allocated from a pre-defined region.

The function checks if the target range is fully contained within a
range of `from_tag` before marking it as `new_tag`. Error reporting
is included to log cases where the allocation is not possible.

BUG=b:438666196

Change-Id: Icfdb5ef9114572c075be6ef4e57d00151300a17a
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90469
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-13 14:29:22 +00:00
chou.pierce
4f78a40f53 mb/google/ocelot/var/ocicat: Update Touchscreen settings
- Update Touchscreen settings
- Modify GPP_F16 to output pin
- Modify GPP_F18 to INT pin

BUG=b:466246282
TEST=Flash and boot on DUT, touchscreen works normally

Change-Id: I6d9ba83993321e59a677d1341fd4255084e68215
Signed-off-by: chou.pierce <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90439
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-13 14:29:05 +00:00
chou.pierce
510f1950b4 mb/google/ocelot/var/ocicat: Update devicetree
- Enable CNVi Wi-Fi and BT cores
- Remove unused tbt_pcie_rp0/rp1 nodes

BUG=b:466246282
TEST=CNVi Wifi/BT is enabled on ocicat.

Change-Id: Ibeee5c83f35df1637d0284f96bf5e715eac4efbd
Signed-off-by: chou.pierce <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90380
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-13 14:29:00 +00:00
Alicja Michalska
35cb6aea50 mb/google/hatch: Fix CFR pointer
Typo in CFR causes build failure, this patch fixes it.

TEST: Build for KOHAKU with EDK2 payload and CFR options.

Change-Id: If17e12ad7f99e65d7b9037f0e8e599490cecb6a4
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90483
Reviewed-by: Ingo Reitz <9l@9lo.re>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-13 04:02:11 +00:00
Julius Werner
8f34fdfab3 Remove <swab.h> and swabXX() functions
GCC generates correct code for __builtin_bswapXX() on all architectures,
including ArmV4. It seems that whatever bug caused this to not work back
in commit 879ea7fce8 ("endian: Replace explicit byte swapping with
compiler builtin") has been fixed now. We can eliminate the swabXX()
functions and simplify the code.

All instances that had been calling these functions directly should have
been using real endianness conversions anyway.

Change-Id: I19713fd009aa5c0e01c4a42e0cf012364d6bed60
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90438
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
2025-12-12 07:09:45 +00:00
luca.lai
d556bc65c2 mb/google/fatcat/var/ruby: Change GPIO pins to fix audio function
Change below GPIO pins status to fix audio function.
GPP_H19 : Native function 1
GPP_H20 : Native function 1

BUG=b:466263099
TEST=Build and boot to OS, check soundcard shows using command
'cat /proc/asound/cards' and check audio jack and amp are work.

Change-Id: I1771d063d8f15fef672119f56482d7cf3c954c27
Signed-off-by: luca.lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90455
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-12 04:57:12 +00:00
Yu-Ping Wu
6b5a872ce8 soc/mediatek: Pass dsi_regs/mipi_tx_regs to DSI API
In preparation for the upcoming DSI dual channel support, pass dsi_regs
and mipi_tx_regs to DSI functions that need to access these registers.

BUG=b:424782827
TEST=util/abuild/abuild -x -t GOOGLE_SAPPHIRE -a
BRANCH=none

Change-Id: Ia0c9051148e38a7703119f800d417f2f8b52f78a
Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90446
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-12 02:19:09 +00:00
Yu-Ping Wu
74c13eead4 soc/mediatek/mt8196: Define dsi_regs/mipi_tx_regs structs
Add dsi_register_v3.h to define dsi_regs struct for mt8196, and add
dsi_reg.h to define mipi_tx_regs struct. Unlike other SoCs, mt8196
has dsi1 and mipi_tx1 registers in order to support DSI dual channel.

BUG=b:424782827
TEST=util/abuild/abuild -x -t GOOGLE_SAPPHIRE -a
BRANCH=none

Change-Id: I2b541c89a007f380de482bffa86aca60c351b526
Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90451
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-12 02:19:00 +00:00
Yu-Ping Wu
a3317182ff soc/mediatek/common: Move dsi0 definition to dsi_register_v*.h
Move dsi0 variable definition to dsi_register_v*.h to be closer to the
register struct definition. This also allows us to define dsi1 for
mt8196 at the same place as dsi0 in a future patch. The dsi1 variable
cannot be defined in dsi_common.h because not all MediaTek SoCs using
the header have the DSI1_BASE register.

BUG=b:424782827
TEST=util/abuild/abuild -x -t GOOGLE_SAPPHIRE -a
BRANCH=none

Change-Id: I643f8d0317d0fb8bd8ea7bf8870ec99051c35c1b
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90452
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-12 02:18:53 +00:00
Yu-Ping Wu
3607024944 soc/mediatek: Move mtk_dsi_init declaration to display_dsi.h
The soc/dsi.h header contains SoC-specific dsi and mipi_tx register
definitions, which are not needed for SoCs not supporting MIPI DSI
panels (such as mt8195). To decouple the generic display.c (used for
both eDP and MIPI panels) from those register definitions, move the
mtk_dsi_init() declaration and MIPI_DSI_* enums to display_dsi.h.

This allows us to remove the unused soc/dsi.h for mt8195.

BUG=b:424782827
TEST=util/abuild/abuild -x -t GOOGLE_ASURADA -a
TEST=emerge-skywalker coreboot
BRANCH=none

Change-Id: I56e458ec8077ed48929637b9b5c70f08653cc73f
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90449
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-12 02:18:47 +00:00
Yu-Ping Wu
7ef424c75e soc/mediatek/common: Rename mipi_tx to mipi_tx0
In preparation for the upcoming DSI dual channel support, where mipi_tx1
will be added, rename mipi_tx to mipi_tx0.

BUG=b:424782827
TEST=emerge-skywalker coreboot
BRANCH=none

Change-Id: Idcbcc9e71bd3657f543d97b70bf875af907da328
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90448
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-12 02:18:41 +00:00
Yu-Ping Wu
cf0b91d774 soc/mediatek: Move dsi_regs/mipi_tx_regs definitions to soc/dsi_reg.h
In an upcoming change, a dsi_regs/mipi_tx_regs argument will be added to
functions declared in dsi_common.h. Currently those structs are all
defined in soc/dsi.h. However, dsi_common.h cannot include soc/dsi.h
because soc/dsi.h already includes dsi_common.h. To solve the circular
dependency issue, move the dsi_regs/mipi_tx_regs definitions to a new
file soc/dsi_reg.h.

As mt8183/mt8186/mt8188/mt8189/mt8192 all share compatible mipi_tx_regs
definitions, create a common mipi_tx_reg_v1.h and include it in these
SoCs' soc/mipi_tx_reg.h. The mt8173 remains its own struct definition.

Also, rename MIPITX_BASE to MIPITX0_BASE in soc/addressmap.h, to have
consistent naming across all SoCs. Note that MIPITX1_BASE will be added
for mt8196 in a future patch.

BUG=b:424782827
TEST=emerge-skywalker coreboot
BRANCH=none

Change-Id: I0e2159fde5bfc358691a4b3bdebc2657f0a598a8
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90445
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-12 02:18:24 +00:00
Yu-Ping Wu
403a42f1f0 soc/mediatek/mt8173: Fix mipi_tx1 address
The address of mipi_tx1 should be MIPI_TX1_BASE instead of
MIPI_TX0_BASE. This doesn't cause any issue in practice because mipi_tx1
is unused.

Also rename lvds_tx1/lvds_tx2 to lvds_tx0/lvds_tx1 for consistency with
the MIPI_TX0_BASE/MIPI_TX1_BASE naming.

BUG=none
TEST=none
BRANCH=none

Change-Id: I040b0a2a447333141cf6f4a012fa5d2aefd936c7
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90444
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-12-12 02:18:15 +00:00
Matt DeVillier
72010408b5 mb/google/eve: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Kabylake SoC, Intel common, and ChromeEC.

TEST=build/boot google/eve, verify CFR option functionality.

Change-Id: Id878bbd06b7eb06f12c063486fd475c742a9a13b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90321
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:50:08 +00:00
Matt DeVillier
c36b149392 mb/google/eve/Makefile: Organize and group entries by stage
Tidy up before adding a new CFR entry in a subsequent patch.

Change-Id: I14dc011622acad43b6a21a00d97a958ea6d3152f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90320
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 19:50:03 +00:00
Matt DeVillier
f61ecfa154 mb/google/link: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Sandy/Ivybridge, C216 SB, and ChromeEC.

TEST=build/boot google/link, verify CFR option functionality.

Change-Id: I08cccf136f20018aee925372b5c181bf4b55e0cd
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90319
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 19:49:58 +00:00
Matt DeVillier
75460f531c mb/google/poppy: Add CFR option to enable/disable IPU cameras
IPU cameras on popp-based devices are currently not properly supported
under Windows, which causes the camera status LED to be permanently on
when using Windows. To work around this, add a CFR option to disable
the IPU camera(s) on a given board.

TEST=build/boot google/poppy (nocturne), verify camera status LED is
off when CFR option disable and Windows booted.

Change-Id: I664ecac47211350b861504c3075e524f045dbf40
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90318
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:49:52 +00:00
Matt DeVillier
ae8f2d8cee mb/google/poppy: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Kabylake SoC, Intel common, and ChromeEC.

TEST=build/boot google/poppy (nocturne), verify CFR option
functionality.

Change-Id: Ib63c2a105a715a540a93b6163ff7e6f86deab5d0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90317
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:49:46 +00:00
Matt DeVillier
99d67bae63 mb/google/glados: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Skylake SoC, Intel common, and ChromeEC.

TEST=build/boot google/glados (chell), verify CFR option
functionality.

Change-Id: Ie124d69e979c7d0ca8dd119046412cb637eb04da
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90316
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:49:40 +00:00
Matt DeVillier
0d81d38a31 mb/google/skyrim: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from ChromeEC.

TEST=build/boot google/skyrim (frostflow), verify CFR option
functionality.

Change-Id: Ife5b20725794cdecc47f632e10421b86ceac68a5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90315
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 19:49:34 +00:00
Matt DeVillier
c397821cb6 mb/google/guybrush: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from ChromeEC.

TEST=build/boot google/guybrush (dewatt), verify CFR option
functionality.

Change-Id: I16e80e2ba1e51617956043137cd8fee1400b57f2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90314
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 19:49:24 +00:00
Matt DeVillier
c1f0be39da mb/google/zork: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from ChromeEC.

TEST=build/boot google/zork (morphius), verify CFR option functionality

Change-Id: I21f6d01ab425fb698872735bca3514ae366bcdda
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90313
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:49:18 +00:00
Matt DeVillier
d105934073 mb/google/kahlee: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from ChromeEC.

TEST=build/boot google/kahlee (liara), verify CFR option functionality

Change-Id: I19f059f1e0c0e7c71e5e84560fe72f271d33412c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90312
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:49:13 +00:00
Matt DeVillier
46a32a2b56 mb/google/sarien: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Cometlake SoC and Intel common.

TEST=build/boot google/sarien, verify CFR option functionality.

Change-Id: Id7b023cecba36ac4a5c65eb5ece05361e8881980
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90353
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:53 +00:00
Matt DeVillier
e3bee6397d mb/google/rex: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Meteorlake SoC, Intel common, and ChromeEC.

TEST=build/boot google/rex (karis), verify CFR option functionality.

Change-Id: Ic115272f69c2b37263d7ca0f921e6d9eceaaa8c3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90352
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:47 +00:00
Matt DeVillier
d0345005ad mb/google/brox: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Alderlake SoC, Intel common, and ChromeEC.

Change-Id: I99505f3f8b24c2f89329a3164963e874f5861374
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90351
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:42 +00:00
Matt DeVillier
ee599486ac mb/google/dedede/galtic: Add CFR option for touchpad type
The i2c auto-detection cannot distinguish between two touchpads using
the same i2c bus and address, so drop the 'detect' flag amd implement
a user-selectable CFR option instead, defaulting to both enabled.
This will allow either touchpad to work properly under Linux, and
give the user the ability to only enable the touchpad actually present
should they wish to run Windows.

Change-Id: Iaf1406c2d10bbf10b9aea30ae1cd2b2281bfcc5d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90350
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:37 +00:00
Matt DeVillier
7a78543eca mb/google/dedede/drawcia: Add CFR option for touchscreen selection
The i2c auto-detection fails to find a touchscreen on Drawcia, so
create a user-selectable CFR option instead, with the default being
all enabled. This allows Linux to probe and detect the correct
device, and Windows users to select the appropriate selection.

Change-Id: I2e4a760b7d6c9b1546418630f75538adccdcf8e1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90349
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:31 +00:00
Matt DeVillier
1890c6d165 mb/google/dedede: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Jasperlake SoC, Intel common, and ChromeEC.

TEST=build/boot google/dedede (maglia), verify CFR option
functionality.

Change-Id: I36b567a32232cb0f561c9f428157e421319d8dab
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90348
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:26 +00:00
Matt DeVillier
bd89858f09 mb/google/brya: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Alderlake SoC, Intel common, and ChromeEC.

TEST=build/boot google/brya (yaviks), verify CFR option functionality.

Change-Id: I4b450fbc3e376dcb256a2c6b8ca7fb2267fa5df3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90347
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:21 +00:00
Matt DeVillier
a58e0704c7 mb/google/volteer: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Tigerlake SoC, Intel common, and ChromeEC.

TEST=build/boot google/volteer (drobit), verify CFR option
functionality.

Change-Id: Ic6848825aefa8e0627240fc04b2a6b7a33188de6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90346
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:16 +00:00
Matt DeVillier
8b34490137 mb/google/drallion: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Cometlake SoC and Intel common.

TEST=build/boot google/drallion, verify CFR option functionality.

Change-Id: I9cff10b4782f6066e79cca8d39cb7cbc053d88ea
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90345
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 19:48:10 +00:00
Matt DeVillier
0762c7d6ee mb/google/drallion/Makefile: Organize and group entries by stage
Tidy up before adding a new CFR entry in a subsequent patch.

Change-Id: Ifbb52e9930998187dcd310a50449b312f56e20e3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90344
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:48:05 +00:00
Matt DeVillier
89902e8c80 mb/google/hatch: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Cometlake SoC, Intel common, and ChromeEC.

TEST=build/boot google/hatch (akemi), verify CFR option
functionality.

Change-Id: I29158a2d1fe6956799156fbe066ad4e97c110226
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90343
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:47:59 +00:00
Matt DeVillier
0f93d154b2 mb/google/octopus: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Geminilake SoC, Intel common, and ChromeEC.

TEST=build/boot google/octopus (ampton), verify CFR option
functionality.

Change-Id: I5ed3e038684c852c71bd812d6a4b8d05290d5361
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90342
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:47:52 +00:00
Matt DeVillier
f0346845cd mb/google/reef: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Apollolake SoC, Intel common, and ChromeEC.

TEST=build/boot google/reef (electro), verify CFR option
functionality.

Change-Id: I8d9fdcaccc2d5cf35dcea6042f0a73d4bfd7ce69
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90341
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 19:47:47 +00:00
Matt DeVillier
2b959f4560 mb/google/puff: Add CFR option for automatic fan control
Allow users to enable/disable automatic fan control via CFR options
menu.

TEST=build/boot puff (wyvern) w/edk2 payload, verify automatic fan
control toggle functional.

Change-Id: I188e4393776b986809cbb1e51accaa88864b667f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90311
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:47:34 +00:00
Matt DeVillier
a8a77f9da2 mb/google/fizz: Add CFR option for automatic fan control
Allow users to enable/disable automatic fan control via CFR options
menu.

TEST=build/boot fizz w/edk2 payload, verify automatic fan control
toggle functional.

Change-Id: I40e72b21f34e943b0f4bd6a206d004d89ec9692a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90310
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-11 19:47:28 +00:00
Matt DeVillier
cde4280796 soc/intel/apollolake: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

CFR options are added for the following options:
- legacy_8254_timer
- s0ix_enable
- vtd

TEST=build/boot google/reef with CFR support

Change-Id: Ia58bf53f93742417c2aac683c96f7c8f382a35c0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90309
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:47:22 +00:00
Matt DeVillier
2e10f75751 mb/google/sarien: Increase size of SMMSTORE to 512KB
Increase size of SMMSTORE FMAP region to 512KB to ensure a large
enough area is allocated to UEFI variable storage which allows for
variables (such as the UEFI revocation database) to be updated
via fwupd. Previously, such updates would fail with an error such as:
"efivar: No space left on device".

Change-Id: Ic959d5242879a991da93b33d3bf73beeb1448723
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90292
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:46:05 +00:00
Matt DeVillier
91c6a0b5e6 mb/google/reef: Increase size of SMMSTORE to 512KB
Increase size of SMMSTORE FMAP region to 512KB to ensure a large
enough area is allocated to UEFI variable storage which allows for
variables (such as the UEFI revocation database) to be updated
via fwupd. Previously, such updates would fail with an error such as:
"efivar: No space left on device".

Change-Id: I1ef876de4ccb3a0ed2ff0a96b66c6b02bf274a3e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90291
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
2025-12-11 19:46:00 +00:00
Matt DeVillier
36a345f99e mb/google/octopus: Increase size of SMMSTORE to 512KB
Increase size of SMMSTORE FMAP region to 512KB to ensure a large
enough area is allocated to UEFI variable storage which allows for
variables (such as the UEFI revocation database) to be updated
via fwupd. Previously, such updates would fail with an error such as:
"efivar: No space left on device".

Change-Id: Ia7566b31991b6891b4c194ad9b494da2e5ea8e01
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90290
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-11 19:45:54 +00:00
Matt DeVillier
d7cb2d2bc5 mb/google/drallion: Increase size of SMMSTORE to 512KB
Increase size of SMMSTORE FMAP region to 512KB to ensure a large
enough area is allocated to UEFI variable storage which allows for
variables (such as the UEFI revocation database) to be updated
via fwupd. Previously, such updates would fail with an error such as:
"efivar: No space left on device".

Change-Id: I4073f7d1aed589544f072c2a64cada2cdddbe8bf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90288
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-11 19:45:45 +00:00
Matt DeVillier
d32a372846 drivers/smmstore: Increase default size of store to 512KB
The previous default size of 256KB provided for only 64KB of actual
space for EFI variables, and after accounting for fragmentation, did
not provide enough free space for applying updates, such as for the
UEFI revocation database (DBX). Increasing it to 512KB allows for
192KB space for variables, and allows the UEFI DBX to be updated
properly via fwupd.

TEST=build/boot google/drobit, verify UEFI DBX able to be successfully
updated via fwupd.

Change-Id: I8d6a2051f3ad50117d41cec2bbbe3aaafa7e65c2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90287
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-11 19:45:39 +00:00
Jakub Czapiga
c109fc92ff libpayload: Add API to get physical memory size
sysinfo contains both CBMEM_ID_MEMINFO and CBMEM_ID_MEM_CHIP.
This new function allows to easily retrieve the amount of memory the
system has based on the mentioned CBMEM entries structures.

BUG=b:450374306
TEST=Checked on Google/Brya/Omnigul (x86) - MEMINFO
TEST=Checked on Google/Rauru/Navi (ARM64) - MEM_CHIP

Change-Id: Iaf69c54dfb3d2eaffbccacee8bee3be425b78a3f
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90430
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 19:45:26 +00:00
Luca Lai
519332de10 mb/google/fatcat/var/ruby: Modify VCCCORE VR Fast Vmode ICC limit
For FVM, the function should be enable and set VR Fast Vmode ICC Limit
in BIOS.

According to VRTT test result by PWM IC vendor tuning.
VCCCORE VR Fast Vmode ICC Limit can set as 74A.
VCCGT VR Fast Vmode ICC Limit can set as 38A.
VCCSA VR Fast Vmode ICC Limit can set as 38A.

BUG=b:464422702
TEST=Build and check the system could boot to OS

Change-Id: Ia9dffbfde8d57044392b742d68c62398d6f3dfa3
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90360
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-12-11 15:26:23 +00:00
Ulysse Ballesteros
7f93e2fe29 soc/intel/*: Add CFR option to enable/disable the Intel iGPU
TEST=Build and boot to OS. Verify functions work. (skylake)

Change-Id: I9d25c04302d23afd9b95625ddf03dfeee2fdf7c2
Signed-off-by: Ulysse Ballesteros <ulysse.ballesteros@outlook.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89752
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-12-11 15:11:43 +00:00
Integral
d5ea359347 soc/intel/**/cfr.h: Fix typo of "ACPI" in UI help text
Correct "APCI" to "ACPI" in the UI help text.

Change-Id: I56343c82b2ddc73e565501f723538fbe96877cd6
Signed-off-by: Integral <integral@member.fsf.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90431
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 15:11:35 +00:00
Julius Werner
02a2fe7907 Merge coreboot and libpayload <endian.h> into commonlib
We've accumulated a number of endianness-handling and related macros
that are duplicated between coreboot and libpayload. This patch reduces
duplication by merging them into a commonlib header. This has the added
side-benefit of bringing the coreboot implementation of beXXenc/dec()
functions to libpayload, which lead to better code generation by
avoiding https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92716.

Keep the htobell()-style functions in libpayload only since they're not
needed in coreboot and not preferred. Keep the cpu_to_beXX()-style
functions in coreboot only -- maybe we should deprecate those
eventually.

This patch is explicitly copying and relicensing some of the code I
originally added as GPLv2 in commit e8e92d60c4 ("endian.h: Add
be32dec/be32enc family of functions") to BSD-3.

Change-Id: I5eb83d44a98b3aa59bba65b8e22df668874d2668
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90308
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 08:43:16 +00:00
Michał Żygowski
5eb7b8bd34 payloads/external/edk2/Makefile: Set SMBIOS to 3.0.0
coreboot produces SMBIOS tables with version 3.0.0. The UEFI payload
may overwrite this value based on PCDs and cause a mismatch of the
SMBIOS tables version produced by coreboot and version visible to OS.
To ensure proper parsing of SMBIOS tables in OS, set the same version
of SMBIOS for UEFI payload using the PCDs.

TEST=Run dmidecode on Gigabyte MZ33-AR1 and see that the tool reports
SMBIOS 3.0.0 present.

Change-Id: Ie3cdcca65dbcdddc74cb352ef5c4d3e83bdc87f5
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89481
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-11 00:12:13 +00:00
Kirubakaran E
c3afc13a0a soc/qualcomm/x1p42100: Update memlayout for BL31 region and realign TA region
TF-A feature additions have increased BL31 memory requirements. Expand
BL31 reservation from 600KB to 800KB and adjust the TA region start
address to prevent overlap. The TA region change requires FDT memory
reservation updates, which are handled in Depthcharge.This update
ensures proper memory alignment for secure firmware execution.

TEST=Created image.serial.bin and verified successful boot on X1P42100.
Basic device boot functionality with the updated memory reservation has
been validated.

Change-Id: Ia0145c9e8d5925de4a7fee3399efc76059944c10
Signed-off-by: Kirubakaran E <kirue@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90429
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-11 00:12:03 +00:00
Michał Żygowski
04f83ff7dc cpu/x86/mtrr: Simplify MTRR solution calculation on AMD systems
AMD systems have a TOM2WB bit in SYS_CFG MSR to forcefully cover the
address space between 4GB-TOM2 as WB. Any WB MTRR that falls into that
range may be skipped from programming. It can save a lot of MTRRs when
calculating the MTRR solution. It is especially needed when using a
temporary MTRR to cover the flash as WP, as the MTRR space gets more
fragmented.

Add checks for SYS_CFG TOM2WB in the MTRR driver and skip the WB MTRR
ranges when possible.

TEST=Successfully enable temporary MTRR range for flash on Gigabyte
MZ33-AR1.

Change-Id: Ie9af9b54a1037c843d8f019506af761a8d8769d0
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89199
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 00:11:52 +00:00
Swathi Tamilselvan
6957f84aa7 soc/qualcomm/x1p42100: Define MDSS domain registers for display
clock enablement

Add register address and clock value definitions required to enable
the display clock. The register details are part of HRD-X1P42100-S1
document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=Generated image.serial.bin and verified boot on X1P42100.
Validated only basic device boot functionality, as clock enablement API
and its invocation sequence from display driver are not yet implemented.

Change-Id: Id23dd12c9c1ee4968546c8b928f9360163446a9d
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90393
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-11 00:11:30 +00:00
Swathi Tamilselvan
9a95aef482 soc/qualcomm/common: Add API to enable Lucidole PLL for X1P42100
Add API to enable Lucidole PLL.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: Idfefebcbe57498446e32c75d5c1532d321b8fb74
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90392
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 00:11:25 +00:00
Sean Rhodes
5eaf85d19b soc/intel/skylake: Use CSE reset status for reset
send_global_reset() now returns cse_tx_rx_status, and  skips the
CF9 reset only when CSE reports CSE_TX_RX_SUCCESS.

Test=Disable and enable the Intel ME on labtop_kbl and verify the
system actually resets, rather than hanging.

Change-Id: I5003ea9486a383ee7a4cace20ce6a54b0f94a166
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90274
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-12-11 00:11:12 +00:00
Sean Rhodes
84a4cdc6a5 soc/intel/*: Only skip PMC fallback on successful CSE reset
cse_request_global_reset() returns CSE_TX_RX_SUCCESS on success. Make
do_global_reset() explicatly check for that, and fall back CF9 for any
other value.

Test=Disable and enable the Intel ME on starbook_mtl and verify the
system actually resets, rather than hanging.

Change-Id: I4c3fb7995bca8e7fe3793b9aee021e4004ace933
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90273
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-11 00:11:06 +00:00
Sean Rhodes
4f52ca6ba6 soc/intel/common/cse: Return usable error codes
Currently, cse_request_reset() returns 0 if the reset type is
unsupported or CSE isn’t ready. This is the same as
CSE_TX_RX_SUCCESS, which makes failures impossible to detect.

Return CSE_TX_ERR_INPUT or CSE_TX_ERR_CSE_NOT_READY respectively,
so we can detect errors.

Change-Id: Idede7342157901946ba62ba6fcda6f304a4a3fd0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90272
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-11 00:11:01 +00:00
Michał Żygowski
8795680828 cpu/x86/lapic/lapic.c: Set spurious interrupt vector to 0xF
The MP Specification v1.4 says to program the spurious interrupt
in the following way:

"The APIC spurious interrupt must point to a vector whose lower
nibble is 0F, that is 0xF, where x is 0 - F. Here we use Int 00FH,
which handles spurious interrupts and supplies the necessary IRET.
This vector is assumed to have already been initialized in memory."

Follow the requirement and set the spurious interrupt vector
to 0x0F. This is what reference implementations, like EDK2, and also
BIOS vendors do.

Change-Id: I7bde413bbadca1de0079daf52b5501ba6638a4c3
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89736
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-11 00:10:44 +00:00
Sergii Dmytruk
41348477e3 sb/intel/common/firmware/Makefile.mk: fix INTEL_IFD_SET_TOP_SWAP_BOOTBLOCK_SIZE
Halfway through the review of CB:89493 (commit 6e45016610 ("intel
soc,southbridge: Add Kconfig to set TSBS in IFD during build")) the
option was renamed and lost "CONFIG_" prefix in the Makefile.  Add the
missing prefix.

The omission was discovered and the fix tested while trying to use this
option on Protectli VP6670 where incorrect Top Swap size prevented a
boot.

Adding a missing space while at it.

Change-Id: Ie85fc0b81b2231760878306cf065598bec390e9f
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90432
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-11 00:10:29 +00:00
Yu-Ping Wu
c11faad2bf mb/google/skywalker: Correct MIPI panel power sequence
Unlike other skywalker boards, GPIO14 is EN_PP6000_MIPI_DISP instead of
TCHSCR_REPORT_DISABLE on Padme. Therefore, in bootblock that GPIO should
be initialized low to meet the MIPI panel's required power-on sequence.
More precisely, IOVCC (LCD_VDDI) must lead AVDD by >2ms [1].

Add alias GPIO_EN_PP6000_MIPI_DISP to skywalker/gpio.h, and use it
instead of GPIO_TCHSCR_REPORT_DISABLE in the MIPI initialization code.
Also remove the EN_PP6000_MIPI_DISP pull-low in mipi_panel_power_on(),
as it has been pulled low in setup_chromeos_gpios().

[1] Preliminary+specification+TL121BVMS07+-00+V01+20250721.pdf

BUG=b:451746079
TEST=Boot Padme and confirm panel power-on timing is correct.
BRANCH=skywalker

Change-Id: I748a998cde35e58eac9eb590171b79864fc58ea9
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90122
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@chromium.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-10 07:36:05 +00:00
Chen-Tsung Hsieh
459cdd09f4 mb/google/rauru: Add variant-specific firmware config
This change introduces support for variant-specific firmware
configurations (fw_config) for the Rauru mainboard, specifically adding
initial support for the Sapphire variant.

The fw_config fields for Sapphire are defined in b:458266555.

All fw_config fields are now defined in variant-specific overridetree.cb
files (hylia, navi, rauru, sapphire). Consequently, access to these
fw_config values has been refactored to be encapsulated within
variant-specific fw_config.c files. This approach ensures that common
mainboard code does not need direct knowledge of variant-specific
fw_config definitions.

This is demonstrated by the audio amplifier initialization, which
now uses a variant-specific get_audio_amp_id() function to determine
the hardware present, rather than directly probing fw_config in the
common code.

BRANCH=None
BUG=b:458266555, b:448281461, b:461594346
TEST=emerge-tanjiro coreboot && emerge-rauru coreboot && test on navi

Change-Id: Iecca5820421f250e1a22cec110b36fb578edd9e7
Signed-off-by: Chen-Tsung Hsieh <chentsung@chromium.org>
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90330
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-10 07:35:25 +00:00
Felix Singer
fee2befc82 3rdparty/blobs: Update to upstream main
Updating from commit id 2aefd97c3e01:
2025-10-06 10:54:06 +0800 - (soc/mediatek/mt8196: Update PI_IMG firmware to v1.1)

to commit id 4a8de0324e7d:
2025-11-28 09:19:20 +0800 - (soc/mediatek/mt8196: Add GPUEB firmware v2.0)

This brings in 3 new commits:
4a8de0324e7d soc/mediatek/mt8196: Add GPUEB firmware v2.0
a89fd00da82f soc/mediatek/mt8196: Update DRAM blob to 16486.0.0
b8300132cebb soc/mediatek/mt8189: Update MCUPM firmware to v1.2 for 3.0GHz SoC

Change-Id: I45403316aa67e2f0afc6d2a74ab84c3402d56595
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90357
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-09 22:27:32 +00:00
Uwe Poeche
626789b40a mb/siemens/mc_ehl{1..5}: Unify devicetrees SerialIoI2cPadsTermination
Unify the I2C pad termination on all mc_ehl boards for better code
readability and continuity in the devicetrees. This patch does not
change the actual I2C pad termination configuration.

All the mc_ehl boards use external resistors for I2C termination.
Therefore, there is no need for internal termination at all. If the FSP
parameter 'SerialIoI2cPadsTermination' is omitted from the device tree,
the generic GPIO settings can define termination. If
'SerialIoI2cPadsTermination' is specified for an inactive I2C
controller, those settings are ignored.

This patch consistently adds 'SerialIoI2cPadsTermination' to the device
tree for all active mc_ehl boards, and removes it for controllers that
are switched off.
This topic came up in review for commit 864e3ca661
("mb/siemens/mc_ehl6: Adjust I2C setup").

TEST=Build and boot to OS on mc_ehl1/2/4 and compare register contents
of PAD_CFG_DW0/1 registers for all 8 I2C controllers before and after
the patch to ensure no change in I2C pad termination.

Change-Id: Iba75778893e0b6a7acb68535d0407dc1fc43d2ca
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90364
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-12-09 18:28:51 +00:00
Wayby Zhai
0513c45a38 mb/google/nissa/var/pujjoga: Generate RAM ID for MT62F1G32D2DS-031RF WT:C
Generate RAM ID for MT62F512M32D1DS-023 WT:E

DRAM Part Name                 ID to assign
MT62F1G32D2DS-031RF WT:C       4 (0100)

BUG=b:466889567
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I6a6ed45cacc9a10bc7a2cfc3b41cee93c552a6cd
Signed-off-by: Wayby Zhai <wayby.zhai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90411
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 18:27:47 +00:00
Payne Lin
4a5d0dee4a soc/mediatek/mt8189: Correct AUX LDO mask bit definition
Fix the bit definition for RGS_AUX_LDO_EN_READY_MASK in the MT8189
dptx_reg.h file, changing it from BIT(2) to BIT(0). The MT8189 is only
polling BIT(0) status instead of BIT(2). This correction ensures proper
functionality of the AUX LDO readiness check.

BUG=b:461384417
TEST=Boot up can see develop mode.
BRANCH=skywalker

Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Change-Id: Id4a85c619311fecde5bc84ad29c521b7d20ffdd8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90362
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 18:27:23 +00:00
Maximilian Brune
db01aa6cb2 commonlib/device_tree.c: Fix skipping NOP tokens
The current code doesn't make much sense. The offset created by the
skipping of NOP tokens is just ignored.

Reorder the lines to skip the NOP tokens first.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I860a57e4a773b634149e84271b8322d78ac20e32
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90277
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-12-09 18:26:52 +00:00
Maximilian Brune
29bec62a22 cpu/x86/Kconfig: Remove SOC_SETS_MSRS option
The option was introduced by
commit ae738acdc5 ("cpu/x86: Support CPUs without rdmsr/wrmsr")
for the intel quark SOC. However the SOC doesn't exist anymore in
coreboot. Nor does any other SOC use this option.

Therefore remove it.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I4f3f5e91c00784c159042271387c2e862f351881
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90421
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 16:28:05 +00:00
Maximilian Brune
f4aeac4276 soc/amd/glinda: Set FSP UPDs from devicetree for USB4
Use is_dev_enabled() on devicetree device to enable/disable USB4 devices
by updating the corresponding FSP UPDs.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: If0ae88eaaf88954159b55fdf030eb96d74ee29f6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90419
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-09 16:26:13 +00:00
Patrick Rudolph
f68450e39b vendorcode/amd/fsp/glinda: Update FSP UPDs
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I6162d3a8c71765ea1863eca4c875c2c672060a76
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90418
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 16:21:00 +00:00
Patrick Rudolph
244e8edf18 soc/amd/glinda/Kconfig: Add Faegan SoC as Glinda variant
Glinda and Faegan are closely related and there's only very minimal
difference from the coreboot viewpoint, so Feagan is added as Glianda
variant and not as a new SoC folder. Faegan has a different CPUID, so
it's added to the CPU table, and some GPIO muxes have a few more valid
settings to route the MDIO pins related to the 2 XGBE controllers to
GPIO pins.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I57699089a4a3ac7ddb037f254d42cb043b816c55
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90417
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 16:20:44 +00:00
Patrick Rudolph
9e5c7eb3f8 soc/amd/glinda: Add XGBE devices
Some specific Glinda SoCs support dual 10G PCI ethernet devices.
Add defines and chipset entries for XGBE0 and XGBE1.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7e3bb1819165a7c2f4284b76450f831bb99b1ad3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90416
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 16:20:18 +00:00
Maximilian Brune
87475d693a soc/amd/glinda: Remove set_resets_to_cold
Glinda actually supports warm reset, so we don't need to toggle the
PwrGood for all resets.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I70e9a13b84219847795e65b39c52114592a2cb61
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90415
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 16:20:10 +00:00
Patrick Rudolph
dcd4f07188 soc/amd/common/fsp: Fill in DIMM voltages
Fill in the DIMM voltages as reported by FSP.

Change-Id: I22d6bac93d8e8b8130f89a440be661829c700fe9
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90397
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-09 13:24:25 +00:00
Michał Żygowski
8929659d93 soc/amd/common/acpi/lpc.asl: Report ESPI1 fixed resource
There is ESPI1 fixed resource living 64K above the ESPI0 fixed
resource. Report it if the hardware has ESPI1 bus.

Change-Id: I7245850450cfa9de326f26c83c4f01c8d167f8be
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89489
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-12-09 09:34:59 +00:00
Michał Żygowski
3053cd2dad soc/amd/common/acpi/lpc.asl: Report fixed base addresses
On systems with AMD ROM armor enabled the SPI base address register
in LPC bridge PCI device space is not accessible (returns all FFs).
In such case the AML code will not be able to retrieve the SPI BAR
and report it properly. Use fixed bases instead to avoid running
into this problem in the future.

Change-Id: Ia01508e5ddf2da053f9bf4116c5e05b89500f772
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89488
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 09:31:15 +00:00
Jarried Lin
7e1aa974bf soc/mediatek/common: Refactor mtk_ddp_mode_set to support dual DSI and DSC for MIPI
Add the dsc_config parameter to mtk_ddp_soc_mode_set to support DSC
configuration, and updated function calls to pass dsc_config from
panel_serializable_data. The MIPI_DSI_DUAL_CHANNEL flag is set when the
panel uses the dual MIPI path. This patch is prepared for upcoming MIPI
DSI and DSC changes.

BUG=b:424782827
TEST=Build pass.

Change-Id: Ia3ada4aca41a231adb2273c34deef636889c5c81
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90377
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-09 06:48:27 +00:00
Payne Lin
3aaeca8378 soc/mediatek/common: Refactor mtk_dsi_dphy_timing
Refactor the MIPI DPHY implementation to improve modularity and
maintainability:
- Extract the dphy timing calculation to mtk_mipi_dphy_v1.c.
- Update Makefiles for multiple chips to include the new file.
- Enhance board-specific tuning by isolating timing configuration logic.

BUG=b:424782827
TEST=Build pass, boot ok, display ok

Change-Id: Ie0daa6e7b384a172ed483eda926e5acd1e3c539a
Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90358
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-09 06:48:20 +00:00
Ivy Jian
aeee9450a2 mb/google/ocelot/var/matsu: Add fw_config definitions with UFSC
Enable Unified Firmware and Secondary Source Configuration (UFSC)
support for Matsu.
UFSC standardizes the bitfields and bitmap definitions for firmware
configuration. Update overridetree.cb with new UFSC definitions and
enable EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC.

BUG=b:454549696,b:444322626
TEST=Ensure the probed fw_config matches the written configuration.
BRANCH=none

Change-Id: I55e2b9fd17290731f365632d92f1b26923c8022a
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90299
Reviewed-by: Bob Moragues <moragues@google.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 18:04:11 +00:00
Sean Rhodes
67a7e06c38 drivers/tpm: Remove duplicated op
Change-Id: I426b6c488fea57783168a68eb05d61e3821f6224
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90285
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-08 03:03:36 +00:00
Sean Rhodes
ac5c57d24a drivers/tpm/ppi: Fix generated ACPI
The SSDT contains:
    CreateByteField (PPOP, Local0, TPPF)

However, CreateByteField requires the source argument to be
(Buffer | String | Integer).  PPOP is an OperationRegion, so
iasl correctly reports:

    Error 6058 - Invalid type ([Region] found)

Per ACPI spec, OperationRegions must use CreateField rather than
CreateByteField. Replace the AML emission with:

    CreateField (PPOP, Local0 * 8, 8, TPPF)

This reads one byte at an arbitrary offset inside the PPI
OpRegion and is fully standards-compliant. This isn't a
functional change, just "correct".

Test=boot starbook_mtl, verify iasl can decompile and recompile
SSDT and TPM is still operational.

Change-Id: If80bb5bf69562f8b904c1b315e95a0b5627efbc4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84606
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-08 03:03:21 +00:00
Luca Lai
d922ad79c6 mb/google/fatcat/var/ruby: Add firmware configuration fields with UFSC
Based on the Unified Firmware and Second Source Configuration(UFSC)
Developer's Guide to generate the UFSC firmware config file
ruby_ap_fw_config.cb and copy the content to overridetree.cb.

https://chromium.googlesource.com/chromiumos/config/+/refs/heads/main/
util/ufsc/ufsc_developer_guide.md

BUG=b:460231264
TEST=util/abuild/abuild -x -t GOOGLE_RUBY -a
BRANCH=none

Change-Id: Ia9536ba9b11ca83e80e7e6b3042a04fc6cdbf526
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90375
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:02:58 +00:00
Varun Upadhyay
980c269643 mb/google/ocelot/var/ojal: Enable Audio Codec and update FW config
This patch enables Cirrus Audio codec and HDA in devicetree for ojal
and updates FW config for GPIO's according to schematics revision 0.9.
RDC kit no:840138

Scope (\_SB.PCI0.HDAS.SNDW)
    {
        Device (SW30)
        {
            Name (_ADR, 0x00033001FA424301)  // _ADR: Address
            Name (_DDN, "Headset Codec")  // _DDN: DOS Device Name
            Name (_SUB, "1337")  // _SUB: Subsystem ID
...

BUG=b:437459757
TEST=Build ojal board and check SSDT tables for codec.

Change-Id: Id4110263750ef5ff2375199d073175b47dc4f909
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90331
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bhat D, Krishna P <krishna.p.bhat.d@intel.com>
2025-12-08 03:02:37 +00:00
Varun Upadhyay
8e7975edfd mb/google/ocelot/var/ojal: enable CS42L43 driver options
This change adds Cirrus CS42L43 kconfig for enabling audio on ojal
variant according to schematics revision 0.9.
RDC kit no:840138

BUG=b:437459757
TEST=Build ojal variant.

Change-Id: I55b81ac5886a0b20ae049c1edd18f8d390ac51e1
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90323
Reviewed-by: Bhat D, Krishna P <krishna.p.bhat.d@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:02:31 +00:00
lai.kaiden
9a6d1d4d69 mb/ocelot/var/ocicat: Modify ocicat Kconfig for bring up
Modify ocicat TPM_TIS_ACPI_INTERRUPT to fix TPM timeout

BUG=b:457879750
TEST=flash and boot to DUT, verify can boot to OS.

Change-Id: Ie6f35c8c68b8e5849a038124739f9ec4846f4aef
Signed-off-by: lai.kaiden <lai.kaiden@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90359
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:02:15 +00:00
Ian Feng
94fe4c6926 mb/google/ocelot/var/kodkod: Add wake configuration to cnvi_bluetooth
This commit adds wake functionality to the CNVi Bluetooth device by
registering to "GPE0_PME_B0" using the common CNVi block.

BUG=454341255
TEST=Able to wake up the device from a low power state using a keyboard
     Bluetooth device.

Change-Id: I5a0bbd0523611e8e38b62f8b3fdf77f736d3136f
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90379
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Upadhyay, Varun <varun.upadhyay@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:01:52 +00:00
Ian Feng
e3588d82bc mb/google/ocelot/var/kodkod: Enable CNVi Wi-Fi and BT cores
Enable CNVi Wi-Fi and BT cores for kodkod.

BUG=b:466193315
TEST=Build and boot to OS in kodkod.
lspci -k : 00:14.3 :   iwlwifi
/vendor/bin/hw/hcitool.android-desktop cmd 4 9 :
Ok([14, 10, 1, 9, 16, 0, 242, 94, 138, 5, 241, 188])
/vendor/bin/hw/hcitool.android-desktop cmd 1 1 33 8B 9E 0A 00 :
Ok([15, 4, 0, 1, 1, 4])

Change-Id: I700bff4b38aa80c83859856282001ad9ad7df57c
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90378
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:01:46 +00:00
Venkateshwar S
36edc2e371 soc/qualcomm/x1p42100: Add Dload mode detection and ramdump packing
This patch adds support for download mode detection and packing of
ramdump image in CBFS.

Key changes:
1) qclib.c: Add qclib_check_dload_mode() to read TCSR register and
   detect download mode.
2) addressmap.h: Add TCSR_BOOT_MISC_DETECT register and download mode
   cookie definitions.
3) Makefile.mk: Add build rules for ramdump image.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I7c6008be79ea0487273e060ac99ddf037111f6fa
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90307
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-12-08 03:01:30 +00:00
Michał Żygowski
26a18c674d acpi: Clear whole FACS table before filling it
Running FWTS detected a problem with FACS having non-zero
values in reserved fields:

FAILED [MEDIUM] FACSReservedNonZero: Test 1, FACS Reserved field must be zero,
got 0x00fe7bcd instead
FAILED [HIGH] FACSReservedBitsNonZero: Test 1, FACS OSPM Flags Bits [31..1] must
be zero, got 0xf23bcdd8 instead
FAILED [LOW] FACSInvalidReserved1: Test 1, FACS: 2nd Reserved field is non-zero

Clear whole FACS table and then start filling the non-zero values to
fix the issue.

TEST=Run FWTS V25.01.00 on Gigabyte MZ33-AR1 and see no error for FACS
test.

Change-Id: I2af4caea155e3707e3b7832824e81e6b69f836a5
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89923
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:01:18 +00:00
luca.lai
5a6addca4b mb/google/fatcat/var/ruby: Change GPIO pins to fix audio function
Change below GPIO pins status to fix audio function.
GPP_D10 : Native function 2
GPP_D11 : Native function 2
GPP_D12 : Native function 2
GPP_D13 : Native function 2

BUG=b:466263099
TEST=Build and boot to OS, check soundcard shows using command
'cat /proc/asound/cards' and check audio jack and amp are work.

Change-Id: Ieac732ebf5149a13fe7aba36bf14627ded4783ad
Signed-off-by: luca.lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90394
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:00:46 +00:00
Cliff Huang
e6a8143d8b drivers/intel/touch: Add support for new Intel touch I2C _DSD entries
This update enhances the Intel touch driver by incorporating support for
newly added _DSD entries specific to I2C devices. The enhancements
include:

- Adding new entries in the I2C _DSD to enable configurations for
  maximum frame size and interrupt delay settings.
- Introducing device-specific interrupt delay settings tailored for
  Hynitron devices.

These changes ensure improved configurability and performance tuning for
supported devices. It is crucial to use this update with an operating
system that includes corresponding changes for this new support.

ATTENTION: This change requires a THC driver fix. If the OS does not
have the driver fix, please use LPSS I2C or disable the touchscreen
and touchpad. For instance, on the Google Fatcat board, use the
following CBI fw_config options:
TOUCHSCREEN field: TOUCHSCREEN_LPSS_I2C or TOUCHSCREEN_NONE
TOUCHPAD field: TOUCHPAD_LPSS_I2C or TOUCHPAD_NONE

BUG=none

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: Iaab8329c97247161395d203a5efa92c053acb3a1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89214
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kim, Kyoung Il <kyoung.il.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 03:00:29 +00:00
Patrick Rudolph
25c4501223 device/dram/ddr3: Fill in voltage fields for SMBIOS type 17
Parse the supported voltages from the DDR3 SPD and populate the
corresponding fields in CBMEM_ID_MEMINFO to make sure the SMBIOS
type 17 tables report the actual supported voltages of the DIMM.

Change-Id: I35af7c23f285af10b607a80eab7f4d9df664b3fd
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90395
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-08 02:36:00 +00:00
Michał Żygowski
273a41c4d9 commonlib/memory_info: Introduce new fields to memory_info structure
Some silcon initialization modules may provide more detailed
information about the DIMMs, like type details or voltages.

Extend the memory_info structure with type_detail and max/min
voltage. Use the new fields when producing SMBIOS tables if their
value is non-zero. Otherwise, keep previous behavior.

Change-Id: I01ae8ea1f5a8fec53e151c040d893376c3d23be2
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89483
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-08 02:35:30 +00:00
John Su
abe1ac0744 mb/google/brya/var/uldrenite: Add memory MT62F1G32D2DS-031RF WT:C
Add support for the new memory Micron MT62F1G32D2DS-031RF WT:C using
spd-3.hex.

DRAM Part Name                 ID to assign
H9JCNNNBK3MLYR-N6E             0 (0000)
K3KL6L60GM-MGCT                1 (0001)
K3KL8L80CM-MGCT                2 (0010)
MT62F1G32D2DS-026 WT:B         2 (0010)
H58G56CK8BX146                 3 (0011)
MT62F1G32D2DS-031RF WT:C       4 (0100)

BUG=b:459934066
BRANCH=firmware-trulo-15217.771.B
TEST=util/spd_tools/bin/part_id_gen ADL lp5 \
src/mainboard/google/brya/variants/uldrenite/memory \
src/mainboard/google/brya/variants/uldrenite/memory/mem_parts_used.txt

Change-Id: I76d8e1de2b96bd5f2cb319056d1f9307a7e2a114
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90255
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-12-05 14:29:04 +00:00
Subrata Banik
0599f3e1bd mb/google/bluey: Condition slow charging enablement on charger presence
Update the logic to properly condition the slow battery charging feature.

Previously, enable_slow_battery_charging() was called solely if the
system was in a low-power boot state (is_low_power_boot()).

This commit adds an explicit check for
`google_chromeec_is_charger_present()` to ensure that the slow charging
feature is only enabled when a charger is physically connected.

TEST=Able to build and boot google/quenbi.

Change-Id: I24b6626343a25a4fab3f5d77c1d114e797781be7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90335
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-12-05 14:28:27 +00:00
Subrata Banik
8b3ceacd93 ec/google: Check AC charger presence by reading host event register
The google_chromeec_is_charger_present function previously relied on
executing the EC_CMD_BATTERY_DYNAMIC_INFO command to check the
EC_BATT_FLAG_AC_PRESENT flag.

This commit refactors the function to directly read the host event
register (EC events B) and check for the EC_HOST_EVENT_AC_CONNECTED
event flag instead.

This approach is much more efficient as it avoids the overhead of
sending and receiving a full EC command (savings ~25-30ms), using a
readily available cached status instead.

TEST=Able to build and boot google/quenbi.

Change-Id: I2ec9aca5991394ed1d4998da37e074e9324bd672
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90334
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-05 14:28:21 +00:00
Wentao Qin
5b544c67eb mb/google/rauru: Add MIPI panel support with BOE NS130069-M00
Add support for MIPI panel on Sapphire and enable NS130069-M00 as
the default panel. The panel uses TPS65132S as the bias IC, with supply
set to ±5.9V. Add TPS65132S initialization and power-on sequence are
configured according to the specification.

BUG=b:456907241, b:448281461
TEST=Check display initialization log and display are normal
BRANCH=none

Change-Id: I755b63725fe6243a45deff04e8b2fb10162d5f44
Signed-off-by: Xiaokun Qiao <qiaoxiaokun@huaqin.corp-partner.google.com>
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90008
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-05 09:04:01 +00:00
Yunlong Jia
ed9239cd85 mb/google/nissa/var/gothrax: Add Samsung parts to RAM ID table
Add the support RAM parts for gothrax.
Here is the ram part number list:
DRAM Part Name                 ID to assign
MT62F512M32D2DR-031 WT:B       0 (0000)
H58G56AK6BX069                 1 (0001)
K3LKBKB0BM-MGCP                2 (0010)
H9JCNNNBK3MLYR-N6E             0 (0000)
H9JCNNNCP3MLYR-N6E             3 (0011)
K3KL8L80CM-MGCT                4 (0100)

BUG=b:463859361
BRANCH=None
TEST=emerge-nissa coreboot

Change-Id: Ia43d300e63d22df27d5632d702a404a18442ea75
Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90239
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-05 07:10:48 +00:00
Venkateshwar S
445961c604 soc/qualcomm/common: Add support for loading ramdump image
Ramdump is a debug image loaded during a crash to capture memory
contents for post-crash analysis. This patch adds support for
loading this image during the qclib_rerun() sequence.

Key changes:
1) Introduce QC_RAMDUMP_ENABLE Kconfig option to control ramdump image
   loading.
2) Add qclib_check_dload_mode() as a weak function that works in
   conjunction with the Kconfig check to decide whether the ramdump
   image should be loaded.
3) Add new CBFS file entry and table entry definition for ramdump_meta.
4) Re-use "apdp_ramdump_meta" region for ramdump metadata storage.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I42bcd74c3d236a6af49ec4b548bc9cda33bd0825
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90306
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-05 06:53:43 +00:00
Venkateshwar S
3c563669b5 soc/qualcomm/x1p42100: Add support for APDP image packing in CBFS
This patch adds build rules for packing the APDP image in CBFS.
It also updates the memory layout to include a dedicated region
for APDP metadata storage (4KB at 0x14890000).

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: Ia3093ef6619dd504c829cf6ba6f672f16070f68a
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90302
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-12-05 06:53:35 +00:00
Venkateshwar S
1d70286d4e soc/qualcomm/common: Add support for loading APDP image
This patch introduces a new Kconfig option, QC_APDP_ENABLE, to control
Application Processor Debug Policy (APDP) image loading. When this
option is enabled, the APDP image is loaded during the
qclib_load_and_run() sequence. It also adds a new CBFS file entry and
table entry definition for apdp_meta, along with a memory region symbol
apdp_ramdump_meta for metadata storage.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I8d0847c99a1129359f2c758b7a07b9c022f1c8c8
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90303
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-05 06:53:26 +00:00
Subrata Banik
fc9f828ac0 mainboard/google/bluey: Select VBOOT_ALWAYS_ENABLE_DISPLAY
This change ensures that the display is always enabled for the Google
Bluey mainboard as firmware splash screen is POR for this device..

This change helps to avoid an additional reset while doing EC sync
operation by payload.

BUG=none
BRANCH=none
TEST=Able to avoid one additional resets during EC SW sync.

Change-Id: If1d8788cbbd72d6bc4397b1b7160e9f4669716db
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90361
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-12-05 06:53:05 +00:00
Subrata Banik
c77d256886 {mb, security}: Use EC_REBOOT_FLAG_IMMEDIATE for cold reboots
The value 0 passed as the reboot_flags argument to
google_chromeec_reboot is now explicitly defined as
EC_REBOOT_FLAG_IMMEDIATE in ec_commands.h.

Update calls to google_chromeec_reboot with EC_REBOOT_COLD to use the
new flag for clarity and to ensure the intended EC-based reboot is
performed.

This change doesn't introduce anything new, so there's no change
in behavior.

Change-Id: I6701c94101c5085cfcc7fbf2e614c4f23d843225
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90278
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-05 06:52:35 +00:00
Subrata Banik
1a0d123ec1 ec/google/chromeec: Update EC headers
Generated using update_ec_headers.sh from EC repo commit:

  3a592ab3640 ("caboc: Correct thermal table logic")

BUG=none
BRANCH=none
TEST=Able to build google/quenbi.

Change-Id: I370130d59d035fe32feabeb982e64e4a6784854a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90355
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-05 06:52:29 +00:00
Crystal Guo
3bd554feb2 soc/mediatek/mt8196: Align the struct for storing DRAM calibration data
The current read calibration data flow may cause memory overwrite due to
struct size mismatch, resulting in fast calibration flow failure. Need
to align the struct for storing DRAM calibration data between coreboot
and mtk-dramk repo to prevent memory overwrite.

BUG=b:450724525
TEST=Bootup ok.

Change-Id: Ic59bc9c7f12c454702ba894dea5dce94984e2121
Signed-off-by: Crystal Guo <crystal.guo@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90354
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: jason-ch chen <Jason-ch.Chen@mediatek.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-05 06:25:04 +00:00
Michał Żygowski
33fc33c132 soc/amd/common/block/cpu/noncar: Add support for bootblock CRTM init
On AMD non-car system the bootblock is integrated into PSP directories
and copied to host DRAM before reset vector. coreboot knows the exact
DRAM range where the bootblock will be copied to based on
CONFIG_ROMSTAGE_ADDR and CONFIG_C_ENV_BOOTBLOCK_SIZE. The code only
needs to check the exact coreboot program size using linker symbols
measure the right memory range.

Based on the Apollo Lake tspi_soc_measure_bootblock, create an
equivalent implementation for AMD platforms using mem_region_device.

TEST=Bootblock is measured properly on Gigabyte MZ33-AR1 when measured
boot is enabled and CRTM initialization no longer fails.

Change-Id: I163e6b0ef0313e7dbb66ba5b07c35724a14276aa
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89145
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-04 12:36:06 +00:00
Michał Żygowski
8b97968e53 soc/amd/common/block/pci/amd_pci_mmconf.c: Support 64bit ECAM MMCONF
More complex systems, such as servers, may have scarse space below 4G
for MMIO. With multiple root bridges needing some 32bit MMIO space it
becomes very hard to squeeze all resources. Allow to set 64bit ECAM
MMCONF base address in the MSR to free some space in the 32bit address
space. Of course using 64bit ECAM MMCONF requires the use of x86_64
mode and a proper amount of address space to be mapped with page
tables.

TEST=Set ECAM MMCONF to 0x3ffb00000000 on Gigabyte MZ33-AR1 and observe
the PCI access works in the console output.

Change-Id: I80e5a1bed33e12aa089355df64cc29887acc27f2
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89112
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-04 12:34:46 +00:00
Sean Rhodes
7a98a62f7b drivers/intel/gma: Unify coding style
The breaks for `if` and `else` are inconsistent; remove all breaks for
these.

Change-Id: Ie76f38387fd5ef330b432c0462cb1101571c73db
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90286
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-04 09:11:01 +00:00
Sean Rhodes
23b00a06da drivers/intel/gma: Fix brightness handling with valid-cache logic
The existing brightness level fallback logic duplicated the default
backlight value by hardcoding BRLV to 100% (0x64). This caused divergence
whenever a platform defined a different default brightness through BRIG[0].

This change removes the duplicated default and replaces it with a cached
brightness mechanism using BRVA (valid flag) and BRLV (cached level).
The firmware now:

 - Caches the last brightness level exposed to the OS.
 - Uses the cached level during early boot/resume when the OpRegion
   (BCLM/BCLV) is not yet initialized.
 - Falls back to BRIG[0] only when no cached brightness exists.
 - Preserves the existing replay-detection logic to keep firmware and OS
   brightness state aligned once the graphics driver is active.

This ensures consistent brightness reporting, avoids incorrect 0% fallback
values, and respects board-specific BRIG defaults.

No functional changes occur once the graphics driver has initialized the
OpRegion; the improvement only affects early boot/resume behavior and
eliminates duplicated platform policy.

Change-Id: I651dfd30aa0c283b4e0659e5d19051e1b58204fe
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90116
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-04 09:10:57 +00:00
Filip Lewiński
4068ba39f8 soc/intel/common/block/rtc/rtc.c: Top Swap: add Slot B selection mechanism
If the Top Swap mechanism is enabled, after running the bootblock from
the TOP_SWAP region, boot from an updatable COREBOOT_TS FMAP region.

Having flashed the TOP_SWAP bootblock and COREBOOT_TS, this allows the
user to boot a newer version of the firmware with the ability to
revert to the previous known-good version by performing a CMOS reset.

Requires having a read-write COREBOOT_TS region in the FMAP file.

This is part of an ongoing implementation of a redundancy feature
proposed on the mailing list:
https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

TEST=Boot Protectli VP6650, setting the attempt_slot_b flag to
different values, observing the "Booting from COREBOOT/COREBOOT_TS
region" prints correspondingly.

Change-Id: Ieadc9bfbe940cbec79eb84f16a5d622bfbb82ede
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90147
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2025-12-04 01:31:25 +00:00
Walter Sonius
a65b874472 mb/dell: Convert OptiPlex 3050 into variant
To minimize code duplication when adding the new "optiplex_5040" port
CB:88735, the "optiplex_3050" should be turned into a variant first.

Naming of the template inspired by "ifdtool --platform quirk" and recent
"sklkbl_thinkpads" commit. However it's naming is not limmited to its
CPU support since some Coffee Lake (Refresh) CPUs are already tested!

Currently chose a more common name "desktops" although yet only Dell
OptiPlex units are supported Inspiron, Vostro or even Precision desktops
running the same chipset(s) and code should be foreseen.

Open to any other naming / convention suggestions?

Patch stages:
patch1: add variant template with duplicated code some specialized files
        but full devicetree.cb as overridetree.cb wont build as variant!
patch2: edit Kconfig(.name) and Makefile.mk to include both variants
        trim each overridetree.cb specific & derive common devicetree.cb
        builds both variants only tested and verified "optiplex_5040"
patch3: remove "optiplex_5040" variant so this only turns into a variant
        containing the converted "optiplex_3050"
patch12 customized gpio between 3050 and 5040 use gpio.c vs gpio.h

Further patches mostly rebasing.

TEST=Checksum BUILD_TIMELESS=1 matches if original build adds 1 ramstage
     linked file to variant folder! See comments howto verify checksum.

Change-Id: I16e3b92104f515b334afaacfed740a3b71f5b048
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88726
Reviewed-by: Máté Kukri <km@mkukri.xyz>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-03 22:20:05 +00:00
Varun Upadhyay
2ce1068542 mb/google/ocelot/var/ojal: Decrease display count from 5 to 4
This change updates the actual number of displays supported by ojal
variant according to schematics revision 0.9.
RDC kit no:840138

Scope (\_SB.PCI0.GFX0)
  {
        Method (_DOD, 0, NotSerialized)
        {
            Return (Package (0x04)
            {
                0x80010400, // Display device 0 (LCD0 - internal eDP)
                0x80010000, // Display device 1 (DD01 - HDMI)
                0x80010000, // Display device 2 (DD02 - USB-C)
                0x80010000  // Display device 2 (DD02 - USB-C)
            })
        }

BUG=b:437459757
TEST=Build ojal and check all displays functionality booting to OS,
Also verify the available displays by dumping the SSDT table.

Change-Id: Ida3d6a03028467345c3e033e9581fe5f8fbe22c4
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90301
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: P, Usha <usha.p@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-12-03 22:19:52 +00:00
Bora Guvendik
b31e62ae5c mb/intel/ptlrvp: Add LPCAMM T3 RVP board support
Add support for Pantherlake LPCAMM T3 Reference Validation Platform:
- Define PTLP_LPCAMM_T3_RVP board ID (0x02)
- Add memory configuration for LPCAMM including DQ/DQS mapping
- Configure SPD information for LPCAMM modules using SMBus address 0x50
  across all channels with MEM_TOPO_LP5_CAMM topology to enable SPD
  detection

BUG=none
TEST=Boot LPCAMM T3 RVP and verify memory detection.

Change-Id: I17325241c105a5af5a97931be5c75a025b2bd7c8
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90139
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-03 22:18:44 +00:00
Bora Guvendik
58cdf9e668 soc/intel/pantherlake: Add LPCAMM memory support
Extend memory initialization to support LPCAMM (Low Profile Compression
Attached Memory Module) configurations:
- Increase DIMM_MAX from default to 16 to accommodate LPCAMM SPD
  addressing requirements
- Generalize fill_dimm_module_info() to work with both DDR5 DIMMs and
  LP5X LPCAMM modules by using mb_cfg->type instead of hardcoded
  MEM_TYPE_DDR5
- Add LPCAMM SPD reading support for MEM_TYPE_LP5X when topology is
  MEM_TOPO_LP5_CAMM
- Move DQ/DQS initialization to appropriate locations for each memory
  type. LPCAMM modules use LPDDR5X memory technology but require SPD
  reading via SMBus similar to traditional DIMMs, unlike typical LP5X
  memory-down configurations.

BUG=none
TEST=Build test on Pantherlake platforms with LPCAMM support.

Change-Id: I22743305aa7f93968ec2959de9eaf19b9719260a
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90138
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-12-03 22:18:37 +00:00
Bora Guvendik
67777b7671 soc/intel/common: Add LPCAMM memory topology support
Add MEM_TOPO_LP5_CAMM topology type to support Low Profile Compression
Attached Memory Module (LPCAMM) configurations. LPCAMM is a removable
memory module format that provides similar functionality to DIMMs but
in a different physical form factor. Update the SPD reading logic to
handle both traditional DIMM modules and LPCAMM modules, as both are
removable memory types that require SPD detection and initialization.
This change enables platforms to properly detect and initialize LPCAMM
memory configurations alongside existing DIMM and memory-down support.

BUG=none
TEST=Build test on Intel platforms

Change-Id: I6db2fd76300dd4c96212427d9283b078ca621ed9
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90140
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-12-03 22:18:32 +00:00
Matt DeVillier
bb18e0b91d mb/google/skyrim: Increase size of SMMSTORE to 512KB
Increase size of SMMSTORE FMAP region to 512KB to ensure a large
enough area is allocated to UEFI variable storage which allows for
variables (such as the UEFI revocation database) to be updated
via fwupd. Previously, such updates would fail with an error such as:
"efivar: No space left on device".

Change-Id: I26b8bc194d9f28c2274b87f429821028120a4fcb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90293
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-03 16:57:47 +00:00
Matt DeVillier
dd1e54efc0 mb/google/zork: Increase size of SMMSTORE to 512KB
Increase size of SMMSTORE FMAP region to 512KB to ensure a large
enough area is allocated to UEFI variable storage which allows for
variables (such as the UEFI revocation database) to be updated
via fwupd. Previously, such updates would fail with an error such as:
"efivar: No space left on device".

Change-Id: I71dcab53b8d570c1a3f37c11ce0b0fb3d86a5d45
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90294
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-03 16:57:34 +00:00
Matt DeVillier
60e375fae4 mb/google/guybrush: Increase size of SMMSTORE to 512KB
Increase size of SMMSTORE FMAP region to 512KB to ensure a large
enough area is allocated to UEFI variable storage which allows for
variables (such as the UEFI revocation database) to be updated
via fwupd. Previously, such updates would fail with an error such as:
"efivar: No space left on device".

Change-Id: Iadc2c7d44d8e89f9b4a8f4adad4ac3dd07466984
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90289
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-03 16:57:26 +00:00
Tony Huang
eb52862132 mb/google/brox/var/caboc: Update SSD port and FPMCU setting
Start from next stage, Caboc route SSD to PEG60 and change SSD CLK_SRC
CLK_OUT, SSD_CLKREQ(GPP_D8-SRCCLKREQ3#) to port 3.

This CL updates PEG60 CLK_SRC, CLK_OUT to port 3, sets NF1 to GPP_D8-
SRCCLKREQ3. Update fingerprint PCH_FP_BOOT0 to GPP_D5.
Remove PEG62 settings include vGPIO, set NC GPP_H23 (SRCCLKREQ5#),
set NC GPP_F20 (EN_PP3300_SSD) follow schematic 1128A.

BUG=b:464243569, b:45604227, b:441591974
TEST=emerge-brox coreboot

Change-Id: I4376b6532b412215e39be499806e7ebd2eac9841
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90259
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
2025-12-03 16:57:13 +00:00
chou.pierce
85101704ae mb/ocelot/var/ocicat: Create ocicat variant
Create the ocicat variant of ocelot reference board by copying the
template files to a new directory named for the variant.

Due to new_variant.py limitation that repo can no longer be used in
inside, created this CL manually following google suggestion.

BUG=b:457879750
TEST=util/abuild/abuild -p none -t google/ocelot -x -a
make sure the build includes GOOGLE_OCICAT

Change-Id: I5112703146761ed5902737ba6ec5f9d7889b9cf4
Signed-off-by: chou.pierce <chou.pierce@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89979
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Bob Moragues <moragues@google.com>
2025-12-03 16:57:03 +00:00
Ivy Jian
2975d7220a mb/google/ocelot/var/matsu: Update devicetree
- Enable CNVi Wi-Fi and BT cores
- Remove unused tbt_pcie_rp0/rp1 nodes

BUG=b:463193164
TEST=Wifi/BT is enabled on Matsu.

Change-Id: Ie5ebf8b88c0ab31b0d2d36f3b7cda1225de77b1a
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90256
Reviewed-by: Bob Moragues <moragues@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-12-03 16:56:40 +00:00
Ivy Jian
0e9d85425e mb/google/ocelot/var/matsu: Fix GPP_V3 internal pull-up configuration
According to doc#836031, GPP_V3 defaults to Native F1 with the integrated pull-up enabled. However, coreboot was configuring this pin with the internal pull-up set to NONE, which disabled the pull-up and caused GPP_V3/PWRBTN# to read low, leading to unexpected shutdowns.

Update the pad configuration to use the internal pull-up.

BUG=b:463193164
TEST=boots normally and no unexpected shutdown occurs.

Change-Id: Ia650aa9b60d7ce634827330954b1a9c9ac3d7567
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90218
Reviewed-by: Bob Moragues <moragues@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-03 16:56:31 +00:00
Sowmya Aralguppe
4f257a28f8 mb/google/ocelot: Add EC_GOOGLE_CHROMEEC_SKUID config
The Wildcat Lake Ocelot mainboard is missing the
EC_GOOGLE_CHROMEEC_SKUID configuration option, causing the sku_id()
function to call the weak implementation that returns
UNDEFINED_STRAPPING_ID instead of calling
google_chromeec_get_board_sku(). This results in incorrect SKU ID
reporting in the coreboot table.

This patch adds missing EC_GOOGLE_CHROMEEC_SKUID configuration to
retrieve SKU information from the Chrome EC.

BUG=b:459266759
TEST= SKU ID is properly configured as 1

Change-Id: I143bdffe40303336d66d1a42e97872aebcb817a3
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90257
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tom, Poornima <poornima.tom@intel.com>
Reviewed-by: P, Usha <usha.p@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-12-03 16:56:22 +00:00
Yidi Lin
db2ac42405 soc/mediatek/common: Refactor DDP mode setting
Move common display mode parameter calculation from SoC-specific
mtk_ddp_mode_set functions to a new common mtk_ddp_mode_set function in
src/soc/mediatek/common/display.c.

Rename the SoC-specific mtk_ddp_mode_set functions to
mtk_ddp_soc_mode_set and modify them to directly accept the calculated
display parameters (format, bits per pixel, width, height, and vertical
refresh rate). This centralizes the common logic and improves code
reusability.

TEST=emerge-rauru coreboot -j && emerge-geralt coreboot -j

Change-Id: I2f86dd609f8ea5225ff4d788206c7494164b6e4b
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90245
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-12-03 16:56:08 +00:00
Kilian Krause
d51f780515 mb/siemens/mc_rpl: Correct SMBIOS socket type to BGA1744
The mc_rpl platform uses BGA1744, not LGA1700. Update the Kconfig
selection to report the correct socket type in SMBIOS.

TEST=Built for mc_rpl1, verified `dmidecode -t processor | grep Upgrade`
     shows "Socket BGA1744"

Change-Id: I119c6e95ba0d4a5d7afd3f922f2662aa55ac3f64
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89900
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-03 16:55:59 +00:00
Uwe Poeche
2f95552802 mb/siemens/mc_ehl: Move Kconfig switch to variants
SOC_INTEL_ELKHARTLAKE_TCO_NO_REBOOT_EN has to be handled differently at
variant level in upcoming mainboards. This patch moves the switch from
upper mc_ehl level to board-specific level.

TEST=Compared .config files for all boards after defconfig completed
before and after the patch for all boards.

Change-Id: I5adb978152eb9f465e30988f39d1ea7815403ce0
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90333
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-03 16:55:40 +00:00
Daniel Maslowski
3c49c13995 util/ifdtool: fix typo PSL->MSL
This is the MCH Strap Length, and FMSBA is the corresponding
Flash MCH Strap Base Address. See ICH8 datasheet, FLMAP2.

Change-Id: I322c13d9228800a2736b0288377495287521712c
Signed-off-by: Daniel Maslowski <info@orangecms.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89614
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-03 16:55:30 +00:00
Michał Kopeć
a87e699f04 mb/lenovo/m900_tiny: Enable Vboot
Add Vboot configuration (Kconfig and FMDs for RO only and RW_A layouts).

TEST=Build with UEFIPayload and boot to payload. Verify in cbmem logs
that verstage has executed and selected Slot A in the case of RW_A
layout.

Change-Id: Ide2a3a4b59be5b27bf7315690520c9392a98d044
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87043
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-03 16:55:21 +00:00
Felix Singer
afc191357f 3rdparty/intel-microcode: Update to upstream main
Updating from commit id 4ded52b4b0e1:
2025-08-11 17:00:18 -0600 - (microcode-20250812 Release)

to commit id f910b0a225d6:
2025-11-10 16:26:35 -0600 - (microcode-20251111 Release)

This brings in 1 new commits:
f910b0a225d6 microcode-20251111 Release

Change-Id: I215558de6938c1955faff3250f791da34b97f0c4
Signed-off-by: Felix Singer <felix.singer@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90337
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-03 16:06:25 +00:00
Luca Lai
cbfa28b06e mb/google/fatcat/var/ruby: Modify power limit configuration
Modify the power limit setting like below
PL1 : 15
PL2 : 35
PL4 : 150

BUG=b:464422702
TEST=Build and check the system could boot to OS

Change-Id: I629af9bdf41cd2344d8b4189f49a0e27f5db695d
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90246
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-03 12:11:10 +00:00
Maximilian Brune
f13e800a71 mb/amd/crater/Kconfig: Use A/B recovery scheme for renoir
renoir uses the A/B recovery flash layout without the ISH structure. But
this is handled by amdfwtool.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: If9d53bf8fb5fe80779af20ccf7aa3bd9d88a5cc1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90214
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-02 16:07:33 +00:00
Maximilian Brune
416f67f670 vendorcode/amd/fsp/.../fsp_h_c99.h: Use fsp2_0 structs
Since the structs are the same, we may as well use the ones directly
from the driver (since it implements the standard anyway).

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I44116e5e977029c37e1bf9b9d8ce8d6c022b5b0b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89870
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-02 15:27:39 +00:00
Matt DeVillier
b94a84a792 drivers/efi: Exclude verstage from EFI variable store files
The EFI variable store driver (efivars.c) and option backend
(option.c) require EDK2 headers which are x86-specific and not
available in ARM verstage. Use 'all_x86-' instead of 'all-' to
exclude verstage while keeping other x86 stages and SMM.

TEST=build google/dewatt with CFR enabled

Change-Id: I6d0955423cb55658725dfa3025b2118736f5e63b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90296
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 15:17:44 +00:00
Matt DeVillier
bae5262c69 include/option: Add verstage stub for UEFI variable store backend
Verstage cannot use the UEFI variable store because it runs before
the SMMSTORE is initialized/available, and because the required EDK2
headers are x86-specific. Provide inline stub that returns fallback
values to satisfy console_init() dependency.

TEST=build google/dewatt with CFR enabled

Change-Id: Icaa493692006cf3e0bb194ee3fdd9caf2f51cda1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90295
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-02 15:17:33 +00:00
Sean Rhodes
2d78478345 drivers/intel/gma: Reapply cached brightness once BCLM is valid
The OS replays _BCM requests while the graphics driver is
still reinitializing, so hardware brightness can diverge
from what we cached in BRLV. Reapply the cached level once
the OpRegion is ready to keep firmware and OS state aligned.

Change-Id: I2e6ed0936b2e74f55a2c760e7f4fcf56a2e02c53
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90029
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-02 15:17:15 +00:00
Sean Rhodes
2ad08f9d72 drivers/intel/gma: Expose full brightness ladder
Our 18-entry BRIG table advertised is only a handful of steps and
identical AC/DC defaults, so after S3, the OS falls back to the
default index if the the cached entry doesn't match.

Populate BRIG with the full 0–100 ladder so every cached index
corresponds to an actual entry.

Change-Id: I319cf3a0ced3bf6021f9e768f0e9bb5529b12ed5
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89987
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 15:17:01 +00:00
Sean Rhodes
2e96a71e6f drivers/intel/gma: Cache brightness level
Cache the brightness level requested via _BCM and return it from XBQC
while the IGD OpRegion registers are still zeroed during S3 resume.
Once BCLM is valid we refresh the cache with the hardware reading.
This keeps _BQC from reporting zero after resume.

Change-Id: I3f06c9cf6529da6d634d7b0368f0c88b468f0c45
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89986
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-12-02 15:16:46 +00:00
Swathi Tamilselvan
36632a08a8 soc/qualcomm/x1p42100: Reserve 33 MB DRAM memory for Display requirement
Add support to reserve 33 MB DRAM memory for display in memlayout.ld
file.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.
Basic device boot functionality with the specified memory reservation
has been validated. Display functionality has not yet been tested, as
the display driver porting is yet to be done.

Change-Id: I49a4a20b9869bc5cf0b11f4eb6cff7865bb2e761
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90242
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 07:54:54 +00:00
Wentao Qin
5807b59fc5 mb/google/rauru: Report panel ID for sapphire
The panel id is sampled with AUXADC_VIN3 (PANEL_ID_HIGH_CHANNEL)
and AUXADC_VIN4 (PANEL_ID_LOW_CHANNEL).

    [DEBUG]  ADC[2]: Raw value=1744 ID=7
    [DEBUG]  ADC[3]: Raw value=283 ID=1
    [DEBUG]  Panel ID: 0x9

BUG=b:448281461
TEST=build and check the CBFS include the panel ID
BRANCH=none

Change-Id: I3b010162bb5b892d528c74e2d38e624465fa90dc
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90190
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-12-02 05:29:05 +00:00
Wentao Qin
49da58dccf drivers/mipi: Add support for BOE NS130069-M00 panel
Add BOE panel NS130069-M00 serializable data to CBFS.
Datasheet: NS130069-M00_V01_20250916.pdf

[INFO ]  CBFS: Found 'panel-BOE_NS130069_M00' @0xfc480 size 0x68b in mcache @0xfffdd62c

BUG=b:456907241
TEST=build and check the CBFS include the panel
BRANCH=none

Change-Id: Iefdfc7f6d8cea1d8d791e4d49ab63e78d306a6a4
Signed-off-by: Xiaokun Qiao <qiaoxiaokun@huaqin.corp-partner.google.com>
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90007
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-12-02 05:28:58 +00:00
Matt DeVillier
e9ebcb2918 mb/{google,intel}: Fix MIPI camera VCM type and address configuration
Many boards were incorrectly using the VCM I2C address (0x0C) as the
SSDB vcm_type field value. These are two separate fields:
- ssdb.vcm_type: Enum identifying the VCM chip model (VCM_DW9714,
  VCM_DW9808, etc.) used by drivers to select appropriate VCM functions
- vcm_address: I2C address of the VCM device (typically 0x0C)

Replace hardcoded "0x0C" values in ssdb.vcm_type with the correct enum
values based on the actual VCM device:
- VCM_DW9714 for boards using DW9714 VCMs
- VCM_DW9808 for boards using DW9768 VCMs (DW9768 doesn't have an enum,
  but DW9808 has compatible register layout)

Add vcm_address = "0x0C" to all affected boards to properly specify
the I2C address separately from the VCM type.

This ensures the Windows and Linux camera drivers receive the correct
VCM type information needed for proper initialization and function
pointer selection.

TEST=tested with rest of patch train

Change-Id: I53a560b0b03a1fe49d35ad8238679cc130327ade
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90197
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-12-02 01:58:16 +00:00
Matt DeVillier
30b4383944 mb/{google,intel}: Set SSDB platform field for MIPI camera sensors
The SSDB platform field was unset on many boards, causing the driver
to default to PLAT_SKC (Skylake). This field is required for proper
camera sensor initialization and is validated by the driver.

Set the correct platform enum value based on the SoC.

TEST=tested with rest of patch train

Change-Id: I34e0aba0ba34dabcf25287ff04bc4251135ca09e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90196
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:58:08 +00:00
Matt DeVillier
4c025191c7 drivers/intel/mipi_camera: Remove disable_ssdb_defaults option
Remove the (unused) disable_ssdb_defaults field and its usage. SSDB
defaults should always be applied to ensure proper camera sensor
configuration. This simplifies the code and ensures consistent behavior
across all camera sensor configurations.

TEST=tested with rest of patch train

Change-Id: I3bc00cdd28ace925b44712a17dec07f7f2b8c97a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90195
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:57:54 +00:00
Matt DeVillier
c75236d436 drivers/intel/mipi_camera: Set additional SSDB defaults
Set SSDB version and card type default values, as both fields
are required by both Linux and Windows MIPI camera drivers.

TEST=tested with rest of patch train

Change-Id: Ia43bc61caef427a86883a6295af1606eac00229f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90194
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:57:48 +00:00
Matt DeVillier
866b79c9fe drivers/intel/mipi_camera: Always generate PLD for camera sensors
Remove the use_pld and disable_pld_defaults flags and always generate
the Physical Location Descriptor (PLD) for camera sensor devices. PLD
is required for proper camera enumeration and identification in modern
ACPI implementations, so making it optional was incorrect.

Changes:
- Remove use_pld field: PLD generation is now always enabled
- Remove disable_pld_defaults field: PLD defaults are always applied
- Always call apply_pld_defaults() and acpigen_write_pld()

TEST=tested with rest of patch train

Change-Id: Ifd408f32a4feaf9728913dd150d1cb3e7b1c3c60
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90193
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:57:42 +00:00
Matt DeVillier
c6ed8c91fb drivers/intel/mipi_camera: Document more SSDB fields
Add comments for the tail of `struct intel_ssdb`, naming the camera
position, voltage rail, PPR, flash, PHY, lane, and external MCLK fields
instead of treating them as an opaque reserved block. Keeps the struct
aligned with the ACPI blob while making each byte’s meaning explicit.

Change-Id: Id9ae2bf77e901ef0f88b6f51985b59d41c5529d9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90189
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:57:35 +00:00
Matt DeVillier
423fbcd06b drivers/intel/mipi_camera: Adopt SSDB sensor SKU bitfield
Switch the `sensor_card_sku` field in `struct intel_ssdb` from a raw
byte to the new `sensor_sku_info` bitfield wrapper so callers can access
the vendor/card type flags symbolically. Field size stays the same, so
layout and behavior are unchanged.

Change-Id: I85ecbbec1a749c07e4d83d953d47d76854447cb1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90188
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:57:30 +00:00
Matt DeVillier
aa18a6fe8d drivers/intel/mipi_camera: Codify SSDB field enums
Introduce enums covering the SSDB ROM/VCM types, orientation, control
logic, camera position, voltage rails, PHY config, MCLK source, SKU
vendor, and SKU card type fields, plus a packed helper for the SKU
bitfield. This replaces magic values with named constants ahead of
further SSDB work without changing behaviour.

Change-Id: Iacc1a844528e2427c9f4ca8fcebe338fb6c1bac4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90187
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:57:23 +00:00
Matt DeVillier
f8d12a0bdb drivers/intel/mipi_camera: Add SSDB platform subtype enum
Introduce `platform_subtype` constants for the SSDB `platform_sub`
field, matching the legacy FFD/CHT1/CHT2 values plus an unknown
default.

Change-Id: Ib705252b089d161a7addc372d05e5062307bfb21
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90186
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:57:17 +00:00
Matt DeVillier
99cb6415ba drivers/intel/mipi_camera: Rename flash enum to match SSDB field
Retitle the SSDB flash-support enum to `flash_support`, aligning its
name with the field in the struct and the spec. Also keep the existing
values and clarify the default case comment.

Change-Id: I49d825cb44d7f8784350e29e8b2b5a0772549f56
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90185
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:57:11 +00:00
Matt DeVillier
c91ea7c582 drivers/intel/mipi_camera: Flesh out SSDB platform enum
Rename `intel_camera_platform_type` to `platform_type` and populate it
using the available values from the Intel Camera DDK available on
Windows Update and slimbootloader.

Change-Id: I7c40e29dbf71caf7b655e8f2e5b4be7cc6970194
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90184
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:57:05 +00:00
Matt DeVillier
0361e1a865 drivers/intel/mipi_camera: Verify SSDB struct size at build time
Add a static assert ensuring `struct ssdb` stays 0x6C bytes, matching
the sensor descriptor in ACPI. This guards future edits from drifting
away from the documented layout without changing runtime behavior.

Change-Id: I2b4dfb86494d13525cbc6e6de4573ceb36f0b482
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90183
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:56:58 +00:00
Matt DeVillier
b5d68e41a2 drivers/intel/mipi_camera: Tidy SSDB comment wrapping
Reflow the multiline comments in `ssdb.h` to 100 columns.
While this slightly exceeds the 96 column recommended limit in the
coding style guide, the overall effect improves rather than reduces
readability.

Change-Id: I5b98d48ea5a99e38eb3472dfd24be434433857cc
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90182
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-12-02 01:56:53 +00:00
Matt DeVillier
ab4c2fd0e8 drivers/intel/mipi_camera: Extract SSDB definitions into separate header
Move the sensor SSDB struct and enums out of `chip.h` and into a new
`ssdb.h`. This keeps the chip interface header lean while providing a
dedicated spot for the additional SSDB field descriptors coming in
follow-up changes. No functional impact.

Change-Id: Ifb2dddb886f0123b1dfd059400dcacd75174fb6c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90181
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:56:46 +00:00
Kilian Krause
d09ea1c351 cpu/intel: Add SMBIOS Socket BGA1744 type
Enable SMBIOS Processor Upgrade Type reporting for Socket BGA1744.

- Add CPU_INTEL_SOCKET_BGA1744 Kconfig option
- Add socket_BGA1744 subdirectory to build system
- Map to PROCESSOR_UPGRADE_SOCKET_BGA1744 in SMBIOS Type 4

TEST=Built for mc_rpl1, verified `dmidecode -t processor | grep Upgrade`
     shows "Socket BGA1744"

Change-Id: I18123f8ab656d4ca8c540be402f47929f8550ede
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89899
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-12-02 01:55:26 +00:00
Matt DeVillier
d97cb61b50 ec/google/chromeec: Add CFR option for RGB keyboard boot color
Add ec_rgb_kb_color CFR option to select RGB keyboard color at
boot. Suppress regular keyboard backlight option when RGB keyboard
is present, as they are mutually exclusive.

TEST=build/boot google/mithrax, verify RGB keyboard option enabled,
all colors able to be set at boot.

Change-Id: I55848931248a70023c49b98190105679f2999ad9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90160
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:55:11 +00:00
Matt DeVillier
e695731399 ec/google/chromeec: Add RGB keyboard helper functions and enum
Add enum google_chromeec_rgbkbd_color with predefined color values
(OFF, RED, GREEN, BLUE, YELLOW, WHITE) and helper functions to
detect RGB keyboard support and set keyboard color. The color enum
is converted to RGB struct values internally for EC communication.

These will be used in a subsequent change adding support for setting
the RGB keyboard color at boot via CFR.

TEST=tested with rest of patch train.

Change-Id: I9afcbd8359e0fdc7c89e653165499f693367f5db
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90159
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:55:03 +00:00
Johann C. Rode
4eb524ee9d spd/ddr4: Add three more parts
This patch adds three more parts that are used in Lenovo Thinkpads:

SKHynix H5AN4G6NAFR-UHC
SKHynix H5ANAG6NAMR-UHC
Micron MT40A512M16LY-075:H

The settings (MT/s, timing, organization, etc.) have been obtained from
schematics and datasheets.

Change-Id: Ie0958a4a845f072daee3379731f558584dca5da6
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90253
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-02 01:54:30 +00:00
Johann C. Rode
e4a809d441 spd/ddr4: Double packageBusWidth of dual die package parts to 16
This fixes an error I made in my previous commit 8a83b86254 (spd/ddr4:
add parts), CB:90032. The package bus width for all the dual die parts
is indeed 16 rather than 8. This has been validated when porting
coreboot to the Lenovo Thinkpad X280 that uses soldered-on DDP RAM
(Samsung K4AAG165WB-MCRC).

Change-Id: I8baa7c979074584e65772315e66e787cef3202e4
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90263
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-02 01:54:18 +00:00
Matt DeVillier
8753155f71 mb/google/slippy/var/peppy: Add CFR menu option for touchpad type
Peppy has two touchpad options, and having the ACPI device for both
enabled under Windows causes issues, as they use the same resources.
Since Peppy can't use the runtime detection feature supported by
newer platforms, add a CFR menu option to select between the two.
Default to both touchpad devices being enabled, so that there
is no change in behavior until the user changes the option.

TEST=build/boot Win11/Linux on google/peppy, verify touchpad
functional under both OSes when correct touchpad type selected,
and functional under Linux when Auto-detect is selected.

Change-Id: I0e63a252cd5bbc04244c9999b7586480891013a5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90163
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:54:04 +00:00
Matt DeVillier
6f6a10df88 mb/google/slippy: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Haswell/Lynxpoint/ChromeEC.

TEST=build/boot google/wolf, verify CFR option functionality.

Change-Id: Ife64d46a9866c67fbb941cc83428f7728c6f7f95
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90162
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:53:58 +00:00
Matt DeVillier
e366e0ba7d mb/google/slippy/Makefile: Organize and group entries by stage
Tidy up before adding a new entry.

Change-Id: Ib37c9b4b73819b1309a7c2405830f1524e3d3f74
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90161
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:53:51 +00:00
Matt DeVillier
6be83443e5 mb/google/auron/var/lulu: Add CFR option to enable/disable touchscreen
Some LULU boards are equipped with a touchscreen, others are not. Since
Broadwell doesn't support the use of the i2c generic driver and runtime
detection, add a CFR menu option to allow selective disabling of the
touchscreen ACPI device by users whose boards do not have one.
This prevents a malfunctioning touchscreen device from appearing in
Device Manager under Windows.

TEST=build/boot lulu, boot Win11, verify no malfunctoning touchscreen
device shown in Device Manager when disabled in CFR option menu.

Change-Id: I423ef1cf085bc488b4740092b992a245e3fd7e7e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90166
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:53:37 +00:00
Matt DeVillier
88d3f563b3 mb/google/auron: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Include relevant items from Broadwell Soc and ChromeEC.

TEST=build/boot google/lulu, verify CFR option functionality.

Change-Id: I9a5d61464cbf88b621c38a3779a7409977f20bed
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90165
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:53:30 +00:00
Matt DeVillier
7ed515d1c3 mb/google/auron/Makefile: Organize and group entries by stage
Tidy up before adding a new entry.

Change-Id: I33b0b4cf99534eb9dbc28d43286656488d1f498c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90164
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:53:24 +00:00
Matt DeVillier
e15895b5c4 mb/google/poppy/var/nautilus/acpi: Fix CI02 comment
The camera ACPI code was likely copy/pasted from another board, and
while the ACPI itself is correct, the comment is not. Fix the comment
to match the code / actual board config.

TEST=n/a; this change is non-functional.

Change-Id: I10eb20d9f51e1bc0cd4589c11ac39d23ed836bf4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90157
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-12-02 01:53:02 +00:00
Matt DeVillier
4dc03c54fc mb/google/poppy/var/nocturne: Hide FPR device in ACPI
Set FPR (Fingerprint Reader) device status to hidden to prevent
Windows from enumerating it, as Windows does not support the FPR
on this platform. Linux ignores ACPI device status and continues
to work correctly via direct SPI access.

TEST=build/boot Win11, Linux on Nocturne.

Change-Id: I8806cbef3acbab45ddd03e9fa80f79625c84bcb4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90156
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:52:57 +00:00
Matt DeVillier
e85a0b7ff1 mb/google/puff: Remove unsupported EC features
Remove EC feature definitions that are not supported by the
puff EC firmware:
- LID switch (CONFIG_LID_SWITCH is undefined)
- PS/2 keyboard (CONFIG_CMD_KEYBOARD is undefined)
- Keyboard backlight (not configured)

Also remove corresponding host event masks from SCI, SMI, and
wake event definitions.

All of these were remnants from puff originally being part of the
hatch mainboard, from which it was split off.

TEST=build/boot google/puff/var/wyvern

Change-Id: Idd86d4f342d29a25bd640d480cd5834e6250bcf0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90155
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-12-02 01:52:52 +00:00
Matt DeVillier
3459502e0c mb/starlabs/starfighter: Enable pmc_shared_sram device
Eliminates errors in cbmem

Change-Id: I1e9b02a0391b952eb461f174b3dc73783eed2853
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90282
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-12-02 01:52:30 +00:00
Sean Rhodes
9b0af48604 mb/starlabs/starbook/mtl: Update GPIO config
The GPIO config in the tree does not allow for S3 resume to work, as
the eSPI Virtual Wires stop reponding when the system enters S3.

Through setting the GpioOverride UPD to 0, the configuration in this
patch was discovered. This configuration keeps the virtual wires
working, and in turn, S3 resume works.

Change-Id: I5f73f74970d70f7736aa019a8e37e898921ae740
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90281
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-12-02 01:52:25 +00:00
Erik van den Bogaert
d3d4571411 soc/intel/common/block/graphics: Use Xeon W-11865MRE IGD PCI ID
Add IGD PCI ID of Xeon W-11865MRE to graphics driver so coreboot can use
GOP-provided framebuffer.

TEST=Debug log shows framebuffer info at PCI: 00:00:02.0 init

Change-Id: Ifd76707d2ad61e11028cd0e19cf06857c597d514
Signed-off-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90248
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-12-01 22:23:10 +00:00
Erik van den Bogaert
1cfe413f95 soc/intel/common/block/lpc: Support RM590E eSPI
RM590E eSPI should be correctly configured by LPC driver

TEST=Debug log shows initialization messages (eg IOAPIC)at PCI:
00:00:1f.0

Change-Id: I1ee9861c5d8a5e6eeb3ebe6041a9f141d051995a
Signed-off-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90247
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-12-01 22:23:05 +00:00
Felix Held
c195859748 soc/amd: add ACPI code for I3C controller
Add the I3C controllers to the ACPI tables. Most of the ACPI code needed
for that is added to the DSDT, since everything, but the enable status
of the I3C MMIO devices is known at build-time. To handle the I3C
controller enable status, each ACPI device contains the STAT name with
the value of 0 in the DSDT and when the device is enabled this STAT name
will be overridden in the SSDT.

TEST=OS loads the I3C kernel modules on amd/birman_plus.

Change-Id: I309d54c81056486573c32d4da54de61b36b5c378
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87282
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-12-01 19:41:52 +00:00
Maximilian Brune
02342b31df soc/amd/*/memmap.c: Report FCH MMIO regions as reserved
The following error is observed in Linux:
[   30.255680] ACPI Error: Aborting method \_SB.FUR4.AOAC._OFF due to previous error (AE_AML_LOOP_TIMEOUT)
It caused a boot delay issue in the virtualization case above due to
some mmio regions not being passed through and the acpi interpreter
waiting.

reserve MMIO regions which are used by ACPI code in order to fix this
issue.

source: "Address Space Mapping" Table in relevant PPRs.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ia12a3dea0e24ae24fa1f7db7c7f2bd9f7dd6a591
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90212
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-12-01 13:56:56 +00:00
Matt DeVillier
5078d32ccc mb/google/brya: Enable ACPI S3 sleep state support
Add missing HAVE_ACPI_RESUME Kconfig selection to enable S3
(suspend-to-RAM) sleep state support on Brya-based boards.

Without this option, the ACPI sleepstates.asl initializes SSFG to
0x09 (supporting only S0 and S4) instead of 0x0D (supporting S0, S3,
and S4). This prevents the _S3 ACPI object from being created in the
DSDT, causing the operating system to not recognize S3 as an
available sleep state.

With this change:
- SSFG is initialized to 0x0D
- _S3 ACPI object is created in DSDT
- Linux recognizes S3 as supported (dmesg shows "ACPI: PM: (supports
  S0 S3 S4 S5)")
- Both s2idle and deep sleep options become available

Tested on Yaviks (Nissa/PCH-N variant).

Change-Id: I07cfe9327b73d28ba7f7abc7755f3b870be5be00
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90252
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-30 21:16:17 +00:00
Matt DeVillier
eb504eb49a mb/samsung/lumpy: Fix HDA pin configuration issues
Fix several HDA pin configuration issues:

- NID 0x06 (Internal Speaker): Disable jack presence detection.

- NID 0x08 (Unused): Standardize to AZALIA_PIN_CFG_NC(0) which
  generates the canonical NC value 0x411111f0 instead of the
  non-standard 0x77a70037.

- NID 0x09 (Internal Digital Mic): Disable jack presence detection.

This resolves an issue under Linux where the speakers would keep
outputting audio when the headphones were plugged in.

Change-Id: If9f5781200e2d2dc6c90713caf999868f7b993a0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90216
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-30 21:10:53 +00:00
Matt DeVillier
afd5e5d444 mb/samsung/lumpy: Convert HDA verbs to use AZALIA_PIN_DESC macros
Convert raw hexadecimal pin configuration values to use the
AZALIA_PIN_DESC macro for improved readability and maintainability.

All pin configurations have been verified to generate identical
binary output to the original raw verbs:
  - NID 0x05: Headphone Jack (0x022110f0)
  - NID 0x06: Internal Speaker (0x901700f0)
  - NID 0x07: Microphone Jack (0x02a110f0)
  - NID 0x08: Unused/NC (0x77a70037)
  - NID 0x09: Unused/NC (0xb7a6003e)
  - NID 0x0a: SPDIF Out/NC (0x434510f0)

No functional changes.

Change-Id: Ib2f531575dd0e3cccf41b74e861394f21ce237af
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90215
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-30 21:10:48 +00:00
Sean Rhodes
109672a9a9 drivers/intel/gma: Guard legacy brightness fallback
When BOX3.XBCM fails we currently fall back to LEGA.XBCM, which writes
directly to the IGD PWM registers. During S3 resume those registers are
still reset by the graphics driver, so AML stores a zero duty cycle and
the panel stays dark. This leads to having some other event needed to
wake the panel (i.e. key press).

Only invoke the legacy path after BCLM is initialized, matching when the
driver has reprogrammed the PWM registers and preventing firmware from
touching them while the driver is still restoring them.

Test=Enter and exit S3 on starbook_mtl, verify that the display turns on and stays on, instead of on -> off -> on.

Change-Id: I664d296372feef9de5c4f57428422328c4e33110
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89985
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-30 19:32:32 +00:00
Sean Rhodes
908c2b54c6 mb/starlabs/starbook/mtl: Fix Card Reader USB Port
The devtree.c was trying to disable the incorrect USB port, 3.
Correct this to 7.

Change-Id: Ibae3d104d2887706dbe2e1c13e817eeee644b5ad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90275
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-30 19:30:54 +00:00
Ren Kuo
796d3b37aa mb/google/fatcat/var/moonstone: Update fw_config definitions with UFSC
Enable Unified Firmware and Secondary Source Configuration (UFSC)
support for moonstone.
UFSC standardizes the bitfields and bitmap definitions for firmware
configuration. Update coreboot code with new UFSC definitions and
enable EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC.

BUG=b:464077440
TEST=emerge-fatcat coreboot depthcharge chromeos-bootimage
BRANCH=none

Change-Id: I8ecd9accb4ad09aae3a6fb9e3f92d8d0a3c9bb9c
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90258
Reviewed-by: Bob Moragues <moragues@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-30 18:08:20 +00:00
Maximilian Brune
2ce4e09469 drivers/intel/fsp2_0: Add typedef FSP_UPD_HEADER
The FSP structs are usually typedefs and are also used like that across
the tree.

In order to make this file usable for code inside our tree
(specifically AMD) change it to typedefs.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ie799e0116997ba559b990a9b3a2038fea852d8ba
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89901
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-11-30 18:07:19 +00:00
Hualin Wei
7afe1e9f9d mb/google/fatcat/var/lapis: Adjust touchpanel power on timing
GPP_F08 -> EN_TCHSCR_PWR
GPP_F16 -> TOUCHPANEL_RESET#

Adjust touchpanel's power on timings:
1. EN_TCHSCR_PWR go high before L_VDDEN_PCH during power on
2. TOUCHPANEL_RESET# high after EN_TCHSCR_PWR high when power on

BUG=b:462913972
TEST=emerge-fatcat coreboot
the EE measured the power-on timing of the touchscreen, and it met the requirements.

Change-Id: I4e50223477003ff93d4751527196894cc0a3e781
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90243
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-29 20:03:40 +00:00
Sean Rhodes
36f4341533 mb/starlabs/starfighter: Add Arrow Lake (285H) variant
Tested using `edk2` from
`https://github.com/starlabsltd/edk2/tree/uefipayload_vs`:
* Ubuntu 24.04
* Manjaro 24

No known issues.

https://starlabs.systems/pages/starfighter-specification

Change-Id: I75f92cd957c72077460ab4b7ed6b08453f5058d4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89592
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-29 20:03:30 +00:00
John Su
80cf2008a9 spd/lp5: Add SPD for MT62F1G32D2DS-031RF WT:C
Add MT62F1G32D2DS-031RF WT:C in the memory_parts.json and re-generate
the SPD.

BUG=b:459934066
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: Ib65f24347ddae2808720f8e3c73652a82de94311
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90019
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-29 20:03:21 +00:00
Kilian Krause
f1d1c825dc mb/siemens/mc_rpl1: Enable IBECC
Enable In-band ECC (IBECC) for mc_rpl1. IBECC provides memory error
detection and correction capabilities without requiring ECC memory
modules.

TEST=Inject correctable Error and verify IBECC detection and correction
through system logs. Testing based on Intel Doc. #751401

Change-Id: Ibf2a61bf425a51762fa8bb1cfe7b6f57edd3cfb5
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90202
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Uwe Poeche <uwe.poeche@siemens.com>
2025-11-29 20:03:14 +00:00
Kilian Krause
866a0591f7 mb/siemens/mc_rpl1: Set coreboot ready LED
This mainboard has an LED that shows when coreboot has finished. The LED
is switched on via GPIO GPP_F4.

TEST=LED turns on when booting to Payload.

Change-Id: Ia292b10573d67df3f288b97fa2e92ae85ba7f27b
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90201
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-29 20:03:07 +00:00
Uwe Poeche
801795d4dd mb/siemens/mc_ehl6: Alphabetize Kconfig options
Sort Kconfig select statements alphabetically for better readability
and maintainability.

No functional changes.

Change-Id: Iaa04c2666e16a2fc442a34d2be37ca3b0c567168
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90146
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-29 20:02:55 +00:00
Uwe Poeche
1a11dca12d mb/siemens/mc_ehl6: Send POST codes to NC FPGA via PCI
Enable the feature to send POST codes to the NC FPGA via PCI. This
allows the POST codes to be visible on the embedded 7-segment display
during coreboot runtime.
Further sort switches in alphabetical order.

TEST=Build and boot mc_ehl6. Verify that the POST Codes are
correctly displayed on the embedded 7-segment display.

Change-Id: Ie7e4961c0345312126eb2000c2934e33fce3b584
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90091
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-29 20:02:47 +00:00
Uwe Poeche
fceb033372 mb/siemens/mc_ehl6: Limit PCIe RP7 speed to Gen2
Configure PCIe root port 7 to operate at PCIe Gen2 speed to fulfill
mainboard constraints regarding signal integrity.

TEST=Check resulting transfer rate in OS via
`lspci -vv -s 06:00.0 | grep LnkSta`.
Output shows `LnkSta: Speed 5GT/s (downgraded), Width x2`

Change-Id: I7cb86f04675a850bf3c0a3e8af2436d929d5768b
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90090
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
2025-11-29 20:02:40 +00:00
Uwe Poeche
760c3f6abc mb/siemens/mc_ehl6: Activate SATA interface port 1
Activate SATA interface port 1 for mass storage connection on mc_ehl6
mainboard.
Function of SATA_LED_N and M.2_SSD_SATA_DEVSLP_1 are not used.

TEST=Check mass storage in running OS.

Change-Id: I34ca0d71a04c4338e35bcf9ede4ccef41efab01e
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90089
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-29 20:02:34 +00:00
Uwe Poeche
54f2652bde mb/siemens/mc_ehl6: Enable auto impedance calibration on GbE 0
Use the default automatic RGMII Output Impedance Calibration on Marvell
PHY 88E1512 by using default coreboot driver parameters.

TEST=Check signal integrity on RGMII interface on mc_ehl6 mainboard.

Change-Id: I6b6d7aeb8ddc4ef4ed297f4147b87d3e81c8a37e
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90088
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-29 20:02:29 +00:00
Uwe Poeche
b6e7f3e005 mb/siemens/mc_ehl6: Change GbE LED settings
This patch changes the LED settings for used Marvell PHY 88E1512 driver
of PSE GbE 0 and PCH GbE on mc_ehl6 mainboard.
The interrupt functionality on Marvell PHY 88E1512 is not used in the
OS for this board. In this Phy the interrupt is multiplexed with LED[2]
Pin.

On mc_ehl6 mainboard LED Pins [0/1/2] are used.
- LED Pins [0/1] for two color LINK LED at the interface
- LED[2] for ACT LED
Driver parameters are set accordingly.

TEST=Boot into OS and check LINK and ACT LED at the related plugs at
100 and 1000 Mbit mode.

Change-Id: If7fd314034b35de67fc0b10e6be9b7578807cbff
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90087
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-29 20:02:21 +00:00
Uwe Poeche
aad2b715ea mb/siemens/mc_ehl6: Remove PSE GbE 1
Remove the unused PSE TSN GbE device #1. This device is not
required for the current board functionality and removing it
simplifies the configuration.

TEST=Check if all other GbE ports of mainboard still work.

Change-Id: I8b23064ecff5fe67da3d847bb769784f8b3a15cc
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90086
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-29 20:02:16 +00:00
Uwe Poeche
e19f2b313e mb/siemens/mc_ehl6: Enable PCHHOT_N via GPIO
This mainboard uses native function two of GPIO B23 (PCHHOT_N) to
realise overtemperature behaviour of the mainboard.

TEST=Check the signal during HW commissioning and influence of heat to
the CPU.

Change-Id: I4caa88316d5027f7b9d74293a74377915f274766
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90085
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-29 20:02:11 +00:00
Uwe Poeche
43d5f70576 mb/siemens/mc_ehl6: Enable PTM for all enabled PCIe RPs
Enable PCIe PTM (Precision Time Measurement) for all enabled PCIe root
ports. The time synchronization is mainly necessary for stable timing to
PLC.

TEST
Boot in a standard linux OS and check if PTM ist enabled for active RPs
via lspci -vv -s 00:1c.0..6 | grep PTM

Change-Id: I965ab349c07158d0c69b9112571aa98575eada77
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90084
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
2025-11-29 20:02:05 +00:00
Uwe Poeche
864e3ca661 mb/siemens/mc_ehl6: Adjust I2C setup
Adapt I2C controller configuration for mc_ehl6 board. This involves
changes to the coreboot I2C setup. To prevent higher I2C speeds from
being used by the OS, dummy devices are installed on the I2C bus.

TEST=Check if drivers for the I2C devices started correctly during
coreboot execution and verify that all I2C devices are detected in the
OS.

Change-Id: I6de578f969456a15807a1380209ea18e01f522bd
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90083
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-29 20:01:57 +00:00
Payne Lin
31f44f5521 mipi: Add DSC configuration and rate control parameters to panel header
This patch adds the Display Stream Compression (DSC) related structures
to the panel header. These structures define the rate control parameters
and configuration options required by the DSC engine for frame
compression, such as quantization parameter ranges, bits per group
offset, compression enable flag, dual DSC support, and line buffer
depth.

BUG=b:424782827
TEST=Build pass, boot ok, display ok

Change-Id: Icec24f55b962cd2794a79a68fc8fecec43300103
Signed-off-by: Payne Lin <payne.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90129
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-29 20:01:49 +00:00
Maximilian Brune
743e31939c drivers/intel/fsp2_0/.../fsp/upd.h: Fix excess endif
There is one too many `endif` in this file. The only reason why jenkins
never complained is because this is apparently never included (and
therefore never compiled) by any code/mainboard in our tree.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Id68d91d5c5365000fc97815d184d48f4b71bcb35
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89869
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-11-29 11:37:06 +00:00
Maximilian Brune
2aadfc2b5e soc/amd/common/block/acpi: Add ACPI HEST table
Adds skeleton code so that the HEST ACPI table is included as part of
the ACPI tables propagated to the OS.

The ACPI table can be included by mainboards by selecting
SOC_AMD_COMMON_BLOCK_ACPI_HEST.

TEST=Select the option, build the mainboard and see the output in Linux:
[    0.282277] HEST: Table parsing has been initialized.

Change-Id: I69886a19764d6974cbe129a8a6bf717f7808fb08
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88113
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Anand Vaikar <a.vaikar2021@gmail.com>
2025-11-29 11:21:00 +00:00
Maximilian Brune
cc542c15f4 include/acpi: Move Error definitions/declarations into acpi_apei.h
This moves all the definitions and declarations that are part of the
ACPI Platform Error Interface (APEI) into the corresponding header file.

Change-Id: Ied3915e4f598cd393f396de26b07ade7ce3a7ab1
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88036
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-11-29 11:20:11 +00:00
Yidi Lin
2462e3a027 soc/mediatek/mt8188: Adjust memlayout for bootblock
Increase the bootblock size to 70K to accommodate its growth, e.g.,
CB:90147 and CB:89157.

This commit also conditionally includes the DRAM_INIT_CODE section when
ENV_ROMSTAGE is enabled, and the BOOTBLOCK section otherwise. This
allows increased BOOTBLOCK overlapping with DRAM_INIT_CODE as these two
sections won't be utilized in the same boot stage.

TEST=emerge-geralt coreboot

Change-Id: Ib7b930fbb1815d2f24b9618d94a38d02c66eab97
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90251
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-11-28 10:12:48 +00:00
Luca Lai
804aab3abb mb/google/fatcat/var/ruby: Modify usb3 port setting
Modify usb3 port 0 and 1 settings by vendor's advices.

BUG=b:446771934
TEST=Build and boot to OS, check usb3 functions work by lsusb -t.

Change-Id: I9ed47ead1b2ef0b007897513ceb99e9460875bdc
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89883
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-11-27 18:21:16 +00:00
Terry Cheong
fecf05c4f2 mb/google/trulo/var/kaladin: Mute speaker amp to prevent pop noise on reboot
This change mutes the amplifier by updating the HDA verb table boot beep
section, which is configured at boot time. The amplifier will be unmuted when
generating a dev beep to preserve that functionality.

After entering OS, the kernel will reset the drivers and re-enable the
speaker.

BUG=b:457933720
TEST=Play audio in the OS and reboot the device. Verify that no pop
noise is heard from the speakers.
TEST=Verify devbeep function

Change-Id: I19ef19533d8ed7522e638787c8179ae0fdbf1ebb
Signed-off-by: Terry Cheong <htcheong@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90238
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-27 18:19:57 +00:00
Maximilian Brune
f35cb39de5 soc/amd/cezanne: Increase APOB DRAM size for Renoir
The renoir variant has larger APOB data.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7b7da3b35f2795deb785f82326f3e6c640f6e9ca
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90213
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-11-27 18:00:57 +00:00
Maximilian Brune
384e6e1c37 soc/amd/cezanne: Remove set_resets_to_cold
Renoir actually supports warm reset, so we don't need to toggle the
PwrGood for all resets.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I45d6b559874d67b886c65f7ad722f96eba415399
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90211
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-27 17:56:06 +00:00
Maximilian Brune
97291b5838 soc/amd/cezanne: Optionally propagate UART0 through ACPI
Unable to passthrough the UART0 in domU when UART1 enabled in dom0

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7ccf366dbac556f68096382644f3e72b13e2dbf9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90210
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-27 17:55:20 +00:00
Maximilian Brune
149d11d1d8 soc/amd/cezanne/Kconfig: Select Kconfig to program the PSP_ADDR MSR
The PSP_ADDR_MSR is programmed into the BSP by FSP, but not always
propagated to the other cores/APs. Add a hook to run a function
which will read the MSR value from the BSP, and program it into the
APs, guarded by a Kconfig.

It only writes the MSRs of the APs if they are not initialized yet.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I45771e596ac4354dd233a47fcae33012d9c0a6c9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90209
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-11-27 17:55:01 +00:00
Anand Vaikar
520bc70b57 mb/amd/crater: Configure UART1 GPIOs
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I9b04479d2e1508d767cfc4dc94d2ac55163cc369
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90208
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-27 17:54:47 +00:00
Felix Held
0ed1529ce3 src/vc/amd/fsp: fix type 17 DMI info
The TYPE17_DMI_INFO struct in renoir FSP has the SMBIOS 3.2 layout, not
the SMBIOS 3.3 layout. The struct definition in the coreboot code needs
to match the one that the FSP uses when creating the DMI into HOB.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Icd45d4e25dcc4a5977deaeba2b178e0b9dd1e453
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90207
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Christian Walter <christian.walter@9elements.com>
2025-11-27 17:54:30 +00:00
Maximilian Brune
e8599956dc mb/amd/crater: Make NVMe reset GPIO configurable
If you reworked the board its possible NVME reset is attached to GPIO 40
instead of 24.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ib2a10701ed2c3e677419f700a69277c2cde588f5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90206
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-11-27 17:54:13 +00:00
Joyce Ciou
67bf203e52 mb/google/nissa/var/guren: Add missing settings for WWAN
Due to "firmware.PDProtocol" item of FAFT PD test result has failed
and the HDMI function can't work on USB type C of the daughter board
side when the DUT with 1C+5G of daughter board config.
Add missing settings for WWAN to pass the test.

BUG=b:463200834
TEST=emerge-nissa coreboot chromeos-bootimage
     Check 5G LTE module detectable by command # mmcli -m a.
     Confirm firmware.PDProtocol PASS.

Change-Id: I8657e383ed376c4a3af328f7593d5503babe2e3d
Signed-off-by: Joyce Ciou <joyce_ciou@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90170
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-27 02:32:00 +00:00
Tony Huang
3dabe4f857 mb/google/brox/var/caboc: Increase I2C0 touchpad tHD to 0.53 us
Increase I2C0 touchpad tHD to 0.53 us by adjusting data_hold_time_ns in
I2C0 from 50 to 250, the new tHD meets SPEC between 0.3 us and 0.9 us.

The setting format is copied from baseboard/brox and modify I2C0.

BUG=b:461977573
TEST=emerge-brox coreboot
     checked TP function work
     measure the wave form meets SPEC
     Before: tHD  ~0.072 us
     After:  tHD  ~0.53 us

Change-Id: I2841107a9165fc0eacc465fe5013d23856a3f755
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90114
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
2025-11-26 18:58:26 +00:00
Erik van den Bogaert
12e763eece device/pci_ids: Add DIDs for TGL-H (GT1 and RM590E)
This commit adds the relevant DIDs to support Tiger Lake H (TGL-H) systems based on the Xeon W-11865MRE (GPU) and RM590E chipset (PCH).

TEST=A platform with Xeon W-11865MRE and RM590E booted
     the relevant information printed in coreboot log.
     [DEBUG]  CPU: ID 806d1, Tigerlake R0, ucode: 00000056
     [DEBUG]  MCH: device id 9a36 (rev 05) is Tigerlake-H-8-1
     [DEBUG]  PCH: device id 4390 (rev 11) is Tigerlake-H RM590E
     [DEBUG]  IGD: device id 9a70 (rev 01) is Tigerlake H GT1 32EU

Change-Id: I2bff2551b9f194e169c0edd080e9c869bcc9c60f
Signed-off-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90179
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-26 18:57:46 +00:00
Luca Lai
01540f036e mb/google/fatcat/var/ruby: Use spd-11 for MT62F1G32D2DS-020 WT:D and
K3KL8L80EM-MGCV

Because there are some attributes of MT62F1G32D2DS-020 WT:D and
K3KL8L80EM-MGCV when review the specification again,
so modify the memory_parts.json attributes and re-generate SPD id
for MT62F1G32D2DS-020 WT:D and K3KL8L80EM-MGCV.

BUG=b:446771934
TEST=Use part_id_gen to generate related settings

Change-Id: Ic38286f38c4c6572cf2e22c78f5f202cc0a152cc
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90124
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-26 18:57:33 +00:00
Terry Cheong
14e96b4ef1 mb/google/brox/caboc: Mute speaker amp to prevent pop noise on reboot
A pop noise is heard from the speakers on caboc devices when rebooting
while audio is playing.

This is caused by the speaker amplifier (class-D) being active during
the reboot process.

This change mutes the amplifier by updating the HDA verb table, which
is configured at boot time. The amplifier will be unmuted when
generating a dev beep to preserve that functionality.

BUG=b:439638686
TEST=Play audio in the OS and reboot the device. Verify that no pop
noise is heard from the speakers.

Change-Id: Ic9980d31097d60ede879c8d6dcdd541580765795
Signed-off-by: Terry Cheong <htcheong@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90199
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-26 18:57:18 +00:00
Kapil Porwal
567186a000 mb/google/bluey: Add support for off-mode charging
Implement full support for the LB_BOOT_MODE_OFFMODE_CHARGING
state. This mode is detected when the system powers on due to an
external charging event (cable insertion) while the system was
previously fully powered off.

This boot mode is critical for systems that need to maintain a light
footprint to quickly start charging without performing a full boot.
It combines with the existing low-battery mode to define a unified
"low power boot" state.

In romstage, the boot mode is detected using is_off_mode() and
the EC's low battery status, and the result is saved to CBMEM. In
ramstage, this mode is read to determine if heavy, resource-intensive
initializations should be skipped to conserve time and power.

Key changes:
- In romstage.c, implement set_boot_mode() to determine the
  mode (NORMAL, OFFMODE_CHARGING, or LOW_BATTERY) and save it to
  CBMEM_ID_BOOT_MODE.
- In mainboard.c, introduce get_boot_mode() and
  is_low_power_boot() to retrieve and check the CBMEM value.
- Skip heavy ramstage initializations (mainboard_init and
  mainboard_needs_pcie_init) when in a low-power boot mode.
- Update lb_add_boot_mode to report the mode stored in CBMEM
  to the coreboot table.

BUG=b:439819922
TEST=Verify off-mode charging behavior on Google/Quenbi.

Change-Id: I57d25deb6b2b1f9ff199cea5ca2953f10ffb4746
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90176
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-26 18:56:46 +00:00
Kapil Porwal
27fcb8617d commonlib: Add CBMEM ID to store boot mode
Introduce a new CBMEM ID, CBMEM_ID_BOOT_MODE (0x444D5442, "BTMD"),
to provide a dedicated storage location for the system's detected
boot mode (e.g., normal boot, low-battery, off-mode boot etc).

Storing the boot mode in CBMEM ensures that the initial detection
performed early in the boot process (e.g., in romstage by reading
PMIC logs) is securely passed to subsequent stages like ramstage,
where different boot modes require distinct logic paths.

Key changes:
- Define CBMEM_ID_BOOT_MODE in cbmem_id.h.
- Add "BOOT MODE" entry to the CBMEM_ID_TO_NAME_TABLE.

BUG=b:439819922
TEST=Verify boot mode stored in CBMEM.

Change-Id: I7ebf29385a99ac1be491bfefe1c74c8c9e58b55d
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90175
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-26 18:56:39 +00:00
Kapil Porwal
d6132c4c03 mb/google/bluey: Use SOC PMIC API to detect off-mode charging event
Refactor the is_off_mode() detection API on the Bluey mainboard
to call the newly introduced SOC-specific PMIC function,
is_pon_on_ac().

This change delegates the complex Power-On (PON) log parsing and
PMIC register checking to the SOC layer, simplifying the mainboard
code base. The board layer now contains only the high-level policy
wrapper for detecting cable-power-on events.

This improves modularity and ensures the board code relies on the
correct hardware abstraction.

Key changes:
- Implement is_off_mode() as a simple wrapper around is_pon_on_ac()
  (from the SOC PMIC library).
- Include soc/pmic.h to access the SOC's PMIC APIs.
- Expose is_off_mode() in board.h.

BUG=b:439819922
TEST=Verify boot mode on Google/Quenbi.

Change-Id: Ibc13c3ad96846cf5b3fb9bcf461e3f338ac9b8bd
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89122
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-26 18:56:32 +00:00
Kapil Porwal
201ebd48ee soc/qc/x1p42100: Add APIs to read PON reason from PMIC
Add the Power-On (PON) history log parsing and status API to the
SOC layer (soc/qualcomm/x1p42100/pmic.c).

This code is specific to the Qualcomm PMIC architecture (reading
registers for PON events and reasons), making it an SOC-specific
utility rather than a board-level policy. Moving it here improves
modularization and allows other X1p42100-based boards to reuse this
critical power management logic.

Key APIs introduced:
- pm_pon_read_pon_hist(): Reads the raw circular PON event log
  from the PMIC, reverses the buffer to put the latest entry first.
- is_pon_on_ac(): Interprets the log to detect if the power-on
  reason was due to AC/Cable Power (PON_CBLPWR_RSN).

Key changes:
- Create src/soc/qualcomm/x1p42100/include/soc/pmic.h with PON
  definitions and API prototypes.
- Create src/soc/qualcomm/x1p42100/pmic.c containing the PON
  log reading and parsing logic.
- Add pmic.c to the SOC's romstage build via Makefile.mk.

BUG=b:439819922
TEST=Verify off-mode charging behavior on Google/Quenbi.

Change-Id: I8cd1478b9f8d53519f603e8f5168d0a51fa54971
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90192
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-26 18:56:25 +00:00
Kapil Porwal
293f3a7f5c soc/qc/spmi: Add API to read byte array
Introduce a new API, spmi_read_bytes(), to allow reading a
sequence of registers from a Qualcomm PMIC using the SPMI bus.

While the existing spmi_read8() is suitable for single-byte
access, reading large log areas (like the PON history log)
requires iterating over a contiguous block of addresses. This
new function encapsulates the required loop, calling spmi_read8()
sequentially for each address in the range.

This abstraction improves code cleanliness and makes high-level PMIC
log parsing much simpler.

Key changes:
- Define spmi_read_bytes() prototype in qcom_spmi.h.
- Implement spmi_read_bytes() in spmi.c to perform sequential
  reads using spmi_read8().

BUG=b:439819922
TEST=Verify off-mode charging behavior on Google/Quenbi.

Change-Id: I6017336a882a8fa8d771b0127e78dd4f0fdbdd0e
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90191
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-26 18:56:19 +00:00
Kapil Porwal
9f675eb96b soc/qc/common: Update SPMI_ADDR macro for better type safety
Update the SPMI_ADDR macro to wrap both the slave and reg
arguments in parentheses.

The previous definition, ((slave << 16) | reg), led to incorrect
address calculation when the slave argument was an arithmetic or
logical expression (e.g., (a | b)), as the bit-shift operator (<<)
has higher precedence than the logical OR (|).

The revised macro guarantees that the full slave expression is
evaluated before the bit shift, ensuring correct SPMI register
address construction.

Key changes:
- Wrap slave and reg arguments in parentheses within
  SPMI_ADDR definition.

BUG=b:439819922
TEST=Verify that the SPMI_ADDR output is correct.

e.g. SPMI_ADDR(0x02 | 0x01, 0x200)
Output before this change:
```
((0x02 | 0x01 << 16) | 0x200)
(0x02 | 0x010000 | 0x200)
(0x010202)
```
Output after this change:
```
(((0x02 | 0x01) << 16) | 0x200)
(((0x03) << 16) | 0x200)
((0x030000) | 0x200)
(0x030200)
```

Change-Id: I58b36b62f0b5a59c03a1c1d08640fe9086d81d7a
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90198
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-26 18:56:14 +00:00
Jeremy Compostella
cb1045a8b8 soc/intel/pantherlake: Update GT domain TDC value for PTL_TDC_1 SKU
Update the GT domain Thermal Design Current (TDC) value for the
PTL_TDC_1 SKU from 15A to 23A to align with the latest hardware
specifications. The previous value was inconsistent with the intended
power map, which could lead to incorrect power delivery settings and
potential system instability. This change ensures compliance with
Document #813289, revision 2.1.

Change-Id: Ib6b4ddc422de62585658b5e8464d598762b947ee
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90136
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
2025-11-26 18:55:36 +00:00
Jeremy Compostella
b0ee0c4620 soc/intel/pantherlake: Fix IA domain TDC value for PTL_TDC_2 SKU
Align the IA domain Thermal Design Current (TDC) value for PTL_TDC_2
with Document #813289 power map revision 2.1. The previous value 23A did
not match the updated specification, which now requires 28A. This change
ensures that the firmware correctly reflects the hardware power limits
for this SKU, preventing potential power delivery issues and improving
system stability.

Change-Id: I16bb510b8ec2ad1ffdeba20bfe26d0cbad209088
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89935
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-26 18:55:24 +00:00
Jeremy Compostella
6dbcf903a5 soc/intel/pantherlake: Add ICC Max and TDC settings for SKU_7
SKU_7 ICC Max and TDC were not accurate. This commit aligns SKU_7
settings with document #813278 - Panther Lake H Platform Power Map
2.1.1.

Change-Id: Ia66ca5c0d2dc1ba0f0cf3b21476e83923e49969e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90096
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-26 18:55:17 +00:00
Jeremy Compostella
2148143ae9 soc/intel/pantherlake: Separate TDC configuration for different TDPs
This commit refactors the Panther Lake SoC power mapping and
configuration to support distinct Thermal Design Current (TDC) settings
for each TDP variant and SKU. Previously, TDC values were mapped
directly to SKUs, which limited flexibility and could lead to incorrect
current settings for CPUs with the same SKU but different TDP
requirements.

TEST=On a Fatcat device with a 25W TDP, the FSP logs show that the
     appropriate TDC settings were applied.

Change-Id: Ie645110e9ff200ecb601faf427958ded731fb22b
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89932
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Guvendik, Bora <bora.guvendik@intel.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-26 18:55:05 +00:00
Luca Lai
c7273c8ddc mb/google/fatcat/var/ruby: Add proto touch panel address
Because the proto and evt build use the same panel but different
controllers, so add proto touch panel address to fit two controllers.

BUG=b:452216678
TEST=Build FW and boot to OS, check touch function works.

Change-Id: Ia9a3764ffe85aa69ba1c4c3f4ae8fd2717e1e570
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90200
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-11-26 18:54:55 +00:00
Aamir Bohra
8575232317 mb/google/ruby: Migrate to UFSC
Enable Unified Firmware and Secondary Source Configuration (UFSC)
support for Ruby.
UFSC standardizes the bitfields and bitmap definitions for firmware
configuration. Update overridetree.cb with new UFSC definitions and
enable EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC.

BUG=b:460231264
TEST=util/abuild/abuild -x -t GOOGLE_RUBY -a
BRANCH=none

Change-Id: If992b89e1c6563404c71af2f77b6170d15c92d61
Signed-off-by: Aamir Bohra <aamirbohra@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90177
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-26 14:49:59 +00:00
Maximilian Brune
47101fc224 soc/amd/cezanne/Kconfig: Make AMDFW_CONFIG_FILE configurable
Its useful if you have some binaries downstream which are not published
yet.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I00f67e6eb93af095e3ae1f4851d13cd7666a9851
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90180
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-25 19:23:52 +00:00
Ana Carolina Cabral
c9f124a8fb mb/amd/crater/ec: Make macro ENABLE_M2_SSD1 a Kconfig option
Move the option to enable M.2 SDD slot to Kconfig file instead of using
a macro. Its already used like a Kconfig option later on, so the if
condition actually works now.

Change-Id: I104eae5501da6ed1fe43039f88d6722c1e54e82d
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87443
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-11-25 19:21:27 +00:00
Ana Carolina Cabral
430e34cd0f mb/amd/crater: Move gpio configuration to early_gpio
Remove the gpio function calls from ec code and mode to early gpio file.

Change-Id: I941828808bdcdac00ab59d48907da1f70024d6e0
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87442
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-25 19:21:03 +00:00
Ana Carolina Cabral
14b5c004f5 mb/amd/crater/ec: Create function to get board revision
Remove duplicate code and make it into a single function to
read the board revision from ec.

Change-Id: If7f3e7eda2c43417639494880a080fa472474cab
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87441
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-25 19:20:50 +00:00
Maximilian Brune
bd858faee8 mb/amd/crater: Add XGBE support
If XGBE is used on the platform, it can be configured to match different
use cases.

Change-Id: Ia6f7c2b836050e52bfb1d9ff64745d83715c874b
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90104
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-25 19:20:29 +00:00
Ana Carolina Cabral
f61553c9fa vc/amd/fsp/cezanne: Add Renoir FSP
Add FSP folder for Renoir and include it in the build from soc/cezanne
path. Cezanne and Renoir are very similar but there are still enough
changes to justify a separate vendorcode directory.

Change-Id: Id7f51a70c02ea632d87a635e92a6c422ac369bef
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87216
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-11-25 19:20:09 +00:00
Matt DeVillier
87f8d15c87 ec/google/chromeec/cfr: Fix CFR callback signatures
Commit 04778ddd38 ("drivers/option/cfr: Remove old sm_object from
constructor") updated the function signature for CFR callbacks, but the
commits adding the fan and backlight controls were merged afterwards
without being adjusted accordingly. Do so here.

TEST=build/boot google/link with these CFR options enabled.

Change-Id: I9ea5224a820b014c4c8edb93e8a6b336ea6f58d0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90158
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2025-11-25 16:50:04 +00:00
Julius Werner
7fb0f14ebe libpayload: arm64: Fix asynchronous exception routing in payload
Six years ago we had a problem with not getting SError exceptions in
coreboot, and we fixed it by setting the right SCR_EL3 bits to force
exception routing to EL3 (commit bb345abbfc ("arm64: Correctly unmask
asynchronous SError interrupts")). Turns out that we have the same
problem in the payload but we never fixed it there. EL2 exception
routing works differently, so in order to achieve the same effect here
we can either enable the HCR_EL2 AMO, FMO and IMO bits (respectively),
or we can just enable the TGE bit which traps everything. This patch
chooses the latter, and it also ensures that the PSTATE exception
masking (DAIF) bits are in the expected state (although they usually
already are).

This state will persist after handoff to the kernel or chained payload,
and will prevent transition into EL1 if not cleared first. This should
be fine since any code taking control in EL2 should be expected to
correctly reintialize HCR_EL2 before handing off into EL1 (the Linux
kernel has always reinitialized this very early after its entry point).
If any selfboot() payloads are broken after this change, the payload
should be fixed to reinitialize HCR_EL2 to 0 (or desired value).

Change-Id: I339eded5a5344b5753c94be82e4f1e52e00b39f4
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90127
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-11-25 16:49:56 +00:00
Varun Upadhyay
b584967d04 mb/google/ocelot: Add wake configuration to cnvi_bluetooth
This commit adds wake functionality to the CNVi Bluetooth device by
registering to "GPE0_PME_B0" using the common CNVi block.

BUG=454341255
TEST=Able to wake up the device from a low power state using a keyboard
     Bluetooth device.

Change-Id: I4bcbb34e1d53b3438f9e9f2b39f09d91e8dc7110
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89982
Reviewed-by: P, Usha <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-25 16:49:28 +00:00
Uwe Poeche
fc88b62174 mb/siemens/mc_ehl6: Enable PCIe root ports and clocks
Configure and enable the PCIe root ports and associated clocks for the
mc_ehl6 mainboard. This is necessary because the PCIe configuration
differs from the mc_ehl2 baseboard.

TEST=Boot into the OS and verify that all expected PCIe devices are
correctly detected.

Change-Id: Ie5ac3d437088d1db08f869317ef3e5712c3baa3e
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90082
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-25 16:49:15 +00:00
Uwe Poeche
5a4c749520 mb/siemens/mc_ehl6: Add new board variant based on mc_ehl2
This new mainboard variant for the Siemens mc_ehl6 is initially based on
a direct copy of the mc_ehl2 configuration. This commit contains the
basic board setup with only minimal changes to enable the new variant.

Further specific adaptations for the mc_ehl6 hardware will be handled
in subsequent commits.

Change-Id: Ifcc730da492edb084e67762ce643f27b1a2576b0
Signed-off-by: Uwe Poeche <uwe.poeche@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90081
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-25 16:49:02 +00:00
Yu-Ping Wu
f5f304a5f3 mb/google/skywalker: Disable CHROMEOS_USE_EC_WATCHDOG_FLAG
Now that we use the WATCHDOG_TOMBSTONE section to store the watchdog
event magic, there is no need to ask EC for the last reset reason. In
fact, with MEDIATEK_WDT_RESET_BY_SW enabled, EC doesn't even record the
watchdog reset reason.

Enable CHROMEOS_USE_EC_WATCHDOG_FLAG only if MEDIATEK_WDT_RESET_BY_SW is
disabled.

BUG=b:433636690
TEST=emerge-skywalker coreboot
TEST="elogtool list" contained "Hardware watchdog reset"
BRANCH=skywalker

Change-Id: Iac6ec72d5c148244ccbd7d1b02af78c359897d7d
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90174
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-25 16:48:41 +00:00
Yu-Ping Wu
e4b0410946 soc/mediatek/mt8189: Enable MEDIATEK_WDT_RESET_BY_SW
For MT8189, watchdog external reset is enabled by kernel configuration,
and EC ignores the reset signal AP_PMIC_WDTRST_L. Therefore, enable
MEDIATEK_WDT_RESET_BY_SW to allow triggering the secondary watchdog
reset via software instead of watchdog hardware.

BUG=b:433636690
TEST=emerge-skywalker coreboot
TEST=watchdog event added to eventlog on WDT timeout
TEST=cbmem logs preserved on WDT timeout
BRANCH=skywalker

Change-Id: I5ab73a06dd1bd7848e2e166d4717a970043ea20a
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90173
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-25 16:48:34 +00:00
Yu-Ping Wu
1ae0cebff3 soc/mediatek: Add Kconfig option MEDIATEK_WDT_RESET_BY_SW
When the watchdog timeout triggers a reset, the CPU will return to the
default frequency. If there is a mismatch between voltage and frequency,
the device will fail to reboot. Therefore, the kernel configuration
"mediatek,disable-extrst" is removed for MT8189, meaning the watchdog
timeout will trigger external reset, by notifying PMIC and EC via
AP_PMIC_WDTRST_L.

As we want to keep the watchdog status registers until coreboot runs,
the MT8189's EC simply ignores the external reset signal
AP_PMIC_WDTRST_L. Because EC ignores it, coreboot has to trigger the
secondary reset by another method other than watchdog hardware.

Therefore, introduce a Kconfig option MEDIATEK_WDT_RESET_BY_SW to
trigger the secondary reset by board_reset(), which is often implemented
by asserting a GPIO (for example GPIO_AP_EC_WARM_RST_REQ for MT8189).

BUG=b:433636690
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: Ib4c698bfd1b85705be05f40f385f4e252975c319
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90172
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-11-25 16:48:28 +00:00
Yu-Ping Wu
7d3bf767cc soc/mediatek/mt8189: Move WATCHDOG_TOMBSTONE from SRAM to SRAM_L2C
The purpose of the WATCHDOG_TOMBSTONE section is to temporarily record
the watchdog timeout event, before triggering the reboot. Then, in the
next boot, if WATCHDOG_TOMBSTONE contains the watchdog event magic, then
a watchdog event will be added to the event log.

The flow relies on the fact that the WATCHDOG_TOMBSTONE section can be
preserved across AP resets. However, for MT8189, the whole SRAM region
will be powered down during AP reset via GPIO AP_SYSRST_ODL (SYSRSTB).

Fortunately, the Kconfig option CHROMEOS_USE_EC_WATCHDOG_FLAG is also
enabled. Therefore, even if WATCHDOG_TOMBSTONE data is cleared, the
elog_handle_watchdog_tombstone() function can still obtain the correct
watchdog reset reason from EC.

On MT8189, L3C (used as SRAM_L2C) is powered on by default. Also, per
MT8189 PMIC configuration, a SYSRSTB reset will retain the L3C power.
Therefore, region data in SRAM_L2C can be preserved across AP resets.

Fix the WATCHDOG_TOMBSTONE preservation by moving it to SRAM_L2C.
Reduce PRERAM_CBMEM_CONSOLE by 1K for WATCHDOG_TOMBSTONE.

BUG=b:433636690, b:456672760
TEST=emerge-skywalker coreboot
TEST=watchdog event added to eventlog on WDT timeout
TEST=cbmem logs preserved on WDT timeout
BRANCH=skywalker

Change-Id: Id1cfc2700301ebb0b6399356b884b2473c883445
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90171
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-11-25 16:48:22 +00:00
Luca Lai
a64dd410d8 mb/google/fatcat/var/ruby: Update EN_SPK_PA GPIO pin configuration
Update EN_SPK_PA pin configuration based on the schematic to enable speaker function.

schematics: RUBY_EVT_0902_2112.pdf

BUG=b:452216678
TEST=Build FW and boot to OS, verify that the speaker is functioning
by playing a YouTube video.

Change-Id: Iabb3e9d214841aaa155ce5b782740ad0722722fa
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90169
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-25 16:47:31 +00:00
Swathi Tamilselvan
2f9b4ad6a5 soc/qualcomm/x1p42100: Add DFSR table configuration support
Add support to configure DFSR table, introduce qupv3_clock_v2
structure to calculate register addresses for serial engines 2
and 3. Update CBCR registers to use the new structure for QUPv3
clock enablement.

BUG=b:444617760
TEST=Create an image.serial.bin and ensure it boots on X1P42100.
Dump DFSR registers for corresponding QUP and check if values are
updated properly into correct register address.

Change-Id: Ibd7e4bf121bd99130336047a50ed70d4cbec2234
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90145
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-25 16:47:20 +00:00
Filip Lewiński
51e99de558 soc/intel/common/block/rtc/rtc.c: control Top Swap via CMOS option
Toggle the RTC BUC control bit for Top Swap bootblock selection based on
the "attempt_slot_b" flag CMOS option, allowing to select which of the
BOOTBLOCK or TOP_SWAP regions to boot from.

This means that after an update, the CMOS option can be set to boot from
the newer TOP_SWAP bootblock. In case of failure, CMOS can be cleared to
revert to the known-good base BOOTBLOCK.

This is part of ongoing implementation of a redundancy feature proposed
on the mailing list:
https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

Switching between identical bootblocks doesn't impact further boot flow,
i.e. selecting which FMAP region to load consecutive stages from.
That is to be enabled in following patches.

So far tested and enabled for the Alder Lake SoC.

TEST=Boot VP6650, setting the attempt_slot_b flag to different values,
observing that it resets/continues booting correctly.

Change-Id: Ib183a1f72ee8585b2c4ad4376344de33ff54cbb9
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90042
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2025-11-25 16:47:10 +00:00
Yidi Lin
56be23114e mb/google/rauru: Use chromeos-legacy.fmd for Hylia and Navi
The recent increase of the RW size to 1756KB (CB:89545) has led to an
FMAP incompatibility. This issue arises during testing when both the ToT
firmware (which utilizes a new FMAP layout) and the firmware
branch-built firmware (which relies on an older FMAP layout) are used on
the same device.

To address this testing failure and streamline the testing process, the
updated FMAP will be exclusively implemented for the new variant. The
Navi and Hylia devices will continue to use the legacy FMAP.

BUG=b:461559917,b:463050048
TEST=emerge-{rauru,tanjiro} coreboot chromeos-bootimage

Change-Id: Icb4a12030f7a2e05757c903b70899c07b92c9875
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90168
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-11-25 05:17:42 +00:00
Luca Lai
10802bac16 spd/lp5: Modify SPD for MT62F1G32D2DS-020 WT:D and K3KL8L80EM-MGCV
Modify ranksPerChannel and diesPerPackage attributes for
MT62F1G32D2DS-020 WT:D and K3KL8L80EM-MGCV.

TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I1069fac58d099d58f76fe268973081f49842f16d
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90123
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-25 04:44:11 +00:00
Arthur Heymans
e5d10e5d23 mb/lenovo/t480: Fix headphone jack
Add additional register configuration for the Realtek ALC257 audio
codec on the Lenovo ThinkPad T480. This includes:

- Hidden register SW reset sequence
- ClassD 2W amplifier configuration
- Jack detection (JD1) setup for headphone port
- Silence data mode threshold setting at -84dB

Shamelessly taken from google/brya/variants/pujjolo/hda_verb.c

Change-Id: Ib77138d782ceb9feeaef82935bc1c0d5c3066183
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90023
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-11-24 14:52:27 +00:00
Jarried Lin
40b2a2b03c soc/mediatek/mt8196/booker: Refactor CMO property clearing with loop
Replace multiple hardcoded clrbits64p calls with a loop over
booker_base. This improves readability and maintainability.

BRANCH=rauru
BUG=b:438666196
TEST=manual test

Change-Id: I4799bc3eff2ab24265bac093600948dccc4916de
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90143
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
2025-11-24 04:32:34 +00:00
Kun Liu
1b0f9c5458 mb/google/nissa/var/telith: Add parade touchscreen support
Add parade PRT3408 touchscreen support

BUG=b:461693725
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I7d320bcaf3554c9adde4813a366ee60c28b8cc13
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90093
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-24 03:12:45 +00:00
Matt DeVillier
ddb3f0b17f drivers/hwid_dmi: Populate SMBIOS product name from CBFS hwid file
Add driver to read 'hwid' file from CBFS and use it for SMBIOS product
name. Processes the ChromeOS-format HWID string by removing prefix
after colon, trimming whitespace, and extracting base name before
any hyphen/space. Returned string is normalized to have the first
character/letter capitalized, and the rest lower case. If no HWID file
is found in CBFS, the fallback is CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME.

This driver is intended to allow ChromeOS devices running upstream
coreboot to persist their board's unique HWID and use it as the SMBIOS
board name, but it is not limited to that function.

TEST=tested in MrChromebox downstream. Multiple devices which use the
same ChromeOS board but differ in HWID can use the same firmware image
and still be properly identified.

Change-Id: I1af1df4c79858d23ef71400abe72f41eec6c25c6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90063
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-11-23 20:07:54 +00:00
Fabio Baltieri
7a1e63308a acpigen_ps2_keybd: map insert
This is going to be used in some devices in place of KEY_ASSISTANT, map
it.

BUG=b:446676921
TEST=flashed and tested on a brox board, checked that the correct code
is generated with evtest

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Change-Id: I006c232c2924e8b6dc06338b0282c76f1f529a9e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90026
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-22 18:55:53 +00:00
Fabio Baltieri
607740999d acpigen_ps2_keybd: map capslock
Looks like some devices may be using the capslock key, this a standard
code, just map it.

BUG=b:446677367
TEST=flashed and tested on a brox board, checked that the correct code
is generated with evtest

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Change-Id: Ieb0f55e7f25a1b34d226efe12ad9dc481a53a082
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90025
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-22 18:55:46 +00:00
Fabio Baltieri
a7efa40e39 acpigen_ps2_keybd: map KEY_HOMEPAGE to 0xaa scancode and TK_HOME
Chromium OS EC has some specialized handling of chromebook specific
function keys on the keyboard top row, these have a function specific
action key code that is exposed to the OS and used to map their
position, and also a specific scancode that has to be mapped to a Linux
event code.

This adds the necessary mapping for KEY_HOMEPAGE, which is going to be
used in new devices.

The scancode picked is 0xe012, which maps to e02a or 0xaa, the
corresponding EC CL is:

https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/7118961

BUG=b:446007724
TEST=flashed and tested on a brox board with chromiumos, checked the
code with evtest

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Change-Id: I395721a342f507453dae19373df2f189ac1b5dac
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90024
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-22 18:55:35 +00:00
Jakub Czapiga
fd603e5102 libpayload: Add CBMEM_ID_MEMINFO to sysinfo
BUG=b:450374306
TEST=Build and boot Google/Brya

Change-Id: I16d51e9aab7ec3d7430a1e6b6467007a3669d083
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90120
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-11-22 18:55:00 +00:00
Jakub Czapiga
bae3e02662 include: commonlib: Move memory_info and dimm_info to commonlib
memory_info with dimm_info entries is available as CBMEM_ID_MEMINFO.
Moving the structures definitions to the commonlib allows the payloads
to easily access the memory information.

BUG=b:450374306
TEST=Build and boot Google/Brya

Change-Id: I25e788d5afd668e93f8ea60adaefb7b8b5d5ec28
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90119
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-11-22 18:54:55 +00:00
Jeff Xu
d03799ec3c soc/mediatek/mt8196: Configure registers and parameters required for MTE
To support Memory Tagging Extension (MTE), configure booker
(custom CI-700) registers related to MTE to set up MTE tag address.

According to CI-700 documentation, the por_mtu_tag_addr_base register is
only accessible by Secure accesses. Therefore these registers are now
configured in coreboot ramstage before passing to payloads.

BRANCH=rauru
BUG=b:438666196
TEST=manual test

Change-Id: I0d98cfee3e208a559116f84362528f005ea6f2c8
Signed-off-by: Jeff Xu <jeffxu@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90141
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-11-22 17:27:25 +00:00
Subrata Banik
7521f3ea83 soc/qualcomm/x1p42100: Define pre and post-RAM DMA coherent regions
This commit updates the linker script to properly define and name the
DMA coherent memory regions used before and after DRAM initialization.

1. Rename Pre-RAM DMA Region:
The existing `DMA_COHERENT` region allocated in BSRAM at `0x14857000` is
renamed to `PRERAM_DMA_COHERENT`. This aligns the linker script with the
code changes (in `mmu.c`) which use the more specific name for the early
boot DMA buffer.

2. Add Post-RAM DMA Region:
A new region, `POSTRAM_DMA_COHERENT`, is defined at the very start of
DRAM (`0x80000000`) with an 8KB size. This region is intended for
general-purpose DMA operations that occur after DRAM is active,
ensuring a reserved, known, and uncached region for peripherals.

The memory map diagram comments are also updated to reflect these new
region names.

BUG=b:456953373
TEST=Able to build and boot google/quenbi.

Change-Id: I6fb4b9bf3425b311169ac43e1997f6574b571e00
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90098
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-11-22 17:24:20 +00:00
Subrata Banik
d277b35307 soc/qualcomm/x1p42100: Relocate ddr_information and watchdog tombstone
This commit relocates the following two regions:
1. `ddr_information`
2. `WATCHDOG_TOMBSTONE`

Previously, these regions were allocated in a higher address range
(starting near 0x14800000).

The regions are now defined within SSRAM`:

- `ddr_information` is moved from `0x14860000` to `0x146ABFE8`.
- `WATCHDOG_TOMBSTONE` is moved from `0x14818FFC` to `0x146ABFFC`.

This memory map change updates the linker script's visual diagram and
section definitions to reflect the new memory layout.

BUG=b:456953373
TEST=Able to build google/quenbi.

Change-Id: I4545722a836ec472e8086d1a941515cb3956c763
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90052
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-22 17:24:13 +00:00
Subrata Banik
958099b114 soc/qualcomm: Map the post-RAM DMA coherent buffer
The MMU configuration in qc_mmu_dram_config_post_dram_init() needs to
include the memory region allocated for DMA coherent buffers.

Map the `postram_dma_coherent` region as UNCACHED_RAM to ensure memory
writes bypass the CPU cache hierarchy.

The mapping is only configured if the `_postram_dma_coherent` address
is different from `_preram_dma_coherent` address aka migration of the
region.

This is necessary for DMA operations that occur after DRAM is
initialized.

BUG=b:456953373
TEST=Able to build google/quenbi.

Change-Id: If5f625ad74f4f6ea244c8b377543be3666122cea
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90050
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-22 17:24:05 +00:00
Subrata Banik
931fa9c01d memlayout: Introduce PRERAM and POSTRAM DMA coherent regions
Refactor the DMA coherent memory region definition to support
stage-specific allocations.

In some boot flows, it is necessary to define separate DMA coherent
buffers for the early boot stage (e.g., romstage/bootblock) and the
later stage (ramstage). It allows the firmware to use only the memory
it needs, where it needs it, and prevents small-scale memory constraints
from crippling the overall boot flow.

The arch-specific, and now redundant, definitions of DMA_COHERENT are
removed from arm/memlayout.h and arm64/memlayout.h.

BUG=b:456953373
TEST=Able to build google/quenbi.

Change-Id: Ic32d14dda6cda0f731233dd3d86f3215c6af3637
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90049
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-22 17:23:55 +00:00
Subrata Banik
af9d809823 soc/qualcomm/x1p42100: Move coreboot stack to SSRAM
This patch relocates the coreboot stack from the BSRAM (Boot IMEM)
region to the SSRAM (Shared System RAM) region.

The 16K stack definition is moved from:

BSRAM region (0x14850000)

To:

SSRAM region (0x14680000)

This move is crucial because the BSRAM region is actively cleared during
the later stages of the IP loading process, which would wipe the stack
and lead to instability. Placing the stack in the persistent SSRAM
ensures it remains accessible throughout the early boot process.

BUG=BUG=b:456953373
TEST=Able to build google/quenbi w/ new stack region.

Change-Id: I59cd14fed2a5907bcbb8bed027dd5a55eb73e56d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90137
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-22 17:23:48 +00:00
Subrata Banik
fec1032ee8 arch/arm64: Add timestamps for Secure OS (BL32) loading
Add boot timestamps to measure the duration of loading the Secure OS
(BL32) payload in the `run_bl31()` function.

The Secure OS is loaded if the Kconfig option
`CONFIG_ARM64_USE_SECURE_OS` is enabled. The new timestamps are:

- "TS_TFA_LOAD_BL32_START": Placed immediately before the Secure OS
   (BL32) loading process begins.
- "TS_TFA_LOAD_BL32_END": Placed after the BL32 entry point information
   is set up and before the BL33 parameters are finalized.

This instrumentation helps profile the boot time cost of the Trusted
Firmware-A (TFA) BL32 component loading.

Change-Id: I6ca74b8d4b11dfab4829f8bc5fbaa39ee5212137
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90113
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-22 00:43:05 +00:00
Subrata Banik
d0177bd102 soc/qualcomm: Add QCLib execution timestamps
Instrument the Qualcomm QCLib flow with timestamps to measure
execution time for both the initial loading/running phase and the
subsequent re-entry phase.

The timestamps are placed as follows:
- TS_QUALCOMM_QCLIB_INIT_START/END: Tracks the execution of
  `qclib_load_and_run()`.
- TS_QUALCOMM_QCLIB_REINIT_START/END: Tracks the execution of
  `qclib_rerun()`, which typically handles the AOP bring-up.

This instrumentation helps in profiling and optimizing the boot
performance on Qualcomm platforms.

Change-Id: I200ea5a78f4630000e80aed6dc38581af4d2e8aa
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90112
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-22 00:42:58 +00:00
Subrata Banik
0145ebe847 commonlib: Add timestamps for Qualcomm QCLib and ARM TFA
This patch adds new timestamp IDs to track the execution flow within
the Qualcomm QCLib and the loading of the Secure OS (BL32) by the ARM
Trusted Firmware (TFA).

The following new IDs are introduced:
- TS_QUALCOMM_QCLIB_INIT_START (980)
- TS_QUALCOMM_QCLIB_INIT_END (981)
- TS_QUALCOMM_QCLIB_REINIT_START (982)
- TS_QUALCOMM_QCLIB_REINIT_END (983)
- TS_TFA_LOAD_BL32_START (998)
- TS_TFA_LOAD_BL32_END (999)

The reserved ID ranges are updated to accommodate these new vendor-
specific and architecture-specific timestamps:
- Intel/FSP range reduced from 950-989 to 950-980.
- A new range 980-990 is allocated for qualcomm/qclib.
- The Intel ME continued range is updated from 990-999 to 990-997.
- A new range 998-999 is allocated for ARM Trusted Firmware.

Change-Id: I904ac36862212a86961383dfe5e9b0f7ef0f02ea
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90111
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-22 00:42:51 +00:00
Jian-Jia Su
cf2978f4b6 drivers/vpd: Search VPD info at 0x0 first
We used to put SMBIOS header and other data before VPD.  That is not the
case anymore. New device will write the VPD starting at 0 instead of
0x600.  Search VPD at 0x0 to support this.

TEST=build and boot google/geralt. VPD is found both at 0 and at 0x600.

Change-Id: I7072f7c646b6b55d11bc06dba5674828246fa1d0
Signed-off-by: Jian-Jia Su <jjsu@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88466
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-11-21 22:16:15 +00:00
Sean Rhodes
a56a97d167 mb/starlabs/common/cfr: Adjust help text for S0IX
S3 now works on Windows, so don't recommend switching to S0IX.

Change-Id: I5f5dac0f2bf5eddbfef041b12a134bb70fdd7577
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90125
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-21 16:27:19 +00:00
Dtrain Hsu
541fd14fd9 mb/google/nissa/var/uldren: Increase Touch IC enable delay time
According to the datasheet and the LCD team’s response, increase Touch
IC enable delay time to resolve touch failure after resume.

BUG=b:458190286
TEST=1. Checked the touch screen power sequence waveform. The result is in b:458190286#comment4.
2. The touch feature works after resume.

Change-Id: Ia5a1d028721b1181d38730c23b27a80fa97e0dd7
Signed-off-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89937
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-11-21 16:27:07 +00:00
Luca Lai
0c18e7680a mb/google/fatcat/var/ruby: Remove GPP_D16 and GPP_D17 in fw_config.c
Due to project requirements, GPP_D16 and GPP_D17 are not used. This has been confirmed by both the schematic and the LCFC hardware engineers. Therefore, they should be removed from the fw_config.

schematics: RUBY_EVT_0902_2112.pdf

BUG=b:452216678
TEST=Build FW and boot to OS, check DMIC function works.

Change-Id: I195ad082836d3b8a4fa79cbbc9e4bffaec745011
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90071
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-21 16:26:48 +00:00
Terry Cheong
237944186e mb/google/nissa/pujjolo: update verb table
Update the silence detection threshold based on the new verb table
provided by Realtek team.

BUG=b:446120613
TEST=reboot, open camera app, press shutter. There should be sound.

Change-Id: I7d27a38e4068a72f4fb04321e46f0266161572e1
Signed-off-by: Terry Cheong <htcheong@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90118
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-21 05:57:59 +00:00
Matt DeVillier
cae53bea52 ec/google/chromeec: Add CFR options for keyboard backlight and fan control
Create a new header with CFR objects for keyboard backlight and
automatic fan control, which mainboards can include in their
setup menus in order to expose the options. The visibility of the
options are controlled by callbacks which test for device presence.

Change-Id: I2386b527f65b2e3b4ca43b9b65b69040abee00ad
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89831
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-11-20 19:19:18 +00:00
Matt DeVillier
1ca1dc6c31 ec/google/chromeec: Add ability to enable auto fan control via setup option
Allow enabling of automatic fan control via a setup option, while
preserving the functionality of the existing Kconfig symbol.

TEST=tested hooked up to a CFR option to toggle automatic fan control
at boot, with visibility controlled by fan presence, on a range of
ChromeOS devices with and without a PWM-controlled fan.

Change-Id: I0510c0d0bd79106036f77d59e04d455ee904ce6e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89830
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-20 19:19:08 +00:00
Matt DeVillier
450389be05 ec/google/chromeec: Add fan presence helper function
Add google_chromeec_has_fan() to determine if a board has a fan or not.
The function first tries the EC feature flag (EC_FEATURE_PWM_FAN),
falling back to a RPM read test if the flag is unavailable.

TEST=tested hooked up to a CFR option to enable auto fan control at
boot, with option visibility controlled by fan presence, on a range
of Chromebooks with and without PWM-controlled fans.

Change-Id: I2a920709f0e6780c779a87568d6a8d18f817c76d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89829
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-11-20 19:19:00 +00:00
Ana Carolina Cabral
9d355a39aa mb/amd/crater/ec.c: Enable power/reset for PCIe lanes
The EC controls the power and reset to some of the PCIe devices.

Change-Id: Ic607978e32486ecd4563c32cd6a5ff1dfd125013
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87221
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-20 17:40:33 +00:00
Maximilian Brune
141fd11d79 mb/amd/crater: Rename ETH_AIC_SLOT_ONLY -> PCIE_DT_SLOT
Also adds some help messages to make it more clearly on what this
Kconfig achives.

Change-Id: Ic74ea602c038f029a5b7b1edb256c23c6ad1ba9f
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90103
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-11-20 17:40:20 +00:00
Maximilian Brune
1e28ff6955 src/mb/amd/crater/port_descriptors_renoir.c: Prettify code
Doesn't change anything functionality wise, but passes the extended linter.

Change-Id: Ic6f1b3d9fb3fee7dca2ac0ef8909d6567abfc99f
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90102
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-11-20 17:40:04 +00:00
Ana Carolina Cabral
a48fd9ed7f soc/amd/cezanne: Add SOC_AMD_RENOIR as a Cezanne variant
AMD Renoir soc is very similar to Cezanne and has been used without
differentiation until now. Create the separation between SOCs using
Kconfig option to facilitate the customization of different features.
Also update SOC_AMD_RENOIR use on the crater mainboard.

Change-Id: I4783c4e3b17032b6d26ef67ddf954df3ce68fdf0
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87215
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-20 17:39:08 +00:00
Johann C. Rode
760e19e18f mb/lenovo/sklkbl: Use spd_tools infrastructure for SPD binaries
For the t470s variant, this patch replaces the vendor SPD binaries for
soldered-on RAM with ones generated from spd_tools. This is in
preparation for adding variants with more complex onboard RAM
configurations.

This patch has been successfully validated on hardware (Thinkpad T470s
20JT-S16E00 with 4GB soldered-on RAM and unpopulated DIMM slot).

Change-Id: I9cde4f05472105c238b3a8ee94cdedb89db08198
Depends-On: Ied92619130feaa160d01f75bc38230ab6a024ace
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90027
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-20 13:16:20 +00:00
Johann C. Rode
8a83b86254 spd/ddr4: add parts
This patch adds parts used on Lenovo Thinkpads:

Micron MT40A512M16HA-083E:A
Micron MT40A1G16HBA-083E:A
Samsung K4A8G165WB-BCPB
Micron MT40A512M16JY-083E:B
Micron MT40A1G16WBU-083E:B
Samsung K4A8G165WC-BCRC
Samsung K4AAG165WB-MCRC
SKHynix H5AN8G6NAFR-UHC
SKHynix H5AN8G6NAMR-UHC
Micron MT40A512M6LY-075:E
Micron MT40A256M16GE-083E
Samsung K4A4G165WE-BCRC

The SPD data (timing, configuration, etc.) has been extracted from datasheets and laptop schematics. When there has been conflicting data between these data sources, slower (safer) values were picked.

Change-Id: Ied92619130feaa160d01f75bc38230ab6a024ace
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90032
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-20 13:16:07 +00:00
Ian Feng
0ef4bd807c mb/google/ocelot/var/ocelot: Update DDR5 memory configs
This change updates memory configuration for DDR5.
1. Set SaGv frequencies
2. Configure gear settings
3. Map Channel/PHY clock

Bug=b:452542491
TEST=Build kodkod image.

Change-Id: I49939c8bde06b4a3148b48307b4ccbebf8ba560d
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90070
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-11-20 13:15:23 +00:00
Ian Feng
7b11254d58 mb/google/ocelot/var/kodkod: Add overridetree
Add override devicetree based on schematic_20251112.

BUG=b:452542491
TEST=emerge-ocelot coreboot

Change-Id: I3a0e914ac463258bc475ff94ec9ad574707cad4a
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90069
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-11-20 13:15:16 +00:00
Ian Feng
aa1d44b644 mb/google/ocelot/var/kodkod: Update gpio settings
Configure GPIOs according to schematics_20251112.

BUG=b:452542491
TEST=emerge-ocelot coreboot

Change-Id: I74890f5980d392fbee75559299fb56fca8ca996a
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90068
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-11-20 13:15:09 +00:00
Nicholas Chin
a363007c3b ec/dell/mec5035: Route power button event to host
Currently, pressing the power button results in the EC powering off the
system without letting the OS cleanly execute its shutdown procedures.
Sending command 0x3e with an argument of 1 to the EC tells it to route
power button events to the host so that the OS can determine what to do.

This command was found in the ec/google/wilco code in coreboot, which is
used on Dell's Latitude Chromebooks. Based on the CONFIG_EC_GOOGLE_WILCO
help text, the "Wilco" ECs run a modified version of Dell's typical
Latitude EC firmware, so it is likely that the two implementations share
commands. Examining LPC traffic on the Latitude E6400 did show that
vendor firmware was sending a 0x3e command to the EC, and reimplementing
it in coreboot allowed power button events to be handled by the OS.

Change-Id: I5ded315270c0e1efbbc90cfa9d9d894b872e99a2
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84878
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-19 13:59:08 +00:00
Nicholas Chin
18dbeca5f4 util/autoport/azalia.go: Select CONFIG_AZALIA_USE_LEGACY_VERB_TABLE
As of commit 31fc5b06a6 ("device: Introduce reworked azalia verb
table"), all boards using the old azalia verb table format must select
CONFIG_AZALIA_USE_LEGACY_VERB_TABLE. The generated output of autoport
uses the old format, so select the config.

This is only meant to be a temporary measure as opposed to reworking
autoport to produce the new format, as I would rather incorporate
hda-decoder's functionality to generate hda-verb.c instead of
duplicating efforts. Support for the new format in hda-decoder is
currently WIP on CB:84357.

Change-Id: I54c6a92a69039eb747ee8cc6d5186dc3a3c6acc8
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90055
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-19 13:58:33 +00:00
Kapil Porwal
e9c47bf99e drivers/intel/fsp2_0: Add 1-bpp monochrome option for VGA mode 12
Add a new Kconfig option, FSP_VGA_MODE12_MONOCHROME, to allow the
system to use a 1-bit-per-pixel (1bpp) planar VGA buffer during FSP
initialization instead of the standard 4bpp buffer. This is useful
in romstage where every byte is critical.

When this option is enabled, the FSP is expected to handle the
internal replication of the 1bpp data across the other three
color planes to render the monochrome image.

Key changes:
- Introduce FSP_VGA_MODE12_MONOCHROME Kconfig option.
- Automatically select FSP_VGA_MODE12 when the monochrome option is
used.
- Set FSP_VGA_MODE12_BPP to 0x1 when FSP_VGA_MODE12_MONOCHROME is
selected.

BUG=b:406725440
TEST=Verify VGA text rotation on Google/Felino.

Change-Id: Ie77c40025c13e52188439fffedc834c26338bfe3
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90072
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-19 13:57:02 +00:00
Kapil Porwal
f643141728 mb/google/fatcat: Option to enable monochrome VGA mode 12
Update the Fatcat mainboard Kconfig to select
FSP_VGA_MODE12_MONOCHROME. The FSP_VGA_MODE12_MONOCHROME option enables
the use of a minimal 1-bit-per-pixel (1bpp) framebuffer for early
sign-of-life (eSOL) messages, which significantly reduces the DRAM size
required for the framebuffer in romstage.

Key changes:
- Deselect FSP_VGA_MODE12 for CONFIG_FATCAT_VGA_MODE12_SUPPORT.
- Select FSP_VGA_MODE12_MONOCHROME instead.

BUG=b:406725440
TEST=Verify VGA text rotation on Google/Felino.

Change-Id: I172f01b9766d2aa8e2f86c399ba46f6be008fed3
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90074
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-19 13:56:48 +00:00
Kapil Porwal
e05492cfb4 soc/intel/pantherlake/romstage: Configure VGA mode 12 monochrome buffer
This commit implements support for the FSP_VGA_MODE12_MONOCHROME
Kconfig option within the Panther Lake romstage code.

By checking for the CONFIG_FSP_VGA_MODE12_MONOCHROME option, we
set the corresponding VGA_INIT_CONTROL_MODE12_MONOCHROME bit in
the FSP_M_CONFIG structure.

This ensures that when a 1-bit-per-pixel framebuffer is used, the
Intel FSP is correctly informed to replicate the data across the
remaining color planes for display, saving 75% of framebuffer memory
in romstage.

Key changes:
- Define the new VGA_INIT_CONTROL_MODE12_MONOCHROME control bit.
- Conditionally set this control bit in setup_vga_mode12_params()
when CONFIG_FSP_VGA_MODE12_MONOCHROME is enabled.

BUG=b:406725440
TEST=Verify VGA text rotation on Google/Felino.

Change-Id: I1dec24bb7ed44ca07babe0aa6886a50952d3faa2
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90073
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-11-19 13:56:41 +00:00
Kapil Porwal
d3760cdfdf mb/google/bluey: Configure QUP0 SE5 as I2C
eUSB repeater, which is an I2C device, is connected to QUP0 SE5.

BUG=none
TEST=Build and boot to Google/Quenbi.

Firmware log:
```
[INFO ]  VB2:vb2_digest_init() 3872 bytes, hash algo 2, HW acceleration enabled
[INFO ]  CBFS: Found 'fallback/i2c_fw' @0xaa280 size 0x576 in mcache @0xc77dd470
```

OS:
```
/sys/devices/platform/soc/bc0000.qcom,qupv3_0_geni_se/b94000.i2c/i2c-5
```

Change-Id: Ia6a3e1f68b945f93e77b4370f81015fbc68d74d3
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89931
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-19 13:55:57 +00:00
Kapil Porwal
abc87d533d mb/google/bluey: Introduce config to specify absence of USB-A port
This commit introduces the MAINBOARD_NO_USB_A_PORT Kconfig option
to allow boards derived from the 'bluey' base to specify when they
do not include a physical USB Type-A receptacle.

For boards like 'Quartz' which are Type-C only, this configuration
prevents attempts to initialize the USB-A retimer (which connects
via QUPV3_0_SE1 I2C bus) during the mainboard initialization sequence.
Skipping this unnecessary initialization avoids potential bus errors
on Type-C-only devices.

Key changes:
- Define new Kconfig option MAINBOARD_NO_USB_A_PORT.
- Select MAINBOARD_NO_USB_A_PORT for BOARD_GOOGLE_QUARTZ.
- In mainboard.c, conditionally execute the USB-A retimer
initialization based on the new configuration option.

BUG=b:445441291
TEST=Build and boot to Google/Quenbi.

Change-Id: Ia02092100c4e8c46106aff30db21461781d66419
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90075
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-19 13:55:52 +00:00
Matt DeVillier
872e06d60c mb/samsung/stumpy: inline fan thresholds and drop GNVS programming
- mirror Beltino’s thermal AML pattern by including `thermal.h` and
  using the static macros directly
- add `_INI` and `_STA`-guarded power resources so FAN4 idle state is
  established without relying on preseeded GNVS values
- remove the now-unused GNVS fan table and temperature fields from
  `acpi_tables.c`, leaving only the USB suspend defaults

This simplifies Stumpy's fan control and unifies it with newer boards
like Beltino and Jecht, and fixes an issue where the fan was not
starting automatically under Windows.

TEST=build/boot Win11, Ubuntu 25.10 on Stumpy, verify fan starts and
adjusts automatically, CPU temps kept under control.

Change-Id: Ie9c8c46e4bf3412ea60d7fe8f2d97651bca266f1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90056
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-19 13:55:25 +00:00
Luca Lai
8401bbd2ff mb/google/fatcat/var/ruby: Change touch panel address
Change touch panel address from 0x14 to 0x5d for EVT build.

BUG=b:452216678
TEST=Build FW and boot to OS, check touch function works.

Change-Id: Ic19ce19a7bc4c8e370b2f2078e8f457e4f275012
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90092
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-19 13:55:19 +00:00
Matt DeVillier
a4242e5c38 ec/starlabs/merlin: Fix get_ec_value_from_option() value validation
The function incorrectly treated option values as array indices.
Update the function to search the LUT array for the value, and return
it if found, otherwise return the fallback value (not index).

Update call sites to pass EC value constants (SEC_30, FN_CTRL, etc.)
as the fallback values instead of numeric indices.

TEST=build/boot starlabs/starlite, verify charge limit and other EC
options work properly and values set properly in ECRAM using ectool.

Change-Id: Ie44d912932c8a3cec6ce0829c024788421cf89aa
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90100
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-19 09:16:33 +00:00
Michał Kopeć
567470cbb3 payloads/edk2: Add iPXE EFI support for EDK2 payload
Add support for building iPXE as an EFI target and including it in
the EDK2 payload as a boot option. This allows network booting
directly from the UEFI boot menu without requiring a separate iPXE
ROM file, as it is integrated into the payload.

As the required payload-side changes are not yet upstream, guard
the option on !EDK2_REPO_OFFICIAL.

Adjust PXE Kconfig defaults so that PXE is built from source as
ipxe.efi when EDK2_ENABLE_IPXE is selected.

TEST=build/boot iPXE from edk2 boot menu on google/fizz.

Change-Id: Ied61c7b8aa7a34261d6c6f7fd089b1affdc7d3f6
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82721
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
2025-11-18 21:13:27 +00:00
Matt DeVillier
f40de4e162 payloads/ipxe: Default enable serial output only if CONSOLE_SERIAL
If coreboot serial output is not enabled, it is pointless to enable
iPXE serial console as there's nowhere for the outout to go.

Change-Id: I91e76f255a674f8bfb849310f791b57a8cbcfd09
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90061
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-18 21:13:17 +00:00
Matt DeVillier
962edb7e6d payloads/ipxe: Guard PXE_ROM_ID for non-EFI builds
This config has no use for EFI builds, so guard it as such.

Change-Id: I6a25533d716f8d46f69d9eb518e8a07f20050839
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90060
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
2025-11-18 21:13:11 +00:00
Matt DeVillier
a907c6fb8d payloads/ipxe: Default to building from master branch
per ipxe.org:
iPXE uses a rolling release model, in which every commit is intended
to be production-ready. You should always use the latest code.

TEST=build/boot ipxe.efi from master branch via EFI shell.

Change-Id: Iae03d94291a8c02c54eb77e61f878902fead27c2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90059
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-18 21:13:05 +00:00
Matt DeVillier
4081793ff2 payloads/external/edk2: Replace dependencies on EDK2_REPO_MRCHROMEBOX
Replace positive dependency on EDK2_REPO_MRCHROMEBOX with negative
dependency on EDK2_REPO_OFFICIAL for downstream-specific features.
This makes the logic more generic and allows other downstream repos
to use these features. Options which were selected by default when
EDK2_REPO_MRCHROMEBOX is used remain unchanged.

Change-Id: Ia31e48c5a04d8db8b0f5250a6302123361cc3660
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90057
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-18 21:12:59 +00:00
Cliff Huang
10d606bfca soc/intel/common/acpi: Add P2SB write functions
Add common PCR write functions to write values directly to PCR
registers. These functions complement the existing read and
write-OR functions and provide a complete PCR access interface
for ACPI code.
WPCR: Generic PCR write function in the ACPI library
PCRW: PCH-specific PCR write function that calls WPCR

BUG=none
TEST=Build test on platforms using PCR functions. Verify ACPI code can
successfully write to PCR registers using the new functions.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I2c74dffda94a3ab34bd71177a3878b8d4c3119cd
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90044
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kim, Wonkyu <wonkyu.kim@intel.com>
2025-11-18 20:06:50 +00:00
Michał Żygowski
7436c59875 util/amdtool: Add support for Phoenix AM5 CPUs
Add register tables and device IDs for Phoenix AM5 desktop CPUs.

TEST=Dump all data with amdtool on MSI PRO B650M-A.

Change-Id: Ia7af9194fb7516e98b7cddee2bfc65af12d56dc0
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90009
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-18 13:30:29 +00:00
Michał Żygowski
8f3626c4b5 util/amdtool: Add utility to dump useful information on AMD CPUs
Add an utility similar to inteltool, which dumps useful information
for porting a board to coreboot.

TEST=Use amdtool on Gigabyte MZ33-AR1 with vendor BIOS and coreboot.

Change-Id: I34405897d0f5670038e7923f3680a28090d92821
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89492
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
2025-11-18 13:30:21 +00:00
Nancy Lin
3cf976e51a soc/mediatek/mt8196: Add dual display pipe path
Add dual display pipe path. Also change the original single pipe path
with DSC engine configured in relay mode.

TEST=build pass and test display logo ok
BUG=b:424782827

Change-Id: I2373ea63a08bf25a7eef45b947d218b445b62130
Signed-off-by: Nancy Lin <nancy.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90039
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-18 07:37:31 +00:00
Nancy Lin
14595d64de lib/edid_fill_fb: Add dual pipe flag to lb_framebuffer_flags
Extend the lb_framebuffer_flags struct to include one more bitfield
'has_dual_pipe' to indicate dual pipe support.

TEST=firmware display ok, in depthcharge with https://crrev.com/c/7129839
BRANCH=none
BUG=b:424782827

Change-Id: I082be80b4606090ed219820a407d80d9f429ea7e
Signed-off-by: Nancy Lin <nancy.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90038
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-11-18 07:37:20 +00:00
Subrata Banik
486b1b51af mb/google/bluey: Cache low battery mode check
The function `google_chromeec_is_below_critical_threshold()`
communicates with the Embedded Controller (EC) via the eSPI bus or
similar interface. Calling this function multiple times during boot is
inefficient, as the battery state is static for the duration of the
current boot stage.

Introduce a new static inline wrapper function, `is_low_battery_mode()`,
which ensures that the EC is queried only once. This is achieved by
using a function-scope static variable initialized by the EC function,
leveraging C's guarantee that static local variables are initialized
only upon first call.

Replace the direct calls to the EC function in:
1. `lb_add_boot_mode()`
2. `mainboard_needs_pcie_init()`
3. `mainboard_init()`

This change optimizes boot time by eliminating redundant EC
communication checks and ensures non-boot critical componts are not
getting initialized during the low-battery or off-mode charging boot

BUG=b:460299891
TEST=Ensures non-boot critical componts are not getting initialized
during the low-battery or off-mode charging boot.

Change-Id: I05fa17866c4952c3f3ad552b969dbe0d023b30a6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90020
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-18 05:00:35 +00:00
Subrata Banik
33418b7e68 soc/qc/x1p42100: Disable compression for peripheral firmware binaries
The firmware binaries for UART, SPI, I2C, and GSI are loaded early in
the boot process. Disable CBFS compression for these files by explicitly
setting $(CBFS_..._compression) to 'none'.

This ensures the firmware is stored and loaded as a raw binary,
mitigating potential boot time impact with decompression.

BUG=b:449871690
TEST=Able to save ~10ms of the boot time while booting google/quenbi.

Change-Id: I0418aadeb860143e766b0fe1ba10a0316d4cc6a7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90040
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-18 05:00:18 +00:00
Subrata Banik
5bfc2d23bb soc/qc/x1p42100:: Select Secure OS options in SoC Kconfig
Refactor Kconfig dependency by moving the selection of Secure OS
(TrustZone/TEE) features from the mainboard configuration to the
specific SoC configuration layer.

The selections for `ARM64_USE_SECURE_OS` and
`ARM64_USE_SECURE_OS_PAYLOAD` are moved from `BOARD_GOOGLE_BLUEY_COMMON`
to `SOC_QUALCOMM_HAMOA`.

This ensures that the Secure OS requirements are correctly associated
with the Hamoa chipset family itself, leading to better modularity and
future compatibility for Hamoa-based platforms.

Crucially, this change allows for precise control of the Secure OS
(BL32 firmware) applicability. By selecting the feature only within
`SOC_QUALCOMM_HAMOA`, we can ensure that platforms utilizing the
"Purwa SoC" family (which currently does not have a ready/available
SecureOS) automatically avoid the selection of these Kconfig options.

The change is verified by ensuring the QTEE (SecureOS) feature is
disabled for platforms using the Purwa SoC, specifically verified on the
google/quenbi mainboard.

BUG=b:459268465
TEST=Ensure disabling QTEE aka SecureOS feature for google/quenbi w/
Purwa SoC.

AP firmware log shows the expected path taken when SecureOS is disabled:

```
WARNING: No QTEE entry point provided by BL2 boot loader,
Booting device without QTEE initialization.
```

Change-Id: Ic82a29a4330cc6e5f99727fc40ec73b38cbbc72d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90011
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-18 05:00:07 +00:00
Subrata Banik
f5f943c1c3 bluey/kconfig: Consolidate SPI flash driver selection
Simplify board-level Kconfig by consolidating the selection of SPI flash
drivers into the common configuration option.

Previously, individual board models explicitly selected their specific
SPI flash drivers (e.g., SPI_FLASH_MACRONIX, SPI_FLASH_WINBOND).

This patch standardizes the approach by:
1. Selecting `SPI_FLASH_INCLUDE_ALL_DRIVERS` in
   `BOARD_GOOGLE_BLUEY_COMMON`.
2. Removing the redundant vendor-specific selects from
   `BOARD_GOOGLE_MODEL_BLUEY`, `BOARD_GOOGLE_MODEL_QUENBI`, and
   `BOARD_GOOGLE_MODEL_QUARTZ`.

This change ensures all derived board models inherit the comprehensive
set of SPI flash drivers, simplifying maintenance and improving
flexibility for multi-vendor support.

BUG=b:456953373
TEST=Able to verify that the SPI flash getting correctly probed.

Change-Id: I3eb573d0069bfc1d7caab36c9a7a2a223d81c5df
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90051
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-18 04:59:55 +00:00
Karthikeyan Ramasubramanian
ee59936e83 commonlib/device_tree: Add an API to check if a DT is an overlay
Add dt_is_overlay() API to check whether the input devicetree is
actually an overlay DT. Payload will use this API when parsing an input
image which is a collection of base and overlay devicetree blobs.

BUG=b:394980221
TEST=Build firmware image for Rauru/Hylia and boot to OS. Ensure that
the API correctly identifies the base and overlay DTs.

Change-Id: I2fc54e3d9e63ebc993c8ce6a7d4a7224a9251497
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90028
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-17 15:40:28 +00:00
Tongtong Pan
0416ac9829 mb/google/var/fatcat/lapis: Modify type-A USB3 port0/1 tx_de_emp
Fix USB 3.2 Type-A port0/1 Tx compliance failures in EA test
- De-emphasis test failed: Actual value = 0.000000 dB,
requirement: -7.0 dB <= value <= -2.1 dB
- Preshoot test failed: Actual value = 0.000000 dB,
requirement: 1.2 dB <= value <= 3.2 dB
Set Type-A USB3 port0/1 tx_de_emp to 0x4 for signal integrity

BUG=b/451560515
TEST=build FW and check Type-A
USB3 port0/port1 RX pass in EA test

Change-Id: I1a563fbc27d2dac8b57a62b7bfded73e1a6732cf
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90004
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-17 02:15:17 +00:00
Riku Viitanen
dfe553aebb util/intelvbttool/Makefile: Add install target
Change-Id: Id69f8e4ea426bc60080cdfd004890a87b1720cd1
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90014
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-16 18:38:05 +00:00
Michał Żygowski
493e3d182e payloads/external/iPXE: Allow building EFI target
Add a Kconfig to enable building iPXE for EFI target, which can be
executed from EDK2. If not selected, iPXE will be built for use with
legacy BIOS. Add support to the Makefile to build the EFI target.

Change-Id: I7f247a59a65aeb18a67475d4d543f519af88aeb9
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83385
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-16 18:37:18 +00:00
Hari L
62fc93de90 soc/qualcomm/x1p42100: Add NVMe Power Loss Notification GPIO configuration
Add support for configuring the NVMe Power Loss Notification (PLN)
GPIO before powering on the NVMe device.

The Hamoa target has the PLN signal wired to SoC GPIO 157. The voltage
level conversion circuitry between the SoC (1.2V) and NVMe (3.3V) causes
the PLN signal voltage level to vary depending on the NVMe part used.

This change configures GPIO 157 as an input with no pull resistors and
2mA drive strength to ensure proper PLN signal handling and allow the
GPIO to be used for other hardware configurations.

Changes:
- Add NVME_PLN_GPIO definition for GPIO(157)
- Add nvme_core_pln_gpio() function to configure PLN GPIO
- Update gcom_pcie_power_on_ep() to call nvme_core_pln_gpio() before
  enabling NVMe power regulator

TEST=Boot the Google/Bluey board and verify NVMe device is detected
and functional

Debug logs:

Initializing NVMe controller 1e0f:000c
nvme_ctrlr_init: PCI Command register = 0x2
nvme_ctrlr_init: PCI Status register = 0x10
nvme_ctrlr_init: PCI Command after bus master enable = 0x6
iosq_sz = 11, iocq_sz = 11
nvme_wait_status: Waiting for CSTS & 0x1 == 0x0, timeout=30000 ms
nvme_ctrlr_init: Waited 100ms after controller disable
nvme_enable_controller: CSTS before enable = 0x0
nvme_enable_controller: CAP register = 0x303c03ffff
nvme_enable_controller: CAP.TO timeout = 30000 ms
nvme_enable_controller: Writing CC register = 0x460001
nvme_enable_controller: CC register readback = 0x460001
nvme_wait_status: Waiting for CSTS & 0x1 == 0x1, timeout=30000 ms
nvme_enable_controller: CSTS after enable = 0x1 (status=0)
Identified NVMe model KBG50ZNS256G KIOXIA
Added NVMe drive "NVMe Namespace 1" lbasize:512, count:0x1dcf32b0

Change-Id: Icc22cfd397a0adbc051b2b1a2178aeedb7389ac0
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90037
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-16 18:36:26 +00:00
Hari L
2b7b89ae31 soc/qualcomm/x1p42100: Update PCIE PHY init sequence
Update PCIE PHY sequence as per hardware setting reference(HSR)
specifically, PCIE RC Config sequence(PCIE RC Cfg Seq).

Key changes:

- Add RX1-specific overrides applied after common RX settings
- Update TX lane mode register (LANE_MODE_3: 0x90 -> 0x51)
- Modify RX calibration and equalization parameters
- Adjust RX signal detection level (0xAA -> 0xCC)
- Add NVME_PLN_GPIO definition for Power Loss Notification

The changes ensure proper PHY initialization for PCIe Gen 4 link
establishment and improve signal integrity.

TEST=Boot the Google/Bluey board and check that the link is up

Debug logs:

[INFO ]  Enumerating buses...
[SPEW ]  Show all devs... Before device enumeration.
[SPEW ]  Root Device: enabled 1
[SPEW ]  CPU_CLUSTER: 0: enabled 1
[SPEW ]  DOMAIN: 00000000: enabled 1
[SPEW ]  PCI: 00:00:00.0: enabled 1
[SPEW ]  Compare with tree...
[SPEW ]  Root Device: enabled 1
[SPEW ]   CPU_CLUSTER: 0: enabled 1
[SPEW ]   DOMAIN: 00000000: enabled 1
[SPEW ]    PCI: 00:00:00.0: enabled 1
[DEBUG]  Root Device scanning...
[SPEW ]  scan_static_bus for Root Device
[DEBUG]  CPU_CLUSTER: 0 enabled
[INFO ]  Setup PCIe in RC mode
[DEBUG]  Skipping pipe
[DEBUG]  PCIe QPHY Initialized took 13us
[INFO ]  PCIe Link speed configured in Gen 4
[INFO ]  PCIe link is up
[NOTE ]  PCIe enumerated succussfully..
[DEBUG]  DOMAIN: 00000000 enabled
[DEBUG]  DOMAIN: 00000000 scanning...
[DEBUG]  PCI: pci_scan_bus for segment group 00 bus 00
[DEBUG]  PCI: 00:00:00.0 subordinate bus PCI Express
[DEBUG]  PCI: 00:00:00.0 [17cb/0111] enabled
[DEBUG]  PCI: 00:00:00.0 scanning...
[SPEW ]  do_pci_scan_bridge for PCI: 00:00:00.0
[DEBUG]  PCI: pci_scan_bus for segment group 00 bus 01
[DEBUG]  PCI: 00:01:00.0 [1e0f/000c] enabled
[INFO ]  PCI: 00:00:00.0: Setting Max_Payload_Size to 256
		for devices under this root port
[DEBUG]  scan_bus: bus PCI: 00:00:00.0 finished in 29 msecs
[DEBUG]  scan_bus: bus DOMAIN: 00000000 finished in 60 msecs
[SPEW ]  scan_static_bus for Root Device done
[DEBUG]  scan_bus: bus Root Device finished in 220 msecs
[INFO ]  done

Debug logs show successful PCIe enumeration with Gen 4 link up
and device [1e0f/000c] detected.

Change-Id: Ifb07839818e30622e35b6ee39af824fd5f19dec5
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90036
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-16 18:36:21 +00:00
Maximilian Brune
91594f4894 drivers/option/cfr.c: Replace memcpy() to avoid uninitialized object
When updating clang to version 21.1.5, we now get the following error
when compiling the CFR code.
```
src/drivers/option/cfr.c:287:19: error: default initialization of an
      object of type 'struct sm_object' with const member leaves the object uninitialized
      [-Werror,-Wdefault-const-init-field-unsafe]
  287 |         struct sm_object sm_obj_copy;
```

In this specific case its actually not an issue, but initialize the
variable from the start to avoid the error and arguably make the code
easier to read.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ib0b22e20a7482ab29d997a3e3c3bec4a1db1a4f1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89958
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-16 18:35:41 +00:00
Filip Lewiński
04ea4724e2 Makefile.mk: separate bootblocks into BOOTBLOCK and TOPSWAP
Add Kconfig INTEL_TOP_SWAP_SEPARATE_REGIONS. When enabled, place the
regular bootblock in BOOTBLOCK and the Top Swap bootblock in TOPSWAP
to simplify A B updates. This lays groundwork for redundancy where one
bootblock remains a read only golden copy and the other is replaceable.

No swap control logic is added in this change. The option depends on
INTEL_ADD_TOP_SWAP_BOOTBLOCK and defaults to n so existing builds are
unchanged. A custom .fmd is required with BOOTBLOCK and TOPSWAP added
at the end of the image.

Background and update flow are described here:
Link: https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5Y
V35/

TEST=Build and run Protectli VP6650 (ADL-P), boots successfully with
correct microcode

Change-Id: I489406dd8d08ad85bb46324d3d009acb49b6c52a
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89570
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2025-11-16 18:35:27 +00:00
Filip Lewiński
f164feba3e ifittool: allow adding files from a separate region
Allows ifittool to add FIT entries for files that are located in a
different FMAP region than the FIT table.

The region from where to source the file can be specified with -R.
If not given it defaults to using the value of the mandatory -r,
for full backwards compatibility.

Example: Tested with a custom binary with the bootblock and
corresponding FIT table in a separate region, and the microcode still
in the COREBOOT region:

λ ./ifittool -f test_ts.rom -a -n cpu_microcode_blob.bin -t 1 \
	-r BOOTBLOCK \
	-R COREBOOT \
	-s 4

Change-Id: I7e49247f280ec118e09cf173795d7602a4c0d7f6
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89608
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-16 18:35:12 +00:00
Yu-Ping Wu
91073f37d7 mb/google/brya: Increase RW_SECTION_* by 256KB for 16MiB boards
As the payload (depthcharge) is getting bigger for new features, the RW
CBFS sections for boards with 16MiB flash are not large enough.
Therefore, reduce RW_LEGACY from 1M to 512K, and increase each of
RW_SECTION_A and RW_SECTION_B by 256K.

NOTE: This is a RO/RW incompatible change, and should NEVER be
cherry-picked to firmware branches.

BUG=b:459853033
TEST=cq
BRANCH=none

Change-Id: If1b998e4ac8e5f00dee0b8afcf324c5f6bab697c
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90033
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-11-16 14:57:58 +00:00
Ingo Reitz
a43498e193 util/inteltool: Enable dumping GPIOs from Tiger Lake IoT PCH
Tested on Intel i5-1145GRE and it worked.

Change-Id: I0731e651eafe8635c50546eafdfccd00b74bcd2f
Signed-off-by: Ingo Reitz <9l@9lo.re>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90034
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-15 19:30:19 +00:00
Maximilian Brune
04778ddd38 drivers/option/cfr: Remove old sm_object from constructor
There is no reason I can think to also pass the old object into the
constructor considering that the new objects contains the exact same
contents during that call (it's copied over a few lines above).

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Idd5b34134b6064c19266448b551248eb29e097fe
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89957
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-15 15:27:32 +00:00
Subrata Banik
b535db8f1e soc/intel/cmn/usb: Add helper macro for USB 3.0 port TX configuration
Introduce the `USB3_PORT_TX_CFG` macro to simplify the definition of
`usb3_port_config` structures.

This macro allows platform code to easily configure the Transmit
De-emphasis (`tx_de_emp`) value for a specific USB 3.0 port (identified
by `ocpin`).

This improves readability and reduces boilerplate when tuning signal
integrity settings for different USB ports on the board.

TEST=Able to build and boot google/kinmen.

Change-Id: I42565e2c573dfcff244a81bf7bcb9749eca52c05
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90021
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-15 08:56:01 +00:00
Matt DeVillier
c197643d44 drivers/intel/gma/acpi: Add power management methods for GFX0
Add ACPI power state methods (_PS0, _PS3, _S0W, _S3D) to the GFX0
device definition to fix VIDEO_TDR_FAILURE 0x116 errors when
resuming from S3 sleep under Windows on modern Intel platforms
(TGL and newer).

Windows requires these methods to properly manage GPU power states
during sleep/resume cycles. Without them, Windows cannot determine
the correct power state transitions, leading to display driver
timeouts on resume.

The methods are implemented as no-ops since integrated graphics
power is managed by the platform, but Windows needs the method
definitions to properly initialize and restore the GPU after S3
resume.

TEST=build/boot starlabs/starlite_adl, verify S3 resume from
Windows works properly without a VIDEO_TDR_FAILURE BSOD.

Change-Id: Ib3f8060dee3281c2281d4e719be9aff9e0239b49
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90013
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-14 16:41:50 +00:00
Maximilian Brune
773997c92d drivers/intel/touch: Avoid returning undefined pointer
Currently we may return an undefined pointer called
`none_driver_config` since stack variables are not by default
initialized to 0/NULL.
This also causes an issue when updating to a clang version 21.1.5 from
version 18.1.8, since it complains about this very issue.

returning NULL is fine, since the macros in this file actually depend on
it to figure out where to get the config from.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7b719ca9fd41409375f635b1dcddbc5796b48fe7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89940
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-11-14 16:28:29 +00:00
Matt DeVillier
9dc35142ac soc/amd/stoneyridge: Generate SATA ACPI registers at runtime
Convert SATA controller ACPI OperationRegion and Field definitions from
static ASL code to runtime-generated acpigen code. This allows the SATA
registers (STB5, SB5, and port fields P0ER-P3PR) to be conditionally
included in ACPI tables only when the SATA controller (device 00:11.0)
is enabled in the devicetree.

Including them unconditionally when the SATA PCI device is disabled
causes Windows to BSOD (ACPI BIOS ERROR), since the OpRegion references
a non-existent device.

Changes:
- Move SATA OperationRegion generation to sata.c using acpigen APIs
- Remove static SATA fields from acpi/pci_int.asl
- Add stoneyridge_sata_ops with acpi_fill_ssdt callback
- Update chipset_st.cb and chipset_cz.cb to use stoneyridge_sata_ops
- Remove Kconfig for SoC common SATA code, since no longer used

This reduces ACPI table size when SATA is disabled and properly scopes
SATA registers to the SATA device.

TEST=boot Win11 on google/liara without a BSOD

Change-Id: I6e7a9a60e3622368eac83c36efd384c8d92c2b05
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89855
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-11-14 16:28:19 +00:00
Karthikeyan Ramasubramanian
d62653749c payloads/libpayload: Support legacy LZ4 compression format
Linux kernel images from upstream tree are compressed using legacy LZ4
format and not the modern LZ4 format. Hence support legacy LZ4
compression format to decompress and boot upstream Linux kernel images.
Also add unit test case to verify the currently supported LZ4
compression format as well as legacy LZ4 compression format.

References:
* https://github.com/lz4/lz4

BUG=None
TEST=make tests/liblz4/lz4-test
[==========] tests_liblz4_lz4-test(tests): Running 4 test(s).
[ RUN      ] test_lz4
[       OK ] test_lz4
[ RUN      ] test_lz4_partial_decompression
[       OK ] test_lz4_partial_decompression
[ RUN      ] test_legacy_lz4
[       OK ] test_legacy_lz4
[ RUN      ] test_legacy_lz4_partial_decompression
[       OK ] test_legacy_lz4_partial_decompression
[==========] tests_liblz4_lz4-test(tests): 4 test(s) run.
[  PASSED  ] 4 test(s).

Change-Id: I7e3d407fc313e0937fd8d327840534de60d8c625
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89854
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-11-13 23:45:02 +00:00
Kilian Krause
29faf77d4a mb/siemens/mc_rpl1: Limit CPU RP1 to PCIe Gen2 speed
Configure CPU root port 1 to operate at PCIe Gen2 speed instead of
the default Gen3. This change addresses signal integrity issues on
the PCIe link that prevent reliable operation at Gen3 speeds.

TEST=Booted on mc_rpl1 and verified CPU RP1 operates at Gen2 speed
with `lspci -vv -s 01:00.0 | grep LnkSta`. Output shows
`LnkSta: Speed 5GT/s (downgraded), Width x2`

Change-Id: I35650d46d4c2ac6942b2e68a4fd23fe875bd0c10
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89765
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-13 15:00:05 +00:00
Kilian Krause
fad0908c5b soc/intel/alderlake: Make CPU RP PCIe speed configurable
Add PCIe speed configuration for CPU root ports in FSP-M. Previously,
only PCH root port speed could be configured via FSP-S. Since CPU root
ports are initialized in FSP-M, they require configuration during
romstage.

This change uses the pcie_speed_control_to_upd() helper (now available
in the shared header) to convert devicetree PCIE_SPEED_control values
to FSP UPD indices. The configuration respects the pciexp_speed CMOS
option override if present, otherwise uses the devicetree setting.

TEST=Booted on mc_rpl1. Configured CPU RP to different PCIe speeds
(Gen1/Gen2/Gen3) via devicetree and verified correct link speed
negotiation with lspci for each configuration.

Change-Id: If3d871f238e7f063fef01c68cc371ae72ec9642c
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89764
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-13 14:59:57 +00:00
Maximilian Brune
04d5201426 treewide: Fix include guards
Include guards should cover the whole file.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Idbb7b26b31460ad5ac6b8a55a41eb274a8fcec92
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89871
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-11-13 14:58:40 +00:00
Simon Yang
971f10d1d7 mb/google/var/fatcat/lapis: set custom SVID/SSID to load fw for CS35L56
The Lapis board has a Cirrus CS35L56 smart audio amplifier, which needs
board-specific firmware to work properly [1]. The OS uses the SVID/SSID
of the host PCI audio interface to know which firmware file to use.

Set the correct SVID/SSID for Lapis so that the OS can load the correct
firmware for the CS35L56.

[1]: https://www.kernel.org/doc/Documentation/sound/codecs/cs35l56.rst

BUG=b/458444964, b/454824561
TEST="lspci -s 00:1f.3 -x and check value in offset 0x2c-0x2f"

Change-Id: Ie726d3d1c1a42f1961a63d62f3bb8809f6a29d29
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89978
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-13 11:07:23 +00:00
Subrata Banik
ace2e540d0 soc/intel/pantherlake: Update CONSOLE_UART_BASE_ADDRESS Kconfig value
The console UART base address for Panther Lake is being updated from
0xfe036000 to 0xfe02c000 (as per FSP version 3272). This correction
ensures the console initializes with the correct UART base address.

TEST=Able to get FSP debug log while building google/fatcat.

Change-Id: Ic123189fb5689318a4940edcfcf206c32e3ccf26
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89981
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-13 03:33:39 +00:00
Subrata Banik
a65d9fe589 mb/google/fatcat: Remove FSP_UGOP_EARLY_SIGN_OF_LIFE from Lapis
The option FSP_UGOP_EARLY_SIGN_OF_LIFE is not supported for the 'lapis'
and should be removed from its Kconfig selection.

BUG=b:459309919
TEST=Able to see firmware splash screen while booting google/lapis.

Change-Id: Ifcc7f4fe8658cf8d2fdada5a5de84c8ee352861a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89980
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-13 03:33:32 +00:00
Elyes Haouas
729918628d 3rdparty/blobs: Update to upstream main
Updating from commit id a0726508b86d:
2025-02-06 17:31:46 +0800 - (soc/mediatek/mt8196: Update SSPM firmware to v4.0)

to commit id 2aefd97c3e01:
2025-10-06 10:54:06 +0800 - (soc/mediatek/mt8196: Update PI_IMG firmware to v1.1)

This brings in 36 new commits.

Change-Id: I7c2ffc22d24f7e615ef081e439646578b4ab7b3a
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89861
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-11-13 01:29:59 +00:00
Johann C. Rode
d4bee96484 mb/lenovo/sklkbl: refactor memory_init_params to use gpio_base2_value()
Cosmetic fix validated on a Thinkpad T470s.

Change-Id: I7e2032a665933cb7e002a7202bcd4305dfcdbed4
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89864
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-12 15:39:52 +00:00
Maximilian Brune
2a9deabc35 commonlib/coreboot_tables.h: Fix lb_smmstorev2 alignment
We have a hard alignment to LB_ENTRY_ALIGN (4). We check for an
alignment of 4 bytes at the beginning of each lb_record. But since it
was 8 byte aligned, it was also automatically 4 byte aligned.
It therefore wasn't detected by coreboot.

This will break payload implementations that rely on the 8 byte
alignment for this specific struct. But since lb_smmstorev2 has only
been recently updated in commit 5bf88a44e9 ("drivers/smmstore:
Support 64-bit MMIO addresses"), one can only hope that no payloads
were updated to this yet.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ib6171b7d4bd08b8a1559833ddb048644ff082b73
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89902
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-11-12 15:38:45 +00:00
Michał Żygowski
0ba4505024 payloads/external/edk2/Makefile: Configure AP wakeup in UEFI payload
PcdFirstTimeWakeUpAPsBySipi controls the sequence of IPIs sent to APs
during AP wakeup in UefiCpuPkg. Since coreboot leaves APs parked in
halt loop, SIPI is not enough to wake them up. They need to go through
regular INIT-SIPI-SIPI sequence. Set PcdFirstTimeWakeUpAPsBySipi to
FALSE to cause the MP code in UEFI Payload to send INIT-SIPI-SIPI
sequence, otherwise the APs are not detected in UEFI Payload.

Additionally, after rebasing to the latest UefiCpuPkg, CpuDxe now calls
MpInitLibStartupAllCPUs() while setting up per-CPU exception stacks.
If we leave `PcdFirstTimeWakeUpAPsBySipi` at its default (TRUE), only a
SIPI is issued on the first wake attempt. The APs that coreboot parks in
an HLT loop never acknowledge that SIPI, the DXE driver trips
`ASSERT_EFI_ERROR()` and the UEFI payload reboots straight back into
coreboot. Explicitly set the PCD to FALSE so the INIT-SIPI-SIPI flow is
used and all cores report in.

before:
MpInitLib: Find 1 processors in system.

after:
MpInitLib: Find 4 processors in system.


TEST=edk2 boots cleanly on Star Labs Lite ADL (Intel N200) and
Gigabyte MZ33-AR1; DXE log shows all processors detected.

Change-Id: I299b74892a56894c3e15507b507a50bdf7e59860
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89210
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-12 14:37:47 +00:00
David Lin
87c3373925 mb/google/fatcat: Add FW_CONFIG Support for TAS2563
This change adds support for the TAS2563 codec in the device tree
and enables it based on the fw_config.

BUG=b:451935496
TEST=Build and boot to Android16 with Linux 6.12.52 and check tas2563 audio driver was probed successful.

Change-Id: I924518aab5463ed49bd2341cab0104e6ed3ed14b
Signed-off-by: David Lin <david.lin@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89879
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Chiang, Mac <mac.chiang@intel.com>
2025-11-12 14:37:29 +00:00
David Lin
e08a35f806 drivers/sof: Add support for tas2563 speaker topology
Enables correct identification of boards using tas2563 speaker amplifier
by SOF Windows drivers.

BUG=b:451935496
TEST=Build and boot to Android16 with Linux 6.12.52 and check tas2563 audio driver was probed successful.

Change-Id: I7dd0276a44ebb9b0712589c28ac017bff1ed5b1a
Signed-off-by: David Lin <david.lin@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89878
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-12 14:37:11 +00:00
David Lin
a3ea128ecf drivers/i2c/tas2563: Add driver for generating device in SSDT
This driver uses the ACPI Device Property interface to generate
the required parameters into the _DSD table format expected by
the kernel.

This was tested on the fatcat/variants/ruby mainboard to ensure
that the SSDT contained the equivalent parameters that are provided
by the current DSDT object.

BUG=b:451935496
TEST=Build and boot to Android16 with Linux 6.12.52 and check tas2563 audio driver was probed successful.

Change-Id: I801ef13937078ca9cfcd3610b1aa8aaedbaf1cf1
Signed-off-by: David Lin <david.lin@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89877
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Chiang, Mac <mac.chiang@intel.com>
2025-11-12 14:30:33 +00:00
Alicja Michalska
240e17025c src/soc/intel/ptl: Add LPSS UART DMA control
This patch implements passing a "SerialIoUartDmaEnable" pointer to
FSP-S by parsing the devicetree.

Default (0) means PIO, while 1 means DMA.

Change-Id: Id0acfe0b30899a3019ea7e54067fc06cbc56bab6
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89989
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-11-12 14:30:18 +00:00
Kilian Krause
afa6c31ef5 soc/intel/alderlake/romstage/fsp_params.c: Refactor pcie_rp_init()
Extract PCIe RP clock configuration logic to a separate function,
following the same refactoring done for Meteor Lake in CB:89790.

Change-Id: I0abc48c066697199acfc7b77ee553e4e8c7b5119
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89802
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-11-12 14:29:53 +00:00
Angel Pons
ec5b5386d4 soc/intel/mtl/romstage/fsp_params.c: Refactor pcie_rp_init()
Extract the logic to configure PCIe RPs' clock source and clock request
signals to a separate function, so that the loop in `pcie_rp_init()` is
easier to reuse to program other PCIe-related settings.

While we're at it, make a few small improvements such as printing which
RP index is missing the clock structure definition as well as using the
`BIT()` macro (which is already used in `pcie_rp_init()`. Also retype a
few variables for the RP index, as it is never bigger than a `uint8_t`,
the type of the return value of the `get_max_pcie_port()` function.

Change-Id: I5583ef863630790cedd901e7bd30f4606f887a04
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89790
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-12 14:29:39 +00:00
luca.lai
4c5c62bc8d mb/google/fatcat/var/ruby: Modify gpio pin for enabling audio function
Correct gpio pin GPP_H17 to enable audio function.

schematics: RUBY_EVT_0902_2112.pdf

BUG=b:444302973
TEST=Use local test bios and kernel to test audio function works.

Change-Id: I2145349f23915b7fe7ba6002ef6b5cbdfea3e5bb
Signed-off-by: luca.lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89991
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-12 14:29:30 +00:00
Yu-Ping Wu
2804a0d771 mb/google/fatcat/var/lapis: Update fw_config definitions with UFSC
The existing fw_config definitions are obsolete. Update overridetree.cb
with new definitions and enable EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC.

BUG=b:455768543
TEST=util/abuild/abuild -x -t GOOGLE_LAPIS -a
BRANCH=none

Change-Id: I73eb453cc7caad2445e43e0a61cdddc9123fe5f2
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89814
Reviewed-by: Aamir Bohra <aamirbohra@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-12 11:39:52 +00:00
Subrata Banik
0e1742a7e2 mb/google/bluey: Control slow battery charging via boot mode
The slow battery charging control was split across two locations:
1. Unconditionally enabled in `romstage.c`.
2. Conditionally disabled later in `mainboard.c` for normal boot mode.

This split logic is unnecessary and can be simplified. Battery charging
should only be enabled when the system determines it needs to enter a
low-battery boot mode (`LB_BOOT_MODE_LOW_BATTERY`).

This commit refactors the control flow by:
1. Removing the unconditional `enable_slow_battery_charging()` call from
   `romstage.c`.
2. Enabling `slow_battery_charging()` only within `lb_add_boot_mode()`
   when the determined boot mode is low-battery.

This ensures charging is managed solely based on the determined boot
mode, confining the control logic to a single location.

BUG=b:457566143
TEST=Able to build and boot google/quenbi. Ensure charging is only
enabled in AP firmware if booted in low-battery mode.

Change-Id: I906d555b9fa4ad2581f598621ea96bda891ff47e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89990
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-12 02:33:50 +00:00
Subrata Banik
113cef70fd soc/intel: Move USB port macros (2.0/3.0/TCSS) to IA common header
The USB port configuration macros (covering USB 2.0, 3.0, and TCSS) are
currently duplicated across multiple Intel SoC headers.

This patch refactors the definitions into a new, central IA common
header file. Moving these macros to a shared location eliminates
redundant code, simplifies maintenance, and ensures consistency across
platforms.

Specifically, this refactoring allows Intel Meteor Lake (MTL) and
Panther Lake (PTL) to immediately adopt the common definitions.

TEST=Able to build and boot google/kinmen.

Change-Id: I7fb1e4d100c6d72eba0e31f37aa58e6d741ceea6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89984
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-11-12 02:33:41 +00:00
Luca Lai
3c69295ce4 mb/google/fatcat/var/ruby: Add new supported memory part
Add ruby project new supported memory parts in mem_parts_used.txt.
Generate SPD id for this part.

Micron MT62F1G32D2DS-020 WT:D
Samsung K3KL8L80EM-MGCV

BUG=b:446771934
TEST=Use part_id_gen to generate related settings

Change-Id: Ic2710e9a5e59ffecb3fd696c15b944eb58e23f0b
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89886
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-11 16:31:30 +00:00
Maximilian Brune
d18cc50e6a soc/intel/xeon_sp: Use common smm_relocate
Xeons implementation and the common intel implementation are identical
functionality wise so just use the common function.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I0ed42a93444e7cc0d339cf63cec4c4411b5b4f73
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86682
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-11-11 15:46:47 +00:00
Joyce Ciou
d0c936eea1 mb/google/nissa/var/guren: Tune SX9324 register for 5G LTE module
Update SX9324 register settings based on tuning values from SEMTECH to
adjust the proximity sensor sensing range to support 5G LTE module.

BUG=b:445338278
TEST=Confirm P sensor function can work and check i2c register settings
     on Guren by command # i2cwatch -f -y 14 0x28

Signed-off-by: Joyce Ciou <joyce_ciou@pegatron.corp-partner.google.com>
Change-Id: Ic5e8fe1c67dcdfcfc9a4657b9d859a3b71239858
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89930
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-11-11 15:46:34 +00:00
Simon Yang
8851b5b0e7 soc/intel/pantherlake: Program HDA SVID/SSID
Retrieve SVID/SSID via devicetree and program to HDA device

BUG=b/458444964, b/454824561
TEST="lspci -s 00:1f.3 -x and check value in offset 0x2c-0x2f"

Change-Id: I6bf4b5f2cbce69429daabce83ab11c13272194f4
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89983
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-11 15:46:06 +00:00
Angel Pons
c917ecf21e soc/intel/{adl,mtl}: Fix CLKSRC handling for compliance mode
The code was indexing an array of clock sources using an RP index which
is not correct. As the intent of compliance mode seems to be to set all
clock sources to be free-running, do the same from a different place in
order to avoid potential out-of-bounds accesses.

To preserve original behaviour, exit early from `pcie_rp_init()`. While
this is rather crude, subsequent commits will refactor said function.

Change-Id: I89e6e9f85b7b86b0a74ece88641a378f2c0b599f
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89788
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-11 15:45:55 +00:00
Angel Pons
312d455a93 soc/intel/{adl,mtl}/romstage/fsp_params.c: Fix printf specifier
`cfg[i].clk_req` is a `uint8_t` so use `%u` instead of `%d`.

Change-Id: I6c7a6ecbd2f5b917d44923d0ad6cb331d9bb054c
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89789
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-11-10 13:28:46 +00:00
Matt DeVillier
786ac14d48 drivers/option/cfr: Add optional override table for default values
Add a mechanism for mainboards to override default values of CFR
objects defined in SoC or common code without duplicating object
metadata.

Mainboards can now declare a simple override table mapping option
names to new default values:

  const struct cfr_default_override mb_cfr_overrides[] = {
      CFR_OVERRIDE_BOOL("s0ix_enable", false),
      CFR_OVERRIDE_ENUM("pciexp_aspm", ASPM_DISABLE),
      CFR_OVERRIDE_END
  };

The CFR backend checks this table when writing options and uses the
override value if one exists. All other metadata (name, help text,
enum values, flags) comes from the original object.

Change-Id: Ifb3da90d605f2799bf0207ff58d69bee3415ccc2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89933
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-10 13:28:02 +00:00
Luca Lai
ea84a29a27 mb/google/trulo/var/pujjoquince: Enable Bayhub LV2 driver
Some SKUs of pujjoquince have a Bayhub LV2 card reader chip,
therefore enable the corresponding driver for the mainboard.

BUG=b:454252968
TEST=Build FW and checking SD card reader register is correct like
printk(BIOS_INFO, "Luca_0x%x: %x\n", ltr_cap + PCI_LTR_MAX_NOSNOOP,
pci_read_config16(dev, 0x236));.

Change-Id: Ib04a419b86213b6ffef25d7f6f64668abaf36801
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89890
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-11-10 13:27:43 +00:00
Julius Werner
84e000b88e libpayload: arm64: Fix alignment for exception_state
In the arm64 exception handler in libpayload, we use the banked
exception stack pointer (SP_EL2, as opposed to the normal SP_EL0) not as
a normal stack pointer, but simply as a pointer to the exception_state
struct. This makes it easy to dump all registers into that struct on
context switch. We then immediately switch back to SP_EL0.

Yet, even though it is not really a stack for us, the aarch64
architecture still requires that SP_EL2 is 16 byte aligned at function
boundaries. If the exception_state struct is not thus aligned,
exceptions are broken. (I don't know why nobody ever hit this before,
but I hit it now while trying to pull in zstd code. I guess we just
don't have unaligned BSS entries that often and simply got lucky for a
while. 3 hours wasted on debugging. :( )

Change-Id: Id19184656fb9da68fe4bfdbc240c0c25b9d24cd6
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89926
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-11-10 02:36:39 +00:00
Hualin Wei
9210f2fd1c mb/google/fatcat/var/lapis: add ILITEK touchscreen support
This chang adds the necessary configuration for ILITEK touchscreen
(ILIT2901) device. The relevant parameters are from the manufacturer's
email dated October 13th. Furthermore, adding fw_config THC_ILITEK
ensures that the touch functionality of both touchscreens is normal.

BUG=b:455442712
TEST=emerge-fatcat coreboot and chromeos-bootimage,
flash to DUT, ilitek touchscreen can be found by `getevent`,
and no wake-up functionality when the DUT is in sleep mode.

Change-Id: I7611c7b1e1364e48ae87a0d91ad3106130ccc586
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89756
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-10 02:01:10 +00:00
Hualin Wei
b933a554ba mb/google/var/fatcat/lapis: Modify fw_config for audio and touch
Add FW_CONFIG probe based on lapis boxster of below devices:
touchpad, audio and touchscreen.

BUG=b:456579786
TEST=Boot to OS and verify the touch and audio device are set
     based on fw_config

Change-Id: I6943a0cd6304a6d92481d2904bfa5082944ffd70
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89939
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-10 02:00:58 +00:00
Maximilian Brune
b3b7b7a027 mb/emulation/qemu-q35/Makefile.mk: Use all-y for memmap.c
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I14cd19c6c0f458a8d9a4034bb6faff0b42577f54
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87290
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Naresh <naresh.solanki.2011@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-11-08 07:07:11 +00:00
Simon Yang
bb3e59051a mb/google/brya: Check power state before process _ON method for BT
According to ACPI spec, OSPM will not check _STA first and may run the
_ON method repeatedly, even if the resource is already on.

GPIO CNV_BTEN, CNV_BT_IF_SELECT and BT_RESRT_GPIO are already enabled
before entering OS, but OS still try to run method _ON during boot up
process.

Therefore, try to check the GPIO state first to avoid unnecessary
operation and interfere touch enabling sequence.

BUG=b:454848201
TEST="rebuild and dump dsdt to check asl code generate as expected"

Change-Id: I8bd517c3a5ca46c7c8b8ad436af5e4be2295b631
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89849
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-07 15:02:15 +00:00
Tongtong Pan
0f7c54d7d1 mb/google/fatcat/var/felino: Disable card reader in coreboot
To resolve the issue of probabilistic inability to enter s0ix, We need to
1.Add reset_gpio for SSD RTD3 configuration
2.Disable card reader in coreboot

BUG=b:431653999
TEST=dut can successfully enter S0IX during stress test.

Change-Id: I7f8b117f23ca5639a17f2bace634ee84fce08247
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89929
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-11-07 15:01:29 +00:00
Tongtong Pan
7946d2d65d mb/google/fatcat/var/felino: Add reset_gpio for SSD RTD3 configuration
To resolve the issue of probabilistic inability to enter s0ix, We need to
1.Add reset_gpio for SSD RTD3 configuration
2.Disable card reader in coreboot

Regarding adding reset_gpio for SSD RTD3 configuration
The PCIE SSD PERST part is added in the schematic diagram of the V4 version,
So GPP_F20 needs to be configured on felino, and keeps NC on felino4es.

BUG=b:431653999
TEST=dut can successfully enter S0IX during stress test.

Change-Id: I7dbb8b167fd7d519cd8c148ff7ead328c8c11d81
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89927
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-11-07 15:01:24 +00:00
Hualin Wei
8e2567c7a9 mb/google/fatcat/var/lapis: Adjust touchpad I2C frequency
Adjust the touchpad I2C frequency to greater than 380 kHz
and less than 400 kHz.

Before:
THC0-I2C - 368KHz

After:
THC0-T2C - 388KHz

BUG=b:456906446
TEST=Rate of the actual measured machine is pass.

Change-Id: I389a1b0f56494694f1d96aa036fd41dff476c074
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89889
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-07 15:00:52 +00:00
Luca Lai
f8da2bf9b2 mb/google/fatcat/var/ruby: Modify camera enable gpio pin.
Modify camera enable gpio pin from C05 to C06 to enable function.

schematics: RUBY_EVT_0902_2112.pdf

BUG=b:457650397
TEST=Build and boot to OS and check camera function works.

Change-Id: Id4ef314d039298e9cadd69e2faa53e6b9bcf6143
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89912
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-07 15:00:39 +00:00
Maximilian Brune
45163509cf util/cbfstool/cbfs-payload-linux.c: Remove TODO
LZMA checks at util/cbfstool/lzma/lzma.c:Write() for the output
buffer/stream size and does not write beyond it.

LZ4 checks at src/commonlib/bsd/lz4.c.inc:LZ4_decompress_generic() for
the buffer/stream size and does not write beyond it.

Change-Id: I41298b509b3f5e775bb4000c82c539eefa80c885
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83618
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
2025-11-06 20:48:21 +00:00
Sean Rhodes
bdcd65bd7f ec/starlabs/merlin: Add battery capacity offsets
Add the battery design capacity and voltage offsets to the EC
definitons; these will be used by coreboot to calculate the
wattage which it'll use to set PL4.

Change-Id: Id0600ddd8ffaecab6004549ab51b7c06305d3c09
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89925
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:48:01 +00:00
Sean Rhodes
224ddb85e3 ec/starlabs/merlin: Choose a better default for GPE SCI
This isn't a function change, it just reduces the number of
overrides.

Change-Id: I9178028b40c04fe52f4f549365828005cfe5f8be
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89911
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:47:56 +00:00
Sean Rhodes
696344ac01 ec/starlabs/merlin: Optimise Kconfig defaults
The featureset of Merlin is common, so adjust the Kconfig options
to avoid having the boards select all of them.

This is not a functional change.

Change-Id: Ie8d7afed750055274cdfde3f2f4f9b70fa47a8b1
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89910
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-06 20:47:49 +00:00
Sean Rhodes
649a6a591b ec/starlabs/merlin: Correct Kconfig dependancies
MAX_CHARGE and FAN aren't available for the Nuvoton EC, so
remove the dependency.

Change-Id: Ie087b1c4503a397621b8fd714564cc082150d7a6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89909
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:47:43 +00:00
Sean Rhodes
0d35c3fcc3 mb/starlabs/starbook: Fix inclusion of CPU RP ASPM option
The ASPM option for CPU root ports was guarded against the
SOC supporting CPU root ports. This meant that the option
was visible for boards that didn't utilise the CPU root
ports.

Adjust this to guard against BOARD_STARLABS_STARBOOK_RPL,
which is the only board to actually use the CPU root ports.

Change-Id: Id632a8279e8c1cb07536b4198c3752d57eee657a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89908
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:47:36 +00:00
Sean Rhodes
87475ef37f mb/starlabs/common: Move power profile enum to common code
This isn't a functional change, just reduces duplicated code.

Change-Id: I00b08a71d85be73fbadc25df685f7f9e04cc76c0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89762
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-06 20:47:24 +00:00
Sean Rhodes
98e0ff1e4b mb/starlabs/*: Move DMIC disabling code to common dir
Move the code that disables the DMIC based on the option table
to the common directory, as it's pretty much the same for all
boards.

Drop the check for the codec ID, as it's pointless.

Change-Id: I55dd8f5f65908f5c4605001893003209f85cb139
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89777
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-06 20:46:14 +00:00
Sean Rhodes
082ad480d9 mb/starlabs/*: Separate WiFi and Bluetooth controls
Split the "wireless" option into "WiFi" and "Bluetooth" in CFR
to allow more granular control.

Test=Disable WiFi and Bluetooth in turn and make sure the devices
are disabled independently.

Change-Id: I3f617486c78a89a60a1e8c7c8ab7d157dc20bf2e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89797
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:46:07 +00:00
Sean Rhodes
abf630c96b mb/starlabs/byte_adl: Add wireless CFR object
Add the wireless CFR object to allow users to disable or
enable the built-in wireless.

Change-Id: I8f48bf30429d64980d15d33f9e26164e806c520c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89810
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:45:58 +00:00
Sean Rhodes
a58d99575e mb/starlabs/*: Move CFR object defs to common directory
Move all of the CFR object definitons to the common directory
to reduce duplicated code.

Change-Id: I02d486563a01738335a9f1a20b5fcad2b96d6498
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89809
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:45:46 +00:00
Sean Rhodes
74dcb4c679 mb/starlabs/common: Adjust the includes inline with coreboot
Adjust how the common headers are included, in a more "coreboot"
fashion.

Change-Id: Iaeb8e12272235a51c620656387838be8b0a0a098
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89917
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 20:45:36 +00:00
Daniel Peng
6b30e1f46b mb/google/dedede/var/pirika: Add support memory for CXMT CXDB5CBAM-MA-B
Add support for the new memory CXMT CXDB5CBAM-MA-B.

BUG=b:451917928
BRANCH=firmware-dedede-13606.B
TEST=Run command
     "go run ./util/spd_tools/src/part_id_gen/part_id_gen.go \
     JSL lp4x src/mainboard/google/dedede/variants/pirika/memory/ \
     src/mainboard/google/dedede/variants/pirika/memory/\
     mem_parts_used.txt"
     And confirm the mainboard boot normally with CXMT
     CXDB5CBAM-MA-B memory.

Change-Id: I8e1600ac191fd76b2226605e7a72497823a48105
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89922
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-11-06 16:28:20 +00:00
Daniel Peng
d4e8af407c spd/lp4x: Add CXMT CXDB5CBAM-MA-B memory
Generate initial SPD matched for CXMT CXDB5CBAM-MA-B.

BUG=b:451917928
TEST=1. make -C util/spd_tools
     2. util/spd_tools/bin/spd_gen spd/lp4x/memory_parts.json lp4x

Change-Id: Ib071aacd8aae0f22ee3d17544166b39d41f3f476
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89921
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 16:28:14 +00:00
Matt DeVillier
8d7183a904 ec/google/chromeec: Add option to set keyboard backlight level at boot
Add the ability to set the keyboard backlight level at boot, controlled
by a setup option variable and restricted to devices which actually
have a backlit keyboard.

TEST=tested hooked up to a CFR option 'ec_kb_backlight' (added later in
the patch series) to set the keyboard backlight at boot, with
visibility controlled by backlight presence, on a range of Chromebooks
with and without keyboard backlight support.

Change-Id: I92eed62935d0333f548599860b7bbe22f6b9f2b4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89828
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-06 13:19:25 +00:00
Maximilian Brune
973d0faf65 util/amdfwtool: Move needs_ish and combo_new_rab to data_parse.c
Move these functions for better readability.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ib609d967e23b4ca1937e00ec72a669751ef09714
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87019
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 13:17:39 +00:00
Hari L
8449a15aed soc/qualcomm/x1p42100: Reduce USB OTG state enable timeout to 20ms
Reduce maximum timeout from 100ms to 20ms for OTG Enablement polling
for USB Type-C.

Avoid OTG enablement polling when in sink mode

BUG=b:455551151
TEST: Verify USB3.0 (SS) works for C0/C1 on Google/Bluey.

Background:
During USB Type-C port initialization, the OTG (On-The-Go) status must
be verified when the port operates in source mode to ensure proper VBUS
power delivery. The previous implementation polled the OTG status
register with a 100ms timeout on all ports regardless of their role.

Previous Implementation Issues:
1. Overly conservative timeout: The 100ms maximum wait significantly
   exceeded actual requirements, as OTG enablement consistently
   completes in approximately 14ms under normal conditions
2. Inefficient polling logic: OTG status was polled even when ports
   operated in sink mode, where OTG functionality is irrelevant since
   the port receives rather than provides power

Improvements:
1. Timeout reduction: Decreased maximum polling duration from 100ms to
   20ms, maintaining adequate margin (>40% headroom) while reducing boot
   time by up to 80ms per sink-mode port
2. Mode-aware polling: Added logic to detect port role and skip OTG
   status polling entirely for sink-mode ports, as demonstrated by the
   "Primary in SNK mode - skipping OTG status read" log entry

The changes maintain full USB3.0 SuperSpeed functionality while
improving initialization efficiency. The 20ms timeout remains
sufficiently conservative to accommodate normal timing variations.

Debug logs:
[DEBUG]  QMP PHY SS0 initialized and locked in 1671us,
	phy_status: 0x86868686
[INFO ]  Enabling Primary VBUS SuperSpeed
[INFO ]  Primary in SNK mode - skipping OTG status read
[INFO ]  Primary Type-C Status:
[INFO ]    Misc Status (0x2B0B): 0x1a
[INFO ]    Src Status (0x2B08): 0x00
[INFO ]    Mode Config (0x2B44): 0x00
[INFO ]    Interrupt En Cfg 1 (0x2B5E): 0xff
[INFO ]    State Machine Status (0x2B09): 0x02
[DEBUG]  USB HS PHY initialized for index 3
[DEBUG]  QMP-1x16 USB4 DP PHY SS1 init
[DEBUG]  QMP PHY SS1 initialized and locked in 1671us,
	phy_status: 0x86868686
[INFO ]  Enabling Secondary VBUS SuperSpeed
[INFO ]  Secondary in SRC mode - OTG Status: 0x02, State: 0x02
	(OTG Enabled) - Time: 14 ms
[INFO ]  Secondary Type-C Status:
[INFO ]    Misc Status (0x2B0B): 0x4b
[INFO ]    Src Status (0x2B08): 0x08
[INFO ]    Mode Config (0x2B44): 0x00
[INFO ]    Interrupt En Cfg 1 (0x2B5E): 0xff
[INFO ]    State Machine Status (0x2B09): 0xa6

confirmed that there are no otg polling for sink mode and
polling timeout is reduced to max of 20ms.

Change-Id: I7467248185c9d0526816ac62e1e1a1496440fddc
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89826
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-06 13:17:24 +00:00
Luca Lai
f4af55a008 spd/lp5: Add SPD for MT62F1G32D2DS-020 WT:D and K3KL8L80EM-MGCV
Add  MT62F1G32D2DS-020 WT:D and K3KL8L80EM-MGCV in the
memory_parts.json and re-generate the SPD.

TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I014a847de2d5d53a7895460912c30b45959d3fbc
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89874
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-11-06 13:17:08 +00:00
Cai Chen
9bea3130b5 mb/google/skywalker: Add AW88081 support for beep sound
Add the FW_CONFIG configuration for the audio amp.

BUG=b:426678967
TEST=emerge-skywalker coreboot chromeos-bootimage
BRANCH=Skywalker

Change-Id: Iaf461a26db92597883c8fa61f292bf14a145145c
Signed-off-by: Cai Chen <chencai5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89913
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 13:16:59 +00:00
Elyes Haouas
d8bcf242c6 Revert "commonlib/endian: Silence GCC -Warray-bounds false positives"
This reverts commit 668ea97075.

Let's just keep using --param=min-pagesize=1024 in xcompile to sweep
the -Warray-bounds warnings under the rug in the coreboot tree.

Change-Id: I0f76c27bcbaac9d0927160fcab9cbf9aaefa9095
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89915
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-06 05:21:13 +00:00
Elyes Haouas
66039a61f1 Revert "commonlib/endian: Restore -Warray-bounds at the end of file"
This reverts commit cfdaff3f70.

Let's just keep using --param=min-pagesize=1024 in xcompile to sweep
the -Warray-bounds warnings under the rug in the coreboot tree.

Change-Id: I875cb140aacd44f1aaddd410de0f154af585b1c1
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89914
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-11-06 05:21:03 +00:00
Matt DeVillier
c27c9db51b mb/samsung/stumpy: Fix thermal configuration issues
Fix multiple critical thermal management problems while preserving the
quiet-at-idle design:

- Overlapping temperature thresholds causing fan oscillations
- CRITICAL_TEMPERATURE equal to Tj_max (no safety margin)
- Multiple fan levels trying to activate simultaneously

Issues fixed:

1. CRITICAL_TEMPERATURE: 100°C → 98°C
   - Was equal to Tj_max, leaving zero safety margin
   - System could reach absolute thermal limits before shutdown
   - 2°C margin allows clean shutdown before CPU thermal protection

2. Fix overlapping temperature thresholds (PRIMARY BUG)
   - Previous config had all fan levels overlapping:
     * FAN3: 48-55°C
     * FAN2: 52-64°C (started at 52°C, before FAN3 stopped at 55°C)
     * FAN1: 60-68°C (started at 60°C, before FAN2 stopped at 64°C)
     * FAN0: 66-78°C (started at 66°C, before FAN1 stopped at 68°C)
   - Multiple fan levels would try to activate simultaneously
   - Caused rapid fan speed oscillations and unpredictable behavior

   New configuration with proper discrete levels:
     * FAN3: 45-55°C
     * FAN2: 55-65°C (starts when FAN3 stops)
     * FAN1: 65-72°C (starts when FAN2 stops)
     * FAN0: 72-80°C (starts when FAN1 stops)

3. Increase PWM values for better cooling at each level:
   - FAN3: 0x40 → 0xA0
   - FAN2: 0x80 → 0xB0
   - FAN1: 0xb0 → 0xC0
   - Provides more effective cooling progression

Design philosophy:
- Keep FAN4_PWM = 0x00 (fan OFF at idle)
  * Chromebox designed as quiet desktop device
  * Passive cooling adequate below 55°C
  * Silent operation at idle/light loads

Configuration now follows best practices:
- Silent at idle (fan OFF until >45-55°C)
- No overlapping thresholds (discrete fan levels)
- 8-10°C hysteresis (prevents oscillation)
- Proper safety margin below Tj_max
- Progressive PWM values for smooth transitions

These changes fix the actual bugs (overlaps and safety margins) while
maintaining the intended quiet operation at idle.

TEST=build/boot stumpy, verify fan remains silent at idle, activates
smoothly when needed, no oscillations, proper cooling maintained under
load.

Change-Id: I284cbe34348345589564ae77828b9beee0b0d9c0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89847
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-05 23:18:49 +00:00
Matt DeVillier
288889cd98 mb/google/jecht: Fix thermal configuration issues
Fix thermal management issues across Jecht variants.

tidus (CRITICAL):
- PASSIVE_TEMPERATURE: 105°C → 95°C
  * Was higher than CRITICAL_TEMPERATURE (103°C)
  * OS would initiate emergency shutdown before CPU throttling
  * Passive CPU throttling would NEVER engage
  * Now activates at 95°C, well before critical shutdown at 103°C

guado:
- Fix threshold spacing and eliminate minor overlap
  * Old: FAN1:65-70, FAN0:90-100 (with FAN2 stopping at 67°C)
  * Had 2°C overlap between FAN1 and FAN2
- Standardize thresholds: FAN3:40-50, FAN2:55-67, FAN1:67-75, FAN0:85-90
- Adjust PWM values for consistent progression
  * FAN3: 0x55→0x62, FAN2: 0xa6→0x86, FAN1: 0xc0→0xa8, FAN0: 0xff→0xdc
  * More linear progression, better acoustic profile

rikku:
- Improve hysteresis (was only 5°C, can cause rapid switching)
  * Old: FAN3:42-47, FAN2:54-59, FAN1:66-71, FAN0:78-83
  * New: FAN3:40-50, FAN2:55-67, FAN1:67-75, FAN0:85-90
  * 8-12°C hysteresis prevents oscillation under varying loads
- Adjust PWM values for smoother progression
  * Old progression was too aggressive (0xa5, 0xb2, 0xc9, 0xd8)
  * New: 0x62, 0x86, 0xa8, 0xdc (more gradual)

All three variants now properly configured for Broadwell with
Tj_max=105°C:
- tidus: Critical passive cooling logic fixed
- guado/rikku: Aligned with jecht reference configuration
- No overlapping thresholds
- Proper hysteresis for stable operation
- Consistent PWM progression across variants

Note: jecht variant was already properly configured and serves as the
reference implementation for this thermal pattern.

TEST=build/boot Win10/Linux on google/guado, verify fan speeds work as
expected when varying the CPU load/temp.

Change-Id: I0502829665f373215e6be9aaf1c082abe0b613fe
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89846
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-05 23:18:44 +00:00
Matt DeVillier
9fa2d55987 mb/google/beltino: Fix thermal configuration issues
Fix critical thermal management problems across all Beltino variants
while preserving the quiet-at-idle design intent:

- Overlapping temperature thresholds causing fan oscillations
- CRITICAL_TEMPERATURE equal to Tj_max (no safety margin)
- Poor threshold spacing creating thermal management gaps

Variant-specific fixes:

panther (CRITICAL SAFETY ISSUE):
- CRITICAL_TEMPERATURE: 100°C → 98°C
  * Was equal to Tj_max, leaving zero safety margin
  * System could reach thermal limits before clean shutdown
  * Risk of hardware damage
- Reorganize thresholds: eliminate 25°C gap between levels
  * Old: FAN3:40-50, FAN2:75-83 (25°C gap!), FAN1:86-90, FAN0:93-96
  * New: FAN3:40-50, FAN2:55-67, FAN1:67-75, FAN0:85-90
  * Progressive response instead of sudden jumps
- Adjust PWM values for smoother progression

zako (SEVERE OPERATIONAL ISSUE):
- Fix catastrophic overlapping thresholds
  * All 4 active fan levels tried to activate simultaneously (50-52°C)
  * Old: FAN3:48-52, FAN2:50-55, FAN1:52-58, FAN0:55-60
  * Fan would oscillate wildly between speeds
- New: FAN3:40-50, FAN2:55-67, FAN1:67-75, FAN0:85-90
  * Proper discrete levels with no overlaps
  * 8-12°C hysteresis prevents oscillation

monroe:
- Fix overlapping thresholds across all levels
  * Old: FAN3:45-58, FAN2:52-64, FAN1:59-68, FAN0:66-79
  * FAN2 started before FAN3 stopped, same for FAN1/FAN0
- New: Clean discrete levels with proper spacing

mccloud:
- Raise FAN3 start: 35-40°C → 40-50°C
  * 35°C is barely above ambient, causes unnecessary noise
- Standardize remaining thresholds to match other variants

tricky:
- Already had reasonable thresholds, no changes needed

Design philosophy:
- Keep FAN4_PWM = 0x00 (fan OFF at idle)
  * Chromeboxes are designed as quiet desktop devices
  * Passive cooling adequate below 50°C
  * Silent operation at idle/light loads
  * Fan only activates when thermal load requires it (>40-50°C)

All variants now follow proper thermal management:
- Silent at idle (fan OFF until >40-50°C)
- Progressive thresholds: 40-50, 55-67, 67-75, 85-90°C
- No overlapping ranges (discrete fan levels)
- 8-12°C hysteresis (prevents oscillation)
- 2°C safety margin below Tj_max for critical shutdown

These changes fix the actual bugs (overlaps and safety margins) while
respecting the original quiet-desktop design intent.

TEST=build/boot panther, verify fan remains silent at idle, activates
smoothly when needed, no oscillations, proper shutdown margin
maintained.

Change-Id: Ibcd138dfb16b13dfa2ef3a3fcac2556d7daaf0c2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89845
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-05 23:18:36 +00:00
Matt DeVillier
76a48b5158 mb/google/beltino: Remove unused GNVS fan configuration
Remove unused GNVS fan thresholds, PWM assignments from acpi_tables.c.

The Beltino thermal.asl uses compile-time macros (FAN*_THRESHOLD_OFF,
FAN*_THRESHOLD_ON, FAN*_PWM) directly from variant/thermal.h, not
runtime GNVS variables. The GNVS assignments were never consumed by
the ACPI code and just wasted memory.

Retained GNVS values that ARE used:
- tpmp: TPM presence flag
- tcrt: Critical temperature (\TCRT)
- tpsv: Passive temperature (\TPSV)
- tmax: Tj_max (\TMAX)

Removed unused GNVS values:
- f{0-4}{of,on,pw}: Fan thresholds and PWM values (24 values total)
- flvl: Fan level (unused, ACPI uses \FLVL local variable)

This matches the google/jecht approach which also uses compile-time
macros and only sets the essential GNVS thermal values.

No functional change - the ACPI thermal zone behavior is identical.

Change-Id: I703b7d8e424d4451abf0781b4491b813be216bc7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89844
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-05 23:18:25 +00:00
Matt DeVillier
8cc8f219bf Documentation/drivers: Add ACPI five-level fan control documentation
Document the ACPI thermal zone pattern used across multiple mainboards
that implement five-level fan control via power resource state machines.

This pattern is used by 9 mainboards including Google Chromebooks
(beltino, jecht variants), Samsung stumpy, and Intel reference boards
(wtm2, baskingridge, emeraldlake2).

The documentation covers:
- Power resource state machine implementation
- Temperature management via PECI/SuperIO
- Active and passive cooling policies
- Critical FNP4._OFF no-op requirement for Windows compatibility
- Implementation variations and checklist for new boards

Initial framework generated by Cursor AI, heavily edited thereafter.

Change-Id: I4174a4552c97fb85a894f5362948d57057cacb81
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89843
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-11-05 23:18:19 +00:00
Maximilian Brune
47c4da36c4 util/amdfwtool/data_parse.c: Remove duplicate MP2_CFG_FILE
It was accidently added and is just dead code.
It doesn't change any functionality.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I868b8c8725fc2240543fb1e9e379ecb5e1471ef4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89898
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-11-05 21:44:51 +00:00
Kilian Krause
fa23504c59 mb/siemens/mc_rpl: Alphabetize Kconfig options
Sort Kconfig select statements alphabetically for better readability
and maintainability.

No functional changes.

Change-Id: Id0c858de485dee6b8f950b7b60a469de9139d7b4
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89893
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-05 17:22:31 +00:00
Kilian Krause
8411fef90f mb/siemens/mc_rpl1: Switch from LPSS UART to legacy 8250 I/O UART
Replace the memory-mapped LPSS UART2 with I/O port-mapped legacy
8250 UART for the serial console.

- Replace INTEL_LPSS_UART_FOR_CONSOLE with DRIVERS_UART_8250IO
- Add SOC_INTEL_COMMON_BLOCK_LPC_COMB_ENABLE to enable COM2
- Change UART_FOR_CONSOLE from 2 to 0 (COM1 at 0x3F8)

DRIVERS_UART_8250IO enables COM1 (I/O port 0x3F8).
SOC_INTEL_COMMON_BLOCK_LPC_COMB_ENABLE enables COM2 (I/O port 0x2F8).

TEST=Build and boot on mc_rpl1. Verify console output on both COM1
and COM2.

Change-Id: I93deaba5fedf8c9aecff4a425e8cec406d2759c2
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89892
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-05 17:22:26 +00:00
Kilian Krause
534fceb36a mb/siemens/mc_rpl1: Set PCI bridge function for NC_FPGA
Update EARLY_PCI_BRIDGE_FUNCTION from 0x0 to 0x2 for NC FPGA POST
code communication. This matches the PCI bridge function where the
NC FPGA is connected on this hardware.

TEST=Built and booted on mc_rpl1. Verified that POST codes display
correctly on the 7-segment display.

Change-Id: I52c463036091ac42c6db415d1d3e582e561aff67
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89882
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-11-05 17:22:22 +00:00
Matt DeVillier
8ce9255f82 mb/samsung/stumpy: Fix ACPI fan control FNP4 power resource
The FNP4 power resource (minimum fan level) had both _ON and _OFF
methods setting the same state (\FLVL = 4), violating ACPI power
resource requirements where _OFF must transition to a state where
_STA eventually returns 0 (OFF).

This violation causes Windows to reject the thermal zone entirely due
to its stricter ACPI compliance checking, resulting in non-functional
fan control. Linux tolerates this bug, which is why it went unnoticed.

Since FAN4 represents the minimum cooling state with no lower state
to transition to, the correct implementation is to make _OFF a no-op.
This maintains proper ACPI state machine semantics: after _ON, _STA
returns 1; after _OFF, the system remains at minimum cooling (which
is already the lowest valid state).

This enables proper fan control operation on Windows while maintaining
Linux compatibility.

TEST=build/boot Win10/Linux on samsung/stumpy, verify fan functional
under Windows 10, continues to work correctly under Linux.

Change-Id: I00431490ae080226d526c1e217bb10e8ded64c3c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89842
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-05 14:21:51 +00:00
Matt DeVillier
f12f292d91 mb/google/intel/*: Fix ACPI fan control FNP4 power resource
The FNP4 power resource (minimum fan level) had both _ON and _OFF
methods setting the same state (\FLVL = 4), violating ACPI power
resource requirements where _OFF must transition to a state where
_STA eventually returns 0 (OFF).

This violation causes Windows to reject the thermal zone entirely due
to its stricter ACPI compliance checking, resulting in non-functional
fan control. Linux tolerates this bug, which is why it went unnoticed.

Since FAN4 represents the minimum cooling state with no lower state
to transition to, the correct implementation is to make _OFF a no-op.
This maintains proper ACPI state machine semantics: after _ON, _STA
returns 1; after _OFF, the system remains at minimum cooling (which
is already the lowest valid state).

This enables proper fan control operation on Windows while maintaining
Linux compatibility.

TEST=untested, but same as tested change on other mainboards in series.

Change-Id: I5d6c5f6cb8232b956bbd1be6220b8bb09c32b480
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89841
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-11-05 14:21:44 +00:00
Matt DeVillier
b9b95c917a mb/google/guado: Fix ACPI fan control FNP4 power resource
The FNP4 power resource (minimum fan level) had both _ON and _OFF
methods setting the same state (\FLVL = 4), violating ACPI power
resource requirements where _OFF must transition to a state where
_STA eventually returns 0 (OFF).

This violation causes Windows to reject the thermal zone entirely due
to its stricter ACPI compliance checking, resulting in non-functional
fan control. Linux tolerates this bug, which is why it went unnoticed.

Since FAN4 represents the minimum cooling state with no lower state
to transition to, the correct implementation is to make _OFF a no-op.
This maintains proper ACPI state machine semantics: after _ON, _STA
returns 1; after _OFF, the system remains at minimum cooling (which
is already the lowest valid state).

This enables proper fan control operation on Windows while maintaining
Linux compatibility.

TEST=build/boot Win10/Linux on google/jecht, verify fan functional
under Windows 10, continues to work correctly under Linux.

Change-Id: Iac60a18dd1e4b632d85384ddbbcfcddaf0b8d2cc
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89840
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-11-05 14:21:38 +00:00
Matt DeVillier
8a518b2134 mb/google/beltino: Fix ACPI fan control FNP4 power resource
The FNP4 power resource (minimum fan level) had both _ON and _OFF
methods setting the same state (\FLVL = 4), violating ACPI power
resource requirements where _OFF must transition to a state where
_STA eventually returns 0 (OFF).

This violation causes Windows to reject the thermal zone entirely due
to its stricter ACPI compliance checking, resulting in non-functional
fan control. Linux tolerates this bug, which is why it went unnoticed.

Since FAN4 represents the minimum cooling state with no lower state
to transition to, the correct implementation is to make _OFF a no-op.
This maintains proper ACPI state machine semantics: after _ON, _STA
returns 1; after _OFF, the system remains at minimum cooling (which
is already the lowest valid state).

This enables proper fan control operation on Windows while maintaining
Linux compatibility.

TEST=build/boot Win10/Linux on google/beltino, verify fan functional
under Windows 10, continues to work correctly under Linux.

Change-Id: Ie53ad9b547b2f2d522e2ed692f8db55aa9a6b8d3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89839
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-05 14:21:32 +00:00
Matt DeVillier
6d751ef987 payloads/edk2: Drop EDK2_PCO_MMIO_EMMC Kconfig option
This option existed to enable the MMIO eMMC DXE driver for AMD Picasso
boards with eMMC storage. The driver has been integrated into edk2 and
no longer requires guarding via a build-time option.

Remove the EDK2_PCO_MMIO_EMMC Kconfig symbol definition, associated
build logic, and the board-level select from google/zork.

TEST=build/boot AMD Picasso boards with edk2 payload.

Change-Id: I458a45ad752d88cc9252f2d8fe6b0e8ec054329d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89858
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-11-05 14:21:18 +00:00
Matt DeVillier
4423a0b390 payloads/edk2: Drop EDK2_UFS_ENABLE Kconfig option
This option existed because the inclusion of the UFS driver in edk2
needed to be guarded due to some issues on non-UFS equipped devices.
Those issues have been resolved in edk2, so the UFS driver does not
need guarding anymore.

Remove the EDK2_UFS_ENABLE Kconfig symbol definition, associated build
logic, and selection from google/brya baseboard.

TEST=build/boot UFS and non-UFS ChromeOS boards with edk2 payload.

Change-Id: I3f20d503de4a642ee3fbb175c267e1f5f7328c8d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89857
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-05 14:21:10 +00:00
Matt DeVillier
a86a5ebf7c payloads/edk2: Update default MrChromebox branch from 2502 to 2508
Update the default MrChromebox branch to uefipayload_2508.
This branch is rebased on the latest upstream edk tag
'edk2-stable202508', and includes a number of other improvements,
including memory safety fixes, improved support for eMMC on AMD
Picasso-based devices, improved UFS support for Alderlake-N based
devices, and a new driver supporting devices which use a Genesys
Logic GL97xx PCIe eMMC or SD card controller.

Change-Id: Id5d02da6396ce7ec7bfb7aaa90ebb234ec05020b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89856
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-11-05 14:21:04 +00:00
Kapil Porwal
40a8466655 mb/google/fatcat: Add option to enable VGA mode 12
This commit adds a new Kconfig option to the `fatcat`
mainboard to enable VGA mode 12 support for early Sign of Life
(eSOL).

- This option, `FATCAT_VGA_MODE12_SUPPORT`, is dependent on
  `FSP_UGOP_EARLY_SIGN_OF_LIFE`.
- It selects `ROMSTAGE_VGA` and `FSP_VGA_MODE12` to enable the
  necessary VGA components.

BUG=b:406725440
TEST=Verify VGA text rotation on Google/Felino.

Change-Id: I3b9a433c7b3938b8cc17f44552b8463ee049e5c3
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89092
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-05 14:10:32 +00:00
Kapil Porwal
824992ddef soc/intel/pantherlake/romstage: Configure VGA mode 12 planar buffer
This commit implements the configuration of VGA mode 12 in the
Intel Pantherlake SoC's romstage. It integrates the newly added
text rendering API to display user messages using a planar buffer
instead of the standard VGA message string.

The changes include:
- A call to `render_text_to_bitmap_buffer()` to draw the message
  on the bitmap buffer.
- Determining the display orientation from the common SoC
  configuration, with an override for a closed lid.
- Calculating and setting the correct position of the rendered
  text in the VGA buffer.
- Duplicating the single-plane bitmap data to all required planes
  for VGA mode 12.
- Setting the `VGA_INIT_CONTROL_MODE12` bit in the FSP-M UPD
  to inform FSP to use the new mode.
- Implementing the `soc_set_vga_mode12_buffer()` API to set the
  corresponding FSP-M UPD for VGA mode12 buffer address.

BUG=b:406725440
TEST=Verify VGA text rotation on Google/Felino.

Change-Id: Ic69fff0479020a31c7e6f0c52b4bdb25b1483bb9
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89091
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-05 14:10:25 +00:00
Kapil Porwal
74113f5d5e drivers/intel/fsp2_0: Add options to config VGA mode 12
This commit adds new Kconfig options and a code snippet to support
VGA mode 12 within the FSP (Firmware Support Package) 2.0. The
changes allow platforms to select VGA mode 12 and configure it.

The key features are:
- Introduces `FSP_VGA_MODE12` to enable VGA mode 12 support.
- A new `FSP_VGA_MODE12_BPP` option defines the bits per pixel,
  defaulting to 4 for color mode.
- A bitmap buffer is allocated on the stack and supplied to FSP
  based on the configured bits per pixel.

BUG=b:406725440
TEST=Verify VGA text rotation on Google/Felino.

Change-Id: Iaa3a64b7c8c735d8329b3596f4be315871bc7fa4
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89090
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-05 14:10:19 +00:00
Bartłomiej Grzesik
75318743c3 commonlib: Add pKVM DRNG related timestamps
Add 2 new timestamps for measuring the time to generate pKVM
deterministic random number generator seed in depthcharge.
First indicate when the generation has started and
a second when the setup is complete.

BUG=b:449097147
TEST=builds

Change-Id: I1bced5a331e4d10a1ec1c305b9b2a41d1e913579
Signed-off-by: Bartłomiej Grzesik <bgrzesik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89872
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-11-05 10:13:22 +00:00
Tony Huang
2646eeffb2 mb/google/skywalker: Create variant Dooku
BUG=b:457605256
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: I9c1d0f1655c986fbd096742b04a4b3efaf515ec0
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89888
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-05 08:43:20 +00:00
Yu-Ping Wu
1b2675e4f2 soc/mediatek/mt8189: Require libbl31.a to exist
The libbl31.a library is crucial to MT8189's UFS functionality. Modify
Makefile.mk to enforce the presence of the file.

BUG=b:453965141
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: I7af74936462a8f2f8c11782e33011686d00a6dea
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89880
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-11-05 03:52:43 +00:00
Julius Werner
9c0a914192 libpayload: Fix printf edge cases for precision
This patch fixes a number of rare edge cases in handling the precision
argument in printf. The existing printf implementation used 0 as the
sentinel value for "no precision provided", which makes sense for
integers (where 0 precision has the same effect as no precision, since
in both cases no extra zeroes will be added to the front). However, for
strings it can make an important difference, since callers may expect
that they can use `printf("%.*s", len, str)` to guarantee that `str`
doesn't get dereferenced when `len` is 0. Therefore, change the
implementation so that negative values are used to represent "no
precision provided", and 0 is a legitimate value.

print_string() also had the problem that it called strlen() on the
string before even evaluating the precision. That of course defeats the
purpose of the common "%.*s" pattern to access unterminated strings.
This patch fixes the problem.

Finally, this patch slightly modifies the behavior when printing a NULL
pointer as a string, to make sure width and precision values are still
taken into account in that case, and to change from `(NULL)` to `(null)`
to match the behavior in glibc.

Change-Id: I787c18e1d33006842cf758aeb87710f80f0e5a40
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89837
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-04 23:14:13 +00:00
Zhixing Ma
ebc2030ff7 soc/intel/pantherlake: Enable HW managed microphone privacy
Enable hardware-managed microphone privacy by setting the
PchHdaMicPrivacyMode FSP UPD to 1. This feature was enabled by
default in FSP previously but has since changed to disabled by
default, so now coreboot explicitly enables this as it is a desired
feature for Chrome platforms.

The hardware-managed microphone privacy feature allows the platform
to control the microphone mute state at the hardware level for
enhanced privacy.

TEST=Verify UPD value is set correctly and HW managed mic privacy is
working as expected.

Change-Id: I9a20bd129103aae35550104f6a7025484ef5e9c1
Signed-off-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88451
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: <srinivas.kulkarni@intel.com>
2025-11-04 20:49:07 +00:00
Luca Lai
4d9dacae16 mb/google/fatcat/var/ruby: Modify touchpad device setting to enable function
Modify touchpad device setting to enable the ELAN touchpad.

schematics: RUBY_EVT_0902_2112.pdf

Device i2c log:
[INFO ]  \_SB.PCI0.CNVW: WIFI Device GENERIC: 0.0
[INFO ]  \_SB.PCI0.I2C0.RT58: Headset Codec at I2C: 00:1a
[INFO ]  \_SB.PCI0.I2C0.D04B: TI SPK AMP L at I2C: 00:4b
[INFO ]  \_SB.PCI0.I2C0.D04C: TI SPK AMP R at I2C: 00:4c
[INFO ]  \_SB.PCI0.I2C0.D04D: TI SPK AMP TL at I2C: 00:4d
[INFO ]  \_SB.PCI0.I2C0.D04F: T1 SPK AMP TR at I2C: 00:4f
[INFO ]  \_SB.PCI0.I2C3.TPMI: I2C TPM at I2C: 00:50
[INFO ]  \_SB.PCI0.I2C4.H015: ELAN Touchpad at I2C: 00:15
[INFO ]  \_SB.PCI0.I2C5.H014: Goodix Touchscreen at I2C: 00:14
[INFO ]  \_SB.PCI0.RP01: Enable RTD3 for PCI: 00:00:1c.0 (Intel PCIe Runtime D3)

Changes:
hid : From PIXA2305 to ELAN2705
hid_desc_reg_offset : From 0x20 to 0x01
address : From 0x2C to 0x15

BUG=b:449901218
TEST=Build and boot to OS and use Elan touchpad module to verify the cursor works.

Change-Id: I11dcca5db5558af4cdd4b87a9b42519615839fef
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89873
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-11-04 20:48:58 +00:00
Subrata Banik
2821e8e2ae soc/intel/ptl: Remove redundant HAVE_BMP_LOGO_COMPRESS_LZMA Kconfig
This commit removes the explicit CONFIG_HAVE_BMP_LOGO_COMPRESS_LZMA
definition from the Panther Lake Kconfig.

This local Kconfig setting, previously defaulted to 'n', is redundant
because the Panther Lake build now correctly inherits the intended
system-wide default, which is to use LZMA compression for the BMP
splash screen.

Removing this unnecessary Kconfig option simplifies the configuration
and results in a measured ~3ms reduction in boot time during the
firmware splash screen rendering phase on Panther Lake platforms.

w/o this patch:

```
 963:returning from FspMultiPhaseSiInit          1,096,797 (102,937)
  17:starting LZ4 decompress (ignore for x86)    1,111,606 (14,808)
  18:finished LZ4 decompress (ignore for x86)    1,111,641 (34)
  17:starting LZ4 decompress (ignore for x86)    1,119,857 (8,216)
  18:finished LZ4 decompress (ignore for x86)    1,119,879 (21)
```

w/ this patch

```
 963:returning from FspMultiPhaseSiInit          1,097,817 (103,211)
  15:starting LZMA decompress (ignore for x86)   1,110,058 (12,241)
  16:finished LZMA decompress (ignore for x86)   1,111,096 (1,037)
  15:starting LZMA decompress (ignore for x86)   1,117,554 (6,458)
  16:finished LZMA decompress (ignore for x86)   1,117,906 (352)
```

Change-Id: I64579e53c7f307d1430767da04a413f80016487f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89876
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-11-04 20:48:31 +00:00
Matt DeVillier
eadf2ee4a3 ec/starlabs/merlin/cfr: Replace integer literals with named constants
Use defined constants from ec.h instead of hardcoded integer values
in all CFR enum definitions for improved readability and
maintainability.

Change-Id: I13b313d0c7a177fc689c3022256eb17125354599
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89881
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-04 20:48:03 +00:00
Sean Rhodes
2bbc0f1ad3 mb/starlabs/starbook/{kbl,cml,tgl}: Control USB Bluetooth with wireless
Make the "wireless" option enable or disable the USB Bluetooth along
with the wireless card.

Change-Id: I253b83ac3efb768e91dba424be4cec6a56bf53f8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89798
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-04 20:22:04 +00:00
Matt DeVillier
2c9596555b mb/google/skyrim: Use edge (vs level) triggering for PS2K
For reasons currently unknown, using a level triggered interrupt for the
PS2 keyboard causes an IRQ storm under Windows when any key is pressed,
leading to audio distortion/dropouts. Work around this by using an edge
triggered interrupt instead.

BUG=none
TEST=build/boot Win11, Linux on google/skyrim (frostflow), verify kb
functionality, verify no IRQ storm or audio stutter/distortion under
Windows.

Change-Id: I6de426c5780b2f05571415e8e411e379de45b5bf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77679
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
2025-11-04 16:58:48 +00:00
Sean Rhodes
0c3f304d5a mb/starlabs/byte_adl: Enable Wake On Lan
Change-Id: I61e6e2b54fb41d610598af08b3f86009a5d539e5
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89783
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-04 12:05:48 +00:00
Venkateshwar S
ca5b51ef9c mb/google/bluey: Select QTEE firmware dependent Kconfig
When the mainboard is Bluey, the Kconfig options 'ARM64_HAS_SECURE_OS'
and 'ARM64_HAS_SECURE_OS_PAYLOAD' are selected to pack and load the
QTEE firmware as a CBFS payload type, since its memory regions are non-
contiguous across system IMEM and DDR.

TEST = Create an image.serial.bin incorporating QTEE firmware and
ensure it boots to OS on X1P42100.

Change-Id: Iaedfa25d574af8451a7bb9a4a35c557f4e09eee2
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89554
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-04 02:45:36 +00:00
Ren Kuo
fe7b75d792 mb/google/fatcat/var/moonstone: Add fw_config touchscreen setting
Add a fw_config for touchscreen and non-touchscreen sku.
Based on the field to differentiat the touchscreen I2C port on/off
and GPIOs configuration.

BUG=none
TEST=Update the fw_config field and check the ap log:
     ABSENCE = 0 ... without touchscreen i2c probing messages.
     PRESENCE = 1 ... with touchscreen i2c probing messages.

Change-Id: I5f2cc0b0c37986240fbbeae3668ccc250748295d
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89851
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-04 00:35:15 +00:00
Elyes Haouas
cfdaff3f70 commonlib/endian: Restore -Warray-bounds at the end of file
commit 668ea970 ("commonlib/endian: Silence GCC -Warray-bounds false
positives") added `#pragma GCC diagnostic ignored "-Warray-bounds"` but
forgot to restore the diagnostic state at the end of the file.

Change-Id: I41b38758ce862490777ede63ff92d95d6ba21521
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89867
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-02 20:42:12 +00:00
Norman Bintang
32ec29a51e mb/google/fatcat/var/kinmen: Disable RT721 clock stop support
This change applies the same fix as coreboot change CB:89605 to the
kinmen variant. Without this change, headset jack detection won't work.

The original change 752d49a4ff was:
  "mb/google/fatcat/var/moonstone: Disable RT721 clock stop support"

RT721 headset jack detection fails because the wakeup event is not
triggered during runtime suspend in D3 state. Disable the clock stop
to allow the bus driver to handle the wakeup process properly. The MIPI
Disco property is "mipi-sdw-simplified-clockstopprepare-sm-supported".

BUG=b:435094908
TEST=After plugging a headset, audio output is switched to it.
Change-Id: I468d949e1249548348493c070b4955c012ef7b4e
Signed-off-by: Norman Bintang <normanbt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89784
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-02 18:17:36 +00:00
Maximilian Brune
4b50bc9e5f payloads/external/U-Boot/Makefile: Add custom repo and tag
Adds the abillity to use a custom u-boot repo and a custom branch.

Change-Id: I15df8a41d3d94ca0559abc964792035651b3d8b2
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89616
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-02 18:17:19 +00:00
Maximilian Brune
3d41ac370d payloads/external/U-Boot/Makefile: Remove conditional
Apparently no one ever build this using UBOOT_MASTER, because it is
missing the "cd $(project_dir)" before git fetch.

I have also no idea what the git show was originally supposed to do.
So just remove them both and move on.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I2f26660131ce91420a951fb33ac0eef89371745d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89615
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
2025-11-02 18:17:14 +00:00
Matt DeVillier
c3b5c8723e ec/google/chromeec: Add function to determine keyboard backlight presence
Add a new function google_chromeec_has_kbbacklight() to check if the EC
has keyboard backlight capability. The function first tries the EC
feature flag (EC_FEATURE_PWM_KEYB), falling back to a read test if
unavailable. The EC command ec_cmd_pwm_get_keyboard_backlight() returns
-1 if the device does not have a keyboard backlight.

This function will be used in subsequent commits to guard setting the
keyboard backlight at boot and the visiblity of a CFR option setting.

TEST=tested hooked up to a CFR option to set the keyboard backlight
at boot, with visibility controlled by backlight presence, on a
range of Chromebooks with and without keyboard backlight support.

Change-Id: I74daf7a63f06239d2ba3915221555af494a9340f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89827
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-02 18:17:01 +00:00
Matt DeVillier
7afd731849 ec/google/chromeec/acpi: Fix long battery string reporting for Windows
`ToString(byte x)` is undefined behavior per the ACPI spec, which
causes Windows to discard the battery device status entirely.

Fix this and improve performance of the BRSX method by using an array
to store the characters read, calling ToString() only once at the end.

TEST=build/boot Win11 and Linux on google/rex, verify battery status
reported properly under both OSes.

Change-Id: I4e5aea3b2763a3c4433abe95c3a41d218fcd06c1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89602
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-11-02 18:16:53 +00:00
Yidi Lin
bc475414c7 MAINTAINERS: Add Chen-Tsung Hsieh for MediaTek platforms
Change-Id: I16993969b0d17fe4957cb00ff2f3e7e6fa2e8f49
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89812
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Chen-Tsung Hsieh <chentsung@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-11-01 07:23:26 +00:00
Subrata Banik
65dc0bdd7e mainboard/fatcat/lapis: Override PMC GPE configuration
Set the GPE0 registers (DW0, DW1, and DW2) to configure General
Purpose Events (GPEs) for the Lapis variant. This configures
GPP_VGPIO, GPP_F, and GPP_E as the Tier-1 PMC GPIO groups.

This patch ensures the variant can override the default baseboard
(fatcat) GPE settings, which may not align with the variant's
(aka lapis) hardware.

BUG=b:414614106
TEST=Able to override PMC GPEs as per google/lapis configuration.

Change-Id: Icd191d5265619ebfbf7f8dabb39a91a6517dfbd8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89835
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: hualin wei <weihualin@huaqin.corp-partner.google.com>
2025-11-01 03:42:31 +00:00
Subrata Banik
4ea33e5ffa mb/google/fatcat/var/lapis: Enable THC HID over I2C mode
Configure the Touch Host Controller (THC) devices 0 and 1 on the
Fatcat/Lapis variant to use HID over I2C mode.

This change explicitly sets the thc_mode[0] and thc_mode[1] registers
to THC_HID_I2C_MODE in overridetree.cb. This is necessary to correctly
initialize the THC for devices like touchpads or touchscreens that
communicate using this protocol.

BUG=b:455442712
TEST=Able to build and boot google/lapis with functional touchpad.

Change-Id: I7c9a62afab396cb38775eaa5e96f2dc7ed773216
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89818
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-01 03:42:23 +00:00
Subrata Banik
111da2557a mb/google/fatcat: Preserve VGPIO GPE for THC wake on touch
The Touch Host Controller (THC) requires its dedicated VGPIO pins to
remain enabled as a General Purpose Event (GPE) source for the system
to wake up on touch events.

This change introduces override_tier_1_gpio_chip_config to explicitly
check the thc_wake_on_touch status for each enabled THC interface.
If any wake-on-touch functionality is active, the Tier-1 GPE
configuration (pmc_gpe0_dw0) is overridden to ensure the GPP_VGPIO
bank is included.

This guarantees that the VGPIO pins dedicated to THC are always
monitored as a wake source when required by the platform
configuration.

BUG=b:414614106
TEST=Able to build and boot google/fatcat.

Change-Id: Ia1165c167850f5d66a8c5a85e3ec64f80e7a40da
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89817
Reviewed-by: Huang, Cliff <cliff.huang@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-11-01 03:42:17 +00:00
Tony Huang
e167e56883 mb/google/nissa/var/yavilla: Add stop pin for G2 touchscreen
Add stop pin control for G2 touchscreen.

BUG=b:456578327
TEST=build and verified Touchscreen work normally.

Change-Id: I0581fffdc2ec16a1c36b2e716b0fae27bad465ee
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89813
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-11-01 02:41:59 +00:00
Kilian Krause
1fa24898e2 soc/intel/common/block/pcie: Move speed helper to pcie_helpers.c
The pcie_speed_control_to_upd() helper function was only available in
aspm.c for PCH root port configuration. However, CPU root ports in
romstage also need to convert PCIE_SPEED_control enum values to FSP
UPD indices.

Move pcie_speed_control_to_upd() from aspm.c to pcie_helpers.c to
make it available in both romstage and ramstage. This allows both
PCH and CPU root port code to use the same conversion logic without
code duplication.

The helper handles the mapping between devicetree enum values and FSP
UPD values using the UPD_INDEX() macro (which subtracts 1):
- SPEED_DEFAULT (0) -> SPEED_AUTO (1) -> UPD_INDEX = 0
- SPEED_AUTO (1) -> UPD_INDEX = 0
- SPEED_GEN1 (2) -> UPD_INDEX = 1
- SPEED_GEN2 (3) -> UPD_INDEX = 2
- SPEED_GEN3 (4) -> UPD_INDEX = 3
- SPEED_GEN4 (5) -> UPD_INDEX = 4

This accounts for the fact that FSP expects 0-based indexing where
0 = Auto, 1 = Gen1, 2 = Gen2, etc.

TEST=Configured PCIE_SPEED_GEN2 for root port on mc_rpl1, booted and
verified with lspci -vv that device is limited to Gen2 speed

Change-Id: I0f70ad4da6f9f9e73b1c05648f0b206d5d61e07d
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89763
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-10-31 21:06:43 +00:00
Sean Rhodes
66f40a86de ec/starlabs/merlin: Move version offsets to ECDEFs
This is a more suitable place for these definitions as
it contains all other ECRAM offsets.

Change-Id: I12f52b7b27b24c49b6dfc3d4b8fa0718605d2d5f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89695
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-31 21:05:56 +00:00
Ivy Jian
82367b8205 mb/google/ocelot/var/matsu: Add overridetree
Add override devicetree per schematic_20251028.

BUG=b:443612246
TEST=emerge-ocelot coreboot

Change-Id: I0b527846ed455f46b9de1cd4bb4987aae85e0456
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89816
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-10-31 21:05:33 +00:00
Ivy Jian
05c0e16593 mb/google/ocelot/var/matsu: Update GPIO table
Configure GPIOs and related settings per schematic_20251028.

BUG=b:443612246
TEST=emerge-ocelot coreboot

Change-Id: I59227e435448eb6e362ab45d443fdea2f64a4233
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89815
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-10-31 21:05:27 +00:00
Ren Kuo
98c7be30ad mb/google/fatcat/var/moonstone: Support new schematic changes
Based on the Moonstone Schematic Proto 2.0 design, disable
Thunderbolt support for TCSS_PORT0 on the MB and TCSS_PORT1
on the DB.

Schematic: Kinmen(ZDQ)_Proto2.0_Moonstone_1014.pdf

BUG=none
TEST=emerge-fatcat coreboot

Change-Id: Ie9acb9d68234b2d8bfc9392cf89d581de8c54a08
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89819
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-31 21:05:15 +00:00
Alok Agarwal
5eafe672e3 vc/intel/fsp: Update WCL FSP headers to 3344_03
Update header files for FSP for wildcatlake platform from FSP 3266_02
to FSP 3344_03

Details:
-Update FspmUpd.h: Add below variable
   -Update definition of SerialIoUartDebugAutoFlow
   -Add WREQT, IsWckIdleExitEnabled, LogoPixelHeight , LogoPixelWidth,
    LogoXPosition, LogoYPosition ,VgaGraphicsMode12ImagePtr
-Update FspsUpd.h:
   - Add PchHdaMicPrivacyMode

BUG=b:447530895
TEST=Able to build google/ocelot with the partial header changes

Change-Id: Id5b37434396d4d70f4269a1bf82aa3d6935a9d41
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89311
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-31 21:05:07 +00:00
Kapil Porwal
641eeca835 lib/vga_gfx: Fix left-up and right-up orientations
The left-up and right-up orientations were swapped. Fix it to align
with boot logo and depthcharge screen.

BUG=b:406725440
TEST=Verify all 4 panel orientation on Google/Felino.

Change-Id: Ib0d08d4b2aa697129d854c15e081c7765e542060
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89834
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-10-31 21:04:39 +00:00
Matt DeVillier
a4f067c058 Makefile.mk: Align FMAP COREBOOT region to 4k boundary
Ensure FMAP_CBFS_BASE is aligned to 4k (0x1000) to match typical flash
sector boundaries. This allows flashrom to read/write only the COREBOOT
region using the --fmap layout option without extending the boundaries.

Previously, the COREBOOT region would start immediately after the FMAP
region (at FMAP_BASE + 0x200), which is not sector-aligned. Most flash
chips support a minimum 4k sector size, so flashrom would automatically
extend the region boundaries and emit a warning.

This eliminates warnings from flashrom such as:

  Region [0x00c54000 - 0x00c541ff] is not sector aligned!
  Extending end boundaries by 0x00000e00 bytes,
  from 0x00c541ff -> 0x00c54fff

TEST=build/boot google/gladios, update using --fmap and verify no
warnings regarding region alignment.

Change-Id: Ie4963bbef546aa23364bb9c1c347c5eb5bfeaf8e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89811
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-10-31 21:04:14 +00:00
Matt DeVillier
410506b47c Makefile.mk: Print all FMAP region sizes in hexadecimal format
The generated build/fmap.fmd file was displaying region sizes and
offsets in a mix of decimal and hexadecimal formats, making it harder
to read and compare values. This change ensures all numeric values are
consistently printed in hexadecimal.

The conversion to hex is done in two places:

1. For conditional FMAP entries (MRC_CACHE, SMMSTORE, SPD_CACHE, VPD,
   HSPHY_FW, CONSOLE), the _tohex conversion is applied at entry
   definition time. This is necessary because these entries may be
   empty when their respective CONFIG options are disabled, and the
   conditional logic happens before the sed substitution.

2. For unconditional values (ROM_SIZE, BIOS_BASE, BIOS_SIZE,
   FMAP_BASE, CBFS_BASE, CBFS_SIZE), the _tohex conversion is applied
   directly in the sed command when generating fmap.fmd. This keeps
   the base variables in decimal form for continued use in arithmetic
   operations.

All internal calculations continue to use decimal values. Only the
final output strings that are written to fmap.fmd are converted to hex
format.

Before:
  SI_BIOS@29032448 4521984 {
    SMMSTORE@65536 0x40000
    RW_SPD_CACHE@327680 4096

After:
  SI_BIOS@0x1bb0000 0x450000 {
    SMMSTORE@0x10000 0x40000
    RW_SPD_CACHE@0x50000 0x1000

Change-Id: I48cc39b430943cb4923955b5e3d64ad6dd24a6cf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89836
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-10-31 21:04:06 +00:00
Nick Vaccaro
c189604f43 mb/goog/ocelot/var/ocelot: Enable rp5 if PCIE WiFi detected
Enable rp5 if the FW_CONFIG bits for WIFI are set to WIFI_PCIE_6 or
WIFI_PCIE_7.

BUG=b:444509417
TEST=emerge-ocelot coreboot chromeos-bootimage', flash ocelot and
verify CNVI and PCIe WiFi solutions are detected correctly.

Change-Id: I077bfc48a82c354d1011ef756aa6aa55bf6951cd
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89838
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-10-31 17:24:24 +00:00
Angel Pons
4a806a6865 ec/starlabs/merlin: Only show EC FW options for ITE EC
The `EC_STARLABS_ADD_ITE_BIN` Kconfig option is only meaningful on
Star Labs boards with an ITE EC, i.e. those with `EC_STARLABS_ITE`
selected. So, add a "depends on" line so that the former option is
only visible on applicable boards.

TEST=`EC_STARLABS_ADD_ITE_BIN` no longer shows up for qemu-q35.

Change-Id: Ifb40d8b432d2abeadba2a970010dac126e4b7418
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89833
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-10-31 15:25:29 +00:00
Angel Pons
04d9a0d0f0 ec/starlabs/merlin/Kconfig: Fix typo in description/help text
Selec ---> Select

Change-Id: I53936c72ec0fb0227fb733dc07e2c3268a5c72d2
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89832
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-10-31 15:25:22 +00:00
Kilian Krause
1eda98a16e mb/siemens/mc_rpl1: Document CLKSRC 2 usage for PCIe RP5
PCIe Root Port 5 uses both CLKSRC 1 and CLKSRC 2, but coreboot's
devicetree only allows configuring a single clock source per port. Add
a comment to document that CLKSRC 2 is implicitly used by the hardware.

Change-Id: I9b54d97fa5e4e4e80a58392a7592bab91e00824d
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89791
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-30 19:44:39 +00:00
Johann C. Rode
1815a204b4 src/mainboard/lenovo: Add smbios_slot_desc, fix register types
Mostly cosmetic fixes.

Change-Id: I701b32de78f74bfd9ad3a82096f7ad92ffbb46e1
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89648
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-30 19:44:12 +00:00
Zhixing Ma
da204a92c1 vc/intel/fsp/wildcatlake: Expose PchHdaMicPrivacyMode
Expose the PchHdaMicPrivacyMode UPD parameter in the FSP-S
configuration structure for WildcatLake. This parameter controls
the HD Audio microphone privacy mode, allowing mainboards to
configure whether microphone privacy is hardware-managed,
firmware-managed, forced to mute, or disabled entirely.

TEST=Built WCL FSP successfully with this change.

Change-Id: If48c684aea09291715718a6e8fb400b9550aab61
Signed-off-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89779
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-10-30 14:57:39 +00:00
Bora Guvendik
105598545e soc/intel/pantherlake: Update thermal design current parameters
Update thermal design current (TDC) values for GT domain across
multiple PTL SKUs based on input from Power and Performance team.

BUG=none
TEST=Boot to OS on fatcat device and check performance.

Change-Id: I6333f8b5db8c7fc1739d0772d83bfe602a837a53
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89697
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Ma, Zhixing <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-30 14:57:24 +00:00
David Wu
a5b51ab285 mb/google/rex/var/kanix: Add H58G66CK8BX147 to RAM ID table
Add the new memory support: Hynix H58G66CK8BX147

BUG=b:441882141
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Iebdb05d134ee0719257a9d16121b5bf3977f06ed
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89780
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-30 14:57:03 +00:00
Sean Rhodes
d7f427a7d2 util/xcompile: Fix compiler detection on newer Linux distros
Switch to using `objdump -f`, which consistently prints the line
"file format <format>" across modern binutils versions, and extract
the architecture format from that output. This restores correct
toolchain detection on Ubuntu 25.10 and other systems with binutils
≥ 2.43, without breakng older versions.

Before:
    DEBUG: obj_type:
    /tmp/temp.rrDQ8i.o:     file format elf64-x86-64
    DEBUG: obj_arch:

After:
    DEBUG: obj_type:
    /tmp/temp.8GsK08.o:     file format elf64-x86-64
    architecture: i386:x86-64, flags 0x00000000:

    start address 0x0000000000000000
    DEBUG: obj_arch: elf64-x86-64

Change-Id: Ic09304f9e81580bbe1c0bb4910c0cc534d3d2816
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89643
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-30 08:45:06 +00:00
Sean Rhodes
82d90b1f21 Revert "mb/starlabs/*/rpl: Re-enable GpioOverride"
This reverts commit 8a2c04e04d.

Reason for revert: The hang is still present

Change-Id: Iba3c2b684cce3adefecd175d0ef09a5d051410ae
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89805
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-30 08:44:54 +00:00
Luca Lai
784d8f25f9 mb/google/fatcat/var/ruby: Enable panel touch function
Modify gpio and device tree setting to to make the touchscreen
function work.

schematics: RUBY_EVT_0902_2112.pdf

Device i2c log:
[INFO ]  \_SB.PCI0.CNVW: WIFI Device GENERIC: 0.0
[INFO ]  \_SB.PCI0.I2C0.RT58: Headset Codec at I2C: 00:1a
[INFO ]  \_SB.PCI0.I2C0.D04B: TI SPK AMP L at I2C: 00:4b
[INFO ]  \_SB.PCI0.I2C0.D04C: TI SPK AMP R at I2C: 00:4c
[INFO ]  \_SB.PCI0.I2C0.D04D: 	TI SPK AMP TL at I2C: 00:4d
[INFO ]  \_SB.PCI0.I2C0.D04F: T1 SPK AMP TR at I2C: 00:4f
[INFO ]  \_SB.PCI0.I2C3.TPMI: I2C TPM at I2C: 00:50
[INFO ]  \_SB.PCI0.I2C4.H015: ELAN Touchpad at I2C: 00:15
[INFO ]  \_SB.PCI0.I2C5.H014: Goodix Touchscreen at I2C: 00:14
[INFO ]  \_SB.PCI0.RP01: Enable RTD3 for PCI: 00:00:1c.0 (Intel PCIe Runtime D3)

BUG=b:451935490
TEST=Build and boot to OS and check touch function work.

Change-Id: I867e10d34e4bed5a5db242a74e8c9ac04657feb9
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89757
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-30 06:56:44 +00:00
Sean Rhodes
56a8c40efa mb/starlabs/starlite_adl: Add missing ACPI entry for USB card reader
commit 80861a9f69 ("mb/starlabs/starlite_adl: Add CFR option for
USB card reader") added support for the USB card reader, but did
not add the corresponding ACPI entries.

Change-Id: Ibef1b8412d5f51ffbfa715bb1ee80f73411dd3b3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89772
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-29 21:31:43 +00:00
Keith Hui
4047a44b68 sio/nuvoton/common/nuvoton.h: Add common Nuvoton SIO LDNs
Put the most commonly shared Nuvoton SIO logical device numbers into
one central header. It will be handy when they start sharing per-LDN
setup code.

Block iasl from seeing anything other than the LDNs.

Rename the re-inclusion guard symbol as its use is no longer limited to
pre-RAM stages.

It references NCT677x because that reference is hidden in every single
Nuvoton SIO chip datasheet in my possession.

Change-Id: Ibf01c0e0ffdecbedc34df62b582e3be0c5c0a852
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89739
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-10-29 16:56:07 +00:00
Tony Huang
3a1d6d5ded mb/google/brox/var/caboc: Adjust WWAN power off sequence
Currently wwan_power.asl clears gpio WWAN (PERST) during power-off.

Caboc project uses a MOS reverse pin to connect GPP_A21
(WWAN_ASPM_EXIT) to WWAN (PERST). Based on this design, uses STXS to
keep GPP_A21 high to meet power-off sequence.

Set T1_OFF_MS to 20ms and T2_OFF_MS to 10ms as HW engineer requested.

BUG=b:453512678
TEST=emerge-brox coreboot
     HW enginer has measured and confirms WWAN power-off sequence.

Change-Id: I202a370dba2ba1dec61b1ad44140674bd470ba6e
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89642
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-10-29 16:55:38 +00:00
Johann C. Rode
b42f74122c Documentation/mb/lenovo: Adjust docs for Thinkpad T470s/T580
The documentation has been adjusted to include additional variants,
and brushed up a bit for clarity.

Change-Id: Ia7711d5105e568113de219b1aa43e3a5d50aaf9c
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89750
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
2025-10-29 16:53:34 +00:00
Angel Pons
70e79f43b1 Haswell NRI: Print and fill in memory-related info
Call the `report_memory_config()` and `setup_sdram_meminfo()` functions,
which were factored out into shared raminit code in previous patches. As
the SPD data is not readily available where `setup_sdram_meminfo()` gets
called, add a function to get it from the saved data, as it is available
in a global context. Technically speaking, the "mighty ctrl" variable is
also static (thus global), but it is only meant to be used within native
raminit code and is only static to avoid nuking the stack (it is huge).

Change-Id: Ia2c0946f55748e38bb5ccb5cb06721aeb77527e7
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89600
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-29 16:52:51 +00:00
Angel Pons
1730d05ec3 nb/intel/haswell: Factor out report_memory_config()
Move the `report_memory_config()` function to shared raminit code, both
to deduplicate the code and to allow native raminit to make use of it.

Change-Id: I8b3c695c0a266634a42b0303e4f1ea699301c26b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89599
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-29 16:52:39 +00:00
Angel Pons
3bbfbd37e1 nb/intel/haswell: Factor out setup_sdram_meminfo()
Move the `setup_sdram_meminfo()` function to shared raminit code
to deduplicate it as well as to allow native raminit to make use
of it, which will be done in a follow-up.

When consolidating the functions, the only functional difference
is that the Broadwell MRC.bin path reports memory frequencies in
MHz whereas the Haswell MRC.bin path reports them in MT/s. Since
this data is used to populate SMBIOS tables, which expect memory
frequencies in MT/s, using MT/s is the right choice.

Given that SPD data is handled differently in the three RAM init
implementations (Haswell MRC, Broadwell MRC, native raminit), we
have to abstract the SPD data pointers a bit. This is done using
an array of pointers.

While we're at it, add some TODO comments to note limitations of
the code. The idea is to fix those in follow-up commits.

Change-Id: I1f81bf18a9e856d80f8e4d7bda65089e999957f6
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89598
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-29 16:52:28 +00:00
Kilian Krause
3ffb01e9cb mb/siemens/mc_rpl1: Disable I2C1 and enable I2C6
Reconfigure I2C controller settings to disable I2C1 and enable I2C6
for the mc_rpl1 mainboard. This change reflects the updated hardware
configuration requirements.

Changes:
- Disable I2C controller 1
- Enable I2C controller 6

TEST=Build and boot tested on mc_rpl1 mainboard.
     Verified I2C6 functionality and confirmed I2C1 is disabled with
     `lspci -v | grep -A 5 "Serial bus controller"`. The output
     confirms that I2C6 (PCI 00:10.0) is enabled and I2C1 (PCI 00:15.1)
     is disabled because it is absent.

     ```
     00:10.0 Serial bus controller: Intel Corporation Alder Lake-P Serial IO I2C Controller #2 (rev 01)
        Subsystem: Intel Corporation Alder Lake-P Serial IO I2C Controller
        Flags: bus master, fast devsel, latency 0, IRQ 24, IOMMU group 4
        Memory at 80a12000 (64-bit, non-prefetchable) [size=4K]
        Capabilities: [80] Power Management version 3
        Capabilities: [90] Vendor Specific Information: Len=14 <?>
     ```

Change-Id: I4867062743ee10b34f94a1e588a10115b553a16e
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89690
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Uwe Poeche <uwe.poeche@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-29 16:52:15 +00:00
David Wu
4563db2807 mb/google/nissa/var/riven: Add H58G66CK8BX147 to RAM ID table
Add the new memory support: Hynix H58G66CK8BX147

BUG=b:455729238
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Ieed017b6910313f28367c4e1923c403b305f5bde
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89781
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-10-29 14:19:40 +00:00
Luca Lai
a748e8b82b mb/google/fatcat/var/ruby: Enable touchpad function using I2C interface
Modify gpio setting to redundant enable the touchpad.

schematics: RUBY_EVT_0902_2112.pdf

Device i2c log:
[INFO ]  \_SB.PCI0.CNVW: WIFI Device GENERIC: 0.0
[INFO ]  \_SB.PCI0.I2C0.RT58: Headset Codec at I2C: 00:1a
[INFO ]  \_SB.PCI0.I2C0.D04B: TI SPK AMP L at I2C: 00:4b
[INFO ]  \_SB.PCI0.I2C0.D04C: TI SPK AMP R at I2C: 00:4c
[INFO ]  \_SB.PCI0.I2C0.D04D: 	TI SPK AMP TL at I2C: 00:4d
[INFO ]  \_SB.PCI0.I2C0.D04F: T1 SPK AMP TR at I2C: 00:4f
[INFO ]  \_SB.PCI0.I2C3.TPMI: I2C TPM at I2C: 00:50
[INFO ]  \_SB.PCI0.I2C4.H015: ELAN Touchpad at I2C: 00:15
[INFO ]  \_SB.PCI0.I2C5.H014: Goodix Touchscreen at I2C: 00:14
[INFO ]  \_SB.PCI0.RP01: Enable RTD3 for PCI: 00:00:1c.0 (Intel PCIe Runtime D3)

BUG=b:449901218
TEST=Build and boot to OS and use Elan touchpad module to verify the cursor works.

Change-Id: Id84f96eb07c97dddd5cd1498a18317f9a1676b55
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89758
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-10-29 12:03:31 +00:00
Sean Rhodes
a92a2ee5d6 mb/starlabs/byte_adl: Expose fan control option in CFR
Test=Change fan mode on byte_adl in edk2 and verify correct value
is written to the EC memory using `ectool -d`

Change-Id: I93d4be663a059abb973ad6abf2e60d40f56ed6c7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89782
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-29 09:42:34 +00:00
Luca Lai
bbb895436f mb/nissa/var/pujjoga: Add single ram configuration
Pujjoga and pujjogatwin projects are both going to be single RAM device, so add single ram configuration.

Schematic version: 500E_GEN4S_ADL_N_MB_250920

Below log show the device can recognize the single dram.
[INFO ]  SPD: module type is LPDDR5X
[INFO ]  SPD: module part number is H9JCNNNBK3MLYR-N6E
[INFO ]  SPD: banks 8, ranks 1, rows 16, columns 11, density 16384 Mb
[INFO ]  SPD: device width 16 bits, bus width 16 bits
[INFO ]  SPD: module size is 2048 MB (per channel)
[INFO ]  Device only supports one DIMM. Disable all other memory
channels except first two on each memory controller.
[DEBUG]  CBMEM:
[DEBUG]  IMD: root @ 0x76fff000 254 entries.
[DEBUG]  IMD: root @ 0x76ffec00 62 entries.

BUG=b:445629015
BRANCH=none
TEST=Build and boot to OS. Verify functions work.

Change-Id: I22e8335432e6e65bd1640bf6a6dec03691e3462e
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89221
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-29 06:25:42 +00:00
Yidi Lin
e2cf7f7dc7 soc/mediatek/common: Fix MMU assertion for framebuffer region
Configure MMU for framebuffer region only when framebuffer region
exists (i.e., REGION_SIZE(framebuffer) > 0). Otherwise, the MMU would
raise assertion.

[INFO ]  Mapping address range [0x0000040000000:0x0000240000000) as cacheable | read-write | non-secure | normal
[INFO ]  Mapping address range [0x0000040000000:0x0000040100000) as non-cacheable | read-write | non-secure | normal
[DEBUG]  Backing address range [0x0000040000000:0x0000080000000) with new L2 table @0x020da000
[DEBUG]  Backing address range [0x0000040000000:0x0000040200000) with new L3 table @0x020db000
[INFO ]  Mapping address range [0x0000000000000:0x0000000000000) as non-cacheable | read-write | non-secure | normal
[EMERG]  ASSERTION ERROR: file 'src/arch/arm64/armv8/mmu.c', line 194

BUG=b:454457496
TEST=The assertion does not occur.

Change-Id: I8ab17bd289cd41a4568fddff2e556e5e49b1e6a4
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89759
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
2025-10-29 05:39:54 +00:00
Sean Rhodes
a5ddfa963f mb/starlabs/starlite_adl: Increase ME region size to match IFD
Increase the ME region by 4KiB to match the IFD that is used for
both the Alder Lake and Twin Lake versions.

Change-Id: I22fa2388ed5660b959815be00029c07cac2b5244
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89761
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-28 20:09:09 +00:00
Appukuttan V K
7484a887b8 mb/google/ocelot: Fix EC sync IRQ configuration for board variants
This patch corrects the EC sync IRQ configuration logic to properly
handle different ocelot board variants:

1. Update conditional compilation in ec.h to exclude OCELOTMCHP and
   OCELOTMCHP4ES variants from EC_ENABLE_SYNC_IRQ, as these boards do
   not have the EC sync IRQ connected.
2. Restructure GPIO definitions in gpio.h to:
 - Set EC_SYNC_IRQ to 0 (not connected) for OCELOTMCHP, OCELOTMCHP4ES,
   variants.
 - Enable EC_SYNC_IRQ on GPP_E08_IRQ for OCELOT, OCELOT4ES, OCELOTITE,
   and OCELOTITE4ES variants.
3. Configure GPP_E08 pad appropriately in gpio.c:
 - Set as NC (not connected) for OCELOTMCHP variants.
 - Configure as APIC interrupt for other variants that support EC sync
   IRQ functionality.

BUG=NONE
TEST=Build and boot on Ocelot variants.

Change-Id: I96e92ed9d6fa5b586ab9c0faf73d08b55abe4795
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89459
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Krishna P Bhat D <krishna.p.bhat.d@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-28 14:31:50 +00:00
Luca Lai
b1ed60b910 mb/google/fatcat/var/ruby: Disable FSP_UGOP_EARLY_SIGN_OF_LIFE temporarily
Disable FSP_UGOP_EARLY_SIGN_OF_LIFE temporarily to workaround
memory training issue.

BUG=b:452180266
TEST=Build and boot to OS.

Change-Id: I9a928319fae7d5340848412f5af83e6294681933
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89688
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-28 14:30:33 +00:00
Zheng Li
fea1b2abbe mb/google/nissa/var/pujjocento: Adjust touch panel timing for stability
Reduce reset delay from 20ms to 0ms to shorten total tp_rst time from
350ms to 330ms. Validation on Prade shows the controller initializes
reliably within the reduced timing. It will be able to complete the
following steps before vccs on.

1. TP Reset
2. Get HID Description
3. HID Reset/HID Power On
4. Get Report Descriptor/Get Feature Report

Verification results are in b/455053468 comment#3

BUG=b:455053468
BRANCH=none
TEST=Build and boot to pujjocento. Verify touchpanel sequence

Change-Id: I4efa4e927e78d3200b357f5f5b41c3d2aef12f8b
Signed-off-by: Zheng Li <lizheng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89748
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-10-28 05:38:26 +00:00
Yang Wu
8f1c54685a drivers/mipi: Fix pixel clock and enable C-PHY for TM_TL121BVMS07_00C
Commit ddf5987c1e ("drivers/mipi: Add support for
TM_TL121BVMS07_00C panel") (CB:89216) added support for the
TM_TL121BVMS07_00C panel, but the screen was not functional.

Decrease the pixel clock from 4,400,560 Hz to 264,355 Hz to match the
actual panel timing specification. Also, the panel uses C-PHY interface,
so enable the `PANEL_FLAG_CPHY` flag accordingly.

Datasheet: Preliminary+specification+TL121BVMS07+-00+V01+20250721.pdf

BUG=b:428854543
TEST=build and check firmware screen.
BRANCH=skywalker

Change-Id: I88fa5215d7596926aa95a58ae91dd6ade793388b
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89568
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-28 04:11:34 +00:00
Vince Liu
979fdee1d9 soc/mediatek/mt8189: Support MIPI C-PHY interface
Add config `MEDIATEK_DSI_CPHY` to enable the MIPI C-PHY interface on
mt8189, including necessary register definitions and integrating with
the common MIPI driver, dsi_register_v2.

BUG=b:433422905,b:428854543
TEST=Check display initialization log on padme
mtk_display_init: 'TM TL121BVMS07' 1600x2560@60Hz

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Iac6c1b6d47331b63e7b45157bd60da93f104b0ee
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89620
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-10-28 04:11:09 +00:00
Vince Liu
44635f328c soc/mediatek/common: Add C-PHY support for MIPI DSI
Introduce C-PHY support by adding PANEL_FLAG_CPHY flag, updating data
rate calculations, timing configurations, and register settings for
C-PHY operation.

To improve code reusability, the D-PHY and C-PHY specific
implementations are moved to `mtk_mipi_dphy.c` and `mtk_mipi_cphy.c`,
respectively.

BUG=b:433422905,b:428854543
BRANCH=skywalker
TEST=check log on padme
mtk_display_init: 'TM TL121BVMS07' 1600x2560@60Hz

Change-Id: I9e81551484e605e1d74b9983fe00b5d0eba69358
Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
(cherry picked from commit 22a499836eeb6904e114023da6222b29da10f62f)
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89567
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-10-28 04:10:46 +00:00
Vince Liu
c63e901b99 mipi: Add panel flags to support C-PHY interface
Add a new member 'flags' to the panel structure in panel.h, and define
`PANEL_FLAG_CPHY` to indicate C-PHY interface support. This change
enables panel drivers to check and handle C-PHY panels.

BUG=b:433422905,b:428854543
BRANCH=skywalker
TEST=build passed

Signed-off-by: Bincai Liu bincai.liu@mediatek.corp-partner.google.com
Signed-off-by: Vince Liu vince-wl.liu@mediatek.corp-partner.google.com
Change-Id: I4c35ad2cb6fc2289598ae47b3abf1c6c706dad42
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89760
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-28 04:10:32 +00:00
Dodoid
385ae6669b mb/gigabyte/ga-h77m-d3h/devicetree.cb: Re-enable IGD and PCIe VGA
Commit 7d8e105420 ("mb/gigabyte/ga-h77m-d3h: Add Sandy/Ivy Bridge
board GA-H77M-D3H"), adding this board, initially enabled igd and
peg10 in the device tree, but later, during review, Patchset 10
removed those lines of the device tree entirely, disabling onboard
and PCIe graphics in the port as ultimately submitted.

This commit re-adds these lines to the device tree, enabling both -
thanks to nic3-14159 for spotting the issue. I have confirmed both
now work on my GA-H77M-D3H.

TEST=Confirm IGD outputs as configured in SeaBIOS and Linux (with
CONFIG_ONBOARD_VGA_IS_PRIMARY), same for PCIe GPU (running option
ROMs).

$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core
processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 
v2/3rd Gen Core processor Graphics Controller (rev 09)
...

With a monitor connected to the onboard DVI:

$ cat /sys/class/graphics/fb0/virtual_size
1920,1080

Change-Id: I248827b92d9f14cedbbd666d533764b5f152cf29
Signed-off-by: Dodoid <git-noreply@dodoid.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89681
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-10-27 19:59:14 +00:00
Maximilian Brune
2c6cf2c2a8 include/cper.h: Update CPER structures with __packed attribute
Change-Id: I79945d40d68d2de93e8745425a046e700be97182
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89678
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-27 19:58:54 +00:00
Riku Viitanen
d97644dd3f mb/asrock: Add Z77 Extreme4
New port based on logs extracted from a board running OEM firmware.
VBT extracted from a running system with "intelvbttool --inlegacy".

Internal flashing of the entire chip is possible from vendor firmware
by overriding the Flash Descriptor. Conveniently, the HDA_SDO pin is
connected to one of the unused pins of the PCIE1 slot.

Tested:
- i7-3770K CPU (native raminit)
- 2x8GB: G.skill F3-1600C9-8GAR (@1600MHz)
- 4x8GB: Corsair CMY16GX3M2A2400C (@1333MHz)
- libgfxinit txtmode with onboard HDMI, DVI and VGA
- Gigabit Ethernet
- CPU fan
- PS/2 keyboard or mouse (but not at the same time)
- SeaBIOS 1.17.0 booting to Devuan and Void Linux
- All internal SATA ports
- Rear USB ports
- Line out
- me_cleaner
- PCIE2 (x16/x8), PCIE3 (x8) and PCIE4 (x1) slots
- PCI slots
- Suspend and resume (S3)
- Serial port header COM1 (including coreboot output)

Untested:
- Intel VBIOS
- Front USB headers
- Other fans
- LED headers
- eSATA, Toslink
- PCIE1 (x1) slot

Change-Id: Idf028c6d411bd501b73a3c526240d0b1d6ecaa0c
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85772
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-10-27 19:57:35 +00:00
Bora Guvendik
a73db6d451 mb/intel/ptlrvp: Add fw_config support for SPD selection
Add firmware configuration support for SPD (Serial Presence Detect)
selection on Intel PTLRVP boards. This change allows dynamic memory
configuration based on fw_config fields instead of relying solely on
board ID detection.

BUG=None
TEST=Build and verify SPD selection works correctly on PTLRVP boards
with different memory configurations.

Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Change-Id: I3cc45ad9813bef09718fe679bfafb700024586f9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88255
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-24 21:39:00 +00:00
Michał Żygowski
3ef1cf9f84 soc/amd/turin_poc: Add Turin SoC structure as a copy of genoa_poc
Copied genoa_poc directory with Genoa occurrences renamed to Turin,
case sensitive.

Change-Id: I860f35a8b08dae1b3b18c65c96b0136f7b95913c
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88707
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-10-24 21:38:41 +00:00
Johann C. Rode
668d643e5c mb/lenovo/sklkbl_thinkpad: Add Lenovo Thinkpad T470s as a variant
The hardware is mostly identical to the already supported Thinkpad
T480s. Aside from the CPU (KBL vs SKL), major hardware differences are
GPIO pins routed out to a classical docking station connector, and the
lack of support for dedicated GPUs.

A tricky aspect of this machine is that it fails to enumerate PCIe
devices when using a truncated Intel ME firmware even when retaining
the MFS partition [1]. I suspect that the PCIe clock generators are set
up in some other part of the ME firmware.

The VBT (intelvbttool) as well as GPIO register dumps (inteltool) was
obtained from the latest stock BIOS 1.55/N1WET76W. GPIO, USB and PCIe
port assignments have been cross-checked against the publicly available
schematics (Thorpe-2).

The patches were validated on a laptop with part number 20JT-S16E00 in
conjunction with a non-truncated deguarded Intel ME firmware [2].
A cursory hardware test (video, wifi, audio, network, reboot, etc.) has
everything working as expected (debian 13).

[1] https://puri.sm/posts/deep-dive-into-intel-me-disablement/
[2] deguard commit 497732f8b2e3bdc699c0fbc6713b6afbaef7506a

Change-Id: I113b31484a634b7c1acdba5f74e5eef050d4ede6
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89638
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-10-24 21:38:20 +00:00
Yu-Ping Wu
8a6f9bf731 ec/google/chromeec: Update EC headers
Generated using update_ec_headers.sh from EC repo commit:

  a74136aff032 ("driver/cps8601: Add the driver for CPS8601")

BUG=b:448300592
TEST=emerge-skywalker coreboot
BRANCH=none

Change-Id: I069e12e0bacdf243648b98c6d3c0c4db12e0f4f7
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89654
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2025-10-24 21:37:32 +00:00
Maximilian Brune
745f1312aa include/cper.h: Update comments to UEFI spec version 2.10
note: The entire patch was created using AI (besides commit-msg)

Change-Id: I0f80d1d8cd67b26a4ec1014584b5486254115839
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89677
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-24 21:36:59 +00:00
Ian Feng
aab8ad98b6 mb/google/ocelot: Create kodkod variant
Create the kodkod variant of the ocelot reference board by copying
the ocelot files to a new directory named for the variant.

BUG=b:451760650
TEST=util/abuild/abuild -p none -t google/ocelot -x -a
make sure the build includes GOOGLE_KODKOD

Change-Id: I8bbea4444d65e57b98bf9c8a621ff548abb8aece
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89679
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-24 21:35:31 +00:00
Dodoid
2279ba80e1 .gitignore: Add .clangd as a "Development friendly file"
If using clangd for development, your .clangd file is almost
certainly specific to your environment, and should be gitignored,
same as e.g. .vscode/

Change-Id: I3388d14f381aa9f68be9806652514a741fad49c9
Signed-off-by: Dodoid <git-noreply@dodoid.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89680
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
2025-10-24 21:35:19 +00:00
Varun Upadhyay
cd4af952e7 mb/google/ocelot/var/ocelot: Update DDR5 memory configs
This change updates memory configuration for DDR5 boards based
on board ID.
1. Set SaGv frequencies
2. Configure gear settings
3. Map Channel/PHY clock

TEST: Build ocelot image and boot board with DDR5 memory config.

Change-Id: Iffff1f1ac9b886f58304c002defbc008d3c6bbb8
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89519
Reviewed-by: Usha P <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-24 21:34:58 +00:00
Cliff Huang
1af54d9784 drivers/intel/touch: Change I2C speed type to i2c_speed enum
Change the I2C connection speed type from uint32_t to the i2c_speed
enum type for better type safety and code consistency. While the
i2c_speed enum values correspond to actual speed values in Hz, using the
enum provides clearer intent and prevents invalid speed values.
Additionally, add logic to use standard I2C speed (100 kHz) when no
recommended or required speed is specified in the device tree, SoC
configuration, or device settings.

BUG=none
TEST=Boot Fatcat board to OS and verify correct I2C speed assignments in
'DSPD' Name object under THC device from SSDT. Confirm touch devices
operate at expected speeds.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: Ie01693544bebf9f748d16606fc13f39fe4069b03
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89649
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kyoung Il Kim <kyoung.il.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-10-24 21:34:48 +00:00
Sean Rhodes
84a348f4bf ec/starlabs/merlin: Remove the fast charge option
This is a legacy option that changed the charging frequency. It
is no longer needed as the "normal" frequency is faster and more
stable so remove it.

Change-Id: I73cf439d96d65f0be26595e42a4aedbc4388b850
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89694
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-24 07:47:15 +00:00
Alok Agarwal
1699d455e7 vc/intel/fsp: Update PTL FSP headers to FSP 3373_03
Update header files for FSP for Panther Lake platform to FSP 3373_03
from FSP 3272_04

Details:
- Update FspmUpd.h: Add below variable
  - WREQT
- Update FspsUpd.h: Add below variable
  - PchHdaMicPrivacyMode
- Update MemInfoHob.h:
  - Add variable PprTargetedStatus and definition of PPR_REQUEST_MAX.

BUG=b:449580146
TEST=Able to build google/fatcat with the partial header changes

Change-Id: I6842fa4642ca994cd10f96efb7d4bc044cccacd2
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89442
Reviewed-by: <srinivas.kulkarni@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-23 15:10:19 +00:00
Elyes Haouas
b87a9795de tree: Use boolean for s3resume
Change-Id: I3e23134f879fcaf817cf62b641e9b59563eb643b
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86331
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-23 13:34:15 +00:00
Brian Hsu
ec1068883f mb/google/nissa/var/guren: Add initial WWAN related settings
1. Add DB_1C_5G 8 on DB_USB overridetree.
2. Also disable LTE-related GPIOs based on fw_config when system
   was DB_1C_5G.

BUG=b:445338278
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot chromeos-bootimage
     Check 5G LTE module detectable by command # mmcli -m a.

Change-Id: I3d525d9de151427d38485882117b59939b9da5c7
Signed-off-by: Joyce Ciou <Joyce_Ciou@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89606
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-23 12:29:30 +00:00
Mac Chiang
752d49a4ff mb/google/fatcat/var/moonstone: Disable RT721 clock stop support
RT721 headset jack detection fails because the wakeup event is not
triggered during runtime suspend in D3 state. Disable the clock stop
to allow the bus driver to handle the wakeup process properly. The MIPI
Disco property is "mipi-sdw-simplified-clockstopprepare-sm-supported".

BUG= b:435094908
TEST= verify headset jack works properly.

Change-Id: Ibd5271e496a9ca841498b17a5746e300f9557078
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89605
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-23 03:11:24 +00:00
Hari L
155041ad4c soc/qualcomm/x1p42100: Add EUSB2 HS repeater support for USB Type-C
Add usb_repeater_spmi_init() and usb_repeater_spmi_tune() functions
for USB repeater internal to SMB2360 via SPMI configuration
during HS PHY initialization.

The usb_repeater_spmi_init() function enables Embedded USB2 control for
both SMB1 and SMB2 cores, while usb_repeater_spmi_tune() configures
optimal signal integrity parameters (IUSB2, USB2_SLEW, USB2_PREEM)
for reliable Type-C connectivity.

BUG=b:451814646
TEST=Verify USB2.0 (HS) works for C1 on Google/Bluey.

Without this CL -
USB2 key doesn't work for C1.

Verified HS1 functionality by turning on L14B from coreboot.

Before USB insertion:
firmware-shell:  md 0x0a800420 8
0a800420: 000002a0 00000000 00000000 00000000    ................
0a800430: 000002a0 00000000 00000000 00000000    ................

firmware-shell: Added USB disk 2.
firmware-shell:  md 0x0a800420 8
0a800420: 00000e03 00000000 00000000 00000000    ................
0a800430: 000002a0 00000000 00000000 00000000    ................

firmware-shell: Removed USB disk 2.
firmware-shell:  md 0x0a800420 8
0a800420: 000002a0 00000000 00000000 00000000    ................
0a800430: 000002a0 00000000 00000000 00000000    ................

Change-Id: I24e0af062fc7a6b5effd9317ec5c0b2d89fe288e
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89613
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-22 18:49:51 +00:00
Filip Gołaś
6e45016610 intel soc,southbridge: Add Kconfig to set TSBS in IFD during build
To modify the Top Swap Block Size in the FD (if provided and
CONFIG_HAVE_IFD_BIN=y), set the following Kconfig variables:
- CONFIG_INTEL_HAS_TOP_SWAP
- CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK
- CONFIG_INTEL_TOP_SWAP_BOOTBLOCK_SIZE
- CONFIG_INTEL_IFD_SET_TOP_SWAP_BOOTBLOCK_SIZE

Needed for the bootblock redundancy feature suggested at
https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

TEST=build VP66xx with custom Kconfig, check if TSBS is modified in FD

Change-Id: I94d3d3e2511a7e56392a9e34f845ae91602ce7f1
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89493
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-22 18:49:21 +00:00
Filip Gołaś
f4271cad0a ifdtool: Add set top swap size PCH strap subcommand
Top-Block Swap mode of Intel PCH allows to swap the boot block with
another location placed directly below it by redirecting the memory
accesses.

The range of the addresses to be redirected is configured using the Top
Swap Block Size (or BOOT_BLOCK_SIZE) PCH strap using 3 bits to encode
one of 8 sizes:
    64 KB, 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, 4 MB or 8 MB.

The source and target ranges depend on the configured size, eg:
- 64 KB  - FFFF_0000h - FFFF_FFFFh -> FFFE_0000h - FFFE_FFFFh
- 128 KB - FFFE_0000h - FFFF_FFFFh -> FFFC_0000h - FFFD_FFFFh
- 8 MB   - FF80_0000h - FFFF_FFFFh -> FF00_0000h - FF7F_FFFFh

Only supporting Alder Lake-P and Alder Lake-N for now.

Needed for the bootblock redundancy feature suggested at
https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/C6JN2PB7K7D67EG7OIKB6BBERZU5YV35/

TEST=check using xxd, MFIT tool, ensure VP6670 boots
Test details:
xxd:
  ./util/ifdtool/ifdtool -p adl -T 0x10000 vp66xx_fd.bin && \
  xxd vp66xx_fd.bin > vp66xx.hex && \
  xxd vp66xx_fd.bin.new > vp66xx_fd.new.hex && \
  diff -au vp66xx_fd.hex vp66xx_fd.new.hex

File vp66xx_fd.bin is 4096 bytes
Writing new image to vp66xx_fd.bin.new

--- vp66xx_fd.hex       2025-10-08 12:03:09.527193533 +0200
+++ vp66xx_fd.new.hex   2025-10-08 12:05:08.717108142 +0200
@@ -18,7 +18,7 @@
 00000110: 7f78 0700 0000 0000 1800 0000 0000 1f00  .x..............
 00000120: 0808 1170 0000 0000 0000 7f06 80f8 8107  ...p............
 00000130: 0000 0000 0f00 0000 2222 2222 2202 2222  ........""""".""
-00000140: 0000 0000 0000 0000 0000 ff00 6000 80c8  ............`...
+00000140: 0000 0000 0000 0000 0000 ff00 0000 80c8  ................
 00000150: 4586 0036 0000 0000 0002 5800 0000 4000  E..6......X...@.
 00000160: 0018 0000 0000 0000 0000 0000 0000 0000  ................
 00000170: 0000 0000 0000 0000 54b3 04a0 3000 0140  ........T...0..@

mfittool:
./mfit --gui -decompose protectli_vp66xx_v0.9.2.rom
In the UI:
Flash Settings > BIOS Configuration > Top Swap Block Size
shows the value changing to the expected one, ie.
    -T 0x10000 results in 64kB
    -T 0x20000 results in 128kB
    -T 0x400000 results in 4MB
    etc.

Change-Id: I50e9d4160ee4b60e83567bcd33c9d80d428cf2bb
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89438
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-22 18:48:58 +00:00
Martin Roth
ab4b82fb3c util/lint: Add a license check exception for .gitkeep files
A .gitkeep file is an unofficial convention used in Git to keep and
track empty directories, as Git does not track empty folders by default.

This could be needed when one mainboard variant has an include directory
but another doesn't. If the directory is added to the include, it could
be easier to just create an empty include directory with a .gitkeep file
in it to keep things from failing.

Change-Id: I34b2ffa4d748d82e26867ecd5b9149301300e6a1
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89640
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-10-22 17:10:30 +00:00
Venkateshwar S
03524780ff soc/qualcomm/x1p42100: Support loading QTEE FW config files
This patch adds support to load the config files associated with
the QTEE firmware in X1P42100.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.
Ensure config files are loaded into the appropriate regions.

[INFO ]  CBFS: Found 'fallback/tzoem_cfg' @0x3ab3c0 size 0x3900
[DEBUG]  read SPI 0xfdb418 0x3900: 1200 us, 12160 KB/s, 97.280 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
                supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 14592 bytes, hash algo 2, HW acceleration
                forbidden
[DEBUG]  Loading segment from ROM address 0x9f8040f8
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0xd802a000 memsize 0x1d0 srcaddr
                0x9f80414c filesize 0xd2
[DEBUG]  Loading Segment: addr: 0xd802a000 memsz: 0x00000000000001d0
                filesz: 0x00000000000000d2
[DEBUG]  using LZMA
[SPEW ]  [ 0xd802a000, d802a1d0, 0xd802a1d0) &amp;lt;- 9f80414c
[DEBUG]  Loading segment from ROM address 0x9f804114
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0xd802f000 memsize 0x9000 srcaddr
                0x9f80421e filesize 0x37da
[DEBUG]  Loading Segment: addr: 0xd802f000 memsz: 0x0000000000009000
                filesz: 0x00000000000037da
[DEBUG]  using LZMA
[SPEW ]  [ 0xd802f000, d8038000, 0xd8038000) &amp;lt;- 9f80421e
[DEBUG]  Loading segment from ROM address 0x9f804130
[DEBUG]    Entry Point 0xd802f000
[SPEW ]  Loaded segments
[INFO ]  CBFS: Found 'fallback/tzqti_cfg' @0x3aed40 size 0x19c3
[DEBUG]  read SPI 0xfded98 0x19c3: 562 us, 11734 KB/s, 93.872 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
                supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 6595 bytes, hash algo 2, HW acceleration
                forbidden
[DEBUG]  Loading segment from ROM address 0x9f8040f8
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0xd803b000 memsize 0x1d0 srcaddr
                0x9f80414c filesize 0xd2
[DEBUG]  Loading Segment: addr: 0xd803b000 memsz: 0x00000000000001d0
                filesz: 0x00000000000000d2
[DEBUG]  using LZMA
[SPEW ]  [ 0xd803b000, d803b1d0, 0xd803b1d0) &amp;lt;- 9f80414c
[DEBUG]  Loading segment from ROM address 0x9f804114
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0xd8040000 memsize 0xe000 srcaddr
                0x9f80421e filesize 0x189d
[DEBUG]  Loading Segment: addr: 0xd8040000 memsz: 0x000000000000e000
                filesz: 0x000000000000189d
[DEBUG]  using LZMA
[SPEW ]  [ 0xd8040000, d804e000, 0xd804e000) &amp;lt;- 9f80421e
[DEBUG]  Loading segment from ROM address 0x9f804130
[DEBUG]    Entry Point 0xd8040000
[SPEW ]  Loaded segments
[INFO ]  CBFS: Found 'fallback/tzac_cfg' @0x3b0780 size 0x1f0d
[DEBUG]  read SPI 0xfe07d8 0x1f0d: 670 us, 11864 KB/s, 94.912 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
                supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 7949 bytes, hash algo 2, HW acceleration
                forbidden
[DEBUG]  Loading segment from ROM address 0x9f8040f8
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0xd8019000 memsize 0xb800 srcaddr
                0x9f804130 filesize 0x1ed5
[DEBUG]  Loading Segment: addr: 0xd8019000 memsz: 0x000000000000b800
                filesz: 0x0000000000001ed5
[DEBUG]  using LZMA
[SPEW ]  [ 0xd8019000, d8024800, 0xd8024800) &amp;lt;- 9f804130
[DEBUG]  Loading segment from ROM address 0x9f804114
[DEBUG]    Entry Point 0xd8019000
[SPEW ]  Loaded segments
[INFO ]  CBFS: Found 'fallback/hypac_cfg' @0x3b2700 size 0x11f2
[DEBUG]  read SPI 0xfe2758 0x11f2: 400 us, 11485 KB/s, 91.880 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
                supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 4594 bytes, hash algo 2, HW acceleration
                forbidden
[DEBUG]  Loading segment from ROM address 0x9f8040f8
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0xd8000000 memsize 0xc8f4 srcaddr
                0x9f804130 filesize 0x11ba
[DEBUG]  Loading Segment: addr: 0xd8000000 memsz: 0x000000000000c8f4
                filesz: 0x00000000000011ba
[DEBUG]  using LZMA
[SPEW ]  [ 0xd8000000, d800c8f4, 0xd800c8f4) &amp;lt;- 9f804130
[DEBUG]  Loading segment from ROM address 0x9f804114
[DEBUG]    Entry Point 0xd8000000
[SPEW ]  Loaded segments

Change-Id: If07840fca327e51c385dbe3f33b9f775bbee7654
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89550
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-22 17:08:35 +00:00
Venkateshwar S
50adb3f23c mb/google/bluey: Increase FW_MAIN_A/B slot size to 4.5MB
This patch increases the size of the FW_MAIN_A and FW_MAIN_B slots to
4608KB (4.5MB) to incorporate the QTEE FW and its config files.

TEST =Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I69ce0f3cff2cae110a21417245c425ee8bcf1e6c
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89549
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-22 12:37:19 +00:00
Vince Liu
bbdf2eab6a soc/mediatek: Rename DSI common files for improved readability
Rename `common/dsi.c` to `common/dsi_common.c` since this file is used
by all SoCs. Rename `common/mtk_dsi_common.c` to `common/dsi_v1.c`, as
this file serves as the v1 implementation for all SoCs except mt8173.
These changes help clarify file usage and improve code readability.

BUG=b:433422905,b:428854543
BRANCH=skywaler
TEST=build passed

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ie711175434febce149a22742d78132842a6ec329
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89655
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-10-22 10:18:37 +00:00
Sean Rhodes
8a2c04e04d mb/starlabs/*/rpl: Re-enable GpioOverride
Now that the PinMux is correctly configured, everything works
as it should without having FSP touch the GPIOs.

Change-Id: Ieec678594f49f3aa003ade29aad85b24ec03f1ad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89647
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-22 07:27:44 +00:00
Kun Liu
9ff9f2904b mb/google/bluey/var/quartz: Enable all spi flash drivers
We use winbond, gigadevice spi flash, and will use spi flash from other vendors in the future, so we have enable all SPI Flash drivers.

BUG=b:442967024
BRANCH=None
TEST=emerge-bluey coreboot chromeos-bootimage

Change-Id: Icb9eeea90e924d412ad782ccf1ac390707f27314
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89641
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-22 02:36:13 +00:00
Ren Kuo
f6743fba29 mb/google/fatcat/var/moonstone: Enable Intel DPTF support
Add initial thermal settings
- Remove fan control (handled by EC)
- Apply PL1/PL2 min & max values per thermal design

BUG=b:446813859
TEST=emerge-fatcat coreboot

Change-Id: I193951036abb9a37af6583de0b1401501524b2d8
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89609
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
2025-10-21 22:55:25 +00:00
Sean Rhodes
fc736de10e ec/starlabs/merlin: Remove the EC_STARLABS_NEED_ITE_BIN option
None of these boards strictly "need" an ITE binary, so remove the
Kconfig option. This leaves the logic to add a binary untouched,
so it can be added if desired.

Change-Id: I6cd674a794cac51900b9a11c434b25e28a052b6a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89645
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-21 11:20:24 +00:00
Cliff Huang
3dee4cd0c0 soc/intel/pantherlake: Correct Touch Controller Speed Configuration
The touch controller's I2C bus speed configuration was previously set
directly through register values. This update introduces the use of the
I2C speed enum type to specify the desired connection speed, improving
clarity and reducing the risk of errors. A mapping function has been
added to convert the I2C speed enum into the appropriate register
value, factoring in the SoC's specific divider configuration. This
change ensures that the speed assignment aligns with the expected
operational parameters of the Panther Lake SoC touch controller.

BUG=none
TEST=Boot Fatcat board to OS and verify that the I2C speed assignments
are correct for the register value in SSDT.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I32e71ddcab77af2119c012bd3276f83c1bcea954
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89396
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
2025-10-20 19:32:36 +00:00
Luca Lai
7376761bdf mb/nissa/var/pujjoquince: Modify fingerprint configuration
Adjust fingerprint power sequence to let the time interval between PP3300_MCU and MCU_RST_ODL H(GPP_E7) is 5.1ms(before is 1.1s), meet spec 5.95ms.

BUG=b:411558536
BRANCH=none
TEST=Build and boot to OS. Verify fingerprint power sequence by
EE colleagues.

Change-Id: Ic93af108144a3f227024a8749e0cf88b2f2d90ff
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89644
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-10-20 17:03:45 +00:00
Vince Liu
6ffbc9a929 soc/mediatek: Move mtk_dsi_reset() to mtk_dsi_common.c for reuse
Move mtk_dsi_reset() from mtk_mipi_dphy.c to mtk_dsi_common.c so that it
can also be used when using the C-PHY interface, improving code reuse.

BUG=b:433422905,b:428854543
BRANCH=skywaler
TEST=build passed

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I3f080127af4411584f66e307f7d2b13abbb051bf
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89619
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-10-20 06:58:14 +00:00
Elyes Haouas
668ea97075 commonlib/endian: Silence GCC -Warray-bounds false positives
Recent GCC versions (>=12) warn about out-of-bounds accesses when
writing through *(volatile uint8_t *)dest in endian.h.
This is a false positive since these pointers intentionally alias
hardware/physical memory.

Change-Id: Ia47aa1214998dbc17bd4a58f7d996bcc6fff7b6a
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89328
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-10-20 04:49:43 +00:00
Elyes Haouas
4a3cc37cbd crossgcc: Upgrade binutils from version 2.44 to 2.45
Change-Id: I050cbe134fa7fd653a87234398d7be0d71c0bc3c
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88593
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-10-19 20:13:22 +00:00
Venkateshwar S
35d4b3f2f4 arch/arm64: Support to load QTEE firmware in x1P42100
This patch adds support to load QTEE firmware in X1P42100. A new
Kconfig 'ARM64_HAS_SECURE_OS_PAYLOAD' has been introduced to support
packing the QTEE firmware as a CBFS payload type. Based on this
configuration, the QTEE firmware is packed either as a stage or payload
type in CBFS.

In X1P42100, the QTEE FW is packed as a CBFS payload type, as its
memory regions are non-contiguous across system IMEM and DDR.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.
Ensure loading of the QTEE firmware in the appropriate regions.

[INFO ]  CBFS: Found 'fallback/secure_os' @0xff1c0 size 0x2ac188
[DEBUG]  read SPI 0xd2f218 0x2ac188: 225876 us, 12405 KB/s, 99.240 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
                supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 2802056 bytes, hash algo 2, HW
                acceleration forbidden
[DEBUG]  Loading segment from ROM address 0x9f8040f8
[DEBUG]    code (compression=0)
[DEBUG]    New segment dstaddr 0x1468f000 memsize 0x2000 srcaddr
                0x9f804280 filesize 0x2000
[DEBUG]  Loading Segment: addr: 0x1468f000 memsz: 0x0000000000002000
                filesz: 0x0000000000002000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0x1468f000, 14691000, 0x14691000) &amp;lt;- 9f804280
[DEBUG]  Loading segment from ROM address 0x9f804114
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0x14691000 memsize 0x2000 srcaddr
                0x9f806280 filesize 0x2000
[DEBUG]  Loading Segment: addr: 0x14691000 memsz: 0x0000000000002000
                filesz: 0x0000000000002000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0x14691000, 14693000, 0x14693000) &amp;lt;- 9f806280
[DEBUG]  Loading segment from ROM address 0x9f804130
[DEBUG]    code (compression=0)
[DEBUG]    New segment dstaddr 0xd8087000 memsize 0x12b000 srcaddr
                0x9f808280 filesize 0x12b000
[DEBUG]  Loading Segment: addr: 0xd8087000 memsz: 0x000000000012b000
                filesz: 0x000000000012b000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd8087000, d81b2000, 0xd81b2000) &amp;lt;- 9f808280
[DEBUG]  Loading segment from ROM address 0x9f80414c
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0xd81b2000 memsize 0x14000 srcaddr
                0x9f933280 filesize 0x14000
[DEBUG]  Loading Segment: addr: 0xd81b2000 memsz: 0x0000000000014000
                filesz: 0x0000000000014000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd81b2000, d81c6000, 0xd81c6000) &amp;lt;- 9f933280
[DEBUG]  Loading segment from ROM address 0x9f804168
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0xd81c6000 memsize 0xb3000 srcaddr
                0x9f947280 filesize 0xb3000
[DEBUG]  Loading Segment: addr: 0xd81c6000 memsz: 0x00000000000b3000
                filesz: 0x00000000000b3000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd81c6000, d8279000, 0xd8279000) &amp;lt;- 9f947280
[DEBUG]  Loading segment from ROM address 0x9f804184
[DEBUG]    BSS 0xd8279000 (4096 byte)
[DEBUG]  Loading Segment: addr: 0xd8279000 memsz: 0x0000000000001000
                filesz: 0x0000000000000000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd8279000, d8279000, 0xd827a000) &amp;lt;- 9f9fa280
[DEBUG]  Clearing Segment: addr: 0x00000000d8279000 memsz:
                0x0000000000001000
[DEBUG]  Loading segment from ROM address 0x9f8041a0
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0xd82e6000 memsize 0x5d000 srcaddr
                0x9f9fa280 filesize 0xe000
[DEBUG]  Loading Segment: addr: 0xd82e6000 memsz: 0x000000000005d000
                filesz: 0x000000000000e000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd82e6000, d82f4000, 0xd8343000) &amp;lt;- 9f9fa280
[DEBUG]  Clearing Segment: addr: 0x00000000d82f4000 memsz:
                0x000000000004f000
[DEBUG]  Loading segment from ROM address 0x9f8041bc
[DEBUG]    BSS 0xd8343000 (65536 byte)
[DEBUG]  Loading Segment: addr: 0xd8343000 memsz: 0x0000000000010000
[DEBUG]  Loading Segment: addr: 0xd8279000 memsz: 0x0000000000001000
                filesz: 0x0000000000000000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd8279000, d8279000, 0xd827a000) &amp;lt;- 9f9fa280
[DEBUG]  Clearing Segment: addr: 0x00000000d8279000 memsz:
                0x0000000000001000
[DEBUG]  Loading segment from ROM address 0x9f8041a0
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0xd82e6000 memsize 0x5d000 srcaddr
                0x9f9fa280 filesize 0xe000
[DEBUG]  Loading Segment: addr: 0xd82e6000 memsz: 0x000000000005d000
                filesz: 0x000000000000e000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd82e6000, d82f4000, 0xd8343000) &amp;lt;- 9f9fa280
[DEBUG]  Clearing Segment: addr: 0x00000000d82f4000 memsz:
                0x000000000004f000
[DEBUG]  Loading segment from ROM address 0x9f8041bc
[DEBUG]    BSS 0xd8343000 (65536 byte)
[DEBUG]  Loading Segment: addr: 0xd8343000 memsz: 0x0000000000010000
                filesz: 0x0000000000000000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd8343000, d8343000, 0xd8353000) &amp;lt;- 9fa08280
[DEBUG]  Clearing Segment: addr: 0x00000000d8343000 memsz:
                0x0000000000010000
[DEBUG]  Loading segment from ROM address 0x9f8041d8
[DEBUG]    BSS 0xd8353000 (65536 byte)
[DEBUG]  Loading Segment: addr: 0xd8353000 memsz: 0x0000000000010000
                filesz: 0x0000000000000000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd8353000, d8353000, 0xd8363000) &amp;lt;- 9fa08280
[DEBUG]  Clearing Segment: addr: 0x00000000d8353000 memsz:
                0x0000000000010000
[DEBUG]  Loading segment from ROM address 0x9f8041f4
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0xd836a000 memsize 0x1000 srcaddr
                0x9fa08280 filesize 0x1000
[DEBUG]  Loading Segment: addr: 0xd836a000 memsz: 0x0000000000001000
                filesz: 0x0000000000001000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd836a000, d836b000, 0xd836b000) &amp;lt;- 9fa08280
[DEBUG]  Loading segment from ROM address 0x9f804210
[DEBUG]    code (compression=0)
[DEBUG]    New segment dstaddr 0xd836b000 memsize 0x99000 srcaddr
                0x9fa09280 filesize 0x99000
[DEBUG]  Loading Segment: addr: 0xd836b000 memsz: 0x0000000000099000
                filesz: 0x0000000000099000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd836b000, d8404000, 0xd8404000) &amp;lt;- 9fa09280
[DEBUG]  Loading segment from ROM address 0x9f80422c
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0xd8404000 memsize 0x3000 srcaddr
                0x9faa2280 filesize 0x3000
[DEBUG]  Loading Segment: addr: 0xd8404000 memsz: 0x0000000000003000
                filesz: 0x0000000000003000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd8404000, d8407000, 0xd8407000) &amp;lt;- 9faa2280
[DEBUG]  Loading segment from ROM address 0x9f804248
[DEBUG]    data (compression=0)
[DEBUG]    New segment dstaddr 0xd8407000 memsize 0xb000 srcaddr
                0x9faa5280 filesize 0xb000
[DEBUG]  Loading Segment: addr: 0xd8407000 memsz: 0x000000000000b000
                filesz: 0x000000000000b000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0xd8407000, d8412000, 0xd8412000) &amp;lt;- 9faa5280
[DEBUG]  Loading segment from ROM address 0x9f804264
[DEBUG]    Entry Point 0x1468f000
[SPEW ]  Loaded segments

Change-Id: I5498f418ae7ccc4a8ad2ca05698da3e0a3ec5609
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89548
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-19 19:41:49 +00:00
Zheng Bao
e38056bef8 amdfwtool: Move ISH before PSP L2
The amdfw.rom will be divided into 3 parts:
PSP Level 1, PSP Level 2A, PSP Level 2B.

The two ISHs are close to L1 and can be combined as a CBFS module.
To do that, move the new_psp_dir for L1 and L2 to separated branches.
The final sequence is EFS, PSP L1, ISH A, ISH B, PSP L2A, BIOS L2A,
PSP L2B, BIOS L2B.

TEST=Google/Skyrim

Change-Id: Id69268619893d78d9b5330052a4fd5b501263f75
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84533
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-10-19 19:41:34 +00:00
Ziang Wang
c1c83df3b5 mb/emulation/qemu-riscv: Enable ACPI by default
Select HAVE_ACPI_TABLES & PCI for QEMU riscv virt machine mainboard. Add
an empty dsdt.asl to fit current build process, but it will not actually
be used since QEMU has its own method of providing DSDT blob.

TEST=build and run successfully on QEMU rvvirt machine. Using command
"qemu-system-riscv64 -machine virt,aia=aplic-imsic,acpi=on -bios
build/coreboot.rom -nographic -pflash build/coreboot.rom".

Change-Id: If8c9b5d86adb69afdcb4bf320d6353b2b2acfb31
Signed-off-by: Ziang Wang <wangziang.ok@bytedance.com>
Signed-off-by: Dong Wei <weidong.wd@bytedance.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89562
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-19 19:41:05 +00:00
Ziang Wang
5daf497df4 arch/riscv: Add ACPI support for riscv
Add ACPI table creation routine for riscv. An empty header 'pci_ops.h'
is added to pass build.

TEST=Build and run successfully on QEMU rvvirt machine. Using command
"qemu-system-riscv64 -machine virt,aia=aplic-imsic,acpi=on -bios
build/coreboot.rom -nographic -pflash build/coreboot.rom".

Change-Id: Ifa57bd8511e73c3406bcf2672fed90c1e86a4ffd
Signed-off-by: Ziang Wang <wangziang.ok@bytedance.com>
Signed-off-by: Dong Wei <weidong.wd@bytedance.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89558
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-10-19 19:40:59 +00:00
Mac Chiang
5c85793d26 mb/google/fatcat/var/lapis: Add cs42l43 and cs35l56 Soundwire links
Enable the CS42L43 codec on SoundWire link 3 and the CS35L56
amplifiers on SoundWire link 2.

Scope (\_SB.PCI0.HDAS.SNDW)
    {
        Device (SW30)
        {
            Name (_ADR, 0x00033001FA424301)  // _ADR: Address
            Name (_DDN, "Headset Codec")  // _DDN: DOS Device Name
            Name (_SUB, "1337")  // _SUB: Subsystem ID
...
    {
        Device (SW20)
        {
            Name (_ADR, 0x00023001FA355601)  // _ADR: Address
            Name (_DDN, "Left Speaker Amp")  // _DDN: DOS Device Name
            Name (_SUB, "12345678")  // _SUB: Subsystem ID
...
        Device (SW21)
        {
            Name (_ADR, 0x00023101FA355601)  // _ADR: Address
            Name (_DDN, "Right Speaker Amp")  // _DDN: DOS Device Name
            Name (_SUB, "12345678")  // _SUB: Subsystem ID
...

BUG=b:444122406, b:444302600
TES=emerge-lapis coreboot

Change-Id: Ic73d705655bdc0a4a8140feafa28aceb2fc25ad3
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89345
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-19 19:40:48 +00:00
Felix Singer
14fc6c3469 crossgcc: Drop nds32le-elf toolchain from default builds
coreboot does not use the nds32le-elf toolchain at all, but it causes
build issues in the CI. So drop it from the default builds. It can
still be built by using buildgcc.

Change-Id: I5e5e5b6914265d6aff14c011062db268db4acf6b
Signed-off-by: Felix Singer <felix.singer@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89317
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Jon Murphy <jpmurphy@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-19 03:06:55 +00:00
Cliff Huang
fce489e9e5 drivers/intel/touch: Check SoC I2C speed function exists before calling
This change adds a null pointer check to ensure that the SoC-specific
function to retrieve I2C bus speed is properly mapped before attempting
to call it. Without this check, systems may crash during boot when the
function pointer is not initialized. The issue occurs when the
touchscreen or touchpad is configured to use THC-I2C via CBI fw_config,
but the underlying SoC doesn't provide the required I2C speed function
implementation.

BUG=none
TEST=Boot Fatcat board to OS with CBI fw_config selecting touchscreen or
touchpad using THC-I2C. Verify no crash occurs during boot and touch
devices function properly.

Change-Id: Ib982f4435aa506f2b9203f81140366addc6559f3
Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89628
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-10-18 21:52:11 +00:00
Matt DeVillier
249883d5bf mb/starlabs/starlite_adl: Squash SB and non-SB board variants
Originally, there were separate EC firmware builds for the smart
battery (SB) and non-SB versions of the starlite_adl board, but those
have long since been unified. Squash the board variants into a single
board which supports both SB and non-SB boards.

Adjust the board description to reflect that it will support both the
existing N200 and upcoming N355 flavors.

TEST=build/boot starlite_adl on both SB and non-SB boards, verify
battery and all other features function normally.

Change-Id: I2461a094f2455ce333132ffa9f2f83967ae0e927
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89627
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-10-18 21:51:33 +00:00
Matt DeVillier
80861a9f69 mb/starlabs/starlite_adl: Add CFR option for USB card reader
Add a CFR setup menu option to enable/disable the USB micro-SD card
reader, but restrict it to newer boards which use the MXC
accelerometer, as those boards have the card reader on USB2 port 4,
rather than shared with the detachable keyboard on port 3.

TEST=build/boot on starlite_adl boards with and without the MXC
accelerometer, verify only boards with it have the CFR option
to disable the card reader shown, and that the option works
as expected.

Change-Id: I9255d008c6f322d01390ed9f19e4e963cf04eeb6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89626
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-10-18 21:51:28 +00:00
Luca Lai
5c1a9fa809 mb/google/fatcat: Create ruby variant
Create the ruby variant of the fatcat reference board by copying
the fatcat files to a new directory named for the variant.

BUG=b:446771934
TEST=1. util/abuild/abuild -p none -t google/fatcat -x -a
        make sure the build includes GOOGLE_RUBY
     2. Run part_id_gen tool without any errors

Change-Id: Ie5f4a152d792f241a0044f18653b5363e1637b49
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89327
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Bob Moragues <moragues@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-18 18:35:14 +00:00
John Su
43df7b14ae mb/var/uldrenite: Fix ISH UART port and VR configuration mismatch
During Uldrenite development, the ISH UART port design and VR settings
were changed, so the switching mechanism was implemented based on the
board ID. Uldrino adopts the latest Uldrenite design; however, its
board ID starts from 0. To resolve this issue, an additional FW_CONFIG
field is added to further distinguish between Uldrenite and Uldrino.

BUG=b:450182476
TEST=Verified the ISH log and used the servod board to dump the CPU
log for checking PMC Descriptor Record 7 at offset 0xC33.

Change-Id: Id24659d6f910de1d3da36c5da808fd768dbdbc37
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89457
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-10-18 18:35:00 +00:00
Daniel Peng
1a0b7195f9 mb/google/nissa/var/glassway: Removed the flag of DB_1A for pmc_mux
Due to only 1A on DB, the test item of FAFT EC
firmware.DevInsertUSBScreen.insert_usb would be captured much error
message to detect C1 if set the flag.
And then missed to capture the correct message when running the test.
Therefore, removed the DB_1A for pmc_mux on daughter board to fix
the issue.

BUG=b:451436640
TEST=USE="${USE} -project_all project_craaskyu2" emerge-nirva \
     coreboot chromeos-zephyr chromeos-bootimage
     Confirm firmware.DevInsertUSBScreen.insert_usb PASS.

Change-Id: I6b1a3c99d422c99103818556365b0e5929a18dbf
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89538
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-18 18:34:35 +00:00
Anand Vaikar
9f0f373ff9 mainboard/amd/crater: Select the option to keep the AMD ACP active in S3
Issue=ACP is not active in S3 state and audio playback doesnt work

Fix=Introduce a config option to control this setting.

TEST=Tested this in ACPI S3 state,by connecting an external CODEC and
transmitting a known pattern to the ACP via the I2S TDM controller RX
lines and ensuring that the sound is output to the speaker connected
to the CODEC via the TDM TX line.

Change-Id: Ifbd3e72a4d018e4a14d9459dd3a6804dd27050e4
Signed-off-by: Anand Vaikar <a.vaikar2021@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89610
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-18 18:34:10 +00:00
Tongtong Pan
f04c45acee mb/google/fatcat/var/lapis: enable CS35L56_FAMILY and CS42L43 driver options
Select the CS35L56_FAMILY and CS42L43 SoundWire driver configs in
Kconfig to ensure support amp cs35l56 and codec cs42l43 on lapis.

Scope (\_SB.PCI0.HDAS.SNDW)
    {
        Device (SW30)
        {
            Name (_ADR, 0x00033001FA424301)  // _ADR: Address
            Name (_DDN, "Headset Codec")  // _DDN: DOS Device Name
            Name (_SUB, "1337")  // _SUB: Subsystem ID
...
    {
        Device (SW20)
        {
            Name (_ADR, 0x00023001FA355601)  // _ADR: Address
            Name (_DDN, "Left Speaker Amp")  // _DDN: DOS Device Name
            Name (_SUB, "12345678")  // _SUB: Subsystem ID
...
        Device (SW21)
        {
            Name (_ADR, 0x00023101FA355601)  // _ADR: Address
            Name (_DDN, "Right Speaker Amp")  // _DDN: DOS Device Name
            Name (_SUB, "12345678")  // _SUB: Subsystem ID
...

BUG=b:444122406
TEST=emerge-fatcat coreboot and dump ssdt.asl

Change-Id: Icab7e38bb5c2733f1bd2a7ddd21b56ace01e64af
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89593
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-18 18:33:56 +00:00
Maciej Strozek
78e7dcb152 drivers/soundwire/cs42l43: Add optional properties for controlling jack and accessory detect
CS42L43 contains a range of optional properties which control the
behaviour of jack and accessory detect, and are added here.

These properties are documented in the Linux kernel source code, in the
file:
linux/Documentation/devicetree/bindings/sound/cirrus,cs42l43.yaml
which contains names, descriptions, valid and default values.

Being optional, these properties will be ignored if not specified.

Change-Id: I53fbed81df9157022384d5879c9d9ed351641ab5
Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89231
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-18 18:31:16 +00:00
Maciej Strozek
f1c973bbff drivers/soundwire/cs42l43: Support Cirrus Logic CS42L43 codec
CS42L43 is a PC Codec with headphone and class D speaker drivers.

The driver was written based on the datasheet for CS42L43 part and
generates the audio SSDT information.

CS42L43 supports DisCo Version v2.1, but coreboot currently only
supports DisCo v1.0, so ACPI is only generated based on DisCo v1.0.

CS42L43 also supports the SDCA v1.0 Specification (from DisCo v2.1)
is also not currently supported by coreboot, therefore SDCA ACPI
properties are also not generated.

This is currently only tested using QEMU using example configuration:

chip drivers/soundwire/cs42l43
	# SoundWire Link 0 ID 1
	register "desc" = ""CODEC""
	register "sub" = ""1337""
	device generic 0.1 on end
end

Which produces the ACPI:

Device (SW01)
{
    Name (_ADR, 0x00003101FA424301)  // _ADR: Address
    Name (_DDN, "CODEC")  // _DDN: DOS Device Name
    Name (_SUB, "1337")  // _SUB: Subsystem ID
    Method (_STA, 0, NotSerialized)  // _STA: Status
    {
        Return (0x0F)
    }

    Name (_DSD, Package (0x04)  // _DSD: Device-Specific Data
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x0F)
        {
            Package (0x02)
            {
                "mipi-sdw-sw-interface-revision",
                0x00010000
            },

            Package (0x02)
            {
                "mipi-sdw-wake-up-unavailable",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-test-mode-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-clock-stop-mode1-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-simplified-clockstopprepare-sm-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-clockstopprepare-timeout",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-clockstopprepare-hard-reset-behavior",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-slave-channelprepare-timeout",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-highPHY-capable",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-paging-supported",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-bank-delay-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-port15-read-behavior",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-master-count",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-source-port-list",
                0x06
            },

            Package (0x02)
            {
                "mipi-sdw-sink-port-list",
                0x60
            }
        },

        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */,
        Package (0x06)
        {
            Package (0x02)
            {
                "mipi-sdw-port-bra-mode-0",
                "BRA0"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-0-subproperties",
                "DP0"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-2-source-subproperties",
                "SRC2"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-5-sink-subproperties",
                "SNK5"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-1-sink-subproperties",
                "SNK1"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-6-source-subproperties",
                "SRC6"
            }
        }
    })
    Name (BRA0, Package (0x02)
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x04)
        {
            Package (0x02)
            {
                "mipi-sdw-bra-mode-min-bus-frequency",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-bra-mode-max-bus-frequency",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-bra-mode-max-data-per-frame",
                0x01D6
            },

            Package (0x02)
            {
                "mipi-sdw-bra-mode-min-us-between-transactions",
                Zero
            }
        }
    })
    Name (DP0, Package (0x04)
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x07)
        {
            Package (0x02)
            {
                "mipi-sdw-port-wordlength-configs",
                Package (0x03)
                {
                    0x08,
                    0x10,
                    0x18
                }
            },

            Package (0x02)
            {
                "mipi-sdw-bra-flow-controlled",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-bra-imp-def-response-supported",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-bra-role-supported",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-simplified-channel-prepare-sm",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-imp-def-dp0-interrupts-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-imp-def-bpt-supported",
                Zero
            }
        },

        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */,
        Package (0x01)
        {
            Package (0x02)
            {
                "mipi-sdw-port-bra-mode-0",
                "BRA0"
            }
        }
    })
    Name (SRC2, Package (0x02)
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x0C)
        {
            Package (0x02)
            {
                "mipi-sdw-data-port-type",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-max-grouping-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-imp-def-dpn-interrupts-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-modes-supported",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-max-async-buffer",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-block-packing-mode",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-port-encoding-type",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-port-wordlength-configs",
                Package (0x03)
                {
                    0x08,
                    0x10,
                    0x18
                }
            },

            Package (0x02)
            {
                "mipi-sdw-simplified-channelprepare-sm",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-port-channelprepare-timeout",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-channel-number-list",
                Package (0x02)
                {
                    Zero,
                    One
                }
            },

            Package (0x02)
            {
                "mipi-sdw-channel-combination-list",
                Package (0x03)
                {
                    0x03,
                    0x02,
                    One
                }
            }
        }
    })
    Name (SNK5, Package (0x02)
    {
        [... Same as SRC2 ...]
    })
    Name (SNK1, Package (0x02)
    {
        [... Same as SRC2 except:]

	Package (0x02)
	{
	    "mipi-sdw-channel-number-list",
	    Package (0x04)
	    {
	        Zero,
	        One,
	        0x02,
	        0x03
	    }
	},

	Package (0x02)
	{
	    "mipi-sdw-channel-combination-list",
	    Package (0x04)
	    {
	        One,
	        0x03,
	        0x07,
	        0x0F
	    }
	}

        [ Same as SRC2 ...]

        }
    })
    Name (SRC6, Package (0x02)
    {
        [... Same as SRC2 ...]
    })
}

Change-Id: I38f40d29945b22f9c308ea4b7ed6157ccadb3c7c
Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89230
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-18 18:31:09 +00:00
David Wu
35970abcdf mb/google/nissa/var/dirks: Add H58G56CK8BX146 to RAM ID table
Add the new memory support: Hynix H58G56CK8BX146

BUG=b:442335706
BRANCH=firmware-nissa-15217.B
TEST=Run part_id_gen tool and check the generated files.

Change-Id: I48d1ac1b04c83a05859f2aaa17218d997cb5a3ac
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89618
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-18 18:31:00 +00:00
Elyes Haouas
402ac7cd81 crossgcc: Upgrade acpica from 20250404 to 20250807
Change-Id: I6584128af65e1dc5e0d3db5d4fae8ac68eeca036
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89306
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-18 11:36:31 +00:00
Xiandong Wang
3aa312e4c9 soc/mediatek/mt8189: Add DSI path support and update mutex
Previously, only the EDP display path was supported due to incorrect
mutex bitfield assignments and incomplete main path setup logic. This
commit corrects the mutex bitfield assignments after reviewing the
datasheet, and updates the main path setup logic to enable support for
both EDP and DSI display paths, improving overall compatibility.

BUG=b:433422905,b:428854543
BRANCH=skywalker
TEST=Check log on padme
mtk_display_init: 'TM TL121BVMS07' 1600x2560@60Hz

Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.corp-partner.google.com>
Change-Id: Ic3f901b9dff0a7ec9188212d2311b8394cf5c0e7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89566
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-10-18 06:30:31 +00:00
Matt DeVillier
6b93516e02 soc/intel/baytrail/acpi: Add missing MMIO window below 4GB
coreboot's resource allocator identifies and uses two MMIO windows
below 4GB, but currently only one is declared in the ACPI _CRS.
Normally this isn't a problem, as coreboot is usually able to allocate
resources entirely in the (declared) lower MMIO window. But, this is
problematic when using top-down allocation, since coreboot assigns
resources to devices starting in the (undeclared) upper MMIO window,
which the OS does not consider a valid space.

Linux will mostly handle this gracefully, and reassign BARs in the
lower MMIO address space. Windows does not, and will simply mark any
devices in the upper window as invalid or malfunctioning.

To resolve this, add the fixed-sized PM02 PCI MMIO window above MMCONF
to match the region used by coreboot's allocator.

With this change, both MMIO windows are properly reported via _CRS,
allowing the OS to use coreboot's resource allocations properly.

coreboot allocator:
[INFO ]   * Base: 80000000, Size: 60000000, Tag: 200  [Window 1: 1.50GB]
[INFO ]   * Base: f0000000, Size:  e000000, Tag: 200  [Window 2:  224MB]

kernel before:
[mem 0x80000000-0xdfffffff window]  [PM01: 1.50GB]
[mem 0xf4000000-0xfed44fff window]  [TPM]

kernel after:
[mem 0x80000000-0xdfffffff window]  [PM01: 1.50GB]
[mem 0xf0000000-0xfdffffff window]  [PM02:  224MB]
[mem 0xfed40000-0xfed44fff window]  [TPM]

BUG=https://ticket.coreboot.org/issues/611

TEST=Build/boot google/swanky with top-down allocation enabled.
Verify kernel sees both MMIO windows and devices keep their coreboot-
assigned BARs. Verify Windows boots with functional i2c devices.

Change-Id: Ibb61d3188f75a963e9417685c2808b27055b46d1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89589
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-10-18 00:18:36 +00:00
Matt DeVillier
321d8c5b21 soc/intel/braswell/acpi: Add missing MMIO window below 4GB
coreboot's resource allocator identifies and uses two MMIO windows
below 4GB, but currently only one is declared in the ACPI _CRS.
Normally this isn't a problem, as coreboot is usually able to allocate
resources entirely in the (declared) lower MMIO window. But, this is
problematic when using top-down allocation, since coreboot assigns
resources to devices starting in the (undeclared) upper MMIO window,
which the OS does not consider a valid space.

Linux will mostly handle this gracefully, and reassign BARs in the
lower MMIO address space. Windows does not, and will simply mark any
devices in the upper window as invalid or malfunctioning.

To resolve this, add the fixed-sized PM02 PCI MMIO window above MMCONF
to match the region used by coreboot's allocator.

With this change, both MMIO windows are properly reported via _CRS,
allowing the OS to use coreboot's resource allocations properly.

coreboot allocator:
[INFO ]   * Base: 80000000, Size: 60000000, Tag: 200  [Window 1: 1.50GB]
[INFO ]   * Base: f0000000, Size:  e000000, Tag: 200  [Window 2:  224MB]

kernel before:
[mem 0x80000000-0xdfffffff window]  [PM01: 1.50GB]
[mem 0xf4000000-0xfed44fff window]  [TPM]

kernel after:
[mem 0x80000000-0xdfffffff window]  [PM01: 1.50GB]
[mem 0xf0000000-0xfdffffff window]  [PM02:  224MB]
[mem 0xfed40000-0xfed44fff window]  [TPM]

BUG=https://ticket.coreboot.org/issues/611

TEST=Build/boot google/edgar with top-down allocation enabled.
Verify kernel sees both MMIO windows and devices keep their coreboot-
assigned BARs. Verify Windows boots with functional i2c devices.

Change-Id: I86c38b6f0d3e31affb578dc7a1bf5c8109714bf5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89590
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-17 22:19:06 +00:00
Matt DeVillier
74d7a21382 nb/intel/haswell/acpi: Add missing MMIO window below 4GB
For Broadwell SoC boards (which use Haswell's northbridge ACPI),
coreboot's resource allocator identifies and uses two MMIO windows
below 4GB, but currently only one is declared in the ACPI _CRS.
Normally this isn't a problem, as coreboot is usually able to allocate
resources entirely in the (declared) lower MMIO window. But, this is
problematic when using top-down allocation, since coreboot assigns
resources to devices starting in the (undeclared) upper MMIO window,
which the OS does not consider a valid space.

Linux will mostly handle this gracefully, and reassign BARs in the
lower MMIO address space. Windows does not, and will simply mark any
devices in the upper window as invalid or malfunctioning.

To resolve this, add the dynamically-sized PM02 PCI MMIO window above
MMCONF to match the region used by coreboot's allocator.

With this change, both MMIO windows are properly reported via _CRS,
allowing the OS to use coreboot's resource allocations properly.

coreboot allocator:
[INFO ]   * Base: 80000000, Size: 70000000, Tag: 200  [Window 1: 1.75GB]
[INFO ]   * Base: f4000000, Size:  a000000, Tag: 200  [Window 2:  160MB]

kernel before:
[mem 0x80000000-0xefffffff window]  [PM01: 1.75GB]
[mem 0xf4000000-0xfed44fff window]  [TPM]

kernel after:
[mem 0x80000000-0xefffffff window]  [PM01: 1.75GB]
[mem 0xf4000000-0xfebfffff window]  [PM02:  172MB]
[mem 0xfed40000-0xfed44fff window]  [TPM]

BUG=https://ticket.coreboot.org/issues/611

TEST=Build/boot google/lulu with top-down allocation enabled.
Verify kernel sees both MMIO windows and devices keep their coreboot-
assigned BARs. Verify Windows boots with functional i2c devices.

Change-Id: I83fa8ca7f9edfd7d185895f8bbff15ee9895d1ff
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89588
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-10-17 22:18:59 +00:00
Nick Vaccaro
07f25bef86 mb/google/ocelot/var/ocelot: fix gpio settings
Configure the GPP_E16 reset line for the touch panel as a GPO.
Configure GPP_E17 to a no-connect by default.

BUG=b:452845001
TEST=`emerge-ocelot coreboot chromeos-bootimage`, flash an ocelotite4es
and verify it can boot to kernel without crashing.

Change-Id: I9ba2009252b84fb85356ef65e7b37017f9d2af43
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89630
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-17 22:14:06 +00:00
Shaik Sameeruddin
10b0697dc3 soc/intel/pantherlake: Update power limits and voltage regulator parameters
This commit updates the power limit and voltage regulator parameters for
the Panther Lake SoC to align with the recommendations from the Power
Map 2.0 document (#813278). The update addresses discrepancies between
the previous configuration and the optimal settings specified in the
Power Map 2.0 document, ensuring better performance and efficiency.

TEST=Power and Performance team verified that Fatcat devices meet
     requirements with these settings.

Change-Id: I2e11855c4f0533d826a25efead02ddcff9ab1f61
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Signed-off-by: Shaik Sameeruddin <shaik.sameeruddin@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89318
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-10-17 22:04:06 +00:00
Sean Rhodes
163e6a502c mb/starlabs/common: Deduplicate Pin Mix
Rather than boards configuring a handful, have common code
configure all relevant ones for the SOC.

Change-Id: I06f202378dd26d99a4fb17f6195dd3fb4df61430
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89525
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-17 20:37:30 +00:00
Sean Rhodes
7622a57771 mb/starlabs/common: Move the SMBIOS code to common directory
This avoids storing the same files in 5 different places in the tree.

Change-Id: I84bd5705613947444f48331d1a2d06b1ab71b2f3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88943
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-17 20:37:13 +00:00
Sean Rhodes
e7dd184e5f Makefile.mk: Add support for mainboard vendor common code
Allow mainboard vendors to have common code, controlled by a new
Kconfig option MB_COMMON_CODE.

Change-Id: I5b97b26a70fbbe2e3f659f01aa00b16b76167f88
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89531
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-17 20:36:57 +00:00
Matt DeVillier
dd3d7dcdfa mb/purism/librem_skl: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Drop the Intel ME-related options since these boards ship with the
ME disabled via HAP.

Change-Id: I9b1a272cababc6852b4c2f9c03cc417c1b1d12be
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89535
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-17 20:36:44 +00:00
Matt DeVillier
0d50fdf035 mb/purism/librem_l1um_v2: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Drop the Intel ME-related options since these boards ship with the
ME disabled via HAP.

Change-Id: I203b46320660d326db0cb2733b998003fc12e905
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89534
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-10-17 20:36:36 +00:00
Matt DeVillier
e9a01dea32 mb/purism/librem_jsl: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Drop the Intel ME-related options since these boards ship with the
ME disabled via HAP.

Change-Id: I09be7910a62441df95b186c8554bc2fe3bf8c92f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89533
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-10-17 20:36:31 +00:00
Matt DeVillier
08efea5141 mb/purism/librem_cnl: Add CFR option menu support
Add CFR option menu support when using edk2 payload and SMMSTORE.
Drop the Intel ME-related options since these boards ship with the
ME disabled via HAP. Restrict the power-on-after-fail settings to
the Mini boards since it doesn't really make sense for a laptop.

TEST=build/boot purism librem_mini_v2, verify CFR option functionality.

Change-Id: I0945ad7ddcafc6970a69777ace53d09bb37c749f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89532
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-10-17 20:36:26 +00:00
Jeremy Compostella
1d02f139d3 mb/google/fatcat: Add wake configuration to cnvi_bluetooth
This commit adds a wake configuration to the cnvi_bluetooth device for
all the Fatcat board variants. The "wake" setting is now registered to
"GPE0_PME_B0" using the common CNVi block. This enhancement ensures that
the cnvi_bluetooth device can properly wake the system.

TEST=Able to wake up the device from a low power state using a keyboard
     Bluetooth device.

Change-Id: Id0ef732d45b46a3f59456860d9070fffdab05509
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89058
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-17 17:24:25 +00:00
Bora Guvendik
cf97e1bc25 mb/intel/ptlrvp: Add power meter acpi changes
This commit introduces changes to the ACPI implementation for the
PTLRVP mainboard by adding power meter support. It defines how the
PAC194x series devices are connected to the I2C controller and details
their configuration. Each device under scope \_SB.PCI0.I2C3 is given
specific methods to indicate its status, resource settings, and device
specific configurations via _DSM. This includes functionality to return
monitored power rail names, resistor values, EMI configurations, sample
frequencies, and Vbus multiplication factors. These changes enhance
the power management capabilities of the mainboard, allowing precise
monitoring and control over various power rails.

BUG=none
TEST=Verify power meter ACPI changes in DSDT.

Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Change-Id: I6e5d38500cac46187283481ef6f84215b14e927b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88198
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
2025-10-17 15:31:53 +00:00
Ren Kuo
7e3883633a mb/google/brox/var/jubilant: Apply fw_config to enable/disable I2C1
As a result of hardware BOM design, U51 (power gate for touchscreen)
would be required to remove on non-touch SKU. The change will cause
the I2C1 touchscreen devices probe ERROR of non-touch SKU since no
power for I2C bus pull-high resistors.The ERROR is waiting I2C stop
condition time out then bootperf test will get fail.

The CL apply fw_config field 19 - PANEL_PWR_SEQ_CTRL for I2C1:
0...disable (non-touch sku)
1...enable  (touch sku)
Turn off I2C1 for non-touch sku, and keep I2C1 is on for touch sku.
It will avoid the touchscreen probing error on I2c1.

BUG=b:447513390
TEST=Check boot to kernel time is 1,376 sec under spec and without
      I2C probe error in ap log of non-touch sku.
     Check touchscreen device works well of touch sku.

Change-Id: I72a68177a90cea88fe283d8499b8378c64206fa2
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89591
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
2025-10-17 15:31:27 +00:00
Yidi Lin
114d24cd7a lib: Generalize BMP_LOGO help text
The help description for `CONFIG_BMP_LOGO` in `src/lib/Kconfig` is
updated to be more generic.

Change-Id: Ic95aabe3fa3178ed5a8e4a2105364e8fb397d85f
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89607
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-17 06:55:44 +00:00
Matt DeVillier
e468e32dfb mb/google/*: Update Kconfig.name with actual device names
Update Kconfig.name with device/product names where available. Names
were parsed from a ChromeOS Recovery image config file, and matched
to the appropriate board using a script generated by Cursor AI.
Output was spot checked for correctness and compared to other sources.
Development devices were dropped from the results.

Change-Id: I5ac1c153606b7d1f93ea5c72e5ff727bb1f38683
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89451
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-10-16 16:54:06 +00:00
Sergii Dmytruk
85d7a1c85f drivers/ipmi: add Block Transfer (BT) interface
Unlike already implemented Keyboard Controller Style (KCS) interface
Block Transfer interface is not byte-oriented and implies that device is
capable of buffering a command before processing it.  Another difference
is that polling can be replaced with interrupts, though this isn't used
by this implementation.

More details can be found in "Intelligent Platform Management Interface
Specification", v2.0, Rev. 1.1:
https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ipmi-intelligent-platform-mgt-interface-spec-2nd-gen-v2-0-spec-update.pdf

This was initially tested on Talos II (OpenPower platform) by Raptor
Computing Systems.  Later versions were tested using QEMU and ipmi_sim
from OpenIPMI project as well as QEMU's builtin BMC simulator.

Change-Id: Idb67972d1c38bbae04c7b4de3405350c229a05b9
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/67057
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 12:16:43 +00:00
John Su
fe26234cf2 mb/google/trulo/var/uldrenite: Update DPTF parameters
Update the DPTF parameters as provided by thermal team.

1. Adjust the PSV threshold value of the Passive Policy.

BUG=b:449890912
BRANCH=firmware-trulo-15217.771.B
TEST=build test firmware and verified by thermal team

Change-Id: I8be7da7550994f6a408e2c5bbc6ae4d31fa22ada
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89564
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-16 12:16:21 +00:00
John Su
660f71e704 mb/google/trulo/var/uldrenite: Set GPP_E16 to NC for non-WWAN SKU
For non-WWAN SKUs, the GPP_E16 (WWAN_PCIE_WAKE_ODL) pin is configured
as NC.

BUG=b:448550221
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I85614b6ba25613efdbb1714d6e0a9653981be3e4
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89563
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 12:16:10 +00:00
Johann C. Rode
3747b47df1 mb/lenovo/sklkbl_thinkpad: Add Lenovo Thinkpad T580 as a variant
The hardware is mostly identical to the well supported Thinkpad T480
aside from some swapped PCIe clock lines. Consequently, coreboot will
boot to the OS in combination with a properly deguarded Intel ME.

The VBT was obtained from the latest stock BIOS (1.43, N27ET57W) with
intelvbttool. GPIO assignments have been cross-checked against publicly
available schematics (Tachi-2).

The patches have been validated on a Thinkpad T580 P/N 20L9-001NUS. With
SeaBIOS rel-1.17.0-4 as payload, the system boots into Linux (debian 13)
and Windows 10 22H2 with the hardware working as expected.

Change-Id: Iaa8368aeda11560bc0c1c77e7611ed9879d038da
Signed-off-by: Johann C. Rode <jcrode@gmx.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89499
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 12:16:00 +00:00
Nicholas Sudsgaard
d23eaa356f util/lint: maintainers-syntax: Add a check to ensure paths exist
The MAINTAINERS file is used to automatically assign reviewers on
Gerrit, however as the paths are not checked they can become out of
sync with the codebase. This is detrimental to both the uploader
and the maintainers, as the change may not get the appropriate
attention.

Fix this problem by adding a simple check for 'F' and 'X' entries.

Change-Id: I7755f6317edda0d8d976e138cfafcc3ef5850ead
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89511
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-10-16 12:15:49 +00:00
Anand Vaikar
079c9c47aa soc/amd/cezanne: Add config option to keep ACP running in ACPI S3 state
Issue=ACP is not running in S3 because the XTAL FCH CLK is turned off.
ACP needs to be running in S3 for one of our customers who needs audio
playback to work in S3.

Fix=Introduce a config option to control this setting.

TEST=Tested this in ACPI S3 state,by connecting an external CODEC and
transmitting a known pattern to the ACP via the I2S TDM controller RX
lines and ensuring that the sound is output to the speaker connected
to the CODEC via the TDM TX line.

Change-Id: Ie9c0e96f87050b542a1ddf3f59d6b67064ac8faf
Signed-off-by: Anand Vaikar <a.vaikar2021@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89556
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-16 10:40:08 +00:00
Sean Rhodes
f665e189da mb/starlabs/{starbook/mtl,byte_adl}: Select USB4_PCIE_RESOURCES
Both of these boards have 20Gbps TBT2 ports, capable of accessing
PCIe labels from the PCH. Therefore, select
SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES.

Change-Id: I4528f2748d1fa3988296f695dac045de536c43df
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89597
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-16 08:32:27 +00:00
Sean Rhodes
a7a49e5f74 mb/starlabs/starfighter: Correct reference for second TBT port
The second port was set to 07.0, which is the first port. Correct
this.

Change-Id: I8d1a046ea863beb921c103cb2aa82b09d75f2be7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89595
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 08:32:24 +00:00
Sean Rhodes
f22bcc1d42 mb/starlabs/starbook/rpl: Disconnect unused GPIOs
Set pads that are not used to PAD_NC

Change-Id: I1a50bc8eab9d086b71cc33f56789bdd10f133864
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89585
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-16 08:32:12 +00:00
Sean Rhodes
a8c70f7578 mb/starlabs/starbook/rpl: Reconfigure TBT GPIOs
It seems that FSP was fixing up the TBT0 TXD and RXD GPIOs;
add the missing GPIO configuration and group them.

Change-Id: I22af542fe008395a47c64396f481442ff3bcc9a7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89584
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 08:32:08 +00:00
Sean Rhodes
83aa4417cb mb/starlabs/starbook/rpl: Tidy up GPIO config straps
Emply the standard Star Labs format for the config straps; this is
a non-functional change - just easier to read.

Change-Id: I04c7a8046c21577154593996866448fc4c05d03b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89583
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-16 08:31:10 +00:00
Sean Rhodes
7ad632cbc7 mb/starlabs/starbook/adl: Disconnect unused GPIOs
Set pads that are not used to PAD_NC.

Change-Id: I3bf005b743fdcaf75c456c59354e7440ec0faefb
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89581
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-16 08:31:04 +00:00
Sean Rhodes
d7627a39e8 mb/starlabs/starbook/adl: Tidy up GPIO config straps
Apply the standard format for configuring the config straps. The
configuration of the straps isn't changed, just written more clearly.

Change-Id: I2cf130fbf7572a4014e97c14885951e5f604cfa8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89578
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 08:30:59 +00:00
Sean Rhodes
711d49d4ec mb/starlabs/starbook/adl: Configure additional SSD GPIOs
DEV_SLP and PEDET were simply missed, so configure them.

Change-Id: Ia0da7f30167a689bca1f4692ee154a364c5b949c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89580
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-16 08:30:53 +00:00
Sean Rhodes
90d87c5941 mb/starlabs/starbook/*: Remove comments for unused GPIOs
Non-functional change that makes it easier to see what is actually
configured.

Change-Id: I2ffb11ef73a0b2c9e5236b2edb9ec187a045374c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89582
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 08:30:48 +00:00
Yidi Lin
f6b5e26fe7 soc/mediatek/mt8196: Add 24MB framebuffer region
Add framebuffer region to reserve 24MB for the boot logo feature.

BUG=b:319511268
TEST=The logo is shown in the ramstage.

Change-Id: I183651f7bd28de5551a15bd335bc2eed5f0804eb
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89544
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-16 07:04:57 +00:00
Yidi Lin
815f3f7df2 mb/google/rauru: Increase RW firmware sections size to 1756KB
The RW_A and RW_B firmware sections are increased by 256KB, from 1500K
to 1756K, to support larger firmware images. With bootsplash enabled,
the remaining space in these sections is approximately 15KB, which is
insufficient to hold the bootsplash assets. This increase provides the
necessary space. Additionally, with more features anticipated from the
payload (depthcharge), this extra space serves as a reserve to prevent
future build failures due to insufficient space.

The RW_LEGACY section is also adjusted to fill the remaining space.

WARNING: Please do NOT cherry-pick to rauru firmware branch.

BUG=b:450510630,b:319511268
TEST=emerge-rauru coreboot chromeos-bootimage (with BMP_LOGO enabled)

Change-Id: I70aaa9e7011b7f2376b7bc28caac27c0a86aa20a
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89545
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-10-16 07:04:44 +00:00
Yidi Lin
193420fe0b soc/mediatek/common: Add bootsplash support
This change introduces support for displaying a bootsplash logo during
boot on Mediatek platforms.

A new `display_logo` function is added to render a logo from the CBFS
into the framebuffer. This function is called from `mtk_display_init` if
`BMP_LOGO` is enabled in the board's Kconfig.

Additionally, this change refactors the backlight configuration logic
into a new `panel_configure_backlight` helper function for better
clarity.

BUG=b:319511268
TEST=Verified on Hylia that the bootsplash logo is displayed correctly
during ramstage. Boot time increased by 562ms due to display
initialization.

Change-Id: Ibcfaa7d309eb4a0b14244b98c78a0dc32e6836e5
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89543
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 07:04:36 +00:00
Yidi Lin
bdd4561536 soc/mediatek/mt8196: Add mtk_ddp_ovlsys_start for rendering framebuffer
Implement mtk_ddp_ovlsys_start in order to render the logo in coreboot.
The implementation is ported from depthcharge[1].

[1]: https://chromium.googlesource.com/chromiumos/platform/depthcharge/+/refs/heads/main/src/drivers/video/mtk_ddp.c

BUG=b:319511268
TEST=Draw the logo in ramstage

Change-Id: I37f929b85d4df818163e3af364038631f7b4623d
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89542
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 07:04:29 +00:00
Yidi Lin
0ff213d711 soc/mediatek/common: Conditionally set up framebuffer
To save memory, only allocate and configure the framebuffer when display
output is required during boot.

This is achieved by:
1. Making the `framebuffer` memory region optional.
2. Guarding the framebuffer's uncached MMU configuration with a
   `display_init_required()` check.

This ensures the framebuffer is prepared only when needed, saving
memory on boot paths that do not require display.

BUG=b:319511268
BRANCH=none
TEST=emerge-rauru coreboot

Change-Id: I3808031160e421de7c21f585f4b79d42bfddccc4
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89541
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-16 07:04:22 +00:00
Swathi Tamilselvan
5271ac7ac5 soc/qualcomm/x1p42100: Reserve DDR carveout region
Reserve DDR region for HYP, QTEE SMMU buffers, Gunyah and ACDB. The
carveout is located at: 0xFF800000 - ((n*5.5)+1+32+3), where n is
the DRAM size. This region is protected by QTEE and must remain
reserved to prevent access by other components.

TEST=1. Create an image.serial.bin and ensure it boots on X1P42100.
2. Verified carveout region reservation via depthcharge serial log.
Prior to reservation, the memory wipeout range was [0x000000f61f7920,
0x000000ff800000). After reserving the carveout, the range is reduced
to [0x000000f61f7920, 0x000000f7c00000).
```
Wipe memory regions:
        [0x00000080000000, 0x00000080a00000)
        [0x000000815a0000, 0x00000081a00000)
        [0x00000081cf4000, 0x00000081e00000)
        [0x00000082800000, 0x00000085380000)
        [0x00000085f80000, 0x000000866c0000)
        [0x00000091380000, 0x000000c72c4000)
        [0x000000c7800000, 0x000000d8000000)
        [0x000000d9600000, 0x000000f1000000)
        [0x000000f61f7920, 0x000000f7c00000)
        [0x00000880000000, 0x00000c00000000)
```

Change-Id: I511452054dcf10f8a2254eafb2f127c05a3249e5
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89552
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-16 01:08:22 +00:00
Jeremy Compostella
19feafc018 drivers/intel/fsp2_0/ppi/mp_service_ppi: Support CPU_V2_EXTENDED_TOPOLOGY
Complies with the Multi-Processor (MP) service as defined by the
EFI_MP_SERVICES_PROTOCOL.GetProcessorInfo() in the Platform
Initialization Specification 1.7. If bit 24 (CPU_V2_EXTENDED_TOPOLOGY)
is set in ProcessorId, GetProcessorInfo() must populate the
EFI_CPU_PHYSICAL_LOCATION2 data structure.

TEST=FSP using PI 1.7 GetProcessorInfo() is able to retrieve the
     information instead of receiving an EFI_NOT_FOUND error.

Change-Id: If4d473901c8de02b3d6cef44f5481a1864f14d65
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89462
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-10-15 14:03:59 +00:00
Matt DeVillier
16feb1bb28 mb/google/brya/var/nissa: Add missing device type to gfx device
Commit 743e3a07f5 ("mb/google/brya/var/nissa: Remove duplicate ACPI
device GFX0") removed the GMA default panel and replaced it with the
generic gfx device, but left out the device type field, which resulted
in changes to the _DOD and _ADR methods for the GFX0 ACPI device.

This change caused Windows to ignore the ACPI brightness controls,
leaving the display fixed at full brightness. Add the missing device
type entry to restore the brightness control functionality.

before (incorrect):
_DOD: 0x80010000
_ADR: Zero

after (correct):
_DOD: 0x80010400
_ADR: 0x00000400

TEST=build/boot Win11, Linux on craaskvin, verify brightness controls
functional under both OSes.

Change-Id: Ia0cfcec14963605ce874c6c7ed6b26c725cf74f0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89498
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Simon Yang <simon1.yang@intel.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-10-15 14:03:36 +00:00
Dmytro Aleksandrov
f4ecb69314 util/inteltool: Add Twin Lake UHD Graphics PCI IDs
Add PCI IDs and descriptor strings of the integrated GPU
for the Twin Lake CPU.
Reference document: #759603 Rev 002

---
CPU: ID 0xb06e0, Processor Type 0x0, Family 0x6, Model 0xbe, Stepping 0x0
Northbridge: 8086:4617 (12th generation (Alder Lake N family) Intel Processor)
Southbridge: 8086:5481 (Alder Lake-N)
IGD: 8086:46d3 (Intel(R) UHD Graphics)
---

TEST=build and run inteltool on N355 mini pc, verify GPU ID is not unknown.

Change-Id: I8921bd1e22690acbb71547590905f739485126fb
Signed-off-by: Dmytro Aleksandrov <alkersan@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89529
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-15 14:03:20 +00:00
Sean Rhodes
ed736a47d8 mb/starlabs/byte_adl: Configure additional SSD GPIOs
SATA_DEVSLP1B and PEDET were simply missed, so configure them

Change-Id: Iface1f19c5a93f5a911861fbad7fa4b3f808bfef
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89577
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-15 07:39:27 +00:00
Sean Rhodes
38525716d8 mb/starlabs/starbook/adl: Re-order the config strap GPIOs
This is a non-functional change, it just puts them into a the same
format as the other Star Labs boards.

Change-Id: I849d0b50490eec6b6c58bd0fd29f57e434ba95c4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89575
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-15 07:39:02 +00:00
Sean Rhodes
2c465c0e21 mb/starlabs/starbook/adl: Re-order GPIOs to match other boards
Change-Id: Ibfacb4430e74f7cd9dfcac2c20fbb59635851979
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89574
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-15 07:38:55 +00:00
Sean Rhodes
115a6ce36a mb/starlabs/starbook/adl: Correct clock request number in comment
Change-Id: I36e5b57923f2205958545f86ebd350312b0dca0d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89573
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-15 07:38:47 +00:00
Sean Rhodes
1b5aaaefd9 soc/intel/meteorlake: Fix IGD IRQ
The wrong definition was used, so fix it.

Change-Id: I7ebbf0dcba4117ddeaa496b6faa83561d82c621d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89561
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-10-15 07:38:40 +00:00
Sean Rhodes
06de11693f mb/starlabs/starfighter: Fix Thunderbolt disabling code
When Thunderbolt was disabled in the option table, only
VtdBaseAddress[3] was zero'd, when it should be
VtdBaseAddress[4] as well.

Change-Id: I63e3cefcb74c2ef31b5b0180d13a4720a6d7d0c2
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89553
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-15 07:38:31 +00:00
Sean Rhodes
5e36d9ba04 mb/starlabs/starbook/mtl: Update the VBT from 256 to 261
This is a non-functional change, as the settings remain the same, and
it's only done as a pre-caution as FSP has been funny with VBT versions
before.

Change-Id: Ie7978e76286b3e2ff21fd0a28bfe51bdfd32f381
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89547
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-15 07:33:39 +00:00
Simon Yang
fba8c14c27 mb/google/brya: add cnvi BT recovery mechanism
Add BT _PRR related methods to mitigate BT lost issue.

Refer to Intel TA#837249, toggling BTEN, BT_IF_SELECT, and
BT_RESET_GPIO to recovery BT device when BT became a low-speed usb
device.

BUG=b:451095940
TEST=Run reboot stress and check kernel log, BT could be recovery.
usb 3-10: new full-speed USB device number 4 using xhci_hcd
usb 3-10: New USB device found, idVendor=8087, idProduct=0033,
bcdDevice= 0.00
usb 3-10: New USB device strings: Mfr=0, Product=0, SerialNumber=0
usb 3-10: using ACPI '\_SB.PCI0.XHCI.RHUB.HS10' for 'reset' GPIO lookup
usb 3-10: USB disconnect, device number 4
usb 3-10: new low-speed USB device number 5 using xhci_hcd
usb 3-10: device descriptor read/64, error -71
usb 3-10: device descriptor read/64, error -71
usb 3-10: new low-speed USB device number 6 using xhci_hcd
usb 3-10: device descriptor read/64, error -71
usb 3-10: device descriptor read/64, error -71
usb 3-10: new full-speed USB device number 7 using xhci_hcd
usb 3-10: New USB device found, idVendor=8087, idProduct=0033,
bcdDevice= 0.00

Change-Id: I0d485a9102676624da28d5d681ea4510444e17bd
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Signed-off-by: Jamie Chen <jamie.chen@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89384
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-15 06:45:48 +00:00
Jeremy Compostella
1fb4a7409b soc/intel/pantherlake: Add VR power state current thresholds
This commit introduces support for configuring power state current
thresholds (PS1, PS2, PS3) for each Voltage Regulator (VR) domain in the
Panther Lake SoC.

The thresholds allow platform integrators to specify current thresholds
(in 1/4 A increments, 0-128 A) for each VR domain and power state. A
value of 0 indicates AUTO (use default).

Change-Id: If4d473901c8de02b3d6cef44f5481a1864f14d63
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89450
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
2025-10-14 16:39:40 +00:00
Jeremy Compostella
59ede353c5 soc/intel/pantherlake: Add Thermal Design Current (TDC) configuration
This commit adds the capability to configure TDC mode and time window
for each Voltage Regulator (VR) domain, providing better control over
thermal constraints and power consumption.

The TDC mode specifies the method (iPL2 or Irms) used for thermal
management, while the time window determines the duration for current
averaging.

Change-Id: I2e11855c4f0533d826a25efead02ddcff9ab1f62
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89319
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
2025-10-14 16:39:29 +00:00
Jeremy Compostella
c54658d200 soc/intel/pantherlake: Add ICC Max configuration support
Add configuration for Maximum Integrated Circuit Current (ICC) for
various SKUs and VR domains. The ICC values, defined in 1/4A increments,
specify the maximum allowable current for a given SKU and VR domain
configuration. This update enhances power management by allowing
tailored ICC settings.

Change-Id: I2c4712521da7b89cd4b2a6c499e11245b8eeb719
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88044
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-14 16:39:21 +00:00
Jeremy Compostella
0d1545ffac soc/intel/pantherlake: Add hysteresis window UPDs support
This commit introduces configuration options for P-core and E-core
hysteresis time windows to support acoustic noise mitigation on Intel
Panther Lake (PTL) System on Chips (SoCs).

Change-Id: Ic3bceda06adf4e0a81b0503e5fb65895bfad2c12
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89333
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
2025-10-14 16:39:10 +00:00
Jeremy Compostella
8f24546fc4 vc/intel/fsp/fsp2_0/wildcatlake: Expose Thermal current thresholds and mode
The changes focus on offering power state current thresholds, Thermal
Design Current (TDC) mode settings, and P-core and E-core hysteresis time
windows to support acoustic noise mitigation.

The Ps1Threshold, Ps2Threshold, and Ps3Threshold new fields configure
current thresholds for different power states. This allows for
fine-tuned power management by specifying current thresholds in 1/4 A
increments. These configurations can help optimize performance based on
specific current requirements for different components like IA, GT, and
SA.

The TdcMode parameter configures TDC mode based on the IRMS supported
bit from Mailbox, offering the option between iPL2 and Irms modes.

BUG=b:449662274

Change-Id: I949dd6a5c6bf575415ee62dcd0d0eda369ef29fc
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89330
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-14 16:38:39 +00:00
Varun Upadhyay
04affc3354 mb/google/ocelot: Update gpio's for ALC721 sndw
This commit updates sndw codec fwconfig for including dmic pins
necessary for microphone data.

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

TEST=emerge-ocelot coreboot chromeos-bootimage and check microphone
functionality.

Change-Id: I8d271c7f11fa3fcf34105de7552e641c40463090
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89175
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-10-14 15:34:11 +00:00
Nicholas Sudsgaard
3ac1a2b124 MAINTAINERS: Drop non-existant TPM files from VBOOT
The TPM related files were moved into src/security/tpm in commit
64e2d19082 ("security/tpm: Move tpm TSS and TSPI layer to security
section"), then further work was done on the coreboot TPM stack which
makes it difficult to find the equivalent area of code which these files
correspond to.

Therefore, we will drop these files for now and leave it up to the
maintainers of VBOOT to re-add any TPM related files (if they want to)
in a future change.

Change-Id: Ief7cfb81efc4c3daadc4b73af21bfdf0224b9005
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89509
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-10-14 14:37:06 +00:00
Yu-Ping Wu
af8b15ae04 Revert "libpayload: Define UCHAR_MAX/CHAR_MIN/CHAR_MAX"
This reverts commit 4f13f72dbc ("libpayload: Define UCHAR_MAX/CHAR_MIN/CHAR_MAX").

Reason for revert: char can be either signed or unsigned. If it's
unsigned, then CHAR_MIN would be incorrectly defined as 128.

Change-Id: Id49ddfff2d91029dc191b8b64e8e3f325ad0a462
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89469
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-14 09:58:49 +00:00
Sean Rhodes
5e64ae2554 mb/starlabs/starbook/mtl: Enable PCH Energy
ReportingPchPmDisableEnergyReport has been 0 by default in all
FSP versions up until Meteor Lake. Set this to unify the
configuration between boards.

No applicable tests.

Change-Id: If9cdbb466bf8e4efc7a1577b0a1fec6270550d05
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89527
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-14 08:28:17 +00:00
Sean Rhodes
375847acfe soc/intel/meteorlake: Configure PmcPchLpmS0ixSubStateEnableMask
Only PmcLpmS0ixSubStateEnableMask is currently configured, and
PmcPchLpmS0ixSubStateEnableMask is left with the default value.

These should be the same.

Change-Id: I71bebec251c5c336407c2c173af29ddbfde0691b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89448
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-14 08:28:05 +00:00
Sean Rhodes
db0faffdb8 mb/starlabs/*: Add comment about not configuring eSPI GPIOs
Change-Id: If733599ff699ffa31db95384857540694050d6bd
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89524
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-14 08:27:58 +00:00
Sean Rhodes
990ad929a0 mb/starlabs/starbook/tgl: Don't configure eSPI GPIOs
These do not need to be configured, as they're configured
automatically on reset.

Change-Id: I26c9a42fa44b55208583859895f9a39016e76eac
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89523
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-14 08:27:54 +00:00
Kapil Porwal
7ebcd6763f soc/qualcomm/x1p42100: Handle Type-C polarity for USB4/DP PHY init
This commit introduces necessary changes to correctly initialize the
Qualcomm X1p42100 USB4/DP PHY based on the USB Type-C CC polarity
detection.

When a Type-C cable is connected, the CC lines determine the
connector orientation (polarity). The USB PHY lanes must be swapped
accordingly to ensure the SuperSpeed signals are routed correctly.

Key changes:
- Adds 'get_usb_typec_polarity()' to read the CC polarity state from
the PMIC (SMB1/SMB2) via the 'SCHG_TYPE_C_MISC_STATUS' register.
- Extends 'qmp_usb4_dp_phy_ss_init()' to accept a 'polarity_inverse'
boolean.
- Uses the polarity state to set the 'SW_PORTSELECT' register in the
USB4/DP common configuration, effectively swapping the lanes when
needed.
- Calls the updated PHY initialization function with the appropriate
polarity for both primary (SS0) and secondary (SS1) USB instances.

This ensures robust USB functionality regardless of the cable insertion
orientation.

BUG=b:448107633
TEST=Verify USB-C works in both polarities on Google/Quenbi.

Without this CL -
USB3 key doesn't work in inverted polarity.

With this CL -
USB3 key works in both polarities.

Change-Id: I1855a12e32a76032d4c1b57770143c152b806008
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89468
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-10-14 04:22:39 +00:00
Cliff Huang
f1708cf21a drivers/intel/touch: Enhance Intel touch driver for new devices
Enhancements have been made to the Intel touch driver, including support
for Google touchscreen devices, ELAN9006 and ELAN6918. The update
also includes device-specific configuration changes for both I2C and SPI
interfaces.

Key improvements include:
- Google Touchscreen support integration for ELAN9006 (SPI) and ELAN6918
  (I2C).
- Specification of recommended connection speeds for supported devices.
- Removal of an unnecessary 100ms delay in the SPI _RST method.
- Addition of a function to map the System on Chip's (SoC) I2C speed
  frequency.
- Improved device-specific connection speed settings for both I2C and
  SPI interfaces.

These changes aim to improve the driver’s compatibility and efficiency
when interacting with the newly supported devices.

BUG=none

TEST=Test the updated driver on devices using ELAN9006 and ELAN6918 to
verify improved responsiveness and correct device initialization.
Confirm that connection speeds are set as recommended and check the
absence of the previously unnecessary delay in SPI operations from the
SSDT.

Change-Id: Ie35de90ece44101aea008d13d19e12873cdc09bf
Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89180
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-10-13 17:09:52 +00:00
Jeremy Compostella
55bf4ea07e cpu/x86/topology: Add tile and die ID CPU topology fields
This commit makes the tile and die ID CPU topology parameters
information available to support the implementation of
EFI_MP_SERVICES_PROTOCOL.GetProcessorInfo() in accordance with the
Platform Initialization Specification 1.7.

TEST=Instrumentation shows that the tile_id and die_id apic_path fields
     are properly populated.

Change-Id: If4d473901c8de02b3d6cef44f5481a1864f14d64
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89461
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-13 17:09:18 +00:00
Hualin Wei
0c97aed8ac mb/google/fatcat/var/lapis: Modify touchpad and touchpanel configuration
When configuring the touch_thc_i2c controlled touchpad and touchscreen
for the first time, referring to the fatcat code. The touchpad and
touchscreen could not be successfully bringup, since the touchpad and
touchscreen configured in the code are opposite to those in the fatcat
schematic diagram. According to the circuit schematic
NB7835CAA_SCH_MB_V1_A.pdf, modify the GPIO configuration and devicetree.

1. Configure GPIO as THC-I2C function.
2. Modify devicetree
        touchpad    ==> THC0
        touchpanel  ==> THC1

BUG=b:448030832 b:445817408
TEST=emerge-fatcat coerboot chromeos-bootimage
flash to DUT, touchpad and touchpanel can be found by `getevent`

Change-Id: I6826145f58d437e03683a4459ded3b7657cf616a
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89383
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-13 17:08:55 +00:00
Sean Rhodes
9e4a0a6026 mb/starlabs/starbook/mtl: Don't configure eSPI GPIOs
Now that the PinMux is configured correctly, these no longer
need to be set, as they're configured automatically on reset.

Change-Id: I03c6431f6ce7118444ef3672de32c5afa2e36441
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89514
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-13 17:08:17 +00:00
Michał Żygowski
3e0457e087 security/vboot/Makefile.mk: Fix building vboot lib with OpenSIL
When the board uses OpenSIL, the OpenSIL include paths already include
the $(top). Vboot patches the paths so that all of them include $(top)
at the beginning. This however would result in the include paths from
OpenSIL to include $(top) twice. Filter the paths that already contain
the $(top) and strip the prefix. Then add the $(top) prefix again to
all include paths to fix the problem.

TEST=Build vboot lib selected by enabled measured boot on Gigabyte MZ33-AR1.

Change-Id: Id67ea760f7b1ee2212f19a875c905771cdecdfa5
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89114
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-13 10:11:29 +00:00
Youwen Huang
60ef877d93 mb/google/skywalker: Modify the RST pin naming
Modify the RST pin naming to keep the code consistent.

BUG=b:422688421
TEST=emerge-jedi coreboot chromeos-bootimage
BRANCH=Skywalker

Change-Id: Icf39bf77d24fd423309aa7f451c1fc07b5bfd057
Signed-off-by: Youwen Huang <huangyouwen5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89491
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-13 03:21:17 +00:00
Subrata Banik
d5a8cec748 soc/intel/meteorlake: Rely on FSP_DIMM_INFO
This patch updates the Meteor Lake SoC configuration to select the
`FSP_DIMM_INFO` Kconfig option. This change instructs the build system
to use the common FSP driver implementation for retrieving and storing
DIMM information.

As a result, the duplicated, SoC-specific DIMM information retrieval
logic is dropped from the Panther Lake SoC code base, centralizing
the memory parsing mechanism.

TEST=Able to build and boot google/screebo. Verify the memory related
information is proper as part of the SMBIOS table.

Change-Id: I88fe72b558d2f9af55b585fd20f5f55e15eb465f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89496
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-13 02:09:44 +00:00
Subrata Banik
e168a516e4 soc/intel/pantherlake: Rely on FSP_DIMM_INFO
This patch updates the Panther Lake SoC configuration to select the
`FSP_DIMM_INFO` Kconfig option. This change instructs the build system
to use the common FSP driver implementation for retrieving and storing
DIMM information.

As a result, the duplicated, SoC-specific DIMM information retrieval
logic is dropped from the Panther Lake SoC code base, centralizing
the memory parsing mechanism.

TEST=Able to build and boot google/kinmen. Verify the memory
related information is proper as part of the SMBIOS table.

Change-Id: I3323d3add9213cc384b9a2ca978681287d0e1822
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89495
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-13 02:09:35 +00:00
Subrata Banik
23419df34c drivers/intel/fsp2_0: Implement API to retrieve DIMM info
This patch extracts the implementation responsible for retrieving DIMM
information from the FSP HOBs and centralizes it within the common FSP
driver code.

This ensures that each SoC layer does not duplicate the logic for
parsing memory-related data. The primary goal is to rely on the
common FSP driver code for retrieving memory information.

The only SoC-specific implementation that remains is limited to
handling dependencies related to FSP UPD or header differences across
SoC generations.

TEST=Able to build and boot google/kinmen. Verify the memory related
information is proper as part of the SMBIOS table.

Change-Id: Ic3741a248bb1fe9420c784d51fbf459a30f8c42f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89494
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-13 02:09:29 +00:00
Sean Rhodes
1f328351e6 mb/starlabs/*: Select SPD_READ_BY_WORD
This saves boot time (approx 82ms).

Change-Id: Ib6c07d941c634d3be7449740f48b2a012a9e8cc6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89526
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-12 20:11:29 +00:00
Sean Rhodes
88439b4cd3 mb/starlabs/starbook/mtl: Set the VPU default to disabled
Change-Id: I7e1b6c752e440a9fff271a7775f4ffe9879bb8c4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89518
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-12 18:32:55 +00:00
Hari L
8ffa58723a soc/qualcomm/x1p42100: Add USB Type-C support
Add USB DWC3 controller, VBUS support and Integrate Clock and PHY
for Type C ports C0, C1.
The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

BUG=b:448107633
TEST=Create an image.serial.bin, ensure it boots on X1P42100
and check USB port link status.

firmware-shell: md 0x0a800420 8
0a800420: 000002a0 00000000 00000000 00000000    ................
0a800430: 00001203 00000000 00000000 00000000    ................

firmware-shell: md 0x0a600420 8
0a600420: 00000e03 00000000 00000000 00000000    ................
0a600430: 00001203 00000000 00000000 00000000    ..........

Console logs:
[INFO ]  Setting up USB HOST controller.
[DEBUG]  USB HS PHY initialized for index 0
[DEBUG]  USB HS PHY initialized for index 1
[DEBUG]  QMP PHY MP0 init
[DEBUG]  QMP PHY MP0 initialized and locked in 1674us
[DEBUG]  QMP PHY MP1 init
[DEBUG]  QMP PHY MP1 initialized and locked in 1674us
[DEBUG]  USB HS PHY initialized for index 2
[DEBUG]  QMP-1x16 USB4 DP PHY SS0 init
[DEBUG]  QMP PHY SS0 initialized and locked in 1671us
[INFO ]  Enabling SMB1 VBUS SuperSpeed
[DEBUG]  SMB1 OTG Status: 0x00, State: 0x00
[ERROR]  SMB1 OTG enable timeout after 100 ms, final state: 0x00
[ERROR]  SMB1 OTG enable failed
[INFO ]  SMB1 Type-C Status:
[INFO ]    Misc Status (0x2B0B): 0x3b
[INFO ]    Src Status (0x2B08): 0x00
[INFO ]    Mode Config (0x2B44): 0x00
[DEBUG]  USB HS PHY initialized for index 3
[DEBUG]  QMP-1x16 USB4 DP PHY SS1 init
[DEBUG]  QMP PHY SS1 initialized and locked in 1672us
[INFO ]  Enabling SMB2 VBUS SuperSpeed
[DEBUG]  SMB2 OTG Status: 0x03, State: 0x03
[DEBUG]  SMB2 OTG Status: 0x02, State: 0x02
[INFO ]  SMB2 OTG block enabled successfully
[INFO ]  SMB2 Type-C Status:
[INFO ]    Misc Status (0x2B0B): 0x49, VBUS Status (bit 5): 0
[INFO ]    Src Status (0x2B08): 0x08
[INFO ]    Mode Config (0x2B44): 0x00
[SPEW ]  Configure USB in Host mode
[SPEW ]  Configure USB Primary in Host mode
[SPEW ]  Configure USB Secondary in Host mode
[INFO ]  DWC3 and PHY setup finished

Change-Id: I9f5e9ef910844358308a16b31de6da58d5da7f3a
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89447
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-12 04:40:18 +00:00
Hari L
45cedbb992 soc/qualcomm/x1p42100: Add HS/SS PHY support for USB Type-C ports
Add HS/SS Phy for USB Type-C primary and secondary USB Type-C ports.
The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=Boot from USB-C key on Google/Quenbi.

SS PHY used for Type-A and Type-C ports have different register layout.
[register address may vary for a similar register name]
USB4_USB3_EDP_DP_Con PHY Configuration - Type-C
USB3 Gen2 UNI PHY Configuration - Type-A
Hence it cannot be shared

Console logs:
[INFO ]  Setting up USB HOST controller.
[DEBUG]  USB HS PHY initialized for index 0
[DEBUG]  USB HS PHY initialized for index 1
[DEBUG]  QMP PHY MP0 init
[DEBUG]  QMP PHY MP0 initialized and locked in 1674us
[DEBUG]  QMP PHY MP1 init
[DEBUG]  QMP PHY MP1 initialized and locked in 1674us
[DEBUG]  USB HS PHY initialized for index 2
[DEBUG]  QMP-1x16 USB4 DP PHY SS0 init
[DEBUG]  QMP PHY SS0 initialized and locked in 1672us, phy_status: 0x86868686
[INFO ]  Enabling SMB1 VBUS SuperSpeed
[DEBUG]  SMB1 OTG Status: 0x00, State: 0x00
[ERROR]  SMB1 OTG enable timeout after 100 ms, final state: 0x00
[ERROR]  SMB1 OTG enable failed
[INFO ]  SMB1 Type-C Status:
[INFO ]    Misc Status (0x2B0B): 0x3b
[INFO ]    Src Status (0x2B08): 0x00
[INFO ]    Mode Config (0x2B44): 0x00
[DEBUG]  USB HS PHY initialized for index 3
[DEBUG]  QMP-1x16 USB4 DP PHY SS1 init
[DEBUG]  QMP PHY SS1 initialized and locked in 1672us, phy_status: 0x86868686
[INFO ]  Enabling SMB2 VBUS SuperSpeed
[DEBUG]  SMB2 OTG Status: 0x03, State: 0x03
[DEBUG]  SMB2 OTG Status: 0x02, State: 0x02
[INFO ]  SMB2 OTG block enabled successfully
[INFO ]  SMB2 Type-C Status:
[INFO ]    Misc Status (0x2B0B): 0x49, VBUS Status (bit 5): 0
[INFO ]    Src Status (0x2B08): 0x08
[INFO ]    Mode Config (0x2B44): 0x00
[SPEW ]  Configure USB in Host mode
[SPEW ]  Configure USB Primary in Host mode
[SPEW ]  Configure USB Secondary in Host mode
[INFO ]  DWC3 and PHY setup finished

Change-Id: Icfec6f00ea41032e4fd17a5d99dea7529ef347fc
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89372
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-10-12 04:40:09 +00:00
Hari L
b18dfde22a soc/qualcomm/x1p42100: Add Clock support for USB Type-C ports
Enable clocks for Type-C ports C0 and C1.
The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

BUG=b:448107633
TEST = Verified that all the clocks added are ON during usb init.
BIT31[CLK OFF] of CBCR register of respective clock indicates
clock status.

Clock Configuration Status:

Clock Name                          State  Register    Value
----------------------------------------------------------------
gcc_usb30_mp_master_clk             ON     0x00117018  0x00000001
gcc_usb30_mp_sleep_clk              ON     0x00117024  0x00000001
gcc_usb30_mp_mock_utmi_clk          ON     0x00117028  0x00000001
gcc_usb3_mp_phy_aux_clk             ON     0x00117288  0x00000001
gcc_usb3_mp_phy_com_aux_clk         ON     0x0011728C  0x00000001
gcc_usb3_mp_phy_pipe_0_clk          ON     0x00117290  0x00000001
gcc_usb3_mp_phy_pipe_1_clk          ON     0x00117298  0x00000001
gcc_cfg_noc_usb3_mp_axi_clk         ON     0x001173CC  0x00000001
gcc_aggre_usb3_mp_axi_clk           ON     0x001173D0  0x00000001
gcc_sys_noc_usb_axi_clk             ON     0x0012D014  0x00000001
gcc_cfg_noc_usb_anoc_north_ahb_clk  ON     0x0012D028  0x00000000
gcc_cfg_noc_usb_anoc_south_ahb_clk  ON     0x0012D02C  0x00000000
gcc_aggre_usb_noc_axi_clk           ON     0x0012D034  0x00000001
gcc_cfg_noc_usb_anoc_ahb_clk        ON     0x0012D024  0x00000000
gcc_usb30_prim_master_clk           ON     0x00139018  0x00000001
gcc_usb30_prim_sleep_clk            ON     0x00139024  0x00000001
gcc_usb30_prim_mock_utmi_clk        ON     0x00139028  0x00000001
gcc_usb3_prim_phy_com_aux_clk       ON     0x00139064  0x00000001
gcc_usb3_prim_phy_pipe_clk          ON     0x00139068  0x00000001
gcc_cfg_noc_usb3_prim_axi_clk       ON     0x0013908C  0x00000001
gcc_aggre_usb3_prim_axi_clk         ON     0x00139090  0x00000001
gcc_cfg_noc_usb3_sec_axi_clk        ON     0x001A108C  0x00000001
gcc_aggre_usb3_sec_axi_clk          ON     0x001A1090  0x00000001
gcc_usb30_sec_master_clk            ON     0x001A1018  0x00000001
gcc_usb30_sec_sleep_clk             ON     0x001A1024  0x00000001
gcc_usb30_sec_mock_utmi_clk         ON     0x001A1028  0x00000001
gcc_usb3_sec_phy_aux_clk            ON     0x001A1060  0x00000001
gcc_usb3_sec_phy_com_aux_clk        ON     0x001A1064  0x00000001
gcc_usb3_sec_phy_pipe_clk           ON     0x001A1068  0x00000001

Change-Id: I86cd84f515a22a080fe39687c8b7b8c01cb9c001
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89350
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-12 04:40:02 +00:00
Sean Rhodes
c7e4ef822d mb/starlabs/{starbook,starfighter}: Remove DRIVER_TPM_SPI_CHIP
This doesn't do anything, so remove it.

Change-Id: Ic753d0f08bdc0e9dd839357eb73c9771d94e5c83
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89517
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-11 18:44:44 +00:00
Sean Rhodes
0c73e45493 ec/starlabs/merlin: Add disabled option for lid switch
There are three options for the LID switch:
    SWITCH_NORMAL        0x00
    SWITCH_SLEEP_ONLY    0x01
    SWITCH_DISABLED      0x02

Add these to coreboot to ensure they are set correctly.

Change-Id: I159111438eabd4abeb654be75fd80f29bd835055
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89502
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-11 18:44:36 +00:00
Sean Rhodes
ac7bb7694d mb/starlabs/starbook/mtl: Configure eSPI GPIO Mux
Configure Pin Mix for Cs, Clk, Miso and Mosi to get the eSPI
GPIOs working as they should be.

Change-Id: I798f1e98f611a53e9c87f15e1e0f1679b9933bee
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89520
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-11 18:37:21 +00:00
Sean Rhodes
b37821ac25 mb/starlabs/*: Unify settings across device VBTs
The common settings are:
* Reorder Child Device mappings to prioritise EFP displays.
* Disable EFPx that are not present.
* eDP panel colour depth is 24-bit (8 bpc).
* POST brightness of 100.
* Minimum brightness of 0.
* DPST level of 2.
* PSR Enabled.
* DDRS Enabled.

Test=Boot all boards, check brightness levels are consistant, the
kernel recognises that PSR and DDRS are enabled, check all outputs
work.

Change-Id: I7eb6a110d25d4bcfd26ffdddd9ec666fc90a04b0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89515
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-11 18:36:19 +00:00
Sean Rhodes
ac8765c88a mb/starlabs/*: Correct USB Type-C Port Configuration
The macro USB2_PORTS_MID vs USB2_PORTS_TYPE_C essentially enables
or disables the PortResetMessage. This is only relevant to TCSS
ports.

Correct the macros accordingly.

Change-Id: I18a078c7f6fb937293e6159f05587b7e1f881512
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89513
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-11 18:36:11 +00:00
Sean Rhodes
f7512c8647 mb/starlabs/starbook/{adl,rpl}: Remove USB OverCurrent Configuration
This isn't supported so remove it.

Change-Id: I8e8a87f1394199d3288ae27601069ad88e2fa74f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89512
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-11 18:36:05 +00:00
Hualin Wei
bf67771656 mb/google/fatcat/var/lapis: Update gpio GPP_E07 configuration
The IRQ97 will continue to be triggered, and cros_ec_irq_thread()
will be called all the time, even if GPP_E07 is high.
The following information will be continuously printed on the EC
console:
25-09-20 15:25:53.945[148.780609 HC 0x0067 err 9]
...

According to NB7835CAA_SCH_MB_V1_A.pdf,
change
PAD_CFG_GPI_SCI_LOW(GPP_E07, NONE, DEEP, LEVEL),
->
PAD_CFG_GPI_APIC_LOCK(GPP_E07, NONE, LEVEL, INVERT, LOCK_CONFIG),
can fix the interrupt exception.

BUG=b:445883867
TEST=emerge-fatcat coreboot and there is no HC error storm.

Change-Id: Ic151dce7881a6730a347eeae8f2e029fdc60bbd0
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89362
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-11 10:20:55 +00:00
Nicholas Sudsgaard
ff5daa0581 MAINTAINERS: Remove '/' from the beginning of paths
This also adds a missing trailing '/' to util/gitconfig, as this is a
directory.

Change-Id: Ib45dbf161b773cd89ad5acee183aeceac4d29584
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89506
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-11 05:38:56 +00:00
Nicholas Sudsgaard
6bfa257eef MAINTAINERS: Correct the path of cbmem_id.h
This was moved to commonlib in commit dc9f5cd546 ("coreboot: introduce
commonlib"), then subsequently moved into commonlib/bsd in
commit ea619425ee ("commonlib: Move commonlib/cbmem_id.h to commonlib/bsd/").

Change-Id: Ib92c89cd090e78c76931000925ea6292e1783e28
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89510
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-11 05:35:23 +00:00
Nicholas Sudsgaard
d7ae81132b MAINTAINERS: Correct asus/p8z77-series to asus/p8x7x-series
This was renamed in commit 3201ec343a ("mb/asus: Rename p8z77-series
to p8x7x-series").

Change-Id: Ia536a5306866c3f1dccab56f1e0a7474cf1842fd
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89505
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-10-11 05:07:39 +00:00
Nicholas Sudsgaard
ef8eb79636 MAINTAINERS: Rename util/ipqheader to util/qualcomm
This was renamed to util/qualcomm in commit 101098c41a
("sdm845: Combine BB with QC-Sec for ROM boot").

Change-Id: I14c9b6d918d30e1d156559d110ad47e556645d84
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89508
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-10-11 05:07:05 +00:00
Nicholas Sudsgaard
0965bb9f68 MAINTAINERS: Remove non-existant mainboards
These mainboards were removed in the following commits:
  - e56f0c7cab ("mb/*/*: Remove AMD FAMILY15TN boards")
  - 6baee3d287 ("mb/*/*: Remove AMD agesa family16 boards")

Change-Id: I41c386a6f61efd20cfd52ce5b71412b1f9e9181f
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89504
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-11 05:06:25 +00:00
Ren Kuo
f5d1505c6b mb/google/fatcat/var/moonstone: Add Elan touchpad support
Add the Elan touchpad configuration for moonstone AVL.

BUG=b:442964901
TEST=build firwmare and check the touchpad can work well in ALOS.
     cat /sys/bus/i2c/devices/i2c-12/i2c-ELAN0000\:00/name
     i2cdetect -y -r 12 -> 0x15 = UU

Change-Id: Ie105906fb54383dbf91513f81ab933653162ad4e
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89467
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-10 19:48:54 +00:00
David Wu
24bfeb154e mb/google/fatcat/var/moonstone: Add focaltech touchscreen support
This change adds the necessary configuration for the focaltech
touchscreen (FTSC1000) device, connected to I2C bus 38.

It includes settings for:
* HID descriptor
* Device description
* IRQ configuration
* Detection
* Reset and enable GPIOs with their respective delays
* Power resource handling
* HID descriptor register offset

BUG=b:442964901
TEST=emerge-fatcat coreboot and focaltech touchscreen can work well.

Change-Id: I7fb2f8b3c4ceb9d4bc7471d7eef23b0a18dca78a
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89465
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-10 19:48:48 +00:00
Ren Kuo
1580346fa7 mb/google/fatcat/var/moonstone: correct the Kconfig settting
Correct the Kconfig setting to moonstone, and the compiler condition
in baseboard/gpio.h

BUG=none
TEST=emerge-fatcat coreboot chromeos-bootimage

Change-Id: I7cb794912001bf4fe0d35900fe843bf275fb77e7
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89466
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-10-10 19:48:42 +00:00
Varun Upadhyay
150647a2fb ec/google/chromeec: Fix ACPI _CRS method generation for LPC memory range
Enable _CRS method when EC_GOOGLE_CHROMEEC_LPC_GENERIC_MEMORY_RANGE is
configured, even without EC sync IRQ support.

Previously, the _CRS method was only generated if EC_ENABLE_SYNC_IRQ or
EC_ENABLE_SYNC_IRQ_GPIO was defined, causing LPC generic memory range
configuration to be skipped on boards that don't use EC sync IRQ which
will results in no communication between kernel and EC.

This change ensures LPC memory range resources are properly exposed
in ACPI considering the hardware limitations where the EC sync IRQ GPIO
is not available for boards using LPC_GENERIC_MEMORY_RANGE.

BUG=437459757
TEST=Build and verify EC LPC memory range is configured in ACPI tables
on boards with EC_GOOGLE_CHROMEEC_LPC_GENERIC_MEMORY_RANGE enabled
by dumping ssdt tables and also verify 'ectool version' cmd.

ectool version
RO version:    ojal-0.0.0-2db24f9+
RW version:    ojal-0.0.0-2db24f9+

Change-Id: If63dd631029d2756451fad71a5556bc0b23f507d
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89420
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-10 19:48:30 +00:00
Daniel Maslowski
ffa262db59 Documentation/FIT: reference archived copy of Intel TXT lab handout
The document is no longer accessible at the original URL.

Change-Id: I9601b3fb9a86796dafd742961d3d130fb735804e
Signed-off-by: Daniel Maslowski <info@orangecms.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89463
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-10 17:35:44 +00:00
Nicholas Sudsgaard
f47e6c3905 MAINTAINERS: Fix typo "copperlake_sp" to "cooperlake_sp"
Change-Id: I020878dc8bfbec3a3bacabc1070b119f7a61ab0e
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89507
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-10-10 02:47:57 +00:00
Matt DeVillier
1af0497c12 mb/google/dedede: Fix MAINBOARD_FAMILY conditional
Mainboard family is set based on the baseboard.

TEST=build/boot google/galtic, verify mainboard family set correctly
in SMBIOS.

Change-Id: Ifb5335c7dad43e8a75dd462a121d2eb711c51ccc
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89453
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-09 15:49:17 +00:00
Matt DeVillier
b4b6c3aa55 mb/google/brya/var/{marasov,mithrax,omnigul}: Add SOF chip driver entries
These boards all use PDM1 for the microphone topology, and so need to
override the baseboard default.

TEST=boot Win11 on omnigul, verify speakers/microphone work with
Coolstar's drivers.

Change-Id: I55a5886fc02a83640392854cd7132aa811dac6f3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89454
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-09 15:49:10 +00:00
Matt DeVillier
738fd2efc9 util/chromeos/extract_blobs: Add support for command line params
Add support for taking the ifdtool platform parameter via the cmd
line, as well as the output directory. Add double quotes around
variables as needed. Add help output describing new parameter options.

TEST=run script against images from skl, adl, and mtl platforms.
Verify no warning from ifdtool that platform is unknown.

Change-Id: I4a27c9876bf639579b791c894b2cbfdae7ab63c1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89452
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2025-10-09 15:48:57 +00:00
Yu-Ping Wu
e59c5abd13 ec/google/chromeec: Add EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC
Introduce a Kconfig option EC_GOOGLE_CHROMEEC_FW_CONFIG_FROM_UFSC for
reading firmware configuration from Unified Firmware and Second-source
Config (UFSC) [1] from EC CBI. As the UFSC already includes both the
32-bit FW_CONFIG and 32-bit SSFC, this option is incompatible with
EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG.

Also check the size of the data read from CBI.

[1] https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/6974727

BUG=b:448300592
TEST=emerge=skywalker coreboot
BRANCH=none

Change-Id: I2f686838d2f7a6f3eec3bd5224f89389340f7471
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89404
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-10-08 19:25:46 +00:00
Sean Rhodes
341b108a71 mb/starlabs/starfighter: Add missing GPP_A5 definition
Change-Id: I1969bb993ac7af16054b6b1cc4f1d22d7036d184
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89441
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-08 19:21:56 +00:00
Jeremy Compostella
414f1a61dd vc/intel/fsp/fsp2_0/pantherlake: Expose Thermal current thresholds and mode
The changes focus on offering power state current thresholds and Thermal
Design Current (TDC) mode settings.

The Ps1Threshold, Ps2Threshold, and Ps3Threshold new fields configure
current thresholds for different power states. This allows for
fine-tuned power management by specifying current thresholds in 1/4 A
increments. These configurations can help optimize performance based on
specific current requirements for different components like IA, GT, and
SA.

The TdcMode parameter configures TDC mode based on the IRMS supported
bit from Mailbox, offering the option between iPL2 and Irms modes.

BUG=b:449662274

Change-Id: I25b6b9d2bf19ade51e39db06298ffaef98a7897e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88043
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-08 17:33:36 +00:00
Paul Menzel
2e92833172 soc/qualcomm/common/usb/qmpv4_usb_phy: Fix delay value in comment to 10 ms
`wait_us(10000, …)` is 10 ms and not 1 ms.

Change-Id: I8b44e96f9611f081287413151c4294bcadf1ce5c
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89455
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-08 12:14:56 +00:00
Yidi Lin
b48532c694 soc/mediatek: Refactor MMU configuration for DMA region
This patch refactors the MMU configuration for the DMA region by moving
the logic from mmu_cmops.c to the common/mmu_operations.c. This
centralization simplifies the code and removes duplication.

The following changes are included:
- Deleted src/soc/mediatek/common/mmu_cmops.c
- Moved DMA region configuration to mtk_mmu_after_dram
- Updated Makefiles to remove references to the deleted file

BRANCH=none
BUG=none
TEST=emerge-kukui coreboot -j && emerge-elm  coreboot -j && \
     emerge-rauru coreboot -j

Change-Id: I06289afa74248d55fc1eabeef2f6591bc805a8cf
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89411
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-08 01:54:27 +00:00
Yidi Lin
28a8eaa57b soc/mediatek/mt8192: Clean up memlayout.ld
The macros being removed are already defined in the soc/memlayout.h.
Remove the duplicated definitions and include the common header instead.

BUG=none
TEST=emerge-asurada coreboot

Change-Id: I38d9ca2310fbc60bb453b9731203ffb0251cb444
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89410
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-08 01:54:05 +00:00
Yidi Lin
bca876849a soc/mediatek/common: Add enable parameter for configure_backlight
This change refactors `configure_backlight` function to accept a boolean
'enable' parameter. This provides more explicit control over the
backlight state.

BUG=b:319511268,b:319511268
TEST=emerge-rauru coreboot

Change-Id: Ia713dc792186a9a8080fd9d7ee02738fd372f531
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89409
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-10-08 01:53:47 +00:00
Daniel Peng
46ce812c1b mb/google/skywalker: Create variant Grogu
Create the variant Grogu for Starros/Grogu projects.

BUG=b:441547156
TEST=emerge-skywalker coreboot
     And local build bios successfully.
BRANCH=skywalker

Change-Id: I15cd5ee9bceb526c785f5ab34a6d35c138df78d1
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89408
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-10-08 01:52:56 +00:00
Nicholas Chin
98a5445328 MAINTAINERS: Correct paths for Dell Latitude mainboards
The E6400 and E7240 were updated to use a variant scheme in commit
f62734976c ("mb/dell: Convert E6400 into a variant") and commit
511872dae3 ("mb/dell: Convert Latitude E7240 into a variant"),
respectively, which changed the names of the directories they were
located in. Update MAINTAINERS to reflect this.

Change-Id: If35e5a0afe214fe623334e90969cc7f95d579a86
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89422
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-10-07 11:56:10 +00:00
Keith Hui
984ee53de8 mb/asus/p8x7x-series: Introduce CFR setup menu
Options are organized to be as close to vendor firmware as possible.

Some options are not implemented for all variants. Those are either
excluded from build via preprocessor, or left visible but unused.
They will be squared off later.

TEST=abuild tested on the whole series.
TEST=Complete platform setup menu appears for mb/asus/p8z77-v_le_plus
with edk2/mrchromebox payload, with changes to front audio panel type
reflected in hardware.

Change-Id: I558012b28d098a90863e3ff6610017c2410c23ed
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89045
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-10-07 11:55:59 +00:00
Kapil Porwal
830ec89bca mb/google/bluey: Update mainboard part number for QuenbiH
BUG=none
TEST=Verify FDT match for Google/QuenbiH.

Change-Id: I799b6b4143d582c3e6a6bdd2048a04457155b1ac
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89395
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kornel Dulęba <korneld@google.com>
2025-10-07 11:55:40 +00:00
Elyes Haouas
c2fcf69e41 arch/x86: Use boolean for flag_is_changeable_p()
Change-Id: I7a2edd86ed509a5de7e3529fdc2ea68fe9c268e0
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89401
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-07 11:20:26 +00:00
Maxim Polyakov
2a791fcd66 mb/imb-1222/hda: Use AZALIA_PIN_CFG_NC() for disabled SPDIF_OUT2 pin
Change-Id: Id745f53c77228fdb3a31f8618211a7d5c7ee911d
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89390
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-10-06 14:59:10 +00:00
Yu-Ping Wu
217a7962d0 ec/google/chromeec: Update EC headers
Generated using update_ec_headers.sh from EC repo commit:

  8be982a31008 (cbi: Add Unified Firmware and Second-source Config (UFSC))

BUG=b:448300592
TEST=emerge-skywalker coreboot
BRANCH=none

Change-Id: I212489c2fd732478b12deb3c47521a050bd379f6
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89403
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-06 14:59:00 +00:00
Walter Sonius
59cbb073c2 util/chromeos/crosfirmware.sh: Fix download of ninja (baytrail) recovery
Because the name NINJA has 2 occurrences inside remote recovery.conf:
https://dl.google.com/dl/edgedl/chromeos/recovery/recovery.conf

Running 'crosfirmware.sh ninja' will list both NINJA and VORTININJA
"file= & url=" with a total of 4 lines instead of 2. Since the script
by default uses the last 2 lines it will prefer VORTININJA and download
the Octopus MEEP recovery image instead while NINJA was requested.

By adjusting 'grep' its matching control by adding '-w' restores the
correct behaviour of only showing 2 lines for the requested image.
Both NINJA, VORTININJA and a third recovery image TIDUS still download
and extract correctly when applying this fix.

TEST=crosfirmware.sh ninja #downloads and extract correct image

Change-Id: I9b55c5a2626339e70f0ada9b80c9488a5580d371
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89168
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-06 14:58:51 +00:00
Swathi Tamilselvan
fba92daed3 soc/qualcomm/x1p42100: Clean up DDR and IMEM memory layout
Align DDR and IMEM address definitions with memory layout
specifications. Modify CBMEM top address accordingly.

Changes include:
  - Declaring new memory regions in symbols_common.h.
  - Defining base addresses and sizes for these regions in memlayout.ld.
  - Marking these regions as reserved in soc_read_resources() to
  prevent overwrites by coreboot.
  - Modifying CBMEM top address.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I77c95198d6e42635ab7ecaac41fbd29133cb0fa0
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89348
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-06 08:04:58 +00:00
Wentao Qin
5609174786 mb/google/rauru: Create variant Sapphire
Create the variant Sapphire.

BUG=b:446522353
TEST=emerge-tanjiro coreboot chromeos-bootimage
BRANCH=None

Change-Id: I722292f505a67fa072b5e24f7dd470944201a8b8
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89355
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-04 04:09:40 +00:00
Jason Chen
386feb720e soc/mediatek/mt8196: Add DVFS support for the second SoC SKU
Devices utilizing the second SKU of the SoC experience system hangs due
to missing DVFS support. This patch adds DVFS support for the second
SKU to resolve this issue.

BRANCH=rauru
BUG=b:443664123
TEST=verify booting on both original and second SoC SKUs

Change-Id: If17ecd4a8358e08a45c4662bb92138b7a939512e
Signed-off-by: Jason Chen <jason-ch.chen@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89405
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: jason-ch chen <Jason-ch.Chen@mediatek.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-04 02:47:43 +00:00
Nicholas Sudsgaard
4b93b36170 mb/purism: add missing terminators to azalia codec tables
This was supposed to be checked in the regression test script
(CB:88763), however it turns out Valgrind's Memcheck only works on the
heap memory and is unable to catch such errors.

The regression test script was modified to use AddressSanitizer which
can catch such errors, so this should not be a problem in subsequent
changes during the verb table rework.

To be safe, the previously merged commits were also checked with the new
regression test script:

  f634121fa4 ("mb/purism: Replace verb tables with reworked implementation")
  20d4042458 ("mb/asrock: Replace verb tables with reworked implementation")
  2b7dbf80c9 ("mb/apple: Replace verb tables with reworked implementation")
  970249694f ("mb/amd: Replace verb tables with reworked implementation")
  94beaa7ab3 ("mb/acer: Replace verb tables with reworked implementation")
  f3db3a19d5 ("mb/51nb: Replace verb tables with reworked implementation")

However, the following mini-HD code was checked manually, as figuring
out how to strip out minihd_init() was not worth the effort:

  bc92d9a666 ("nb/intel/haswell/minihd.c: Add reworked verb table implementation")
  69781b9806 ("soc/intel/broadwell/minihd.c: Add reworked verb table implementation")

Change-Id: Iea964fb8b92814b57d4c82412c47cf31fa48de66
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89376
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-03 14:52:03 +00:00
Nicholas Sudsgaard
a927d124be mb/asus: Replace verb tables with reworked implementation
Some boards did not provide the chip name for the audio codecs in the
comments, and were therefore identified using external sources:

  h61m-a_usb3:
    - 0x10ec0887 -> Realtek ALC887[1][5]
  h61m-cs:
    - 0x10ec0887 -> Realtek ALC887[1][6]
  p8h61-m_pro:
    - 0x10ec0887 -> Realtek ALC887-VD[3]
  p8h67-i_deluxe:
    - 0x10ec0892 -> Realtek ALC892[3][7]
  p5gc-mx:
    - 0x10ec0892 -> Realtek ALC662[2]
  p5qc:
    - 0x10ec0888 -> Realtek ALC1200[2]
  p5ql-em:
    - 0x10ec0888 -> Realtek ALC1200[8]
  p8z77-m:
    - 0x10ec0887 -> Realtek ALC887[1][9]
  p8z77-v:
    - 0x10ec0892 -> Realtek ALC892[3][10]
  p8z77-v_le_plus:
    - 0x10ec0889 -> Realtek ALC889[4][11]

The Kconfigs were reverted using the following command:
  find src/mainboard/asus -name 'Kconfig' | xargs git checkout main

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see commit 31fc5b06a6
("device: Introduce reworked azalia verb table").

References:
[1]  Linux kernel: sound/hda/codecs/realtek/alc882.c:839
[2]  coreboot board status: kernel_log.txt
[3]  Linux kernel: sound/hda/codecs/realtek/alc662.c:1101
[4]  Linux kernel: sound/hda/codecs/realtek/alc882.c:842
[5]  H61M-A/USB3 User's Manual (English), Version E8184
[6]  H61M-CS User's Manual (English), Version E9069
[7]  P8H67-I Deluxe User's Manual (English), Version E6964
[8]  P5QL-EM user’s manual(English), Version E4165
[9]  P8Z77-M User's Manual (English), Version E7075
[10] P8Z77-V User's Manual (English), Version E7074
[11] P8Z77-V LE PLUS User's Manual (English), Version E8001

TEST= All boards passed regression test (CB:88763)

Change-Id: Id2d4895bb40885f83d602b3a80805a84e348771b
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88662
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-10-03 14:51:18 +00:00
Kilian Krause
9c0c925fe6 mb/siemens/mc_rpl1: Send POST codes to NC FPGA via PCI
This board uses PCI to send POST codes to the NC FPGA. Enable the
feature of sending the POST codes to the NC FPGA via PCI so that the
POST codes are visible in coreboot.

TEST=Built and booted on mc_rpl1. Check that the POST Codes are
correctly displayed on the 7-segment display.

Change-Id: I95a1ac7121560b812aea36485c37f39e13de535a
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89394
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-03 14:51:02 +00:00
Kilian Krause
10361583b3 mb/siemens/mc_rpl: Add code to wait for legacy devices before PCI scan
All mc_rpl boards have, like the mc_apl and mc_ehl variants, legacy
PCI devices which take longer to boot. To ensure their correct
enumeration, a delay is added before the PCI scan starts. The delay
value is provided by hwinfo.

TEST=Built and booted on mc_rpl board. Verified legacy PCI devices
enumerate correctly after delay implementation. Log excerpt while
testing function:

```
[INFO ]  tlcl2_extend: response is 0x0
[DEBUG]  TPM: Digest of `CBFS: hwinfo.hex` to PCR 3 measured
[NOTE ]  Wait remaining 6595702 of 10000000 us for legacy devices...done!
[DEBUG]  BS: BS_DEV_ENUMERATE entry times (exec / console): 6597 / 64 ms
[INFO ]  Enumerating buses...
```

Change-Id: I97885a7cf060bc69c7fef75a9fa917bc8a176582
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89393
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2025-10-03 14:50:35 +00:00
Kilian Krause
d9979ba6a3 mb/siemens/mc_rpl: Sort includes alphabetically
Sort the #include statements alphabetically in multiple files to
improve code organization.

Change-Id: Ib9ed356a2ea84e54a43904a53c15c0ff10bc96b7
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89392
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-10-03 14:49:51 +00:00
Elyes Haouas
d9b609b139 nb/intel/haswell: Use boolean for cbmem_was_initted
Change-Id: I4a311ce924200d85a97806bb3c826a374e68d81c
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89399
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-02 23:29:16 +00:00
Julius Werner
1f2408f573 console: Fix flushing for slow consoles
Commit 266041f0e6 ("console: Add compile-time fast path when only
CBMEM console is used") introduced a typo when refactoring CBMEM console
fast path code that effectively causes consoles to never get flushed.
The fact that nobody complained in 3 years shows that the flush callback
is probably not that important for most consoles in practice. Still,
it's a pretty bad bug and should be fixed.

Change-Id: Ib9b96cb744447ccba99c4186540442b542914e01
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89397
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-02 22:44:46 +00:00
Martin Roth
6a016a784b Documentation: Finalize 25.09 release notes
This updates the statistics for actual release tag.

Change-Id: I84116caa35be2df28372dd4293ad73eb13ec9dd4
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89387
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-10-02 16:45:33 +00:00
Maxim Polyakov
a0c5669c1b mb/asrock/imb-1222: Use macros for HDA verb table
Macros are generated using the hda-decoder utility.
TEST: update coreboot in ROM with this patch -> boot Ubuntu 24.04 again
      -> the hda-decoder output before and after the update are the same
      and the audio works.

Change-Id: I33d693a483c43a31d6dbb75a97b3ca5f5149fd69
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89371
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-10-02 16:45:28 +00:00
Ivy Jian
c94ca87d40 mb/google/fatcat/var/kinmen: Enable Intel DPTF support
Add initial thermal settings
- Remove fan control (handled by EC)
- Apply PL1/PL2 min & max values per thermal design

TEST=emerge-fatcat coreboot

Change-Id: I92b6f3a7aaab9fdf903215d09c941a13d591e413
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89391
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-02 13:54:46 +00:00
Nicholas Chin
fe5f8494f6 docs/releases: Remove outdated "Upcoming release" in titles
coreboot 24.12, 24.08, and 4.21 have already been released, so the
"Upcoming release" text in their titles is outdated and unnecessary.

Change-Id: I19cb5585c838c64366e057ceeaf0a18e01372bfe
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89398
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-10-02 12:31:30 +00:00
Nick Vaccaro
aef86a7e89 mb/google/ocelot/var/ocelot: disable HDA GPIOs by default
Configure GPP_F10, GPP_F11, GPP_F12, GPP_F13, GPP_F16, and GPP_F17
as no-connects by default.  These GPIOs will be enabled in
fw_config.c if they are needed.

BUG=b:447648103
TEST='emerge-ocelot coreboot chromeos-bootimage`, flash and boot ocelot
and verify the AUDIO_ALC721_SNDW still works.

Change-Id: I7c07581e2b29bfc3e83314a065fba7d418e07c2a
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89359
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-10-02 03:53:01 +00:00
Jeremy Compostella
21f6ccf3a4 soc/intel/pantherlake: Use CPU ID mask for all stepping
This commit refactors the handling of CPU IDs for the Pantherlake and
Wildcat Lake series by using a single CPU ID mask instead of listing
each individual stepping. This change simplifies the code by reducing
redundancy and making it easier to manage CPU IDs.

Previously, each stepping of the Pantherlake series had its own entry,
which led to unnecessary complexity. By consolidating these into a
single entry with a mask, we improve maintainability and reduce
potential errors.

These modifications do not affect the existing functionality but
streamline the codebase for future updates and maintenance.

TEST=CPU ID c06c1 is properly identified as "Pantherlake".

Change-Id: Ie52ed860c096a3d157ae6580aeedf3acb8c723ab
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89375
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-01 21:08:08 +00:00
Kun Liu
8bc41fc937 mb/google/trulo/var/pujjocento: Update DTT settings for thermal control
The DPTF parameters were defined by the thermal team.
Based on thermal table in b:448253910 comment#1

BUG=b:448253910
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I91ad12bdb58432b3c2b867278ec5b396553ac2b9
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89380
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-01 13:25:20 +00:00
Maxim Polyakov
d5f1ecedf7 {device/azalia_codec,mainboard}: Use node ID enums for Realtek ALC887
Add enums for the output pin widget node IDs for Realtek ALC887 [1] and
use these enums in the motherboard configuration.

[1] Figure 1, Block Diagram, ALC887-GR Datasheet, Rev. 1.0, 24 July 2008

Change-Id: Iaa2ebd7447a19dfc98b006c851f1605851c1ea5d
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89364
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-10-01 13:25:14 +00:00
Luca Lai
02059c2250 mb/google/trulo/var/pujjoquince: Disable ISH gpio setting by fw_config
Because we use dummy ish in pujjoquince, so disable ish related gpio
when fw_config TABLET_MODE=TABLET_MODE_DISABLE

BUG=b:432649211
TEST=Build and boot to OS, check pujjoquince ish related gpio are closed.

Change-Id: Iab43f6d4ce3a6d31358ac0b902535ee3f5dad1e3
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89378
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-10-01 12:04:33 +00:00
Derek Huang
58459b8210 mb/var/uldrenite,orisa: Include the variant GPIO header
In 76e0f64035, it overrides
GPIO_PCH_WP in variant/gpio.h, however gpio.c includes
baseboard/gpio.h instead of variant/gpio.h. The wrong GPIO header
causes the test firmware.WriteProtectCrossystem to fail with the
wrong GPIO_PCH_WP pin number. Corrects the header file included in
gpio.c to fix the issue.

BUG=b:448313028
TEST=Pass firmware.WriteProtectCrossystem

Change-Id: I94b2384d03f8ce83f662a2b9dba4039f3d551b07
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89389
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-01 10:51:28 +00:00
Yu-Ping Wu
88ad238eca mb/google/skywalker: Fix incorrect GPIO_USB3_HUB_RST_L pull-down
commit 1e7908fa9f ("mb/google/skywalker: Set up all output GPIOs") set
up all output GPIOs to the desired initial value. However, as the
GPIO_USB3_HUB_RST_L pin is already pulled high in usb3_hub_reset() right
before the setup_chromeos_gpios() call, we should not pull it low again.
Otherwise all the USB3 hubs would stop working.

Fix the issue by moving the configuration from usb3_hub_reset() to
setup_chromeos_gpios(), where GPIO_USB3_HUB_RST_L is pull high to reset
USB3 hub.

BUG=none
TEST=emerge-skywalker coreboot
TEST=USB3 hub working properly during bootup
BRANCH=skywalker

Change-Id: Id53ddb033166f7fdcf6b5fc50b538ee29d5d85bb
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89388
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-10-01 08:47:18 +00:00
Hualin Wei
b8a8800152 mb/google/fatcat/var/lapis: Configure gpio of fingerprint sensor
Configure PWR_EN and RST GPIO of fingerprint sensor.

BUG=b:438785495
TEST='emerge-fatcat coreboot' and boot into os,
fingerprint function is ok.

Change-Id: If896fa5c0600c4bef9ea2c67a30205bcf2689bd1
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89305
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-30 23:53:52 +00:00
Maximilian Brune
4431848ee6 acpi: Move most of HEST ACPI table to common code
This moves most of the vendor and architecture independent code into
common ACPI code.

Change-Id: I7dca939612a5f3d8d6a148fa67bf0ce891952584
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88034
Reviewed-by: Anand Vaikar <a.vaikar2021@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-30 23:52:09 +00:00
Cliff Huang
ce1ced7f6a mb/intel/ptlrvp: Fix WIFI driver device settings under root port 4
The commit addresses an issue with discrete WIFI driver configuration
under root port 4 in the Intel PtlRvp mainboard. The problem involved
incorrect probe settings that allowed the WIFI driver device to remain
enabled even when its upstream device was disabled. This led to orphan
devices being misidentified as root devices within the Intel Power
Engine (PEP) structure, which in turn caused unnecessary MCHC devices
to be added under the root port.

The fix involves ensuring that the probe settings for the devices
managed by the driver are consistent with their upstream device
settings. Additionally, the RTD3 driver device type is now set to
generic, ensuring that only one PCI device exists under the root port.
This prevents the binding of device operations (ops) for the RTD3 driver
from interfering with the WIFI generic driver during the scan process.

The commit also resolves warnings related to leftover static devices and
prompts to check the devicetree.cb. The fix ensures that the probe
settings for WIFI_PCIE_6 and WIFI_PCIE_7 are properly configured,
preventing device misidentification and ensuring correct functionality.

BUG=none
TEST=Boot to OS and verify the DSDT tables. Ensure the _DSM function of
the PEPD Device returns only one MCHE in a package, specifically
\_SB.PCI0.MCHC. Check kernel boot messages for absence of errors like
AE_NOT_FOUND related to named reference package elements such as
\_SB_.PCI0.RP04.MCHC.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I0a38cfc9bd38393cbf44f0e560c9525526d6bbf2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89374
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-30 23:51:53 +00:00
Cliff Huang
691a23a272 mb/google/fatcat: Fix WIFI driver device settings under root port 4
The commit addresses an issue with discrete WIFI driver configuration
under root port 4 in the Google Fatcat mainboard. The problem involved
incorrect probe settings that allowed the WIFI driver device to remain
enabled even when its upstream device was disabled. This led to orphan
devices being misidentified as root devices within the Intel Power
Engine (PEP) structure, which in turn caused unnecessary MCHC devices
to be added under the root port.

The fix involves ensuring that the probe settings for the devices
managed by the driver are consistent with their upstream device
settings. Additionally, the RTD3 driver device type is now set to
generic, ensuring that only one PCI device exists under the root port.
This prevents the binding of device operations (ops) for the RTD3 driver
from interfering with the WIFI generic driver during the scan process.

The commit also resolves warnings related to leftover static devices and
prompts to check the devicetree.cb. The fix ensures that the probe
settings for WIFI_PCIE_6 and WIFI_PCIE_7 are properly configured,
preventing device misidentification and ensuring correct functionality.

BUG=none
TEST=Boot to OS and verify the DSDT tables. Ensure the _DSM function of
the PEPD Device returns only one MCHE in a package, specifically
\_SB.PCI0.MCHC. Check kernel boot messages for absence of errors like
AE_NOT_FOUND related to named reference package elements such as
\_SB_.PCI0.RP04.MCHC.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I40be48c056355d9e2a38b604849eb16565b8699d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89373
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-30 23:51:48 +00:00
Elyes Haouas
16bf80b9b1 tests/imd: Fix invalid NULL comparison on uintptr_t
Use 0 instead of NULL when testing or initializing uintptr_t
fields, since NULL is only defined for pointers.

"data.3.lzma.bin" file is regenerated using:
  util/cbfs-compression-tool compress file.bin /tmp/file.lzma.bin lzma
  dd if=/tmp/file.lzma.bin of=file.lzma.bin skip=8 ibs=1

Change-Id: Ia1e7cc5052e842c7ef97ec7cec34919bbe1e2228
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89356
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-09-30 11:55:53 +00:00
Nicholas Sudsgaard
6d816b3b43 mb/asus/h610i-plus-d4: Add missing AZALIA_USE_LEGACY_VERB_TABLE
When commit 50a59d4464 ("device: Add Kconfig to prepare for reworked
verb table implementation") was created this mainboard was not in the
main branch and therefore was not accounted for. However, since it got
merged right before the commit mentioned above was merged, there was no
time to add it.

Add this Kconfig to fix the build system from failing.

Change-Id: If7382125122b4d54332f52d922d8af84ba51763c
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89368
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-29 07:50:51 +00:00
Paul Menzel
6f042c6ae4 lib: coreboot_tables: Fix grammar of *These information* in comment
*information* does not have plural, so use *This* instead of *These*.

Change-Id: I966373371cac4edd681f3b503e5f3a637fc28913
Fixes: a45c8441af ("lib: Add boot mode information to coreboot tables")
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89227
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 19:13:52 +00:00
Riku Viitanen
bcc7fce590 mb/topton/adl: Add TWL variant (X2E_N150)
Seems to be the same board but with a Twin Lake processor.
VBT extracted from vendor firmware. This makes HDMI and
DisplayPort work.

Change-Id: I1018042802cbb8010888847226a2117fd9dfaeb0
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89281
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 18:22:00 +00:00
Nicholas Sudsgaard
f634121fa4 mb/purism: Replace verb tables with reworked implementation
No modifications/assumptions about the codecs were made on these boards.

The Kconfigs were reverted using the following command:
  find src/mainboard/purism -name 'Kconfig' | xargs git checkout main

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

TEST= All boards passed regression test (CB:88763)

Change-Id: I2ee7a93392a57e8194cc8116c3fc55116336234f
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88686
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 18:20:47 +00:00
Nicholas Sudsgaard
20d4042458 mb/asrock: Replace verb tables with reworked implementation
Some boards did not provide the chip name for the audio codecs in the
comments, and therefore we made the following assumptions based off the
vendor ID:

  fatal1ty_z87_professional:
    - 0x11020011 -> Creative CA0132[3]

It should be noted that some factors (e.g. revision) can cause the chip
name to differ even with the same vendor ID. This is especially common
for Realtek audio codecs.

The following chip names were identified using external sources:

  b75m-itx:
    - 0x10ec0892 -> Realtek ALC892[1][5]
  b75pro3-m:
    - 0x10ec0892 -> Realtek ALC892[2]
  z87_extreme3:
    - 0x10ec0892 -> Realtek ALC892[1][6]
  z87_extreme4:
    - 0x10ec0900 -> Realtek ALC1150[4][7]
  z87_pro4:
    - 0x10ec0892 -> Realtek ALC892[1][8]
  z87e-itx:
    - 0x10ec0900 -> Realtek ALC1150[4][9]
  z87m_extreme4:
    - 0x10ec0900 -> Realtek ALC1150[4][10]
  z87m_oc_formula:
    - 0x10ec0900 -> Realtek ALC1150[4][11]

The Kconfigs were reverted using the following command:
  find src/mainboard/asrock -name 'Kconfig' | xargs git checkout main

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

References:
[1]  Linux kernel: sound/hda/codecs/realtek/alc662.c:1101
[2]  coreboot board status: kernel_log.txt
[3]  Linux kernel: sound/hda/codecs/ca0132.c:10144
[4]  Linux kernel: sound/hda/codecs/realtek/alc882.c:844
[5]  https://www.asrock.com/mb/Intel/B75M-ITX/index.asp
[6]  https://www.asrock.com/mb/intel/Z87%20Extreme3/
[7]  https://www.asrock.com/mb/intel/Z87%20Extreme4/
[8]  https://www.asrock.com/mb/Intel/Z87%20Pro4/
[9]  https://www.asrock.com/mb/Intel/Z87E-ITX/
[10] https://www.asrock.com/mb/Intel/Z87M%20Extreme4/index.asp
[11] https://www.asrock.com/mb/intel/z87m%20oc%20formula/

TEST= All boards passed regression test (CB:88763)

Change-Id: I60ba4e8e048dfbf8ca5969251fd448ce3644d9e0
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88661
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-09-28 18:19:38 +00:00
Nicholas Sudsgaard
2b7dbf80c9 mb/apple: Replace verb tables with reworked implementation
Some boards did not provide the chip name for the audio codecs in the
comments, and therefore we made the following assumptions based off the
vendor ID:

  macbookair4_2:
    - 0x10134206 -> Cirrus Logic CS4206[1]

It should be noted that some factors (e.g. revision) can cause the chip
name to differ even with the same vendor ID. This is especially common
for Realtek audio codecs.

The Kconfigs were reverted using the following command:
  find src/mainboard/apple -name 'Kconfig' | xargs git checkout main

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

References:
[1] Linux kernel: sound/hda/codecs/cirrus/cs420x.c:770

TEST= All boards passed regression test (CB:88763)

Change-Id: I1fcfa0e5e1af27dc5b0dc77bf471a7636b361cbe
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88660
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-28 18:19:31 +00:00
Nicholas Sudsgaard
970249694f mb/amd: Replace verb tables with reworked implementation
No modifications/assumptions about the codecs were made on these boards.

The Kconfigs were reverted using the following command:
  find src/mainboard/amd -name 'Kconfig' | xargs git checkout main

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

TEST= All boards passed regression test (CB:88763)

Change-Id: Ie8dcff7caa24ec9f671159ea39a46989a98a6fbc
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88659
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-28 18:19:26 +00:00
Nicholas Sudsgaard
94beaa7ab3 mb/acer: Replace verb tables with reworked implementation
Some boards did not provide the chip name for the audio codecs in the
comments, and were therefore identified using external sources:

  g43t-am3:
    - 0x10ec0888 -> Realtek ALC888[1]

The Kconfigs were reverted using the following command:
  find src/mainboard/acer -name 'Kconfig' | xargs git checkout main

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

References:
[1] coreboot board status: kernel_log.txt

TEST= All boards passed regression test (CB:88763)

Change-Id: I36cccc7033b3df523ff1c0d1891ef194090fe50e
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88658
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-28 18:19:21 +00:00
Nicholas Sudsgaard
f3db3a19d5 mb/51nb: Replace verb tables with reworked implementation
No modifications/assumptions about the codecs were made on these boards.

The Kconfigs were reverted using the following command:
  find src/mainboard/51nb -name 'Kconfig' | xargs git checkout main

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

TEST= All boards passed regression test (CB:88763)

Change-Id: Ib77a7d097b0ae68d250ebe0cb269249a587efcb3
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88657
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 18:19:16 +00:00
Nicholas Sudsgaard
bc92d9a666 nb/intel/haswell/minihd.c: Add reworked verb table implementation
This rework is done gradually, and that means different mainboards will
use different implementations of the verb table. As this code is used by
multiple mainboards we need to keep both implementations and select
whichever implementation matches the one being used by the mainboard
currently being built.

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

TEST=
  1. Timeless build with AZALIA_USE_LEGACY_VERB_TABLE=y produces
     identical binaries (tested with google/slippy_falcon)
  2. Passed regression test (CB:88763)

Change-Id: I3bf8140a4ceb6edad71d57ab82e0a96f51159985
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88739
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-28 18:18:57 +00:00
Nicholas Sudsgaard
69781b9806 soc/intel/broadwell/minihd.c: Add reworked verb table implementation
This rework is done gradually, and that means different mainboards will
use different implementations of the verb table. As this code is used by
multiple mainboards we need to keep both implementations and select
whichever implementation matches the one being used by the mainboard
currently being built.

It should be noted that we do not modifiy the verb tables in any case,
as it would break the regression test script mentioned in the TEST
section below.

For an overall rationale for this rework, see CB:88656.

TEST=
  1. Timeless build with AZALIA_USE_LEGACY_VERB_TABLE=y produces
     identical binaries (tested with google/auron_paine)
  2. Passed regression test (CB:88763)

Change-Id: I9ba3259defae66678c4490891b869b96b6c6ade3
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88738
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-28 18:18:42 +00:00
Nicholas Sudsgaard
31fc5b06a6 device: Introduce reworked azalia verb table
The current implementation of the HDA verb table has been shown to have
some problems. The primary issue is that it requires the programmer to
keep track of the amount of verbs that are going to be loaded. While
this may sound simple, in practice there have been numerous cases where
this "count field" has been forgotten to be updated or miscounted. In
the case where the "count field" is incorrect, coreboot will start
looking for codecs in some random memory location, essentially making
loading further codecs impossible.

Another issue is the "count field" treats 4 32-bit values as a single
group, therefore the amount of verbs in the table must be a multiple
of 4. This makes intuitive sense when only using the AZALIA_PIN_CFG() or
AZALIA_SUBVENDOR() macros. However, once the verb table requires
"controls" that use < 4 verbs (e.g. "Coefficient Index"), we need to add
padding values to ensure the alignment is correct. This adds unnecessary
verbs to the table which can further lead to unnecessary processing.

Therefore, in this change we proprose a solution by separating the codec
entries in the verb table into structures, which allows us to separate
the verbs into an array and automatically calculate the "count field"
using the ARRAY_SIZE() macro. It also makes iteration and access to
member fields easier. We also now count the verbs and not 4 32-bit
groups, eliminating the aforementioned alignment issue.

Additionally, this change also changes the way coreboot searches for
entries in the verb table. Before, we searched the table for only a
matching vendor ID, but now we search for a matching vendor ID and
codec address pair. This allows a mainboard to be able to correctly load
multiple audio codecs that use the same chips.

To make reviewing this large rework easier, we temporarily keep both
implementations (legacy and reworked) and allow boards to choose which
implementation to use by selecting a Kconfig. Newer boards are
discouraged from using the legacy implementation, as it is not selected
by default. This allows us to slowly change the codebase instead of
changing everything at once.

TEST=
  1. Timeless build with AZALIA_USE_LEGACY_VERB_TABLE=y produces
     identical binaries (with INCLUDE_CONFIG_FILE=n)
  2. HP ProBook 450 G3 using reworked verb table was able to load all
     verbs successfully.

Change-Id: Ib16237de89956405afa3be5b4e3f64a4d62e6a48
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88656
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 18:18:14 +00:00
Nicholas Sudsgaard
50a59d4464 device: Add Kconfig to prepare for reworked verb table implementation
Add a new Kconfig which tells the mainboard is using the "legacy" verb
table implementation. This is only needed during the transition towards
the reworked implementation, and will be removed once completed.

The Kconfigs were added manually and not with a script.

Change-Id: I3806cc8df4e244ee6542ad6796ccd9e36de557e5
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89174
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-09-28 18:18:03 +00:00
Kapil Porwal
a3e2073591 lib/vga_gfx: Add API to render text on a bitmap buffer
This commit introduces a new library, `vga_gfx`, to handle text
rendering on a VGA planar buffer. The new functionality supports
displaying text with various screen orientations (Normal, Left Up,
Bottom Up, and Right Up).

The key features are:
- A new public API, `render_text_to_bitmap_buffer()`, that takes a
  text string, screen orientation, and buffer as input.
- Automatic text wrapping to fit the screen's effective width,
  considering the specified orientation.
- The `vga_gfx.c` library is conditionally compiled for both
  `romstage` and `ramstage` based on `CONFIG_VGA` and
  `CONFIG_ROMSTAGE_VGA` respectively.
- Text is rendered as a 1-bit-per-pixel bitmap and then cropped
  to its bounding box to optimize the output size.
- The `bootsplash.h` header file is updated with the new API
  prototype and related constants.

This implementation allows for flexible text display, which is
crucial for showing user notifications on devices that may
operate in a rotated display mode.

BUG=b:406725440
TEST=Verify VGA text rotation on Google/Felino.

Change-Id: I80fcf0a3f106a44f8e4ecdeec38f54ff09f86e6f
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89089
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-28 18:17:51 +00:00
Varun Upadhyay
ec2875e38f mb/google/ocelot/var/ojal: Enable FPS and update FW config
This patch enables fingerprint sensor in devicetree for ojal and updates FW config for GPIO's config according to schematics revision 0.9.
RDC kit no:840138

BUG=b:437459757
TEST=Build ojal board and check dmesg for FPS detection.

Change-Id: I44a24423f4d5b1fc85a5b3bb51f2d6646c82f9dc
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89324
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 18:17:36 +00:00
Varun Upadhyay
beb0951c1c mb/google/ocelot/var/ojal: Update touchpad config
This patch enables ELAN touchpad in devicetree on I2C0 interface and updates FW config for GPIO's according to schematics revision 0.9.
Intel RDC kit no:840138

BUG=b:437459757
TEST=Build ojal board and test trackpad functionality

Change-Id: Idf84165877e98df31f71c8df916637a455ce84dc
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89323
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-28 18:17:30 +00:00
Varun Upadhyay
bd933b641e mb/google/ocelot/var/ojal: Add overridetree
BUG=b:437459757
TEST=Build ojal board

Change-Id: I24086c6986bf4ba3a1ca4a208b7ce1091b392a07
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89189
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 18:17:23 +00:00
Varun Upadhyay
82a9e601bd mb/google/ocelot/var/ojal: Add initial GPIOs config
Configure GPIOs according to schematics revision 0.9.
RDC kit no:840138

BUG=b:437459757
TEST=Build ojal board

Change-Id: I95c2f84c19b00847ce7fb11d62477b4920ad90ec
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89126
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Usha P <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-28 18:17:18 +00:00
Ziang Wang
622c504a71 mb/emulation/qemu-riscv: Select DRIVERS_EMULATION_QEMU_FW_CFG
This patch also provides valid 'io_port_mmio_base', which is the addr of
VIRT_FW_CFG device @0x1010_0000 used to convey ACPI & SMBIOS info.

TEST=build and run successfully on QEMU rvvirt machine.

Change-Id: I3cfd3020f1edacbc647188ab232c0a35dbd71f74
Signed-off-by: Ziang Wang <wangziang.ok@bytedance.com>
Signed-off-by: Dong Wei <weidong.wd@bytedance.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89344
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-09-28 18:17:05 +00:00
Ziang Wang
ba3f529681 drivers/emulation/qemu: Adjust fw_cfg driver for Arm and RISCV
According to QEMU docs/specs/fw_cfg.rst, the selector and data register
offsets of Arm & RISCV should be 0x8 and 0x0. Besides, the selector
register should be in big-endian when using MMIO access.

TEST=build and run successfully on QEMU rvvirt machine. Using command
"qemu-system-riscv64 -machine virt -bios build/coreboot.rom -nographic
-drive if=pflash,file=./build/coreboot.rom,format=raw".

Change-Id: I1c4d40a4dbcac4067a7c69ba916e6ff0a21cdcb6
Signed-off-by: Dong Wei <weidong.wd@bytedance.com>
Signed-off-by: Ziang Wang <wangziang.ok@bytedance.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89339
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-09-28 18:16:57 +00:00
Ziang Wang
c1e0384367 arch/riscv/include: Cast 'id' to int in OTHER_HLS()
The 'id' in OTHER_HSL macro is non-typed, downflow would occur when
‘id’ is unsigned and less greater than hart_id. Cast it to int.

Change-Id: I777337b7e374024aff6fb36de603b799b1a65371
Signed-off-by: Ziang Wang <wangziang.ok@bytedance.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89338
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-09-28 18:16:52 +00:00
Dodoid
67a3fb6abe mb/asus: Add PRIME H610i-PLUS D4 (Alderlake/LGA1700)
This port adds support for the ASUS PRIME H610i-PLUS D4, a Mini-ITX
LGA1700 motherboard with the H610 chipset. I have been using this
port on one of these boards as my primary workstation for around
the last month, and it generally works well apart from a lack of S3
sleep. I have not yet managed to figure out the issue with that,
and have been using suspend-to-disk instead.

This board is highly similar to the H610M-K ported by Mate Kukri in
#84243, and I have included the NCT6798D fan control setup from
that patchset with minimal modification.

Working:
- Console over onboard serial port
- PS/2 keyboard
- Port 80 POST codes over ASUS debug header
- All USB ports, including USB3 working, except front USB2
- All outputs (DP, HDMI, VGA) for iGPU
- M.2 slot
- PCIe WiFi card in WiFi slot
- Onboard Ethernet
- PCIe ASPM and clock power management for all devices
- x16 PCIe slot
- All SATA ports
- Hard drive indicator LED
- All audio including front panel
- Fan control
- ME disable with HAP bit in IFD
- HSPHY-in-FMAP when ME is disabled

Untested:
- CNVi WiFi card in WiFi slot
- Front USB2 ports (did not have an adapter on hand to test)
- Status LEDs in actual error states (they do show a normal status
normally)

Not working:
- S3 sleep

Change-Id: Ib2dd2916be06dc515863df85ecb06ec043a9bc6e
Signed-off-by: Dodoid <git-noreply@dodoid.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89167
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-28 18:16:34 +00:00
Yu-Ping Wu
4f13f72dbc libpayload: Define UCHAR_MAX/CHAR_MIN/CHAR_MAX
Change-Id: Id26ef9aaad676d4369864e37afa514fc7f103432
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89358
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-09-27 12:09:01 +00:00
Jeremy Compostella
7f8c442a09 soc/intel/meteorlake: Correct function naming
Renames fill_fsps_acoustic_params to fill_fspm_acoustic_params to align
with the naming conventions used for other FSP-M configuration
functions.

Change-Id: I0044c21a8f82dfa2308fade78adbd8bcf844cb63
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89351
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-26 19:58:10 +00:00
NyeonWoo Kim
6d265ca31d device/pci_device: Fix typo in comments
I found a typo in the comments, so I fixed it.
It seems that 'this operations' is a typographical error.

Change-Id: Ic272e122ce180dee8c0516ecea27cd10932c2363
Signed-off-by: NyeonWoo Kim <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89282
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-26 19:04:54 +00:00
Sergii Dmytruk
d4b6b55977 payloads/Kconfig: default to Skiboot payload on PPC64
PPC64 is not functional without [OPAL] with which Linux kernel
communicates to implement important functionality like a TPM driver.
In addition to providing runtime services via OPAL Skiboot also handles
some parts of the boot process (like extracting kernel from flash) and
adjusts device tree as needed.

coreboot does not currently implement OPAL and is not likely to do it
any time soon (if ever), so must use Skiboot as a second-stage firmware
to have a fully functional PPC64 device.

mb/raptor-cs/talos-2/Kconfig is updated because Skiboot doesn't fit into
512 KiB image.

[OPAL]: https://open-power.github.io/skiboot/doc/opal-spec.html

Change-Id: I49ad6094acaccf731ab6d6b45ac103d485a3179c
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/67070
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 19:04:44 +00:00
Tony Huang
cb899b0c4d mb/google/brox/var/caboc: Update HDA verb table
Table is from vendor.
Decrease HWEQ high pass filter from 300Hz to 125Hz.

BUG=b:435345756
TEST=emerge-brox coreboot
     check system audio output is fine

Change-Id: Id8f20af4b37cb84ec1720e7c36082c7f8cf9abb1
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89284
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 19:04:19 +00:00
Bora Guvendik
15b903e1fd soc/intel/pantherlake: Add DDR5 memory type debug message
This commit introduces a debug message to the DDR5 memory type
initialization process within the Panther Lake SoC. By adding this log,
developers can gain better insights when diagnosing issues related to
DDR5 memory configurations.

BUG=none
TEST=Verify the debug message is displayed during DDR5 initialization.

Change-Id: I77ceea0f7a29983dd2e4ad1af26a0383721d7ca0
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89331
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-26 19:04:01 +00:00
Stefan Binding
a5252bd5b9 drivers/soundwire/cs35l56: Support Cirrus Logic CS35L56 Smart Amplifier Family
Add support for Class-D Smart Amplifiers: CS35L56, CS35L57 and CS35L63.

CS35L56 and CS35L57 are 18.5 V Class D Smart Amplifiers with Multi-Cell
Battery Boost.

CS35L63 is a PC Smart Amplifier with Speaker Protection and Audio
Enhancement Algorithms.

The driver was written based on the Datasheets for these parts and
generates the audio SSDT information for the amplifiers. Since all
three parts are part of the same family they all have similar SoundWire
settings.

The user can configure which part, SSID and Speaker ID is generated in
ACPI, as well as define each amplifier's Soundwire Unique ID and Link
ID.

These parts support DisCo Version v2.1, but coreboot currently only
supports DisCo v1.0, so ACPI is only generated based on DisCo v1.0.

These parts also support the SDCA v1.0 Specification (from DisCo v2.1)
is also not currently supported by coreboot, therefore SDCA ACPI
properties are also not generated.

This is currently only tested using QEMU using example configuration:

chip drivers/soundwire/cs35l56
	# SoundWire Link 2 ID 3
	register "desc" = ""Left Speaker Amp""
	register "part_id" = "MIPI_DEV_ID_CIRRUS_CS35L56"
	register "sub" = ""12345678""
	device generic 2.3 on end
end

Which produces the ACPI:

Device (SW23)
{
    Name (_ADR, 0x00023301FA355601)  // _ADR: Address
    Name (_DDN, "Left Speaker Amp")  // _DDN: DOS Device Name
    Name (_SUB, "12345678")  // _SUB: Subsystem ID
    Method (_STA, 0, NotSerialized)  // _STA: Status
    {
        Return (0x0F)
    }

    Name (_DSD, Package (0x04)  // _DSD: Device-Specific Data
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x0F)
        {
            Package (0x02)
            {
                "mipi-sdw-sw-interface-revision",
                0x00010000
            },

            [...]

            Package (0x02)
            {
                "mipi-sdw-source-port-list",
                0x18
            },

            Package (0x02)
            {
                "mipi-sdw-sink-port-list",
                0x06
            }
        },

        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */,
        Package (0x06)
        {
            Package (0x02)
            {
                "mipi-sdw-port-bra-mode-0",
                "BRA0"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-0-subproperties",
                "DP0"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-1-sink-subproperties",
                "SNK1"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-2-sink-subproperties",
                "SNK2"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-3-source-subproperties",
                "SRC3"
            },

            Package (0x02)
            {
                "mipi-sdw-dp-4-source-subproperties",
                "SRC4"
            }
        }
    })
    Name (BRA0, Package (0x02)
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x04)
        {
            Package (0x02)
            {
                "mipi-sdw-bra-mode-min-bus-frequency",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-bra-mode-max-bus-frequency",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-bra-mode-max-data-per-frame",
                0x01D6
            },

            Package (0x02)
            {
                "mipi-sdw-bra-mode-min-us-between-transactions",
                Zero
            }
        }
    })
    Name (DP0, Package (0x04)
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x07)
        {
            Package (0x02)
            {
                "mipi-sdw-port-wordlength-configs",
                Package (0x03)
                {
                    0x08,
                    0x10,
                    0x18
                }
            },

            [...]
        },

        ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b") /* Hierarchical Data Extension */,
        Package (0x01)
        {
            Package (0x02)
            {
                "mipi-sdw-port-bra-mode-0",
                "BRA0"
            }
        }
    })
    Name (SNK1, Package (0x02)
    {
        ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
        Package (0x0C)
        {
            Package (0x02)
            {
                "mipi-sdw-data-port-type",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-max-grouping-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-imp-def-dpn-interrupts-supported",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-modes-supported",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-max-async-buffer",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-block-packing-mode",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-port-encoding-type",
                One
            },

            Package (0x02)
            {
                "mipi-sdw-port-wordlength-configs",
                Package (0x03)
                {
                    0x08,
                    0x10,
                    0x18
                }
            },

            Package (0x02)
            {
                "mipi-sdw-simplified-channelprepare-sm",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-port-channelprepare-timeout",
                Zero
            },

            Package (0x02)
            {
                "mipi-sdw-channel-number-list",
                Package (0x02)
                {
                    Zero,
                    One
                }
            },

            Package (0x02)
            {
                "mipi-sdw-channel-combination-list",
                Package (0x01)
                {
                    0x03
                }
            }
        }
    })
    Name (SNK2, Package (0x02)
    {
        [... same as SNK1 ...]
    })
    Name (SRC3, Package (0x02)
    {
        [... same as SNK1 ...]
    })
    Name (SRC4, Package (0x02)
    {
        [... same as SNK1 ...]
    })
}

Change-Id: Ie04020f008862051f26e0101828b5944d212e706
Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89131
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 19:03:27 +00:00
Keith Hui
7d44128b2f mb/asus/p8z77-m_pro: Enable serial port A instead
Boardview shows the COM port header is connected to serial port A on the
super I/O chip while serial port B pins are unconnected, but it has been
coded for serial port B which cannot be correct.
Change to initialize serial port A instead.

This aligns it with other variants in the family, allowing it
to take advantage of future bootblock code unification.

Change-Id: I8c1a46bef7d9c89f423f8fea9a826b9549d783b4
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89085
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 19:03:05 +00:00
Keith Hui
894c8069fc superio/nuvoton: Add NCT5535D
Found on many Asus P8x7x series mainboards, NCT5535D is a 64-pin LPC
super I/O chip with no publicly available datasheet. However, it appears
to share the same silicon as NCT6779D. With only half the pins of 6779,
it does not have parallel port, serial port B, or GPIOs 1 and 6.

This patch adds header and Kconfig option for 5535, and adapts 6779
code to also supply C code to 5535 as well.

asus/p8z77-v_lx2 still builds once modified for this chip, but is not
tested further.

Change-Id: I3fe0dd6fc3010a50b781ca7c5c39ea73b91978a5
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85834
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 19:02:06 +00:00
Keith Hui
69b0541375 sio/nuvoton/nct6779d: Add power loss resume support
Adds long overdue power loss resume support to nct6779d using
code from nct5572d.

Change-Id: I91bf01a176716b97c6ca6a841c68cd3d4a39d23d
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88701
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 19:01:48 +00:00
Bora Guvendik
f61ffb68c9 soc/intel/pantherlake: Remove unused TxDqDqs retraining parameter
This commit removes the unused `lp_ddr_dq_dqs_re_training` field from
various memory configuration structures across multiple mainboard
variants, including google/fatcat, google/ocelot, and intel/ptlrvp.
This change should reduce complexity and prevent unnecessary memory
operations related to DQ/DQS retraining.

Write DqDqs retraining is enabled in Intel FSP by default. This can be
verified with debug FSP logs by checking WRTRETRAIN and
"MRC task -- Write DQ/DQS Retraining -- Started." prints.

BUG=None
TEST=Boot to OS on google fatcat board and verify DQ/DQS retraining.

Change-Id: Ib298b06260f576bee1f078dc09b1e23a9772b431
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89334
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 18:20:49 +00:00
Jeremy Compostella
3a84c93b5b soc/intel/pantherlake: Correct function naming and code style
Commit f3211e9639 ("soc/intel/pantherlake: Add support for Acoustic
Noise Mitigation UPDs") introduced minor coding convention
violations. These are being addressed as follows:

- Renames fill_fsps_acoustic_params to fill_fspm_acoustic_params to
  align with the naming conventions used for other FSP-M configuration
  functions.
- Removes an unnecessary empty line.
- Aligns function parameters.

Change-Id: I8652c2fee71c8e2742146b5e622633de78c1c17e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89332
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-26 16:06:33 +00:00
Eren Peng
3b34079b19 mb/google/trulo/var/kaladin: Enable External bypass config2 settings
Enable External bypass config2 for kaladin and keep FIVR settings for kelsier, and set vccin_aux_imon_iccmax to PD_TIER_VOLUME based on intel
team suggestion.

BUG=b:445829422
TEST=build and flash to DUT, check suspend_stress_test -c 1 pass

Cq-Depend:chrome-internal:8601618
Change-Id: I79e4f61c4bef9b628756a882c8d8dc0a9cb2238c
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89276
Reviewed-by: Doris <doris.hsu@intel.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-26 12:44:55 +00:00
Youwen Huang
61488ffd57 mb/google/skywalker: Add CS35L51 support for beep sound for Padme
Add the FW_CONFIG configuration for the Padme project of audio amp
and set up I2S for CS35L51.

BUG=b:422688421
TEST=emerge-jedi coreboot chromeos-bootimage
BRANCH=Skywalker

Change-Id: I3486561dcc8695d3d3585c4844654bb7c68a2979
Signed-off-by: Youwen Huang <huangyouwen5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89273
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-26 04:17:19 +00:00
Shunxi Zhang
4a7d779ed0 soc/mediatek/mt8196: Set RTC EOSC calibration to 8 seconds
Set the RTC EOSC (External Oscillator) calibration to 8 seconds in
rtc_boot flow to ensure the accuracy of the RTC time during long period
of suspend. Without this setting, default value is 0, meaning no EOSC
calibration.

BRANCH=rauru
BUG=b:441304060
TEST=emerge-rauru coreboot chromeos-bootimage, when suspend/
warmboot/coldboot, RTC boots and works normally.

Signed-off-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.corp-partner.google.com>
Change-Id: Ia7f15a6056cfa6bd808bc5a91147c1d64aff1223
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89307
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-26 02:24:29 +00:00
Martin Roth
07df08836e Docs/releases: Update release notes for 25.09 release
These are the preliminary release notes. They'll need to be updated
with any changes done this week. We'll need another patch after the tag
to capture the final statistics. The notes will be changed from
"Upcoming release" after the tag is done.

Change-Id: I0b4a1ad351a5772059061837a32d3d8a08c43885
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89283
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 01:09:47 +00:00
Jason Glenesk
8f52c0774e docs/security/vboot: Update supported board list
Generated by util/vboot_list/vboot_list.sh.

Change-Id: I313b9a59b9a009257fa4a0969c91b334feb55b8b
Signed-off-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89354
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-26 00:32:49 +00:00
Jason Glenesk
1f08b36f84 Documentation: Add coreboot release 25.12 template
This adds the release notes template for the upcoming December release
of coreboot.

Change-Id: Iffaa625137f4edf994d73984d847b1cf926f8078
Signed-off-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89352
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-26 00:32:34 +00:00
Patrick Rudolph
02980f0ea6 soc/amd/common/block/psp: Add comments
Explain when the MBOX_PSP return codes are send and which behaviour
is invoked by the PSP when seeing such return codes.

Change-Id: Ibe7ceb5d7cd025f3b3ab0c9167d23f6eb664c165
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88511
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-25 16:06:54 +00:00
Patrick Rudolph
a17a41559a soc/amd/common/block/psp: Add BIOS SPI flash semaphore
When coreboot is operating on the SPI flash lock the bus by
setting SPI_SEMAPHORE_BIOS_LOCKED in SPI_MISC_CNTRL. This prevents
SMM from accidentally corrupting SPI CTRL registers, even though
SMM backups and restores SPI CTRL registers.

TEST: Booted an AMD glinda and observed SMM not accessing the SPI
      controller as long as ring 0 is operating on it.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: Iaeda356b55d3f203c75f4056da7bde2abacebc41
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88438
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-25 16:06:49 +00:00
Patrick Rudolph
038262155e soc/amd/common/block/psp/psp_smi_flash: Fix flash busy check
Currently the PSP SMI handler works only if you are lucky. Since
ring 0 can start SPI flash transactions any time and the PSP SMI might
happen shortly after that, the SPI controller or SPI flash might be
busy. When the SPI flash is busy it cannot process certain commands,
for example reading the contents, causing the SPI flash memory map
to return all 0xffs.

By introducing the AMD fTPM code the PSP SMI happens more often at
boot and uncovered this issue. This issue was found when deleting
the MRC cache, which takes quite long, while the PSP SMI tried to
access the SPI flash. Adding small delays, as introduced by
CONSOLE_SERIAL, resolved the issue.

Add code to check if the SPI controller and the SPI flash are busy.
If so tell the PSP SMI to retry at a later point in time.

TEST: AMD glinda boots with CONSOLE_SERIAL disabled.
      Logging to CBMEM shows that the PSP SMI is fired 10 times
      before the SPI flash no longer reports that it's busy.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: I9122165e7c60b7c288d5b61b80d4cb582901841c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88437
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-25 16:06:38 +00:00
Angel Pons
67e3579d61 sb/intel/lynxpoint: Enable PCIe Relaxed Order
Follow Lynx Point PCH reference code version 1.9.1 to enable PCIe
Relaxed Order.

Change-Id: If7ba4e826adfc8c220ecc68c4a456fbe3cb99667
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57504
Reviewed-by: Lean Sheng Tan <tanleansheng@outlook.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
2025-09-25 16:06:18 +00:00
Felix Singer
865649edc0 util/docker/jenkins-node: Use the correct branch for encapsulate
Change-Id: Ia137fd991c242ef52e354b2ef04d7cf50dcfdf23
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89326
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-25 16:05:51 +00:00
Yang Wu
6af7d299b2 mb/google/skywalker: Add MIPI panel support with TM_TL121BVMS07_00C
Add support for MIPI panel on padme and enable TM_TL121BVMS07_00C as
the default panel. The panel uses AW37503 as the bias IC, with supply
set to ±5.9V. Add AW37503 initialization and power-on sequence are
configured according to the specification.

The developer/recovery screen is not functional yet as the vendor is
still debugging it. This change is proposed to enable firmware build.

BUG=b:432353024
TEST=emerge-skywalker coreboot

Change-Id: I37a1c0352a8619ce5b10727cdeef524ccb1107ef
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89218
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-09-25 09:05:57 +00:00
Hualin Wei
4fc5f7a843 mb/google/fatcat/var/lapis: Modify the gpio order of mem_id
According to the schematic diagram of lapis, refer to
the design of fatcat and modify the gpio order of mem_id.

BUG=b:438785495
TEST=emerge-fatcat coreboot
Change-Id: I715634e231725bbd009b35a0c520d19a894f569c
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89066
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-09-24 14:49:54 +00:00
Hualin Wei
2764a508ad mb/google/fatcat/var/lapis: Add 4 DDR modules to RAM id table
Add HYNIX H54G46CYRBX267 as id 1, and add Samsung K3KLALA0EM-MGCU
as id 2, resulting in the list below:

DRAM Part Name                 ID to assign
H58G66CK8BX147                 0 (0000)
K3KL9L90EM-MGCU                0 (0000)
MT62F2G32D4DS-023 WT:C         0 (0000)
H58G56CK8BX146                 1 (0001)
K3KL8L80EM-MGCU                1 (0001)
MT62F1G32D2DS-023 WT:C         1 (0001)
K3KLALA0EM-MGCU                2 (0010)

BUG=b:438785495
TEST=Use part_id_gen to generate related settings

Change-Id: I4179e31222d461b93f81c784511cc34071c10257
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89065
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-24 14:49:43 +00:00
Hualin Wei
886bd1d186 spd/lp5: Add Samsung K3KLALA0EM-MGCU memory part
Add Samsung memory part K3KLALA0EM-MGCU in lp5 list.

BUG=438785495
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I4cac57363fdedf9f216b8b01fb5ea091a511ebf2
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89064
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-09-24 14:49:31 +00:00
Tony Huang
0a6f3e3868 mb/google/brox/var/caboc: Add PDC FW hash to hint romstage init
This CL follow Commit 2ba74b8c18 ("mb/google/brox: Hint romstage init
about upcoming reset") CB:84937 to add PDC FW hash in variant.c to hint
romstage init about upcoming reset.

BUG=b:445606386
TEST=Build Caboc BIOS image and boot to OS. Ensure that the hints are
provided correctly and 2 redundant resets are filtered out.

Change-Id: Ie029bf7faf991f520c42ffe22e610291ba98e078
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89190
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-24 14:49:05 +00:00
Tony Huang
cbd1529126 mb/google/brox: Update Auxiliary Firmware Version check
Currently check_auxfw_ver_mismatch() expects the hash file to contain
only auxiliary firmware version and hence strictly checks for the size
of the auxiliary firmware version (3 bytes).

However, in some cases the hash file might contain other information
such as config_name.bin name which increases the hash file size.

Accommodate this scenario by checking the hash file size greater than
or equal to auxiliary firmware version size.

BUG=b:445606386
TEST=Build BIOS image with hash size of 3 and 11. Ensure that the
hints are provided correctly and 2 redundant resets are filtered out.

Change-Id: I287079cfc3cfbc75575ecde0603b98c57b42aa24
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89219
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-09-24 14:48:45 +00:00
Kapil Porwal
0d4c0ee7fc ec/google/chromeec: Add API for AP shutdown command
Adds the `google_chromeec_ap_poweroff()` helper function to the ChromeEC
driver.

This new API wraps the `EC_CMD_AP_SHUTDOWN` command and sends it to the
Embedded Controller (EC). This provides a cleaner, standardized way for
other coreboot components to initiate an Application Processor (AP)
power-off sequence via the EC.

After sending the shutdown command, the function calls `halt()` as the
AP is expected to power down immediately after the EC processes the
command.

BUG=b:439819922
TEST=Verify shutdown on Google/Quenbi.

Change-Id: Iace6a66972791bb7acdb978dfeea67b6ff0fec68
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89223
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-24 14:48:08 +00:00
Kapil Porwal
bbd72abae5 ec/google/chromeec: Update EC headers
Generated using update_ec_headers.sh [EC-DIR].

The original include/ec_commands.h version in the EC repo is:
  60aa7ccea9c include/ec_commands.h: Avoid lint errors
The original include/ec_cmd_api.h version in the EC repo is:
  f47d8af4fbb include/ec_cmd_api.h: Define new API for EC_CMD_AP_SHUTDOWN command

Change-Id: I31d08bf4a0318ca3ba8c5bb5563acfe65830523b
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89296
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-24 14:48:03 +00:00
Bora Guvendik
21ca3c5f3d mb/intel/ptlrvp: Update CKD/QCK mapping parameters
The commit updates the DDR5 memory initialization parameters for the
Intel PTLRVP mainboard. Specifically, the ChannelToCkdQckMapping and
PhyClockToCkdDimm settings are overridden to ensure accurate mapping of
memory channels and PHY clocks to their respective Clock Driver and
DIMM connections.

BUG=none
TEST=Boot the PTLRVP board with DDR5 memory and verify memory
initialization.

Change-Id: I1be0a66a40e2613f10426dacd5494e345c5579db
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89275
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-09-24 14:47:36 +00:00
P, Usha
3d7b898ff4 mb/google/ocelot/var/ocelot: Disable ALC721 clock stop support
This change allows flag to be overridden via devicetree, instead of
relying on the default value in alc711_slave. It helps fix the
missing event issue when plugging or unplugging the 3.5mm headphone
jack.

TEST=Verified build and boot with ALC721.
Headphone path switches successfully via audio jack event.

Change-Id: Ib766363fd7462bb03905fa6cba805b27d10efa04
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88867
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-24 14:47:21 +00:00
weihualin
c822148f2b mb/google/fatcat/var/lapis: Modify dq/dqs setting
Modify the memory's DQ/DQS setting according to the lapis circuit schematic.

BUG=b:438785495
Test='emerge-fatcat coreboot' and DUT can boot into kernel
Change-Id: I9b93fdda4c37327a89af2096a6549e9077dfb12a
Signed-off-by: weihualin <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89288
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-24 14:47:00 +00:00
Hualin Wei
78fb910fe2 mb/google/fatcat/var/lapis: Update the configuration of fw_config
Use fw_config to probe WIFI and STORAGE Type. And Add get_wifi_sar_cbfs
filename function.

BUG=b:438785495
TEST=emerge-fatcat coreboot

Change-Id: If59e4ae2f328585525f3651699f84a4000e93dc5
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89291
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-24 14:46:43 +00:00
Hualin Wei
eb3497fae4 mb/google/fatcat/var/lapis: Update tpm i2c configuration
Make I2C3 enabled for early init.

BUG=b:438785495
TEST=emerge-fatcat coreboot

Change-Id: Ia5a48dde252f8d1dc552229bc2d33f1e7adf2e98
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89290
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-24 14:46:38 +00:00
Hualin Wei
3a33217349 mb/google/fatcat/var/lapis: Update thermal strategy
According to the schematic diagram, lapis is designed
with five temperature detection nodes, so the initial
thermal strategy was updated.

BUG=b:438785495
TEST=emerge-fatcat coreboot

Change-Id: I908ab68766ef562ecc95085ed21658f3592937f4
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89068
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-24 14:46:30 +00:00
Sowmya Aralguppe
36d2dc7cb9 mb/google/ocelot: Update wake event mapping for gspi0
This change corrects the ACPI wake event mapping for the gspi0 device,
ensuring the wake signal is routed through GPE0_DW2_19 instead of
GPE0_DW1_19. This aligns with the platform's GPIO-to-GPE mapping in
devicetree.cb

Change-Id: I2c9b0168c01c4ff8f968f0efe5bc12b650842129
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89287
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-24 14:46:20 +00:00
Sowmya Aralguppe
59bd0e3206 mb/google/ocelot/var/ocelot: Update USB and TCSS port configuration
The list of changes are as follows
1. Modified USB2 port 7 from M.2 WLAN to discrete Bluetooth device.
2. Updated both Type-C ports to OC_SKIP to reflect virtual ports.
3. Adjusted Type-C port ACPI group assignments for USB3 ports.
4. Reduced display device count from 5 to 4 by removing DD04.
5. Updated comments and port usage to clarify Type-A and Type-C port
   assignments.

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b: None
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: I1e8cc92463a462c9baa78cd6d79637004340f7e2
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88642
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-24 14:46:04 +00:00
Sowmya Aralguppe
c4627e0dda mb/google/ocelot: Remove FP_PRESENT probe from ISH device configuration
The FP_PRESENT probe is not required for the ISH device as they are not
in the same BDF. ISH is in the rootport 0:18:0 and gspi0 is 0:30:2.

Change-Id: I00ee0825f60719fb5a34a215780a14645def8b4c
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89289
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-09-24 14:45:53 +00:00
Luca Lai
8e9ec16f45 mb/google/trulo/var/pujjolo: Add tablet mode fw config for ish fw
Use fw config bit 15 to identify different ish files when enable
or disable tablet mode.

TABLET_ENABLE  : pujjolo_ish.bin
TABLET_DISABLE : lite_ish.bin

BUG=b:432649211
TEST=Build and boot to OS, check pujjolo and pujjoquince load
corresponding ish file using command ectool --name=cros_ish version
and test warmboot/coldboot/suspend pass.

Change-Id: Iffaadd5c772be6306cdcec08385de90c089f0489
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89215
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-24 14:45:39 +00:00
Subrata Banik
e3a2d1cecf soc/qualcomm/qclib: Improve logging on invalid MRC cache data
This patch downgrades the message severity from BIOS_ERR to
BIOS_WARNING when mrc_cache_load_current() returns an invalid size
(typically during the first boot or after firmware update).

The failure to load previously saved MRC training data from flash is
often non-fatal, as the system can typically proceed to perform a full
memory training run. Therefore, a warning is more appropriate.

The message is also updated to provide crucial diagnostic information,
including the actual and expected data sizes, which aids in debugging
cache corruption or version mismatch issues.

w/o this patch

```
[ERROR]  Unable to load previous training data.
```

w/ this patch

```
[WARN ]  qclib: Invalid MRC data in flash (size: 0xffffffffffffffff, expected: 0x10000)
```

Change-Id: I810c868adf923e4527abe06a857b15950aa8f17a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89315
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-24 03:25:06 +00:00
Nick Vaccaro
289c01e6fb mb/google/ocelot: implement variant_memory_sku()
Ocelot uses the CHROMEOS_DRAM_PART_NUMBER_IN_CBI Kconfig option
because the hardware does not have DRAM ID straps, but this option was
designed for boards that would only ever have a single memory option.

In order to support multiple memory parts, we need to create a table
that maps memory part number to DRAM id so that we can select the
correct SPD for the memory, and then override the variant_memory_sku()
routine so that we can determine and return the correct DRAM id for
the memory part number specified in the CBI.

BUG=b:443646405
TEST=Change DRAM part number in CBI to "H58G66BK7BX067", reboot ocelot
and verify the AP boot logs show that the SPD index = 1.

Change-Id: I18ba6c4891c6053f40e99dcde8a06b9efc1d95f4
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89183
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-09-23 21:00:09 +00:00
Appukuttan V K
fbb68982c9 mainboard/google/ocelot: Update PCIe root port for SD card interface
This commit updates the PCIe root port configuration for the SD card
interface in the overridetree.cb file for the Ocelot variant.
The reference is changed from `pcie_rp5` to `pcie_rp6`.

BUG=b:440042829
TEST=Boot the device with the updated firmware and verify that the
SD card is enumerated under pcie_rp6

Change-Id: I2b3c0b6e19409fef933aa7dc06f5df035f620738
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88873
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Krishna P Bhat D <krishna.p.bhat.d@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-23 18:45:21 +00:00
Alicja Michalska
c98155cbcd soc/intel/pantherlake: Generate TME keys only if TME is enabled
In order to build for PantherLake with TME disabled, key generation
needs to depend on TME Kconfig.

Change-Id: I0af438e279f422292302387442489bcbc1b1605f
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89226
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-09-23 16:31:07 +00:00
Yu-Ping Wu
d8ed977358 mb/google/skywalker: Remove space before tabs in gpio.h
BUG=none
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: Id46f7a87d452aa94799abc2e3972387edf7228f9
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89310
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-23 09:15:06 +00:00
Yu-Ping Wu
1e7908fa9f mb/google/skywalker: Set up all output GPIOs
Set up all output GPIOs. The initial values are set consistently with
the values in kernel to avoid voltage steps in the bootup process. The
GPIOs are sorted by their EINT IDs.

BUG=none
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: Iacc1808108a33ca66f06ba5b3a4b082ed4e2673f
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89286
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-23 06:35:39 +00:00
Yu-Ping Wu
14e6c62c10 mb/google/skywalker: Define all GPIO pins
Define all GPIO pins in gpio.h by their names defined in the AP pinmux
table. For example, the name of GPIO12 is "EN_PWR_FP".

BUG=none
TEST=emerge-skywalker coreboot
BRANCH=skywalker

Change-Id: I3936cc667d3695ff1609c3fd0fac59a204d511a5
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89285
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-23 06:35:34 +00:00
NaveenVenturi1203
2859a5cba5 mb/{google,intel}/{fatcat,ptlrvp}: Prevent access to disconnected camera
Camera sensor gets enumerated even if the hardware is not connected and
makes it available for the user, leading to a black screen when the user
tries to open the camera.

This commit changes the probing power state for the OV13B Camera Sensor
to the D0 Power State in order for the driver to validate the physical
hardware connection. This change helps prevent unnecessary enumeration
when hardware is not connected.

TEST=On a Fatcat device with an OV13B camera sensor disconnected, the OS
     does not offer to use this video device.

Change-Id: Iabd8ffa6fd50367ff77325a2e1d9ae05e31eac93
Signed-off-by: Venturi Naveen <venturi.naveen@intel.com>
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89142
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-23 04:16:06 +00:00
Derek Huang
ffae0f7d73 security/vboot: Extend CROS_EC_HASH_TIMEOUT_MS
The ITE EC may take more than 2 seconds to complete EC FW
hash calculation in some corner cases. For example, boot with
a dead battery, EC even takes more than 10 seconds to complte
the hash calculation. Extend the timeout from 2 seconds to 12
seconds to cover the ITE EC cases, it should not impact boot
time and functionalities.

BUG=b:445034279, b:444392807

Change-Id: I4f6e23dc3096cbba04c33c8f3cc36c90aa83462a
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89293
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-23 02:23:40 +00:00
Subrata Banik
d2345e0c60 mb/google/fatcat: Set SkipExtGfxScan FSP-M UPD
This patch overrides `SkipExtGfxScan` UPD as the Fatcat device is
equipped with an on-board graphics device hence, skip scanning
external GFX devices.

TEST=Able to save ~10ms+ boot time on google/fatcat.

FSP FPDT Data is showing the timestamp between those function calls.

Without this patch:
  50b8	680462	42	76f18bda-2195-4fb6-9a940e0bacdeecab
  50b9	696649	16187	76f18bda-2195-4fb6-9a940e0bacdeecab

With this patch:

    `CheckOffboardPcieVga` is not getting called.

Change-Id: I198a99ac5596ff98a9cc673dbd84889d7c5386cb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88888
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-23 01:05:44 +00:00
Pranava Y N
8953c772cf lib: Fix bad whitespace in add_bmp_logo_file_to_cbfs_call
The multi-line `$(eval $(call ...))` for adding the default BMP logo
contained extraneous whitespace. This included a leading space before
`logo.bmp` and, more critically, a newline, tab, and non-breaking
spaces before `CONFIG_BMP_LOGO_FILE_NAME`.

This problematic whitespace was passed as part of the third argument
(`$(3)`) to the `add_bmp_logo_file_to_cbfs` macro. Inside the
macro, the deferred variable expansion `$$($(3))` would fail because it
was searching for a variable name with leading non-breaking spaces.

This resulted in the `logo.bmp-file` variable being set to an empty
string, causing a build failure when the cbfs tool tried to find the
logo file.

This commit collapses the function call onto a single line to remove
all line continuations and problematic whitespace, ensuring the
correct, clean arguments are passed to the macro.

BUG=b:444655145
TEST=Able to verify that 'logo.bmp' is added correctly to the CBFS,
and also verify the FW splash screen visible on redrix device.

Change-Id: Ia91b927dd0248909fc1c75534a7e7b00dab0fc09
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89292
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-23 01:05:35 +00:00
Jeremy Compostella
ef0c650edf soc/intel/cmn/blk/fast_spi: Cancel DMA transfer before locking
This commit addresses a potential low power state over-consumption
issue. This issue could arise if SPI DMA has been locked down while a
transfer was still marked as active, typically if a SPI DMA transfer
failed and hung.

The fast_spi_dma_lock() function now checks if a DMA transfer is ongoing
and ensures that it is marked as complete before locking the DMA control
register.

Change-Id: I5e08991b2160a43013b129d302c46fc229f2286d
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88913
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-09-22 15:53:43 +00:00
Varun Upadhyay
b3ad2aa3e7 mb/google/ocelot: GPIO config for headphone jack detection
This commit updates GPP_F17 (CODEC_INIT_N) configuration to fix an issue with the 3.5mm headphone jack on the I2S codec AIC not detecting headphone plug/unplug events.
Specifically, we need to configure GPP_F17 to have interrupt capability, edge detection to detect plug and unplug events, and power state persistence.

TEST=After booting to OS, plug and unplug a headphone to the I2S codec add-in card, headphone is getting detected.

Change-Id: I263f7e9e2da0440801404dddfcf534b9ea79d470
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89038
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Usha P <usha.p@intel.com>
2025-09-22 15:53:18 +00:00
Appukuttan V K
508c399bc1 mb/goog/ocelot/var/ocelot: add H58G66CK8BX147 memory option
Add H58G66CK8BX147 memory part as DRAM ID 2.

BUG=b:446088494
TEST=None

Change-Id: Ice18fd3209b0552be8f8612aaa3ff30ba76c8b83
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89269
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-22 15:52:52 +00:00
Appukuttan V K
d8a3f2aedd mb/goog/ocelot/var/ocelot: add H58GE6AK8BX104 memory option
Add H58GE6AK8BX104 memory part as DRAM ID 3.

BUG=b:445211686
TEST=None

Change-Id: I10876384f67d9201b14dc19213cfc77d62213070
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89268
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-09-22 15:52:47 +00:00
Appukuttan V K
f4110cebf6 spd/lp5: Add SPD for H58GE6AK8BX104
Add  H58GE6AK8BX104 in the memory_parts.json and re-generate
the SPD.

BUG=b:445211686
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I4bf1d0fc3325ec2d4247a0263a44a81934a3a90e
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89267
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-09-22 15:52:41 +00:00
Patrick Rudolph
7acc99c3d2 acpi/acpi_pm: Fix compilation without SMBIOS
smbios_mainboard_enclosure_type() is not linked when SMBIOS
is disabled. Fixes a linker error when the user disabled SMBIOS
table generation in Kconfig.

Change-Id: Ic3e70c658d01a839eb37f0862f31ee9f65a84300
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89280
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-22 15:52:32 +00:00
Yang Wu
c77d3d67cf mb/google/skywalker: Report panel ID and SKU ID for padme
The panel id is sampled with AUX_IN4 (PANEL_ID_LOW_CHANNEL) and AUX_IN5
(PANEL_ID_HIGH_CHANNEL). Introduce 3 voltage thresholds to distinguish
different panels:

  - v < 0.5V        -> id = 0
  - 0.5V ≤ v < 1.0V -> id = 1
  - v ≥ 1.0V        -> id = 2

BUG=b:433405205
TEST=Tested by booting with the payload and confirming the kernel get
the correct skuid.

Change-Id: I590a19b6cade3cae15a58a9b3541ff471e038435
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89217
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-09-22 03:30:42 +00:00
Sowmya
6185983028 soc/intel/pantherlake: Standardize macros for core count and SKUs
This patch updates macro names and enum values to follow consistent
naming conventions and improve code maintainability. Core count macros
and SKUs are renamed for clarity:
	PTL_U_1_CORE -> PTL_CORE_1
	PTL_U_2_CORE -> PTL_CORE_2
	PTL_H_1_CORE -> PTL_CORE_3
	PTL_H_2_CORE -> PTL_CORE_4
The soc_intel_pantherlake_sku enumeration is updated to use
standardized naming patterns. All references have been updated
accordingly.

Change-Id: Ibd8935715ff78571c0cce8617851da86ea11ded2
Signed-off-by: Sowmya <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89266
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-20 04:58:17 +00:00
wu.garen
9a8402adf9 mb/google/trulo/var/kaladin: Update HDA verb table
Update HDA verb table for Realtek 3247 audio codec.
1. Class-d output power from 2.0W/4ohm to 2.2W/4ohm
2. AGC setting from pre-gain +6dB, limit -6dB, post-gain +6dB
   to pre-gain +0dB, limit -0dB, post-gain +0dB

BUG=b:445090513
TEST= emerge-nissa coreboot and verify alsa-dump as expected

Change-Id: Ie100b7fb0738d7092997100dd4259360f8603f05
Signed-off-by: wu.garen <wu.garen@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89213
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-09-19 15:25:11 +00:00
Doris Hsu
9af9e1d1f4 mb/google/trulo/var/kaladin: Add eMMC DLL settings
Configure eMMC DLL tuning values for Kaladin project.
Sending different speed TX/RX command/data signal to eMMC and check the response is success or not.
Based on the test result from each eMMC source used in the project as the tuning value.
Refer to EDS-Vol2-42.3

BUG=b:440126134
TEST=Pass on 2500 cycle of cold boot stress on all eMMC sku

Change-Id: I6295b36500053356a28d51b48a9758ee32b82b53
Signed-off-by: Doris Hsu <doris.hsu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89034
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyle Lin <kylelinck@google.com>
2025-09-19 15:24:40 +00:00
Kapil Porwal
3b4c446fbb mb/google/bluey: Configure QUP0 SE1 as I2C
USB-A retimer, which is an I2C device, is connected to QUP0 SE1.

BUG=b:445441291
TEST=Build and boot to Google/Quenbi.

Debug log:
```
[INFO ]  VB2:vb2_digest_init() 3872 bytes, hash algo 2, HW acceleration enabled
[INFO ]  CBFS: Found 'fallback/i2c_fw' @0xa9500 size 0x576 in mcache @0xff7dd470
```

Change-Id: Ic1f7c22b6e453b703892af8af7dc3aadddf1f056
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89225
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-09-19 15:24:26 +00:00
Yang Wu
ddf5987c1e drivers/mipi: Add support for TM_TL121BVMS07_00C panel
Add TM panel TM_TL121BVMS07_00C serializable data to CBFS.
Datasheet: Preliminary+specification+TL121BVMS07+-00+V01+20250721.pdf

The developer/recovery screen is not functional yet as the vendor is
still debugging it. This change is proposed to enable firmware build.

[INFO ]  CBFS: Found 'panel-TM_TL121BVMS07_00C' @0x81f80 size 0x77
in mcache @0xfffdd540


BUG=b:428854543
TEST=build and check the CBFS include the panel
BRANCH=skywalker

Change-Id: I50e56aef1576722b7f2fb811c5d9df2a5697edae
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89216
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-09-19 07:07:04 +00:00
David Wu
0fec287327 mb/google/nissa/var/dirks: Drive GPIO GPP_D2 high to fix noise issue
Due to a GPIO configuration issue, the buzzer continues to operate
after the OS boots, producing noise from the capacitor.

The buzzer is driven by the GPIO pin and P_MOS, so it should be set
to high in the coreboot.

For the schematics, please refer to b:442747023#comment4.

BUG=b:442747023
TEST=Can not hear abnormal noise.

Change-Id: I720e5cc0e8c499d654a2b3002c3647d37e2ae8d3
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89035
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-19 03:07:21 +00:00
Sean Rhodes
5a9ca2b040 mb/starlabs/starbook/mtl: Set SPD size to 512
We only need the first 512, so skip reading the rest to save
boot time. With 96GB, it reduces time in FSP-M from 906,307
to 326,302.

Change-Id: Ia226402fdf613ba4b851fa9c4c7d9354d599be7c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89220
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-18 17:10:51 +00:00
Benjamin Doron
79119456a2 soc/amd/common/block/iommu: Add missing newline to debug print
This makes the log easier to parse.

Change-Id: I1ac3e186b7830dc79f22540810f121806d36175f
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89120
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-18 12:46:37 +00:00
Subrata Banik
81bb2663b7 soc/qualcomm/x1p42100: Select HAVE_CBFS_FILE_OPTION_BACKEND
Select the newly introduced `HAVE_CBFS_FILE_OPTION_BACKEND` capability
for the Qualcomm x1p42100 SoC family.

This SoC is used in ChromeOS devices that rely on the CBFS file backend
to store and retrieve runtime configuration options (like the QCLib
configuration data). Selecting this capability ensures the correct
option backend is chosen in the Kconfig `Option backend to use` choice.

TEST=Build and boot a board using the x1p42100 SoC (e.g., bluey).
     Confirm the `CONFIG_USE_CBFS_FILE_OPTION_BACKEND` option is enabled
     in the build.

Change-Id: Ie0dee155a504da215669a79d7100cdbaf97d5261
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89186
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-18 01:56:29 +00:00
Subrata Banik
bf83dd9927 soc/qualcomm/common/qclib: Introduce runtime debug log level control
Introduce a new static function, `qclib_debug_log_level`, that
checks a runtime-configurable option, "qclib_debug_level", to
control whether QCLib enables serial logging.

This allows for dynamic control of QCLib's verbose output via a
coreboot option instead of relying solely on the static
`CONFIG(CONSOLE_SERIAL)` Kconfig option. This is necessary because
while the serial console might be enabled for general coreboot
logging, the user may want to suppress the often extensive and
low-level output from QCLib to keep the console clean during normal
operations.

The check for enabling QCLib's serial output is updated from
`if (CONFIG(CONSOLE_SERIAL))` to
`if (CONFIG(CONSOLE_SERIAL) && qclib_debug_log_level())`

The option value is read using
`get_uint_option("qclib_debug_level", 1)`, meaning the default
behavior is to enable QCLib logging if `CONSOLE_SERIAL` is set,
maintaining backward compatibility unless the option is explicitly
set to 0 at runtime.

BUG=b:445211186
TEST=Build and boot a Qualcomm platform with CONFIG_CONSOLE_SERIAL
enabled. Confirmed QCLib logs are present by default.
Set option "qclib_debug_level" to 0 via CBFS option and confirmed
QCLib logs are suppressed while coreboot serial output remains
active.

Change-Id: I2c7326fae889508f09e1eb5e3863456cf54f5c29
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89185
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-18 01:56:22 +00:00
Yang Wu
cf3af46e50 mb/google/skywalker: Create variant Padme
Create the variant Padme.

BUG=b:440994425
TEST=emerge-jedi coreboot chromeos-bootimage
BRANCH=None

Change-Id: I1a02979f612b4da2ea699d142fae3a89ace4d49b
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89179
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-09-18 01:38:55 +00:00
Bora Guvendik
2b1809e026 mb/google/fatcat: Increase Fast VMode I_TRIP threshold to 63A
Change I_TRIP value from 38A to 63A.
Reference: Intel doc 861712

Bug=none
TEST=Boot to OS and verify I_TRIP value via boot logs

Before: IccLimit[0] : 0x98

After: IccLimit[0] : 0xFC

Change-Id: I88687bd481f6e8fc7ef0c9289e7066e59b2a8ea5
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89125
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-17 14:12:03 +00:00
Bora Guvendik
2a7a0e86cd mb/google/fatcat: Configure Acoustic noise mitigation
As per Intel doc 861712, enable acoustic noise mitigation for fatcat,
disable fast PKG C state ramp and set slew rate to Fast/2 for VR
domain.
Reference: Intel doc 861712

TEST=Able to build and boot google/fatcat.

Before:

AcousticNoiseMitigation : 0x0
FastPkgCRampDisable for Index = 1 : 0x2
SlowSlewRate for Index = 1 : 0x0

After:

AcousticNoiseMitigation : 0x1
FastPkgCRampDisable for Index = 1 : 0x1
SlowSlewRate for Index = 1 : 0x0

Change-Id: I63c51354cb70c87f9c9c239cb56d5c64f0eabe32
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89124
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-17 14:11:57 +00:00
John Su
6c06602c75 mb/google/brya/var/uldrenite: Add fw_config probe for touchpad
Because the touchpad includes two touch chips with the same I2C slave
address, the firmware configuration is used to differentiate them.

BUG=b:437025836
TEST=emerge-nissa coreboot

Change-Id: If1e414594a2866bdc122d48d5f3e2f36066cd3d5
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89106
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-17 14:11:45 +00:00
Kapil Porwal
a3b73464b5 soc/qualcomm/x1p42100/usb: Fix code comments and debug messages
Fix code comments and debug messages.

BUG=none
TEST=Build Google/Quenbi.

Debug logs:
```
[INFO ]  Setting up USB HOST0 controller.
[DEBUG]  USB HS PHY initialized for index 0
[DEBUG]  USB HS PHY initialized for index 1
[DEBUG]  QMP PHY MP0 init
[DEBUG]  QMP PHY MP0 initialized and locked in 1674us
[DEBUG]  QMP PHY MP1 init
[DEBUG]  QMP PHY MP1 initialized and locked in 1674us
[SPEW ]  Configure USB in Host mode
[INFO ]  DWC3 and PHY setup finished
```

Change-Id: If606a247657ffe39203101a5ff38439348deba29
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89188
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-17 14:10:37 +00:00
Eren Peng
e924021e69 mb/google/trulo/var/kaladin: Add GTH1563 and GTH7503
Add 2 touch panels GTH1563 and GTH7503

BUG=b:444136795
TEST=flash and boot on kaladin, execute evtest to see correct HID and
verify touch function works fine

Cq-Depend:chromium:6953071, chrome-internal:8592598
Change-Id: I9b33b5c8e216c5c8e7a6d9e38cd8d01b85dec67e
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89187
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-17 14:10:20 +00:00
Varun Upadhyay
d1967d927a spd/lp5: Add SPD for MT62F1G32D2DS-031 WT:C and MT62F2G32D4DS-031 WT:C
Add  MT62F1G32D2DS-031 WT:C and MT62F2G32D4DS-031 WT:C in the
memory_parts.json and re-generate the SPD.

TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I0db533908fbea2bc04a55191960aaeec8461f47d
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89027
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Krishna P Bhat D <krishna.p.bhat.d@intel.com>
2025-09-17 14:09:41 +00:00
Sean Rhodes
2e10ddb1ee mb/starlabs/starbook/mtl: Make TCSS notify the IGD of changes
Set the UPD `TcNotifyIgd` to `2` (Auto), so that the TCSS subsystem
will notify the Integrated Graphics of display changes.

Change-Id: I2b47a534f0816545fe58bde8963c56f0455871eb
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89054
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-17 12:38:34 +00:00
Sean Rhodes
47fb46e0e4 vc/intel/fsp/mtl: Update the headers to 5124_47 (13.0.228.64)
Update MTL headers from 4122_21 to 5124_47.

- PCIe EQ controls added/reworked:
  - New per-RP EQ bypass/phase controls for Gen3/4/5: Phase2, Phase3,
    Phase2–3, and overall Phase enable arrays (multiple 29-byte
    arrays)
  - New Gen3/4/5 PCET timers and TS Lock timers per-RP
  - Added PcieGen5EqPh2LocalTxOverridePreset[29]
  - Added PcieRpLtrOverrideSpecComplaint[29] (LTR override based on EP
    capability)
  - Added PcieFomsCp[29] (FOMS control policy)
  - Added PCIe configuration dump toggle (PcieCfgDump[12])
  - Added PcieClockGating[29], PciePowerGating[29], LinkDownGpios[29]
  - Added PcieFiaProgramming and PcieSetSecuredRegisterLock toggles

- Power/ASPM/LTR and platform policy:
  - Added PchDmiAspm control
  - Added ASPM Optionality Compliance test array
    (PcieRpTestAspmOc[12])
  - Added PchLanWOLFastSupport and WoWLAN DeepSx/LAN wake/Deep Sx
    policy controls
  - Added CPPM Force Alignment (CppmFaEn), PlatformAtxTelemetryUnit
  - Multiple “Reserved” fields renamed to RsvdXXX with adjusted sizes

- Thermal throttling (SoC/PCH/IOE/SATA):
  - New enable/suggested-setting toggles, customizable T0/T1/T2
    levels, and locks for SoC, PCH, IOE thermal throttling
  - SATA thermal suggested setting retained; minor reserved rename
    around it

- Storage/IO:
  - Added UfsInlineEncryption[2] enable/disable

- PMC/ADR and low-power:
  - Added comprehensive PMC ADR controls (enable, timer enable/values,
    source override/select, host reset partition) and PMC WDT enable
  - Added PmcLpmS0ixSubStateEnableMask and
    PmcPchLpmS0ixSubStateEnableMask
  - Added PchPmErDebugMode

- CPU/Power management:
  - Added CcfAutoGv, ThreeStrikeCounter, HwpLock
  - Added StepDownMode, PowerFloorManagement,
    PowerFloorDisplayDisconnect, EnableRp, PowerFloorPcieGenDowngrade
  - Added SecurityPostMemRsvd, MePostMemRsvd, various
    ReservedCpuPostMem* placeholders

- Turbo ratio controls:
  - Added TurboRatioLimitRatio[8]/NumCore[8] for P-cores and
    AtomTurboRatio* arrays for E-cores

- Graphics/Media:
  - Added ConfigureGT toggle, RC1pGtFreqEnable, RC1pMediaFreqEnable
  - Added ConfigureMedia toggle, MediaStandby
  - Added PEI logo HorizontalResolution/VerticalResolution exports

- EC hooks:
  - Added EcProvisionEav and EcBiosGuardCmdLock function pointers

- USB/Type‑C:
  - Added EnableTcssCovTypeA[4] (convert Type‑C to Type‑A option)

- Misc renames/cleanups:
  - Numerous fields renamed from generic “ReservedXX” to more explicit
    RsvdXXX arrays with adjusted sizes.

Change-Id: I76748abdf6ddcae9c7f74975e09324bb45b5f9bd
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89093
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-09-17 12:38:24 +00:00
Subrata Banik
bb760bc9f3 Kconfig: Introduce HAVE_CBFS_FILE_OPTION_BACKEND
Introduce a new Kconfig option, `HAVE_CBFS_FILE_OPTION_BACKEND`, to
explicitly select the capability of using a CBFS file for option
storage.

This capability is currently only used by ChromeOS boards leveraging
FSP 2.0. By decoupling the capability check from the choice default
selection logic, we can simplify the configuration of the option
backend choice:

- The new capability config is set to 'y' only if `CHROMEOS &&
  PLATFORM_USES_FSP2_0`.
- The 'Option backend to use' choice now depends on this new capability
  config.

This change allows other SoC platforms beyond Intel to leverage this
feature.

TEST=Build all ChromeOS FSP 2.0 boards and confirm the default option
backend is still USE_CBFS_FILE_OPTION_BACKEND.

Change-Id: Ia55e0feae8fd462411ed3e9306d19ed6d1cfcaf1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89184
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-17 04:18:07 +00:00
David Wu
f1b83c8759 mb/google/rex/var/kanix: Add K3KL8L80EM-MGCU to RAM ID table
Add the new memory support: Samsung K3KL8L80EM-MGCU

BUG=b:412311178
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Ib14a388bd4f1ef884db401b36067a6ea0ac9fe9b
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89178
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-09-17 04:17:48 +00:00
Nick Vaccaro
bcb3263078 mb/goog/ocelot/var/ocelot: add H58G66BK8BX067 memory option
Add H58G66BK8BX067 memory part as DRAM ID 2.

BUG=b:445200980
TEST=None

Change-Id: Ica4c253ebed922f204e4782bbfeb1f09f12f5723
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89182
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-17 01:13:26 +00:00
Tony Huang
751afeb060 mb/google/brox/var/caboc: Update HDA verb table
Table is from vendor. Update HWEQ and AGC setting.

BUG=b:435345756
TEST=emerge-brox coreboot
     check system audio output is fine

Change-Id: I0869a4902e38e8010274769de7f8e7b9a4160aae
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89127
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-09-16 15:06:28 +00:00
Eren Peng
56700713de mb/google/trulo/var/kaladin: Disable eMMC GPIOs via firmware config
Disable eMMC related GPIO pins via firmware config on non-eMMC skus

BUG=b:443202137
TEST=flash and boot successfully on all kaladin SKU

Change-Id: Ia98702368208649fc0891417c7e8c6c3685d40be
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89069
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-16 15:05:32 +00:00
Yidi Lin
93c147c5e6 commonlib/device_tree: Add dt_add_iommu_addr_prop function
`dt_add_reg_prop` and the newly introduced `dt_add_iommu_addr_prop`
share identical logic for building the binary data buffer, differing
only in the property name written to the Device Tree. Therefore,
refactor the shared logic into a new static helper function,
`dt_add_addr_and_size_prop`.

The existing `dt_add_reg_prop` is converted to a wrapper around this new
helper.

`dt_add_iommu_addr_prop` is introduced as a separate wrapper to
specifically add the `iommu-addresses` property. This property defines
reserved IOVA ranges or identity-mapped regions, such as a display
framebuffer configured by the bootloader. It is typically utilized
within the `reserved-memory` subsystem.

BUG=b:435289727
TEST=The below translation fault does not occur.
[    0.171028] arm-smmu-v3 30800000.iommu: TBU_id-2-fault_id:0x2000008(0x8), TF read in NORMAL world, iova:0xa3000000,  sid:144, ssid:0, ssidv:0, secsidv:0

Change-Id: Icedcce5681a7b659b11b7e7208663bc1d920ce3b
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89152
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-16 15:05:23 +00:00
Ren Kuo
d3d2f0f1c8 mb/google/fatcat/var/moonstone: Add to support ALC1320 Smart Amp
Enable Realtek ALC1320 as speaker Amplifier.
Use ALC721 as codec and ALC1320 as Amplifier on SoundWire Link 3.

BUG=b:442964982
TEST=emerge-fatcat coreboot
1.Set fw_config AUDIO bits to AUDIO_ALC1320_ALC721_SNDW
2.check the SSDT.dsl:
  PCI0.HDAS.SNDW including 0x000331025D072101 & 0x000332025D132001

Change-Id: I4c6b5c3f2d9acb7eaf8f77844526bc9de3ae1f99
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89177
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-16 15:04:51 +00:00
Vince Liu
1da045f6a5 mb/google/skywalker: Add API support for regulator VCN18
Add the VNC18 regulator API for the MIPI panel usage.

BUG=b:432353024
BRANCH=skywalker
TEST=Use an oscilloscope to confirm that the regulator’s output
voltage is 1.8V.

Change-Id: Ib2065d8b4f92f4ad266976883cb2927107330a69
Signed-off-by: Niklaus Liu <niklaus.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89172
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-16 15:04:37 +00:00
Vince Liu
fe70426dd7 soc/mediatek/common: Add support for regulator VCN18
To provide power to MIPI panel, add support for regulator VCN18.

BUG=b:432353024
BRANCH=skywalker
TEST=Use an oscilloscope to confirm that the regulator’s output
voltage is 1.8V.

Signed-off-by: Niklaus Liu <niklaus.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I4d90b3c053f1a06ae0c65d6ce6d800c22d6d3442
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89171
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-16 15:04:31 +00:00
roccochen@chromium.com
f4a123f055 tests: Allow specifying using system Cmocka or building from source
Add a flag "USE_SYSTEM_CMOCKA" in the Makefile of tests. (default 1)

If USE_SYSTEM_CMOCKA=1, we will check if the system has Cmocka module,
and link it directly. If the system doesn't have Cmocka, we will set the
flag to 0 and print a warning message.

If USE_SYSTEM_CMOCKA=0, we will build Cmocka from 3rdparty source code.

BUG=none
TEST=make unit-tests -j
TEST=USE_SYSTEM_CMOCKA=0 make unit-tests -j
BRANCH=none

Signed-off-by: roccochen@chromium.com <roccochen@chromium.org>
Change-Id: I091784ca541e2590e3db0a18ceea83e7895ed0c2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79019
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-16 15:04:15 +00:00
roccochen@chromium.com
e7d598ba2c Reland "tests: Allow specifying vboot source directory"
Respect VBOOT_SOURCE while including generic headers.

This reverts commit 26e7c1eae4.

BUG=none
TEST=make clean-unit-tests &&
     VBOOT_SOURCE=/path/to/vboot_reference/ make unit-tests -j
TEST=make clean-unit-tests && make unit-tests -j
BRANCH=none

Change-Id: I686575f7c5e22bee519e910f71a4ac579b5c6a50
Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org>
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89176
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hsuan-ting Chen <roccochen@google.com>
2025-09-16 15:04:07 +00:00
Luca Lai
a348ef46db mb/google/trulo/var/pujjolo: Change setting for lite ISH fw
Use fw config bit 29 to identify different ish files in pujjolo
when ISH_PRESENT and pujjoquince when ISH_ABSENT.

ISH_PRESENT : pujjolo_ish.bin
ISH_ABSENT : lite_ish.bin

BUG=b:437881361
TEST=Build and boot to OS, check pujjolo and pujjoquince load
corresponding ish file using command ectool --name=cros_ish version and test warmboot/coldboot/suspend pass.

Change-Id: I61b90881abcad368dd668f2631f061b0ea00b57f
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89074
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-16 08:33:00 +00:00
David Wu
16db59ccef mb/google/rex/var/karis: Add K3KL8L80EM-MGCU to RAM ID table
Add the new memory support: Samsung K3KL8L80EM-MGCU

BUG=b:412311178
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Id46274ddac59df887be5580853c03ac34ef790b6
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89156
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-16 02:28:59 +00:00
Subrata Banik
3639648f81 mb/google/fatcat/var/felino: Set GPP_A15 and GPP_B23 as not used
GPP_B23 and GPP_A15 GPIOs in Felino design being used for MEM
straping selection but Felino supports only one mem id (index 0)
hence, these GPIO reads were never needed in felino code.

The GPP_A15 and GPP_B23 pins on the Fatcat mainboard variant Felino
are no longer used. Update the GPIO table to reflect this and
explicitly set the pins to not connected (NC) as per schematics
dated 08/30.

TEST=Able to build and boot google/felino.

Change-Id: I9d8ed19aab612f7104227544c24c37d19024cfb0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89155
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-16 01:17:08 +00:00
Subrata Banik
8585591596 mb/google/fatcat/var/lapis: Set GPP_A15 as not used
The GPP_A15 pin on the Fatcat mainboard variant Lapis is not used,
according to schematics dated 08/30.

Update the GPIO table to reflect this and explicitly set the pin to
not connected (NC).

TEST=Able to build google/lapis.

Change-Id: Ib89421952f5844283809fe99a902e36a17f55fae
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89154
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-16 01:16:48 +00:00
Matt DeVillier
b9af91dfe1 mb/starlabs/starlite_adl: Drop HDMI entries from verb table
These are not programmed by coreboot, so drop them.

Change-Id: If7b371aa6f64a7f034344a6e926ca0662fa717c2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89139
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-09-15 19:29:34 +00:00
Matt DeVillier
461c6a7d31 mb/starlabs/starfighter/rpl: Drop HDMI entries from verb table
These are not programmed by coreboot, so drop them.

Change-Id: Id3f870c531f0cfd078c899953ff65b406e7e5bb6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89138
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-15 19:29:29 +00:00
Matt DeVillier
fc3a647579 mb/starlabs/starbook/rpl: Drop HDMI entries from verb table
These are not programmed by coreboot, so drop them.

Change-Id: I1ad4f33565ce1d5a67ac7f066fd5140a7cb2faf8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89137
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-09-15 19:29:23 +00:00
Matt DeVillier
a88d9e1033 mb/starlabs/starbook/mtl: Drop HDMI entries from verb table
These are not programmed by coreboot, so drop them.

Change-Id: Ifdcbb52cf1823692296775895130fcec8be59c85
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89136
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-09-15 19:29:18 +00:00
Matt DeVillier
90f94287fd mb/starlabs/starbook/adl_n: Drop HDMI entries from verb table
These are not programmed by coreboot, so drop them.

Change-Id: If1c68f183012d78b3e8847e8fe103280fe0103ec
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89135
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-09-15 19:29:12 +00:00
Matt DeVillier
684530ebdc mb/starlabs/starbook/adl: Drop HDMI entries from verb table
These are not programmed by coreboot, so drop them.

Change-Id: I577634eef5e0f218be81323bbd5c6d8a0651549c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89134
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-15 19:29:06 +00:00
Nick Vaccaro
258da6b1ef mb/goog/ocelot/var/ocelot: add H58G66BK7BX067 memory option
Add H58G66BK7BX067 memory part as DRAM ID 1.

BUG=b:443646405
TEST=None

Change-Id: I3ab13e65b94dd4b46ed788df31085c9013d84848
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89158
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-15 18:18:27 +00:00
Avi Uday
883103c77f mb/google/ocelot: Disable memory training progress bar
Set disable_progress_bar to disable the memory progress bar for ocelot
board as this is an OEM feature and might not be used by all.

TEST=Verify that ocelot builds without any error
Change-Id: Ifef7a2645dce696f32cea42fd928a1f858fd0333
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88941
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-15 06:39:32 +00:00
Avi Uday
f3a49c8b3d mb/google/ocelot/var/ocelot: Disable audio for invalid Audio FW_CONFIG
This commit modifies the Ocelot mainboard configuration to ensure the
Audio controller is only enabled when a valid `FW_CONFIG` is selected.

This change introduces audio probe statements that allow the
system to boot successfully even if `FW_CONFIG` is set to
`AUDIO_UNKNOWN`, effectively disabling the audio controller in such
cases.

This prevents potential boot failures when an unsupported or unknown
audio codec is selected, improving system robustness.

BUG=b:412736286
TEST=Verify that ocelot builds without any error
Change-Id: I7c125c67b70a0e0f3df3629cb0002bfdaa57fdc9
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88938
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-15 06:39:23 +00:00
Avi Uday
be3148575e mainboard/google/ocelot: Set OEM footer logo bottom margin
Apply a `logo_bottom_margin` of 100 pixels to the `common_soc_config`
for Ocelot. This configures the OEM footer logo to be rendered 100
pixels above the bottom edge of the screen.

Change-Id: Ia7436ab267f91771ee2c0e91743ddaf43280cc87
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88936
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-15 06:39:09 +00:00
Ivy Jian
092fca3210 mb/google/fatcat/var/kinmen: Add support ALC1320 Smart Amp
Enable Realtek ALC1320 as speaker Amplifier.
Use ALC721 as codec and ALC1320 as Amplifier on SoundWire Link 3.

BUG=b:435094908
TEST=emerge-fatcat coreboot
1. Set fw_config AUDIO bits to AUDIO_ALC1320_ALC721_SNDW
2. Check the SSDT.dsl:
   PCI0.HDAS.SNDW including 0x000331025D072101 & 0x000332025D132001

Change-Id: I82c0fb014c4b5ee5eec378acf0843893dd7aa2ac
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89036
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-15 02:12:28 +00:00
Matt DeVillier
4ba1b615db mb/starlabs/starlite_adl: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments.

TEST=build/boot Win11, Ubuntu 25.04 on Starbook RPL, verify all audio
inputs/outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: I54fb60026de953db7dc85ee64823b9584af04a69
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89060
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-14 18:10:09 +00:00
Matt DeVillier
ca8d6a7512 mb/starlabs/starfighter/rpl: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments. Update the verb count.

TEST=build/boot Win11, Ubuntu 25.04 on Starfighter RPL, verify all audio
inputs/outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: I2b96318df4431bc155af5a8f92935900031e0bfa
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89084
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-14 18:09:36 +00:00
Matt DeVillier
c30163dace mb/starlabs/starbook/tgl: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments. Update verb count. Add HDA verbs for Intel IGD HDMI audio
output.

TEST=build/boot Win11, ubuntu 25.04 on Starbook TGL, verify all audio
inputs/outputs function as expected. Verify verbs loaded via cbmem log.

Change-Id: Id9a08c8bd32e0c75f92e8d6b3b8ff6c033608a4f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89083
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-14 18:09:04 +00:00
Matt DeVillier
15111ebb21 mb/starlabs/starbook/rpl: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments.

TEST=build/boot Win11, Ubuntu 25.04 on Starbook RPL, verify all audio
inputs/outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: I4ccc604f7db4ec85d8e5f311c7f8fd5c913ec04b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89082
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-14 18:08:25 +00:00
Matt DeVillier
6d6a280ab2 mb/starlabs/starbook/mtl: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments. Group raw verbs in sets of 4 to make verification of verb
count easier.

TEST=build/boot Win11, ubuntu 25.04 on Starbook MTL, verify all audio
inputs/outputs function as expected. Verify verbs loaded via cbmem log.

Change-Id: I0805d943009de1963c8e6da5acf56dd7a5ea83ac
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89081
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-14 18:07:43 +00:00
Matt DeVillier
543f6c2a52 mb/starlabs/starbook/kbl: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments. Group raw verbs in sets of 4 to make verification of verb
count easier.

TEST=build/boot Win11, Ubuntu 25.04 on Starbook KBL, verify all audio
inputs/outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: I3cf96ce12250d6a5cd7afa39070681606266fb2b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89080
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-09-14 05:59:20 +00:00
Matt DeVillier
6d7c8f5477 mb/starlabs/starbook/cml: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments. Update the verb count.

TEST=build/boot Win11, Ubuntu 25.04 on Starbook CML, verify all audio
inputs/outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: I1ee05afe9805ca6531d49150f1ead8722c4393b2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89079
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-14 05:58:15 +00:00
Matt DeVillier
515f566840 mb/starlabs/starbook/adl_n: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments. Group raw verbs in sets of 4 to make verification of verb
count easier.

TEST=build/boot Win11, Ubuntu 25.04 on Starbook ADL-N, verify all audio
outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: Ie0961a6ebc4aa8df0c2fedeff8fd5bacd16fc01e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89078
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-14 05:57:11 +00:00
Matt DeVillier
4b61d4de5f mb/starlabs/starbook/adl: Use macros for HDA verb table
Rework the HDA verb table using macros. Explicitly disable all
pin widgets not used. Use consistent formatting and verbiage in
comments.

TEST=build/boot Win11, Ubuntu 25.04 on Starbook ADL, verify all audio
inputs/outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: I728c835361f1fa6fe813255973b33131e2a008e2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89077
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-14 05:38:45 +00:00
Jeremy Compostella
8bc0eddf15 soc/intel/pantherlake: Add support for a new Panther Lake B0 SKU
This commit adds support for a new Panther Lake B0 SKU CPUID c06c3.

BUG=b:444497427
TEST=Successfully boot a fatcat device with new Panther Lake B0.
     coreboot displays the following log:
     CPU: ID c06c3, Pantherlake B0, ucode: 0000010c

Change-Id: Id2c1caf8d6845bb16a94314c4e9a214def06efee
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89150
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-13 22:00:24 +00:00
Sergii Dmytruk
2b84d26f55 payloads/edk2: configure capsule updates
This requires version of EDK2 in use to understand those defines, but
the build isn't affected negatively if they aren't handled.

Upstream EDK2 has CAPSULE_SUPPORT for a while and modifications that
make it enable FMP capsules are already merged to be part of the next
stable release (the one after edk2-stable202508 which should be
edk2-stable202511).

The `sed` part is updated because GUID contains dashes just like option
names, so need to take leading spaces into account to avoid processing
dashes in values.  This doesn't cover all possible cases, but should be
good enough.

Change-Id: I1c684cb8929842a5d3c4b06e8a9c0a748470ea41
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83682
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
2025-09-13 15:42:51 +00:00
Bora Guvendik
f3211e9639 soc/intel/pantherlake: Add support for Acoustic Noise Mitigation UPDs
SlowSlewRate, AcousticNoiseMitigation and FastPkgCRampDisable upds
can be overwritten with this patch.

BUG=none
TEST=Able to override the acoustic noise UPDs.

Change-Id: I5bfa98834f8d7cfcaab3fdbb7dde914d78529581
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89123
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-09-13 15:42:06 +00:00
Eren Peng
2c03fd06a9 mb/google/trulo/var/kaladin: Disable ISH via firmware config
Kelsier shares the same firmware with Kaladin so coreboot loads the same
loader firmware to ISH. Since Kelsier is a sensor-less design, change
it to load lite_ish.bin and disable ISH related GPIOs depending on
firmware config.

BUG=b:441613379
TEST=flash and boot to DUT, check suspend function works normally on
kelsier

Change-Id: I04c77db813fcd993217b5c366872cc583e265939
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89067
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-09-13 15:41:45 +00:00
Sowmya Aralguppe
f8574f7145 soc/intel/ptl: Add Wildcat Lake SKU power map
Add mapping of different SKUs based on CPU ID and TDP values.
Add PowerLimits (PL) values.
Add i_trip value for Fast Vmode.

Note: The i_trip value, the value at which the Voltage Regulator (VR)
or SoC will trigger a protective action such as throttling or
entering Fast Vmode is, due to not being documented, currently set at
70% of the maximum current the VR is designed to support for a rail.
The actual i_trip value to be updated once it is available.

Ref=858124 Power Delivery Guide Rev1p0
    830097 Powermap Rev1p1

BUG=b:433211504
TEST= Build Ocelot and verify it compiles without any error.
check CPU log for the following error

    [ERROR]  Could not find the SKU power map

With the current patch this error line is not seen in the CPU log
anymore.

Change-Id: I8c54efc8eb360ed6f814a336448bb204d5ab0268
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88858
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-by: Usha P <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-09-13 15:41:21 +00:00
Bora Guvendik
b1fe32dd9e mb/{intel,google}/{fatcat,ptlrvp}: Update GPP_A15 GPIO configuration
As per Intel document 853127, EPD_ON_GCD_OUT (previously GPP_A15)
is no longer available for other functions. Updated GPIO
configuration accordingly.

Reference: Intel doc 853127

BUG=none
TEST=Build and boot test on fatcat hardware

Change-Id: Ie4a3967ceecd10905ba0424d85d8f1392625bf16
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89103
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-13 04:37:18 +00:00
Ivy Jian
6074ca18d3 mb/google/ocelot: Create matsu variant
Create the matsu variant of the ocelot reference board by copying
the ocelot files to a new directory named for the variant.

BUG=b:443612246
TEST=1. util/abuild/abuild -p none -t google/ocelot -x -a
        make sure the build includes GOOGLE_MATSU
     2. Run part_id_gen tool without any errors

Change-Id: I81d010fdda927db56d7b41ddc527c1c40b2cf768
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89099
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-12 16:29:06 +00:00
Derek Huang
76e0f64035 mb/google/brya: Update GPIO_PCH_WP for trulo variants
Update GPIO_PCH_WP configuration for trulo varaints as the value
in the baseboard is changed.

BUG=b:443677716, b:435612546
TEST=Build uldrenite, pujjocento and orisa firmware successfully

Change-Id: I7fb35091000b1df1b8008f26488e9290be3efe2d
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89118
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-09-12 16:28:54 +00:00
Derek Huang
b69e66721d mb/google/brya: Update GPIO_PCH_WP configuration in trulo baseboard
Change GPIO_PCH_WP from GPP_E3 to GPP_E12 to align with trulo
reference hardware schematic.

BUG=b:443677716, b:435612546
TEST=Build pujjolo and kaladin firmware and verify SPI ROM
     write-protect

Change-Id: I935d74cb5447f45f297fe45506c14623095d7127
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89117
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 16:28:50 +00:00
Luca Lai
17c623277b mb/google/trulo/var/pujjolo: Change stylus settings
Change stylus gpio and wake source setting to let eventlog could
show GPE #12 message when interrupt suspend by stylus.

BUG=b:439761057
TEST=Build and boot to OS, do the suspend_stress_test and check
eventlog show wake source information. And do warmboot/coldboot/
suspend 500 times stress test all pass.

Change-Id: I8d16e867fd56f1072b09bb6ab71b6d08a7d38376
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89129
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 16:28:30 +00:00
John Su
7f74155aa4 mb/google/trulo/var/uldrenite: Select
USE_UNIFIED_AP_FIRMWARE_FOR_UFS_AND_NON_UFS

Uldrenite14 need to set this config since we use unified firmware
for UFS and eMMC skus.

BUG=b:437006063
TEST=emerge-nissa coreboot

Change-Id: I86f41a4e6c9c136f031eb3813efa3c06043237b9
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88932
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 16:28:00 +00:00
John Su
f373faa9c8 mb/google/trulo/var/uldrenite: Add fw_config probe for storage
Add FW Config probe for uldrenite14 storage.

BUG=b:437006063
TEST=emerge-nissa coreboot

Change-Id: I744a4e32702175f9c42c884bc76c69a968e74678
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88877
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-09-12 16:27:55 +00:00
Jeremy Compostella
a262cdbc27 mb/intel/ptlrvp: Add wake configuration to cnvi_bluetooth
This commit adds a wake configuration to the cnvi_bluetooth device for
all the ptlrvp board variants. The "wake" setting is now registered to
"GPE0_PME_B0" using the common CNVi block. This enhancement ensures that
the cnvi_bluetooth device can properly wake the system.

TEST=Able to wake up the device from a low power state using a keyboard
     Bluetooth device.

Change-Id: I4c17ca926a4409cedfaef24a802330ef463703ac
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89061
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
2025-09-12 14:06:35 +00:00
Jeremy Compostella
1c0186f280 soc/intel/common/block/cnvi: Add CNVi chip configuration support
This commit introduces a new configuration structure for the
Connectivity Integration (CNVi) block in Intel SoCs.

The added soc_intel_common_block_cnvi_config structure, located in
chip.h, defines a wake pin that specifies the ACPI Power Resources for
Wake (_PRW), enabling wake-up capabilities from sleep states.

This enhancement provides a structured way to handle CNVi
configurations, which is crucial for managing device power states and
ensuring proper wake functionalities as defined by ACPI standards.

Change-Id: Ide6dea04cb089d73fe6aad9fb91044f9eb43edc6
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89056
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-09-12 14:06:19 +00:00
Dmytro Aleksandrov
bdbe8b9b6f util/kconfig: Fix xconfig
The QT based xconfig util is broken for several reasons.

1. On systems with qt6 (which is a majority on modern distros),
the qconf-cfg.sh script appends a c++17 flag to the output file,
which makes the value of $(HOSTCXXFLAGS_qconf.o) - a multiline string.
This causes problem during compiler invocation, thus we can observe:
  'g++: fatal error: no input files'
Flattening the HOSTCXXFLAGS_ with $strip function resolves the problem

2. The missing Qt's Meta-Object file "qconf-moc.cc",
which should be autogenerated during build by invoking "moc" tool.
The current set of recipes in Makefile.mk aren't triggering
the moc generation. Explicitly adding "qconf-moc.o" target,
with dependency on "qconf-moc.cc" resolves the problem.

3. "$(call if_changed,moc)" used to invoke "moc" tool isn't working,
due to missing "if_changed" macro.
Replace it with direct call to "cmd_moc" in "Makefile.real".
Bringing the full implementation of "if_changed" seem to be impractical,
as it uses too many dependent functions and macros.

BUG=https://ticket.coreboot.org/issues/518

Change-Id: I7eb1e71aeb6a92b8d3c194a369bd3bd6dc708863
Signed-off-by: Dmytro Aleksandrov <alkersan@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89006
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 14:05:48 +00:00
Rui Zhou
241b940ac7 mb/google/nissa/var/rull: add RAM ID H58G56CK8BX146
Add RAM ID for DDR H58G56CK8BX146

BUG=b:442974182
BRANCH=None
TEST=boot to kernel success

Change-Id: I52252b1967898be949eddbf9e814853de3bcae9f
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89130
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-09-12 14:05:26 +00:00
Hualin Wei
599d660c4b mb/google/fatcat: Enable support for Realtek EC
Add support for Realtek EC on fatcat board.

BUG=b:438785495
TEST=emerge-fatcat coreboot

Change-Id: Id289e243640dbe86f989114bfc3a8d969cfbe1e0
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88894
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 14:05:18 +00:00
erin liang
89a3ae3d80 mb/google/trulo/var/pujjolo: Update GPP_D15 setting
During the ACPI initialization phase at boot, the driver
is pulled, causing the LED of the WFC camera flash.
This issue can be resolved by replacing GPP_D15 with
GPP_D16 in the mipi settings.

BUG=b:434106137
TEST= Build and boot to OS, and check the Chromebook
logo will not flash

Change-Id: I2fce7f7c9c5c852efbdef3e5ef757cab3433f4c6
Signed-off-by: erin liang <erin.liang@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89014
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 14:04:48 +00:00
Subrata Banik
b849c9daa1 3rdparty/qc_blobs: Update submodule to upstream main
Updating from commit id a252198:
2025-05-23 16:29:11 2023 +0530 - (sc7180/boot: Update qclib blobs binaries from 50 to 55)

to commit id 6379308:
2025-09-10 15:44:44 2025 +0000 - (qc_blobs: Add Qualcomm x1p42100 and Hamoa blobs)

This brings in 3 new commits:
6379308 qc_blobs: Add Qualcomm x1p42100 and Hamoa blobs
c9bf12e qc_blobs: Initial commit for x1p42100
0edd032 sc7180/qtiseclib: Update qtiseclib blobs and release notes from 69 to 71

Change-Id: Iff930f6dd2bb30be197358d078132babd4d6652e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89141
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 12:46:46 +00:00
Matt DeVillier
8159b2e06c device/azalia_codec: Add header with enums for Realtek node IDs
Add enums for the output pin widget node IDs for Realtek ALC256 and
ALC269 codecs, to be used in HDA verb tables.

Sources:
ALC256-CG Datasheet Rev 1.1
ALC269-VB Datasheet Rev 0.14N
ALC269-VC Datasheet Rev 0.83

Change-Id: I1b60dd1ce2c1c790e22058d10234856f8b9b9416
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89075
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-09-12 06:32:54 +00:00
Ren Kuo
18ae0c48e1 mb/google/fatcat/var/moonstone: Support new schematic changes
Add FW_config support to distinguish schematic changes.
Refer to schamtics MB_V20250826 and DB_V20250821

BUG=b:442964982
TEST=emerge-fatcat coreboot

Change-Id: I0dd354cb1512521474a929bf4d1cfc786eb0a33c
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89128
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 03:15:40 +00:00
David Wu
c1f76dd87e mb/google/brya/var/dochi: Add H58G56CK8BX146 to RAM ID table
Add the new memory support: Hynix H58G56CK8BX146

BUG=b:444335746
BRANCH=firmware-brya-14505.B
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Id473adafffc1dabcb8f8e9a1f548966a0ba5a334
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89147
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-12 03:14:54 +00:00
David Wu
164b4a1d90 mb/google/nissa/var/craask: Add parade touchscreen support
This change adds the necessary configuration for the parade
touchscreen (PRT3406) device, connected to I2C bus 24.

It includes settings for:
* HID descriptor
* Device description
* IRQ configuration
* Detection
* Reset, stop and enable GPIOs with their respective delays
* Power resource handling
* HID descriptor register offset

BUG=b:431660019
TEST=emerge-nissa coreboot and parade touchscreen can work well

Change-Id: Iaaf740032de973461b616e186ac628436cbbc2a5
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89009
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
2025-09-12 03:14:32 +00:00
Hari L
492826771e mb/google/bluey: Enable USB support
BUG=b:440996061
TEST=Ensure that pipe/utmi clocks are ON and check
port link status to confirm USB connect.

Change-Id: If0997ecb43eb5f687f1416abe42764fa31b1eaf5
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89146
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-11 18:51:29 +00:00
Hari L
96eb6a3ac1 soc/qualcomm/x1p42100: Add USB Type-A Host support
Add support for HS-PHY/SS-PHY and DWC3 USB controllers
for USB Type A Host support.

TEST = Ensure that pipe/utmi clocks are ON and check
port link status to confirm USB connect.

Change-Id: Ife08801062da5a8f87491b020b3828c246aadea8
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89132
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-11 18:51:20 +00:00
David Wu
2908a955e5 mb/google/rex/var/kanix: Add H58G56CK8BX146 to RAM ID table
Add the new memory support: Hynix H58G56CK8BX146

BUG=b:443613820
TEST=Run part_id_gen tool and check the generated files.

Change-Id: I9fb1b3fb212f0c45e73103d1e13a3abc1e3a3d74
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89104
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-11 08:59:02 +00:00
wu.garen
7fc414c886 mb/google/trulo/var/kaladin: Enable EC keyboard backlight
Enable EC keyboard backlight for kaladin.

BUG=b:439234109
TEST=emerge-nissa coreboot chromeos-bootimage
     confirm KBLT device appear in DSDT table

Change-Id: I981ca717405a84794390388bf62a97d1c23f33a7
Signed-off-by: wu.garen <wu.garen@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88970
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-11 03:56:37 +00:00
Ren Kuo
859cc31e3a mb/google/brox/jubilant: Generate RAM IDs
Generate RAM IDs of lp5 memory Hyinx H58G56CK8BX146

BUG=b:424055256
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Ieb4cf2a317afaee81add0c99557f8a4cdbba042f
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89101
Reviewed-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-09-11 02:43:59 +00:00
Ren Kuo
a6c15129a7 mb/google/fatcat/var/moonstone: Generate SPD ID for memory module
Add the memory parts: H58G66CK8BX147 (Hynix) in mem_parts_used.txt
,and generate SPD id for the parts.

BUG=none
TEST=Run part_id_gen tool and check the generated files.

Change-Id: I485d8f947b6d8efc5b43ea1ddf1e4187eb4cf2bb
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89119
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-11 02:43:50 +00:00
Jeremy Compostella
1028f3e846 soc/intel/pantherlake: Add Bluetooth to PME wake source mapping
This commit adds support for logging Bluetooth device wake events in the
Pantherlake platform. It improves visibility into wake events triggered
by Bluetooth devices, which is crucial for debugging and power
management analysis.

Change-Id: I36bb08075e79ab3151cfdaf41ace2121aaac0973
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89057
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-10 21:39:20 +00:00
Jeremy Compostella
3f926bc110 commonlib/bsd: Add Bluetooth wake source in ELOG event data
This commit introduces a new constant, ELOG_WAKE_SOURCE_PME_BLUETOOTH,
with the value 0x31 to represent Bluetooth as a wake source in the ELOG
event data structure. This change facilitates diagnostics and
event logging related to Bluetooth activity.

The cbfstool eventlog has been updated to include "PME - BLUETOOTH" in
the wake source types for event data printing.

Change-Id: Ib628502ddcccb4a781394a39b2aee6efa05ecf84
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89059
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-09-10 21:39:05 +00:00
Jeremy Compostella
84ec1493a3 drivers/wifi/generic: Fix typo in header guard comment
The header guard comment in the chip.h file was incorrect, using
_GENERIC_WIFI_H_ instead of the correct _WIFI_GENERIC_H_. This
commit corrects the typo to ensure consistency.

Change-Id: I00a93e811608ddf449065bc92441648f7332fc4b
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89055
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
2025-09-10 21:38:51 +00:00
Hari L
2e2490256f soc/qualcomm/x1p42100: Add USB clock support for X1P42100
Add support for USB controller, PHY and NOC clocks.

The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=Verify the boot process on the X1P42100 by creating an
image.serial.bin. After booting, confirm that the USB clocks are
on by inspecting the Clock Branch Control Register (CBCR) for
each clock. The status is indicated by BIT31, where a low value
means the clock is on.

Change-Id: Ic78e75c2c9963311530172d802aabb03f540060c
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88906
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-10 16:01:12 +00:00
Patrick Rudolph
159afbc5d5 lib/lzmadecode: Increase decoding speed by 30%
When CONFIG_SSE is enabled use the "prefetchnta" instruction to load
the next chunk of data into the CPU cache. This only works when the
input stream is covered by an MTRR. In case the input stream is read
from the SPI ROM MMIO area it allows to keep the SPI controller
busy fetching new data, which is automatically placed into the CPU
cache, resulting in less I/O wait on the CPU side and faster
decompression.

When the input stream is not cachable the prefetch instruction has no
effect.

The SPI interfaces on the tested device runs at 100Mbit/s and the
Sandy Bridge mobile CPU has quite some work to do decompressing the
LZMA stream.
That gives the SPI controller enough time to preload data into the
cache.

The payload of 1100213 bytes is now read in 164msec, resulting in an
input bandwidth of 53MBit/s.

TEST=Booted on Lenovo X220 and used cbmem -t:
Before:
  16:finished LZMA decompress (ignore for x86)   1,218,418 (210,054)
After:
  16:finished LZMA decompress (ignore for x86)   1,170,949 (164,868)

Boots 46msec faster than before or 30% faster than before.

Change-Id: I3b2ed7fe0883f271553ecd1ab4191e4848ad0299
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88813
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-09 14:40:45 +00:00
Sean Rhodes
0b8ad35ac1 mb/starlabs/byte_adl: Adjust the VBT
* Reorder Child Device mappings to prioritise EFP displays.
* Disable LFP1 as it is not present

Change-Id: Ib998bc6df5430d08f9ded4d1e84f5aaa57b8be3d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89097
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-09 14:39:03 +00:00
Sean Rhodes
d3cea61907 mb/starlabs/starlite_adl: Adjust the VBT
* Reorder Child Device mappings to prioritise EFP displays.
* Change eDP panel colour depth from 18-bit to 24-bit (8 bpc).
* Change minimum brightness from 6 to 0.
* Clear unused flags

Change-Id: Ifca1f55962ae312073eddcfc74134795cabc884a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89096
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-09 14:38:57 +00:00
Sean Rhodes
3507992d1d mb/starlabs/starbook/adl_n: Adjust the VBT
* Reorder Child Device mappings to prioritise EFP displays.
* Disable EFP3 as it is not present
* Change eDP panel colour depth from 18-bit to 24-bit (8 bpc).
* Change POST brightness from 255 to 100.
* Change minimum brightness from 6 to 0.
* Change DPST aggresiveness to 6 to 2.
* Enable PSR

Change-Id: I895fc61dff120e0ae989f45b37c0c5cde3c5e2ce
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89095
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-09 14:38:52 +00:00
wangzhao5
05cd5a7ab9 mb/google/nissa/var/telith: Generate RAM IDs for telith
Generate RAM ID for H58G56CK8BX146 and H58G66CK8BX147

BUG=b:431945026
BRANCH=None
TEST=boot to kernel success

Change-Id: I9d90fbb1b0d1ffafff53755d2b3e95241c88ac2d
Signed-off-by: wangzhao5 <wangzhao5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89026
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-09 14:38:43 +00:00
Hari L
a0bdf3961c soc/qualcomm/common: Add clock reset function support
Implements clock-based reset control via CLK_CTL_ARES_SHFT bit
in CBC, enabling reset of cores receiving CBC-generated clocks.
This is required for proper initialization of clocks needed for
subsystems like USB Type-A.

TEST: Verified on x1p42100 CRD by asserting CLK_ARES through CBC
register writes during USB Type-A enablement. Confirmed USB
enumeration and reset functionality serial console.


Change-Id: If878994eaa24a21061470f962a4883f29be5476f
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
:wq
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89102
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-09 05:49:35 +00:00
Zexin Wang
cf11722e68 soc/mediatek/mt8189: Enable tracker debug hardware
Tracker is a debugging tool, including AP/INFRA tracker. When bus
timeout occurs, the system reboots and latches some values which could
be used for debug. On MT8189, this feature is enabled by using the
common driver tracker_v3.

BUG=b:379008996
BRANCH=skywalker
TEST=When detected bus timeout, tracker show:
**Dump systracker aw debug register start**
0x10208ae0:0x0:0x0:0x0:0x0:0x0
0x10208ae4:0x0:0x0:0x0:0x0:0x0
0x10208ae8:0x0:0x0:0x0:0x0:0x0
0x10208aec:0x0:0x0:0x0:0x0:0x0
0x10208af0:0x0:0x0:0x0:0x0:0x0
0x10208af4:0x0:0x0:0x0:0x0:0x0
0x10208af8:0xc0000020:0x5:0x101e80:0x0
0x10208afc:0xc0000120:0x100:0x1cc10040
**Dump systracker debug register end**

Signed-off-by: Zexin Wang <ot_zexin.wang@mediatek.corp-partner.google.com>
Change-Id: Icb34c87adc099172abdfc9868ff8e30287e61be0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89033
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-09 03:42:01 +00:00
Zexin Wang
382a7caff3 soc/mediatek/mt8196: Refactor tracker driver to support new platform
Extract the common parts of the mt8196 tracker driver into tracker_v3 to
improve code reusability.

BUG=b:379008996
BRANCH=skywalker
TEST=build passed.

Signed-off-by: Zexin Wang <ot_zexin.wang@mediatek.corp-partner.google.com>
Change-Id: If71bffe03cd2c30a0e9b3057c39667c1c2fdcb62
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89032
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-09 03:41:38 +00:00
Varun Upadhyay
97f9ebb5c2 mb/google/ocelot: Create ojal variant
Create the ojal variant of the ocelot reference board by copying the
ocelot files to a new directory named for the variant.

BUG=b:437459757
TEST=1. Build emerge-ocelot
     2. Run part_id_gen tool without any errors

Change-Id: Ic2fc86d89facae21b9bed898ebe518d316d953da
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88600
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-09-08 22:20:36 +00:00
Sean Rhodes
ef1d48ee1d util/lint: Don't check for Kconfig.name in common directory
`src/mainboard/*/common` doesn't need a Kconfig.name, so don't check
for one.

Change-Id: I6c69c174287f7f068e28ed9c33b9b5542c87ca60
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89051
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-09-07 19:27:37 +00:00
Sean Rhodes
5cb36eb16c util/lint: Don't check for board_info.txt in common directory
Adjust the linter to skip `common` directories, as a board_info.txt
serves no purpose there.

This also changes `sort | uniq` to `sort -u` for efficiency.

Change-Id: I29639d8b620bcd4f2f7032802f375d79ac391535
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89050
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-07 19:27:32 +00:00
Michał Żygowski
46b03e682c util/amdfwtool: Handle address mode properly for Turin
Trying to read a firmware binary for Turin platform results in
"Invalid address(41400) or mode(0)" error. The utility does not
respect the address mode set by the directory header. The address
mode of th entries is valid only if the address mode of the directory
is equal to 2 or 3.

Check the address mode of the directory and use it for entries only
when its value is less than 2.

TEST=Successfuly parse vendor BIOS for Gigabyte MZ33-AR1.

Change-Id: I479bc846bfb334231fdc707274a8ac44b6c384d4
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89039
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
2025-09-05 23:58:11 +00:00
Alexander Goncharov
97cf4a1919 util/amdfwtool/amdfwread: fix offset decision for PSP/BIOS directory lookup
According to AMD documentation, starting from Family 17h Models
00h-0Fh, the PSP on-chip boot loader reads the PSP directory pointer
from offset 0x14 in the Embedded Firmware structure, replacing the
previous offset 0x10.

The docs do not specify any special value indicating a change of
offset. Some AMI binaries use a zero address in this directory field,
which caused incorrect offset handling.

Change-Id: I67ab763d070a9580a8269b525b203c932c5b1b95
Signed-off-by: Alexander Goncharov <chat@joursoir.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88868
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2025-09-05 23:58:01 +00:00
Alexander Goncharov
73dd7bb046 util/amdfwtool/amdfwread: add initial parsing for EFW structure
Intel ifdtool can dump the Intel Firmware Descriptor, which is helpful
for debugging and inspecting firmware binaries. This utility lacked
similar functionality, so this patch introduces a `--dump` CLI option
to display decoded information from the embedded firmware header.

Currently, the output includes SPI frequency and read mode for various
AMD family models.

Change-Id: Ideb1076f1d580496dac293882007cfa4672d188b
Signed-off-by: Alexander Goncharov <chat@joursoir.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88610
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-05 23:57:53 +00:00
Elyes Haouas
d4da533473 smbios.h: Update smbios_memory_type
Add MRDIMM memory device type.

Change-Id: I3cfa3b9278ecebd4bc67c95dd2fb794556e80922
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88915
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-05 23:57:40 +00:00
Elyes Haouas
183589dcbd smbios.h: Update smbios_memory_form_factor
Add CAMM, CUDIMM and CSODIMM from factors.

Change-Id: I5719998583da9312f4de80a4fbe79f0b3cf0bfba
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88914
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 23:57:34 +00:00
Sean Rhodes
58726e58e4 mb/starlabs/starbook/mtl: Adjust the VBT to fix hot plug
* Reorder Child Device mappings to prioritise EFP displays.
* Enable DRRS and DMRRS.
* Change eDP panel colour depth from 18-bit to 24-bit (8 bpc).
* Change minimum brightness from 6 to 0.
* Enable PSR
* Clear unused flags

Change-Id: I96429f0848bc810d35028f31720911d2636db681
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89053
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 23:57:24 +00:00
Bora Guvendik
80df8c336f mb/intel/ptlrvp: Update Kconfig for ptlrvp_chromeec4s and ptlrvp4es support
Added support for new mainboard configurations, `ptlrvp_chromeec4es`
and `ptlrvp4es`, to the Intel PTLRVP platform. These configurations
extend the existing options for pre-production silicon of the
Panther Lake SoC.

BUG=none
TEST=Build with new configurations to ensure successful compilation and
correct feature selections.

Change-Id: I3f716ab71a97d02b1694858d966f8111f18adff3
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88997
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 23:57:16 +00:00
smadhesu
ed59c1de34 soc/qualcomm/x1p42100: Update TF-A memory reservation
This patch updates the DRAM memory reservation range for TF-A
to align with the latest Bluey memory layout specifications.

TEST=Verified boot up on google/bluey.

Change-Id: Ifb67e591d0f3d28cd6b0856198b29af49c2aab4c
Signed-off-by: smadhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89029
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-05 19:17:54 +00:00
Jeremy Compostella
56dbafcff4 soc/intel/pantherlake: Remove UFS support
Unified Flash Storage (UFS) has been descoped from Panther Lake
configurations, limiting UFS functionality to Wildcat Lake. This change
removes Panther Lake's UFS configuration options and references,
ensuring proper alignment with the current product specifications.

BUG=b:442891168

Change-Id: Ib7e7498a57c8fbc924d6dcf70e374611733918c0
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88988
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
2025-09-05 19:14:15 +00:00
Jeremy Compostella
5b46caef93 mainboard/intel/ptlrvp: Remove UFS support
Unified Flash Storage (UFS) has been descoped from Panther Lake
configurations. This commit removes UFS-related configurations and GPIO
pad settings across relevant files.

BUG=b:442891168

Change-Id: I5de2878aa44e2d48879b9ecf274aebedfbf551ca
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88989
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 19:14:04 +00:00
Jeremy Compostella
621633af9b mainboard/google/fatcat: Remove UFS support
Unified Flash Storage (UFS) has been descoped from Panther Lake
configurations. This commit removes UFS-related configurations and GPIO
pad settings across relevant files.

BUG=b:442891168

Change-Id: Icf66dfc736a5b3a45c324fa494e7cf44b0178593
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88987
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
2025-09-05 19:13:52 +00:00
Matt DeVillier
5e2f5050ba mb/starlabs/starbook/kbl: Update HDA verb table
Remove presence detection flag for the DMIC and internal speakers.
While we're at it, fix the (non-functional) descriptive flags for
those two verbs as well. Remove unnecessary line continuations.

TEST=build/boot Win11 and Linux on Starbook KBL, verify speaker and
intermal mic working, as well as headphones/jack mic when plugged in.

Change-Id: I4d4a41736faac944b3165a56fe5846f24c20f549
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89044
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-09-05 19:05:38 +00:00
Matt DeVillier
4626c053dd mb/starlabs/starbook/adl_n: Update HDA verb table
Remove presence detection flag for the DMIC and internal speakers.
While we're at it, fix the (non-functional) descriptive flags for
those two verbs as well. Remove unnecessary line continuations.

TEST=build/boot Win11 and Linux on Starbook ADL-N, verify speaker and
intermal mic working, as well as headphones/jack mic when plugged in.

Change-Id: If91c723b6a2fa145c640e06a21198c5ff30a34f2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89043
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-09-05 19:05:33 +00:00
Matt DeVillier
6f11c31354 mb/starlabs/starbook/mtl: Update HDA verb table
Remove presence detection flag for the DMIC and internal speakers.
Update the subsystem ID to match that used by the AMI UEFI Firmware.
While we're at it, fix the (non-functional) descriptive flags for
those two verbs as well. Remove unnecessary line continuations.

TEST=build/boot Win11 and Linux on Starbook MTL, verify speaker and
intermal mic working, as well as headphones/jack mic when plugged in.

Change-Id: I7621a6b57fb525892e84d06470eab5a9bdd32065
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89042
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 19:05:29 +00:00
Sean Rhodes
b748a5e10b mb/starlabs/{starbook,starfighter}/rpl: Disable GPIO override
The Raptor Lake FSP doesn't seem to honour not touching GPIOs, so set
this to avoid major issues such as the SSD not being recognised and
causing an indefinite hang.

Change-Id: I50edc788c7a4c6ee5a2d74aa76b9e33fb56ed15e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89052
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-05 19:03:49 +00:00
Subrata Banik
29ca9c8bfa mb/google/bluey: Disable charging during normal boot
This commit adds a call to disable_slow_battery_charging() in the
lb_add_boot_mode function.

The logic ensures that charging is disabled if the system is booting in
a normal mode, where neither the LB_BOOT_MODE_LOW_BATTERY nor
LB_BOOT_MODE_OFFMODE_CHARGING flags are set.

This prevents unintended charging by the AP firmware when the device
is not in a low-battery state or booting from off-mode charging to
avoid battery unmanaged health related problem.

TEST=Able to build and boot google/quenbi.

Change-Id: I648dc72a35ad2773f803792248fa87351333828f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89023
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 04:23:08 +00:00
Subrata Banik
e82338b0a2 mb/google/bluey: Add boot mode to coreboot tables
This change implements `lb_add_boot_mode` for the `bluey` mainboard,
which adds the platform's boot mode information to the coreboot tables.

This is done by checking the EC (Embedded Controller) to determine if
the battery is below a critical threshold.

If the battery is critically low, the `LB_BOOT_MODE_LOW_BATTERY` flag
is set. This information is then passed to the payload, allowing it to
take specific actions, such as displaying a low-battery charging
screen.

TEST=Able to build and boot the `bluey` mainboard.

Change-Id: I473cec7645954e753e160467aa8b83b67b28ab76
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88994
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 04:23:01 +00:00
Subrata Banik
893a2b008a libpayload: Add coreboot boot mode table
This commit adds a new coreboot table, CB_TAG_BOOT_MODE, to pass
platform boot mode information to the payload.

The new table defines flags for low-battery mode and off-mode charging,
which are essential for a payload to properly initialize the charger
driver.

The cb_parse_boot_mode function is added to read this information, and
the sysinfo_t structure is updated to store the parsed boot mode data.

This ensures that the payload can accurately determine the system's
power state at boot and payload operations are also in sync with the
boot firmware.

The following scenarios were tested and verified:

Scenario 1: Low-battery, no charger
 - coreboot detects the low-battery state and performs an immediate
   shutdown after displaying the low-battery splash screen.

Scenario 2: Low-battery, charger attached
 - coreboot detects the low-battery state but continues booting because
   a charger is present. The payload receives the low-battery
   information (using the same source as coreboot) and correctly
   initiates the charging process.

Scenario 3: Off-mode charging
 - The system boots directly from an S5 state due to a charger being
   plugged in. coreboot detects the off-mode state, skips the firmware
   splash screen, and hands off control to the payload, which then
   starts charging.

Scenario 4: Normal boot
 - The system boots without any low-battery or off-mode conditions.
   coreboot and the payload both detect a normal boot (using the same
   information), bypass charging initialization, and proceed to boot the
   operating system.

TEST=Able to build and boot on google/quenbi device and verify the boot
mode flag is correctly passed.

Change-Id: Iec25c6fdfcdc5ea7c397d2430ac7b545e1e068f2
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89015
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-05 04:22:27 +00:00
Subrata Banik
a45c8441af lib: Add boot mode information to coreboot tables
This change introduces `LB_TAG_BOOT_MODE` to the coreboot tables to
convey platform boot information to the payload. The new `lb_boot_mode`
struct uses `enum boot_mode_t` to specify whether the device is booting
in `normal mode`, `low-battery mode` or `off-mode charging`.

This is crucial for platforms where the Application Processor (AP)
manages the charging solution, as it provides the necessary context for
the payload's charger driver. By passing this data through the coreboot
table, we avoid redundant implementation and ensure consistent battery
and charging information is available across both coreboot and the
payload.

A new weak function, `lb_add_boot_mode`, is also introduced. This
function can be overridden by platforms that require this data to add
the boot mode information to the coreboot table.

TEST=Able to build and boot google/quenbi.

Change-Id: I5aea72c02b4d6c856e2504f4007de584c59ee89f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88992
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-05 04:22:21 +00:00
David Wu
c73f30e74b mb/google/nissa/var/riven: Add H58G56CK8BX146 to RAM ID table
Add the new memory support: Hynix H58G56CK8BX146

BUG=b:442335706
BRANCH=firmware-nissa-15217.B
TEST=Run part_id_gen tool and check the generated files.

Change-Id: I8002c2c8e89882f4a705c7aae881544009f84e3b
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89013
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-09-04 17:14:04 +00:00
Appukuttan V K
8c717df03a soc/intel/ptl: Update Wildcat Lake PCIe root port numbering
This commit updates the PCIe root port numbering for Wildcat Lake
as per the revised EDS document. This update ensures alignment with
the PCIe root port architecture.

Current:
- Bus-Device-Function: 0h – 6h – 0h = Root Port 5
- Bus-Device-Function: 0h – 6h – 1h = Root Port 6
New:
- Bus-Device-Function: 0h – 6h – 0h = Root Port 9
- Bus-Device-Function: 0h – 6h – 1h = Root Port 10

This resolves the warning shown during PCIe enumeration in boot
logs.

References:
- Wildcat Lake Platform Message of the Week (#844458)
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:433687705
TEST=Boot the system with the updated firmware and verify that
below warning is not reported for the PCIe root ports:
"[WARN ]  pcie_rp_original_idx: Unexpected root-port number '9' at
PCI: 00:06.0, ignoring."

Change-Id: Icf5e3ae3d008f8d79480959bef7b4768fb34b4a8
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88980
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Usha P <usha.p@intel.com>
2025-09-04 17:13:46 +00:00
Appukuttan V K
afaef0b904 mainboard/google/ocelot: Update GPIO configuration for SLP_S0_GATE
This commit updates the GPIO configuration for the Ocelot baseboard
variant. It changes the definition of `GPIO_SLP_S0_GATE` from
being not connected (0) to `GPP_C08`. This GPIO will be used as
an indicator for the EC.

References:
  - Schematic version: schematic_1433518

BUG=b:440270606
TEST=Perform an S0ix sequence on the system and verify that the
power state is properly reported on the EC console.

Change-Id: I303322f233824e6980ff6078e62f66eba36203ed
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88875
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-by: sridhar siricilla <siricillasridhar@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Krishna P Bhat D <krishna.p.bhat.d@intel.com>
Reviewed-by: Usha P <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-04 17:13:37 +00:00
Patrick Rudolph
97dbfd3098 cpu/intel/car/non-evict: Improve CAR setup
On older CPUs lacking ESRM (Enhanced Short Rep Mov) the rep stos
instructions are very slow. Since the MTRR that covers the SPI ROM
is disabled when setting up the NEM, the CPU will run with cache
disabled and is even slower.

The Sandy Bridge BWG and the Sandy Bridge UEFI reference code do not
disable the MTRR on the XiP, allowing the CPU to run at full speed
when setting up CAR. On UEFI the CAR is set up by touching each
cache-line once. It doesn't clear the CAR while doing so.

Do the same to speed up setting CAR:
- Invalidate the cache
- Enable the SPI ROM XiP MTRR
- Set CR0.CD=0
- Touch one spot in each cache-line
- Clear CAR after NEM has been set up

To ensure that the CAR MTRR area is 64-byte aligned add an ALIGN to
the linker script. All existing boards should use a 64-byte alignment
for CAR.

TEST=Booted on Lenovo X220 and measured with cbmem -t:

TODO: Test on platforms that have FSRM (Ivy Bridge and newer).

Before:
   0:1st timestamp                                     1,083 (0)
  11:start of bootblock                                93,765 (92,681)

After:
   0:1st timestamp                                     0
  11:start of bootblock                                24,027

Boots 69msec faster than before or about 4 times faster.

Change-Id: Ia8baef28fd736ef6bb02d8a100d752ac0392e1cf
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88792
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
2025-09-04 17:13:12 +00:00
David Wu
cd48dc7d69 mb/google/rex/var/karis: Add H58G66CK8BX147 to RAM ID table
Add the new memory support: Hynix H58G66CK8BX147

BUG=b:441882141
TEST=Run part_id_gen tool and check the generated files.

Change-Id: I5188192974409044e41ac169c3c45660f85b2b0b
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89017
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-04 17:12:57 +00:00
Kapil Porwal
ffbf40f6c0 ec/google/chromeec: Update EC headers
Generated using update_ec_headers.sh [EC-DIR]

The original include/ec_commands.h version in the EC repo is:
  9b00e297ee chipset: Add a host command to issue AP shutdown
The original include/ec_cmd_api.h version in the EC repo is:
  0c77d31000 UCSI/PPM: Add ucsi_host_cmd tests

Change-Id: I9b27cdd946c2e20a996ef338ec57d08de4e26059
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89007
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-04 17:12:42 +00:00
Kapil Porwal
517185eca2 mb/google/bluey: Configure touchpad power GPIO
BUG=b:441716957
TEST=build quartz board

Change-Id: Icf9fea2c10a60b6aa798822f6d36f04f43608e9c
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89019
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-04 17:12:23 +00:00
Kapil Porwal
baf159a1c8 mb/google/bluey: Configure GSC and EC for Quartz
BUG=b:441716957
TEST=build quartz board

Change-Id: I4a295112724fdb9d81d4aea168690acede94a5b7
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89018
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-04 17:12:18 +00:00
Zexin Wang
f8685bb2ee soc/mediatek/mt8189: Enable lastbus debug hardware
Lastbus is a bus debug tool. When the bus hangs, the bus transmission
information before resetting will be recorded. The watchdog cannot
clear it and it will be printed out on the serial console for bus
hanging analysis. On MT8189, this feature is enabled by using the
common driver lastbusv2.

BUG=b:379008996
BRANCH=skywalker
TEST=When detected bus timeout, lastbus show:
debug_ctrl_ao_INFRA_AO 0x10023000 43
3a8a4f33
a8a48000
00080003
13018200
af99e400
0003fc90
00001104
0009c7e1
30c00033
00000001
00000003
00003294
003c00a3
019f9ccf
00000000
00200000
f007fffe
0000001f
0e800000
80143800
070c2002
ff9215de
001f9215
00009860
00000033
60000000
3a2e4919
000150c5
00000026
01416600
81438640
00000000
d6450001
0000000c
818b1501
00000540
80000000
fff70001
fff00000
fe00011e
000001ff
11040003
00004e67

timestamp: 0x22c18b05c

Signed-off-by: Zexin Wang <ot_zexin.wang@mediatek.corp-partner.google.com>
Change-Id: I8e0d8aa925e413459044737ffe4ef142fca8d627
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89024
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-09-04 08:12:22 +00:00
Subrata Banik
6e61ea65a8 mb/google/bluey: Add disable slow charging support
This commit adds a new function, disable_slow_battery_charging, to
disable charging on the Bluey mainboard. This function writes a disable
command to the SMBUS chargers, turning off the charging process.

Additionally, this patch makes the following changes to support this
new functionality:
 - The charging.c file is now compiled in both the romstage and
   ramstage phases.
 - The new disable_slow_battery_charging function is declared in
   board.h.
 - A new charging_status enum is introduced to clearly define the
   charging states.

These changes ensure that the system can now properly control charging,
allowing it to be disabled when necessary.

BUG=b:439819922
TEST=Able to build and boot google/quenbi.

Change-Id: Ic0c59e0509889e6d166becf76279718b853021cc
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89022
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-04 03:00:12 +00:00
Subrata Banik
45d1f9cce4 mb/google/bluey: Move charging functions to dedicated file
This patch isolates all charging-related functionality, including
enabling and disabling charging and reading SPMI registers, into a new
dedicated file, charging.c. This improves code organization and
readability by separating concerns, making the codebase easier to
maintain.

Additionally, `enable_battery_charging` is renamed to
`enable_slow_battery_charging` to explicitly state the maximum current
is 1A. The charging enablement logic is also moved to occur before
the AOP firmware is loaded.

TEST=Able to build and boot google/quenbi.

Change-Id: Ieb374cb34814e8eab8dc2ad6f5fb435190167bc7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89021
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-04 03:00:03 +00:00
Subrata Banik
9fb306f53c soc/qualcomm/x1p42100: Add SPMI driver to ramstage
The SPMI (System Power Management Interface) driver is necessary
for power management functionalities on the Qualcomm x1p42100 SoC.
This commit adds spmi.c to the ramstage-y list in the Makefile.mk,
ensuring that the SPMI driver is compiled and available during the
ramstage of the coreboot execution.

TEST=Able to build and boot google/quenbi.

Change-Id: Iba0a423e4a25d7ec9c55e24a1463a4fd4c53cc4f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89020
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-04 02:59:57 +00:00
John Su
ac5bb861d8 mb/google/brya/var/uldrenite: Update HDA verb table
Update HDA verb table (ALC3204_RTK20250805) from Realtek.
1. Modify Pin widget 0x12 - DMIC1-2
2. Modify ALC3204 Speaker output power
3. Remove H/W AGC setting
4. Remove EQ setting

BUG=b:374203133
TEST= Chromebook approved Vendor List (AVL) qualification pass
(including output voltage, frequency, magnitude response, and
noise level during system activity)

Change-Id: Id8eab4a763bcb07b747eb50cd464c8e2b2de0b57
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88947
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-09-04 02:59:43 +00:00
Patrick Rudolph
f2d3051631 ec/lenovo/h8: Turn on PWR LED
On warm reboot the PWR LED isn't automatically turned on by the EC.
Turn it on in the ramstage code, which allows to see when the reboot
has happened.

TEST=PWR LED is on after warm reboot on Lenovo X220.

Change-Id: Ia5fe3a52a6be622785c9588a94242ac0de0e19fa
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88998
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-03 18:03:05 +00:00
Patrick Rudolph
d8de1c4974 ec/lenovo/h8: Disable POST codes
The EC doesn't care about POST codes send to port 80h and there's
no POST code display on the laptops, thus disable POST codes at all.

TEST=Lenovo X220 still boots.

Change-Id: Idf666796d3cbb504c6e68d84521359d7e2fe98d0
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88999
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-03 18:02:41 +00:00
Zhixing Ma
d5a92542aa mb/google/fatcat/var/fatcat: Disable ALC721 & ALC722 clock stop support
There is an issue with headset detection on Soundwire audio codec.
Specifically, if the audio is not active (playback/capture is not
ongoing), then 3.5 mm headset detection fails. There is a fix for
Francka (PTL design). Similar implementation is needed for Fatcat.

Port commit a23be7a6fe (mb/google/fatcat/var/francka: Disable ALC721 &
ALC722 clock stop support to francka. This allows the flag to be
overridden via devicetree, instead of relying on the default value in
alc711_slave. It helps fix the missing event issue when plugging or
unplugging the 3.5mm headphone jack.)

BUG=NONE
TEST=After boot to OS, verified headphone detection working using
"getevent" command. Seeing headset jack detected in output:

add device 3: /dev/input/event7
  name:     "sof-soundwire Headset Jack"

Change-Id: I717f31f8d492bd0b2523c77b7492e46f50de991e
Signed-off-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88986
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-03 17:55:37 +00:00
Patrick Rudolph
3b2962929b lib/timestamp: Init TSC frequency early on x86
When get_us_since_boot() is called in pre-ram stages on x86 init
the TSC frequency. The TSC frequency is necessary to calculate
the time spent since boot.

When get_us_since_boot() is not used in pre-ram stages the function
timestamp_tick_freq_mhz() will also be dropped by the linker, thus
there's no code size increase for common code.

Will be used in the following commit in pre-ram stages.

Change-Id: I7fd9eeadf3063a629dd589498fcb957b9bd66536
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88793
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-02 19:12:10 +00:00
Patrick Rudolph
b0a63052b7 sb/intel/bd82x6x: Fix CPU replaced check
Check if CPU has been replaced before doing ram init. When it
has been replaced disable MRC cache and do a full memory training.

Also use get_us_since_boot() to skip waiting additional 50msec
when not necessary. Setting up NEM in bootblock is so slow that
50msec might already have passed.

Before:
 940:waiting for ME acknowledgment of raminit          116,514 (62,804)
After:
 940:waiting for ME acknowledgment of raminit          68,708 (7,211)

Boots 48msec faster than before.

Change-Id: I2d9729792c3546dc9bf23192c42619cd7d639d1c
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88794
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-09-02 17:08:06 +00:00
Shon Wang
9ecf04c2bc mb/google/nissa/var/quandiso: Generate RAM ID for MT62F512M32D1DS-023 WT:E
Generate RAM ID for MT62F512M32D1DS-023 WT:E

DRAM Part Name                 ID to assign
MT62F512M32D1DS-023 WT:E       7 (0111)

BUG=b:438402880
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I6786bff4a03179e3f682ade57d795a449df14bbc
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88925
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-02 17:07:12 +00:00
Shon Wang
16318a32ce spd/lp5x: Generate initial SPD for MT62F512M32D1DS-023 WT:E
Generate initial SPD for MT62F512M32D1DS-023 WT:E

BUG=b:438402880
BRANCH=firmware-nissa-15217.B
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I9c67dadf75b15fc1e0392566be60a776e1ee8a35
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88924
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-09-02 17:07:07 +00:00
Eren Peng
283c25beec mb/google/trulo/var/kaladin: Select Strauss keyboard to show G icon
Because the machine shows circle icon instead of G icon in 'Setting'
->'Device'->'View keyboard shortcuts'.
So add MAINBOARD_HAS_GOOGLE_STRAUSS_KEYBOARD to enable G icon.

BUG=b:442310345
BRANCH=none
TEST= Build and boot to OS and enter 'Setting'->'Device'
->'View keyboard shortcuts' to see G icon.

Change-Id: I77e2ce1556ded97c4d146b3e12f751958f31db80
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89008
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-09-02 17:06:55 +00:00
Elyes Haouas
2709ae443b cpu/x86/entry16.S: Move reset vector to this file
This makes the code easier to follow.

Change-Id: I5a4b7fe99875a1addf611f569990ff9a3beda3ba
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74800
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-02 17:06:35 +00:00
Arthur Heymans
53810448fc cpu/x86/reset16.S: Remove handcoded reset vector
Only 3 bytes should be used for the reset vector and it looks like
modern tooling has no problem with using a regular relative jump
instruction.

TESTED: Qemu Q35 still boots fine.

Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: Ie371000c60d66c032a8dcccb98e7627df09d3aa4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74797
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-09-02 17:06:06 +00:00
Kilian Krause
a1b7f5e1b8 mb/siemens/mc_rpl: Disable EIST to improve deterministic behavior
Disable Enhanced Intel SpeedStep Technology (EIST) to prevent
OS-controlled P-state transitions. This improves consistent CPU
frequency bevahior across all cores, which is critical for real-time
applictaions requiring deterministic performance.

The existing devicetree parameter 'eist_enable' only configures the
IA32_MISC_ENABLE register but does not affect the FSP-S parameter
'Eist'. This results in FSP re-enabling EIST during silicon
initialization, overriding the register setting.

Override the FSP-S 'Eist' parameter at mainboard level rather than
fixing it in SoC code, since devicetree parameters default to 0 when
unset and would disable EIST on boards that rely on FSP defaults.

Change-Id: Ic83246d88607a8ed0c9815e306934bcf0bf8f016
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88965
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-02 11:44:44 +00:00
Kilian Krause
e6f8900c2d mb/siemens/mc_rpl: Disable S0ix power states
Disable S0ix power states at baseboard level.

TEST=Booted into linux and verified S0ix is disabled:
- FADT Low Power S0 Idle (V5) = 0

Change-Id: I34243137c8b06efa476dda74763d358f88bfe6a5
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88956
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-09-02 11:44:33 +00:00
Kilian Krause
c71071397f soc/intel/common/fast_spi: Add static bus scanning
Add scan_bus operation to fast_spi device operations to enable
discovery of statically defined child devices.

This allows device drivers such as drivers/pc80/tpm that are
physically connected to the fast_spi bus to be properly
enumerated and initialized during device tree scanning.

Without this change, child devices defined in devicetree under
fast_spi would not be discovered, preventing proper driver
binding and initialization.

Example devicetree configuration:
```
                device ref fast_spi on
                        chip drivers/pc80/tpm   # SPI TPM header
                                device pnp 0c31.0 on end
                        end
                end
```

Without a .scan_bus hook in fast_spi_dev_ops, coreboot's
BS_DEV_ENUMERATE phase never creates the pnp 0c31.0 device. As a
result, in BS_DEV_RESOURCES you see, that the device PNP 0c31.0
is missing its function "read_resources":

```
(in BS_DEV_ENUMERATE)

[DEBUG]  scan_bus: bus PCI: 00:00:1f.4 finished in 11 msecs
[DEBUG]  scan_bus: bus DOMAIN: 00000000 finished in 1510 msecs
[SPEW ]  scan_static_bus for Root Device done

... (in BS_DEV_RESOURCES)

[SPEW ]  PCI: 00:00:1f.5 read_resources segment group 0 bus 0
[ERROR]  PNP: 0c31.0 missing read_resources
[SPEW ]  PCI: 00:00:1f.5 read_resources segment group 0 bus 0 done
[SPEW ]  DOMAIN: 00000000 read_resources segment group 0 bus 0 done
[SPEW ]  Root Device read_resources segment group 0 bus 0 done
[INFO ]  Done reading resources.
```

With the implementation of scan_bus, the log shows that the resources
are allocated correctly:

```
(in BS_DEV_ENUMERATE)

[DEBUG]  scan_bus: bus PCI: 00:00:1f.4 finished in 11 msecs
[DEBUG]  PCI: 00:00:1f.5 scanning...
[SPEW ]  scan_static_bus for PCI: 00:00:1f.5
[DEBUG]  PNP: 0c31.0 enabled
[SPEW ]  scan_static_bus for PCI: 00:00:1f.5 done
[DEBUG]  scan_bus: bus PCI: 00:00:1f.5 finished in 14 msecs
[DEBUG]  scan_bus: bus DOMAIN: 00000000 finished in 1536 msecs
[SPEW ]  scan_static_bus for Root Device done

... (in BS_DEV_RESOURCES)

[SPEW ]  PCI: 00:00:1f.5 read_resources segment group 0 bus 0
[SPEW ]  dev: PNP: 0c31.0, index: 0x0, base: 0xfed40000, size: 0x5000
[SPEW ]  PCI: 00:00:1f.5 read_resources segment group 0 bus 0 done
[SPEW ]  DOMAIN: 00000000 read_resources segment group 0 bus 0 done
[SPEW ]  Root Device read_resources segment group 0 bus 0 done
[INFO ]  Done reading resources.
```

TEST=Verified on Siemens mc_rpl1 mainboard. TPM device properly
enumerated with scan_bus implementation.


Change-Id: I4049d2d3cd5132362a7efd551dc9dd78cd24b9eb
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88966
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2025-09-02 11:00:50 +00:00
Kilian Krause
e73b4579c6 mb/siemens/mc_rpl: Disable DPTF
Disable DPTF for mc_rpl platform. In this context, the DPTF
configuration is removed as well. DPTF is deactivated to improve
realtime performance.

Change-Id: I5f9c2d1d82e9c18eafb9761df87a0709bded5964
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88960
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2025-09-02 11:00:10 +00:00
Derek Huang
77061d8427 mb/google/bluey: Add Quartz board (Qualcomm Hamoa)
BUG=b:441716957
TEST=build quartz board

Change-Id: I515c60c9d840084ffebae8cc2064f8f5b823c8c6
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88983
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-09-01 04:19:17 +00:00
Benjamin Doron
ee1446a791 mainboard/emulation/qemu-q35: Do not compile memmap into SMM
This file contains functions related to PCIe and SMM, and so it's
needed by bootblock and ramstage, and possibly romstage. It's not needed
by SMM, and in a follow-up, the SMI handler will define `smm_region`,
causing a function redefinition error.

As this file isn't needed in SMM, and the SMI handler's function
will work for this board too, as it works for all silicon (it returns
values populated during ramstage, by board/silicon implementations
of the function), drop this compilation unit from SMM.

Change-Id: I0195e7d42b0669d675879fb4d2596aa4607095b9
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88995
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-31 23:19:48 +00:00
Matt DeVillier
a7b6590aca mb/google/dedede/var/dexi: Add and use VBT
Extracted from coreboot-Google_Dexi.13606.639.0.bin

TEST=build google/dexi, verify image built with VBT.

Change-Id: I7ed620cb4b8a9b42ca97a96df4b5d30196945084
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89003
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-08-31 23:19:17 +00:00
Matt DeVillier
70ce81c86f mb/google/dedede/var/dita: Add and use VBT
Extracted from coreboot-Google_Dita.13606.639.0.bin

TEST=build google/dita, verify image built with VBT.

Change-Id: Idbc25deeaa011581221019119dbe4923db428850
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89002
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-31 23:19:13 +00:00
Elyes Haouas
87f5d4c54a tree: use boolean for PcieRpLtrEnable[]
PcieRpLtrEnable[] is a boolean, so use true false.

Change-Id: I3ccc64d7bb1a756efe8fc109c51c029a5483c316
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89000
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-08-31 05:12:28 +00:00
Ingo Reitz
725ab7b066 soc/mediatek/common: Increase WAIT_AUX_READY_TIME_MS
Increase WAIT_AUX_READY_TIME_MS from 1 ms to 3 ms fix a 20s timeout bug
on Google/Cherry/Tomato and possibly other MediaTek Chromebooks
introduced in commit 6ba2df9be5 (soc/mediatek/common: Use polling to
reduce eDP HPD wait time).

Change-Id: I6f41c3733e67c85e4aea3ce3b641a98cad94715c
Signed-off-by: Ingo Reitz <9l@9lo.re>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88991
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-08-30 15:00:41 +00:00
Schumi Chu
f02e755364 config/builder/mitac: Hook up public FSP repo and microcode
For following Mitac Computing platforms:
  sc513g6 and r520g6sb

TEST=Build and boot on Mitac Computing/sc513g6 platform
TEST=Build and boot on Mitac Computing/r520g6sb platform

Change-Id: I57b82e8e836e3ee798c026d3aa43fb8ab969e2c6
Signed-off-by: Schumi Chu <schumi.chu@mitaccomputing.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88975
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-08-30 13:56:13 +00:00
Matt DeVillier
fc62ffab48 soc/amd/common/fsp/dmi: Skip parsing when memory type UNKNOWN
FSP sets the MemoryType to 0x2 (MEMORY_TYPE_UNKNOWN) when a DIMM is not
present in a given slot, so skip parsing of any DMI records with that
type set.

TEST=build/boot out-of-tree Starlabs Cezanne-based board with a single
sodimm installed, verify the DMI record for the empty slot is not
parsed/inserted into the SMBIOS tables.

Change-Id: I683c7bf65cc261b6a4fc4cb74e7b4b5f96283f61
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88974
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:55:51 +00:00
Matt DeVillier
c3071b7150 soc/amd/cezanne/fsp_m_params: add UPD pointer parameter to mb callback
This allows the mainboard code to change FSP-M parameters depending on
parameters that are only known at run time and not at build time.

Mirrors change previous done for Mendocino and newer SoCs.

Change-Id: I6790648da3724a06a127c1cef939366588668440
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88973
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-08-30 13:55:44 +00:00
Matt DeVillier
eb9a673a8e soc/amd/cezanne: Add a Kconfig option for SERIRQ_CONTINUOUS_MODE
Add a Kconfig to enable mainboards to select SERIRQ_CONTINUOUS_MODE,
which will be used by a to-be-added Cezanne-based Starlabs Starbook
variant in a subsequent commit.

Change-Id: Ia4da699e836e8e3ca408b4b5744320723e17ca62
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88972
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-08-30 13:55:39 +00:00
John Su
c590e8e75c mb/brya/var/uldrenite: Increase Touch IC enable delay time
According to the datasheet and the LCD team’s response, increase Touch
IC enable delay time to resolve touch failure after resume.

BUG=b:441010546
TEST=Checked the waveform and suspend stress test, both checked OK.
Meet seconds_system_resume < 0.5 sec, boot time < 1.3 sec.

Change-Id: I778fd79f7bad3ad1873880b7412c0c49dcb40b1f
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88934
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-30 13:55:29 +00:00
Kilian Krause
9996fc58fd mb/siemens/mc_rpl: Disable C1E state via MSR_POWER_CTL
This change disables the C1E (Enhanced Halt State) power saving feature
by clearing bit 1 in the MSR_POWER_CTL register. Disabling C1E prevents
the processor from automatically transitioning to a lower
voltage/frequency when all cores are halted, improving deterministic
behaviour.

For this platform, disabling C1E is always required, so the direct MSR
approach avoids FSP reliability issues and configuration complexity
that would come with using the existing devicetree "enable_c1e"
parameter.

TEST=Booted into OS and verified register MSR_POWER_CTL Bit 1 cleared:
- Used rdmsr tool: rdmsr 0x1FC showed bit 1 = 0
- Confirmed across all CPU cores

Change-Id: If076f0bb42f3a0d4b8f895703e88eaf145e4a762
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88964
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-30 13:54:56 +00:00
Kilian Krause
c58c988b8e mb/siemens/mc_rpl: Remove unused code and power limit functionality
Remove unused implementation files and declarations:

- Delete ramstage.c containing DPTF power limit configuration
- Remove corresponding ramstage.c reference from Makefile.mk
- Remove unused ADL board ID enumeration in variants.h
- Remove cpu_power_limits structure and variant_update_power_limits()
- Remove variant_devtree_update() function and its weak implementation

The removed code was related to device tree updates and power limit
configurations that are not used by this mainboard.

Change-Id: I1b1c742a4b62022b91de8215d30a4df4f8cf68f0
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88962
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:54:50 +00:00
Kilian Krause
8e5e87a1cf mb/siemens/mc_rpl1: Configure CPU power limits to 28W TDP
Set the CPU power limits configuration at the variant level to use 28W
for PL1, PL2. Set PL4 to 64W. This ensures consistent thermal
performance and power management behaviour.

Change-Id: I355f12ad66e9682f3d50356028baea01b42bffa3
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88961
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:54:45 +00:00
Ivy Jian
4853f16a59 mb/google/fatcat/var/kinmen: Support new schematic changes
Add FW_config support to distinguish schematic changes.
Refer to schamtics MB_V20250826 and DB_V20250821

BUG=b:406050657, b:409148565
TEST=emerge-fatcat coreboot

Change-Id: I074e3aa466c10ad041b70be04ec3abdcab24dc96
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88979
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:54:24 +00:00
Ren Kuo
9d67120078 mb/google/moonstone: Create moonstone variant
Create the moonstone variant of the fatcat reference board by copying
the kinmen files to a new directory named for the variant.

BUG=b:441010542
TEST=1. util/abuild/abuild -p none -t google/fatcat -x -a
        make sure the build includes GOOGLE_MOONSTONE
     2. Run part_id_gen tool without any errors

Change-Id: Iad11c892270f6abc53dee12366691a8c987879f0
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88978
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:54:12 +00:00
Benjamin Doron
00d954977c util/smmstoretool: Support other block sizes
smmstoretool is effectively a UEFI variable store writing tool, with
a specific emphasis on the SMMSTORE backend implementation.

However, it could also support other backends. Since it's typical for
the variable store to be `n / 2 - 1` blocks, but not typical how large
each block should be, allow this to be overridden on the command line.

This is necessary because in EDK2, the module producing the firmware
volume block protocol, the backend, will initialise a HOB or set PCDs to
indicate the size of the store to the rest of the stack, and an
assertion will be hit if the store has been preseeded by smmstoretool
using differently-sized blocks.

For example, `make CFLAGS=-DSMM_BLOCK_SIZE=8192` builds this for a
firmware volume block protocol implementation with 8K blocks.

Change-Id: I08b78cfb0b591641f09fcf86f40dd31e6b6c9b30
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88427
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-30 13:53:59 +00:00
Jakub Czapiga
4fd3cb35c2 util/cbmem: Change abort() to exit(1) in die()
Call to abort() in die() causes many tools to assume that the cbmem util
crashed even in case of just incorrect parameters. Changing it to
exit(1) allows for easier error handling by just getting the exit code
instead of having to handle SIGABRT.

Change-Id: Ic59e3479dcbe090a43878bf773409781729146c8
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88981
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-08-30 13:53:51 +00:00
Kilian Krause
62b6d1e336 mb/siemens/mc_rpl: Enable master bit in PCI config space if allowed
Some legacy devices need to have the master bit set in the PCI config
due to old drivers not setting it correctly. Set the master bit if the
feature is enabled via Kconfig switch PCI_ALLOW_BUS_MASTER_ANY_DEVICE.

This implementation is similar to the approach used in an earlier
Siemens platform, as implemented in commit 78ec750610
("mb/siemens/mc_ehl: Enable master bit in PCI config space if allowed").

TEST=Confirmed bus master enabled via lspci after boot.

Change-Id: I6d358ba7147860fd1383abe667a7006d9a30d542
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88963
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:53:33 +00:00
Kilian Krause
a8bce33b82 mb/siemens/mc_rpl: Disable Intel Turbo Boost
Disable Intel Turbo Boost on this platform as a first step toward
consistent frequency behavior. This platform requires deterministic
performance characteristics rather than dynamic frequency scaling.

TEST=Boot into OS, read MSR 0x1A0 (IA32_MISC_ENABLE) and verify that bit
38 (Turbo Disable) is set.

Change-Id: I6e89cdaaa56b5e5c70461ac67159c0fc3975a429
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88959
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-30 13:53:18 +00:00
Nico Huber
1a9008b261 device/azalia: Use clrsetbits32() and friends
TEST=Timeless build produces identical binaries

Change-Id: Ic6b0329191598f40d991ce41985ce8ebdf89d68b
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88921
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:53:02 +00:00
Nicholas Sudsgaard
cbf8527345 device/azalia: Amend the mistake of codec_is_operative()
One of my previous commits attempted to simplify azalia_codec_init(),
but resulted in illogical code which also introduced a bug in certain
cases.

To summarize, codec_is_operative() tells the controller to get the
vendor ID of a specific codec. While doing so, this also checks how the
controller and codec respond to see if they are functioning. However, we
read the response in azalia_codec_init(). Therefore, these functions
must be called sequentially in order to initialize the codecs correctly.

In certain cases, we would attempt to read the response without
requesting the vendor ID in the first place. This possibly caused
these verbs to not get loaded at all.

These are the areas affected by the bug:
 - northbridge/intel/haswell/minihd.c
 - soc/intel/broadwell/minihd.c

TEST=Verbs were loaded on HP ProBook 450 G3

Fixes: 516d05f43d ("device/azalia: Separate codec checking and initialization")

Change-Id: I82ada9e6eca0539b854b5bc61f6f7a88ffd1cdc5
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88918
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:52:42 +00:00
Nicholas Sudsgaard
0a328282ec device/azalia: Add enums for HDA verb and parameter IDs
This is a purely cosmetic change to make things slightly more easier to
read. We also only add the IDs which are actively used in the codebase.

TEST=Timeless build produces identical binaries

Change-Id: I4ec0a570020059c85768bab913dff1ba1977e9f9
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88917
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-08-30 13:52:18 +00:00
Kilian Krause
c15006eb0c soc/intel/alderlake: Add 28W TDP support for RPL-P ID 8 (0xa716)
Add voltage regulator configuration for Intel Raptor Lake-P processor
with MCH ID 0xa716 (RPL_P_ID_8) at 28W TDP. This processor has a
4+4 core configuration.

- Add the MCH ID mapping to the 28W TDP processor variant
- Add VR configurations for loadline, ICC, TDC timewindow, and
  TDC current limit tables

The VR configuration is adapted from the existing 28W variants.

TEST=Built and booted on hardware with MCH ID 0xa716. Verified
resolution of "Unknown MCH" errors and correct power limit
configuration. System boots successfully to OS.

Before:
[DEBUG] BS: BS_DEV_INIT_CHIPS entry times (exec / console): 649 / 543 ms
[DEBUG] All HSPHY ports disabled, skipping HSPHY loading
[INFO ] Disabling PCH PCIE ClockGating+PowerGating.
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[ERROR] Unknown MCH (0xa716) in load_table
[INFO ] PCI  1.0, PIN A, using IRQ #16

...

[DEBUG] BS: BS_DEV_ENABLE exit times (exec / console): 20 / 4 ms
[INFO ] Initializing devices...
[DEBUG] PCI: 00:00:00.0 init
[ERROR] unknown SA ID: 0xa716, skipped power limits configuration.
[DEBUG] PCI: 00:00:00.0 init finished in 7 msecs

After:
[DEBUG] BS: BS_DEV_INIT_CHIPS entry times (exec / console): 542 / 537 ms
[DEBUG] All HSPHY ports disabled, skipping HSPHY loading
[INFO ] Disabling PCH PCIE ClockGating+PowerGating.
[INFO ] PCI  1.0, PIN A, using IRQ #16

...

[DEBUG] BS: BS_DEV_ENABLE exit times (exec / console): 21 / 4 ms
[INFO ] Initializing devices...
[DEBUG] PCI: 00:00:00.0 init
[INFO ] CPU TDP = 28 Watts
[INFO ] CPU PL1 = 28 Watts
[INFO ] CPU PL2 = 28 Watts
[INFO ] CPU PL4 = 64 Watts
[DEBUG] PCI: 00:00:00.0 init finished in 14 msecs

Change-Id: I9d6f32f2f3fbf73e46a25d77e4dba7711ed70d5f
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88957
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-08-30 13:51:39 +00:00
Kilian Krause
d7a996cf44 mb/siemens/mc_rpl1: Enable 4 P-Cores, disable E-Cores
Set the active core configuration for the processor on this variant to
use 4 P-cores and 0 E-cores. This ensures that only the performance
cores are enabled, which matches the intended use case for this specific
board variant.

Change-Id: If79b13fea16bcd369feb438aab4ab11dd63d4fab
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88958
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:51:04 +00:00
Kilian Krause
2f9273f1f4 mb/siemens/mc_rpl: Select FSP_TYPE_IOT
All mc_rpl variants use IoT FSP.

Change-Id: I615fdf27079a65222c931f26216dd049519be3c5
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88955
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:49:43 +00:00
Kilian Krause
1b14664311 mb/siemens/mc_rpl: Remove unused DPTF settings
Since the CPU does not control any fans and the mainboard does not
implement a charger, remove all unnecessary DPTF UPDs. DPTF will be used
for limitting PL1 and PL2 in the future.

Change-Id: I22e1167cb2986f5c56ff6085236792adbb9a19cc
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88954
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:49:36 +00:00
Kilian Krause
66a3f2a1b1 mb/siemens/mc_rpl: Disable SaGv
Disable SaGv at baseboard level to improve realtime performance.

Change-Id: I0fd587aa8beb0c86ba88553cfeddac786b4c8948
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88953
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-30 13:49:27 +00:00
Kilian Krause
993a9c9e14 mb/siemens/mc_rpl1: Configure SATA Ports
This board does only use SATA Port 0 and SATA Port 1. The rest is
disabled. In addition, power management features like DevSlp and
Aggressive Link Power management are not supported on this motherboard
and are deactivated accordingly.

TEST=Verified SATA config: `dmesg | grep -i "sata link"` shows ports
0-1 active at 3.0 Gbps (Gen2 limit).

Change-Id: I4567328c25f195fac8edc02518a6a812922f48e5
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88952
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-08-30 13:49:20 +00:00
Kilian Krause
e03f50bf5f mb/siemens/mc_rpl: Enable Siemens NC_FPGA driver
Activate NC_FPGA driver in the baseboard as it will be used by
all variants.

Change-Id: Ia6538dfc752f661411687d5c5cf635e6d4c0ac16
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88950
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 13:49:11 +00:00
Angel Pons
699c28c01d sb/intel/bd82x6x: Fix replay issues
Rewrite suspicious register handling as per reference code. Proper
handling of the value in the RPC register needs some IOBP operations,
and will be done in a follow-up once `pch_iobp_update` can be used.

TEST=Still boots on Lenovo X220.

Change-Id: I7cf8851e98e3971593734dc2a46f7e0b43d8cdca
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88899
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-08-30 12:02:18 +00:00
Elyes Haouas
c2110e3161 tree: Use true, false for PcieRpClkReqSupport
PcieRpClkReqSupport[] is a boolean, so use true/false.

Change-Id: I541ac5361dc0a929459edef7bb1f49c57b137c14
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86281
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-30 11:39:11 +00:00
Jeremy Compostella
ebab858d92 soc/intel/pantherlake: Enable memory bandwidth compression for IGD
The commit enables memory bandwidth compression for Integrated Graphics
Device (IGD) when IGD is active. This change intends to improve graphics
performance.

BUG=b:431221875
TEST=On a Fatcat device, activating memory bandwidth compression leads
     to graphics performance improvements ranging from 20% to 65% on
     some graphics workloads.

Change-Id: Ia74fb6bac880a5eb9fe833f071bd129e69345d28
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88910
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
2025-08-29 16:03:46 +00:00
Ravi Sarawadi
ad10d4a977 soc/intel/cmn/blk/graphics: Reserve memory compression region
This commit reserves memory resources associated with the memory
bandwidth compression functionality for Intel Integrated Graphics
Devices (IGD). The reservation is achieved by identifying the memory
region in the Resource Hand-Off Blocks (HOB) through a specific GUID,
provided in the FSP integration guide, and then marking it as
reserved. This ensures that the memory compression functionality can
operate without interference from other processes.

BUG=b:441695812
TEST=On a Fatcat device with the MemoryBandwidthCompression UPD set to
     1, coreboot logs show both the detection of the HOB and the related
     memory resource marked as reserved.

     [DEBUG]  Memory Compression HOB found: base=0x100000000
              length=0x02400000
     [...]
     [DEBUG]  19. 0000000100000000-00000001023fffff: RESERVED

Change-Id: I21f247dd8aaa88d4ae4da70eb78f7decc1793777
Signed-off-by: Ravi Sarawadi <ravishankar.sarawadi@intel.com>
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88909
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
2025-08-29 16:00:36 +00:00
Yu-Ping Wu
8a52418e9a commonlib/device_tree: Fix memory leak in fdt_unflatten()
When the passed `blob` is not a valid FDT, the memory allocated for
`tree` should be freed. Move the allocation after the fdt_is_valid()
check to avoid the problem.

Also remove the unnecessary cast to 'const struct fdt_header *'.

Change-Id: If591172cd511ae2a1ca9c26f2addef8d67fd0b69
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88948
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-08-29 09:10:27 +00:00
Vince Liu
7896f4950c mb/google/skywalker: Turn off UFS power for eMMC SKUs
On MT8189, UFS power is enabled by default. For SKUs that use eMMC for
storage and do not need UFS, it is necessary to disable UFS power;
otherwise, the system will fail to suspend properly. Disabling UFS
power in these cases both saves power and ensures correct suspend
functionality.

BUG=b:430421429
BRANCH=skywalker
TEST=Suspend flow works correctly, and SoC power consumption is 34 mW,
     meeting expectations on Anakin.

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ie932a939f663e159e098fd13c7e26e9a2089e7bd
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88977
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-29 09:05:46 +00:00
Vince Liu
22fe08c04b soc/mediatek/mt8189: Implement UFS power-off API for non-UFS SKUs
On MT8189, UFS power is enabled by default. For SKUs that do not use UFS
as storage, keeping UFS power enabled can cause suspend failures and
unnecessary power consumption. This change implements a UFS power-off
API to ensure UFS can be properly powered down on non-UFS SKUs.

BUG=b:430421429
BRANCH=skywalker
TEST=Suspend flow works correctly, and SoC power consumption is 34 mW,
     meeting expectations on Anakin.

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Signed-off-by: Irving-ch Lin <irving-ch.lin@mediatek.corp-partner.google.com>
Change-Id: Ib5ccbeaf951c3a095905e472bc096eeb2dee47a8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88976
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-08-29 09:05:37 +00:00
Subrata Banik
5f0225a7b5 drivers/intel/fsp2_0: Refactor for earlier graphics memory WC MTRR
Moves the MTRR setup for graphics memory (GMADR) from the
`soc_load_logo_by_coreboot()` function to `do_silicon_init()`. This
refactors the logic into a new helper function,
`soc_mark_gfx_memory()`, which acquires a temporary Write-Combine
(WC) MTRR.

The MTRR is now configured earlier in the silicon initialization
process, making the setup and cleanup independent of the
`soc_load_logo_by_coreboot()` function itself.

This improves FSP-S performance and ensures the MTRR is correctly
managed within the silicon initialization flow which was earlier
missed when platform selects `USE_COREBOOT_FOR_BMP_RENDERING` aka
rendering the BMP logo using coreboot driver and not using FSP driver
logic.

The cleanup of the MTRR is also moved to `do_silicon_init()` to pair
with the earlier setup.

TEST=Successfully boot to OS on google/fatcat using coreboot for logo
rendering.

w/o this patch

```
    963:returning from FspMultiPhaseSiInit    1,164,839 (123,244)
```

w/ this patch

```
    963:returning from FspMultiPhaseSiInit    1,143,974 (115,443)
```

Change-Id: I5da3178c622f5fd6cb3d7f3f574e59f9ed5a5b3d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88982
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-29 04:33:07 +00:00
Subrata Banik
1c571446ec soc/intel/common/block/systemagent: Increase MTRR region size to 32 MiB
This patch increases the hardcoded MTRR region size from 16 MiB to 32
MiB. This ensures a larger portion of memory is cached after the DRAM
phase, which helps in avoiding performance issues in memory-constrained
boots like the pre-DRAM stage. This change is crucial for optimal system
performance.

TEST=Able to boot google/fatcat and save 13ms of the boot time.

w/o this patch:

```
    31:device enumeration            1,183,804 (13,341)
```

w/ this patch:

```
    31:device enumeration            1,159,612 (359)
```

Change-Id: I25463f1b9e3b82b1a05a8fb7a44df4d188b4731a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88971
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-08-29 03:03:52 +00:00
Simon Yang
67afbf5f96 soc/intel/pantherlake: Add TDP mappings for Panther Lake-U SKUs
This commit addresses incorrect Thermal Design Power (TDP) mappings for
Panther Lake-U SKUs. Both 15W and 25W TDPs are now correctly mapped to
the same Power Limit configurations, ensuring consistent handling of
these SKUs.

Below is the collection of documents utilized to address this issue:
1. 815002 Panther Lake H Processor - External Design Specification
   Revision. 1.52
2. 813278 Panther Lake H Power Map - Rev 1p6

BUG=None
TEST=Do not see error log "Could not find the SKU power map" and warning
     "Skipped power limits configuration for SA PCI ID: 0xb003"

Change-Id: I995183a04b47967dd22ee6f4f3820da7eeb175bf
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88930
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
2025-08-28 20:39:22 +00:00
Avi Uday
ec69479bdb mb/google/ocelot: Drop redundant SNDW GPIO mapping
This patch removes redundant SNDW GPIO mapping that was already present
in fw_config.c and applied as per FW_CONFIG.

TEST=Verify that ocelot builds without any error
Change-Id: I8ba76d77764d4b9cec22c79b977ad9e486ae804e
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88937
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-28 20:15:46 +00:00
Avi Uday
5f168e9441 mb/google/ocelot/var/ocelot: Conditionally init ALC256 HDA using
fw_config

This commit implements `mainboard_is_hda_codec_enabled()` for the
Google Ocelot mainboard variant. This overrides the default weak HDA
common initialization.

Change-Id: I11f9d8ae00d1a3d7f03e068aa3980ecd98a47ecd
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88933
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-28 20:15:30 +00:00
Nick Vaccaro
152b584167 mb/goog/ocelot/var/ocelot: Add AUDIO_MAX98360_ALC5682I_I2S
Add new FW_CONFIG option AUDIO_MAX98360_ALC5682I_I2S.

BUG=b:438738151
TEST=`emerge-ocelot coreboot` and verify it builds without error.

Change-Id: Icc35dea9e9334fb3ed980bc92e311a42bb7006ac
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88866
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-08-28 20:15:20 +00:00
Krystian Hebel
8f2633cd60 soc/power9/rom_media.c: find CBFS in PNOR
Tested on QEMU with ECC. Use mmap_helper to handle loading of compressed
ramstage. Bootblock fits in SEEPROM with both console and LZ4
romstage compression, but not with verbose CBFS debug messages.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Change-Id: I91c72c52849eb1e3fafe43390351537d04382e46
Reviewed-on: https://review.coreboot.org/c/coreboot/+/67069
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-08-28 20:14:01 +00:00
Krystian Hebel
44ec090551 ppc64: Kconfig switch for bootblock in SEEPROM, zero HRMOR
On PPC64 each address is logically OR'ed with HRMOR (Hypervisor Real
Mode Offset Register) before it is dispatched to the underlying memory,
meaning that memory space overlaps at the least significant bit set in
HRMOR. coreboot is entered with HRMOR = 4GB-128MB both on hardware
(when started by hostboot bootloader) and in Qemu in hb-mode. This means
that memory overlaps every 128MB in this particular case. HRMOR can be
explicitly ignored when MSB of an address is set, but this would require
using different memory model for linking.

If we zero HRMOR in bootblock, linking can be done against real address.
This greatly simplifies memory layout and allows to forget about HRMOR
from that point on.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Change-Id: I0170463968c91b943c4b0dc15fe73fa616a164da
Reviewed-on: https://review.coreboot.org/c/coreboot/+/67067
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-28 20:13:51 +00:00
NyeonWoo Kim
921027e09b src/lib/cbmem_common: Delete a space(' ') in the source code
I found a space(' ') that was probably added unintentionally
in the cbmem_run_init_hooks().

So i deleted it to make the code cleaner.

P.S. It seems that clang-format can correct issues like it but
     clang-format is unusable currently. See util/lint/check-style.
     And this style issue of the code hasn't been corrected since 2015.
     So i decided to correct it manually for now.

Change-Id: I788047d51c1f2586c3480efc4a31848e287c5894
Signed-off-by: NyeonWoo Kim <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88325
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-28 20:13:34 +00:00
Michał Żygowski
acb86babdf mb/protectli/vault_kbl/mainboard.c: bring back the beep
This commit is cherry-picked from:
https://github.com/Dasharo/coreboot.git

Branch: protectli_vault_kbl/release

Original commit hash: b2b0a2bafbbe9be640f0fd0d02d85c81c90b796b

Then it was modified after code review, to:
* make it configurable
* remove code duplication

Signed-off-by: Purdea Andrei <andrei@purdea.ro>
Change-Id: I1350df3407aaa9b1fdaf9383972fac3a708bea96
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88221
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-28 20:13:15 +00:00
Michał Żygowski
76d45a8219 soc/amd/genoa_poc/root_complex.c: Explain the order of IOHCs
At first glance the order of IOHCs seems peculiar. However, the
order is not random. Explain the reasoning of the IOHC order in the
comment.

Change-Id: Ic8e567d48a0f8d95ff9785cdd0c5489ea3016f1a
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88369
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-28 20:12:40 +00:00
Patrick Rudolph
8dcfa915f2 soc/amd/common/block/psp: Probe SPI flash early
When SOC_AMD_COMMON_BLOCK_PSP_SMI is enabled probe for the SPI
flash before actually servicing PSP SMI requests. This allows
to check the SPI flash status register in the following SMIs
if the flash is busy without needing to probe it first.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: Iff01d0ea46f1bd2c32dbf4c4f65f9851fdf024e1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88436
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-28 20:11:39 +00:00
Patrick Rudolph
00217275b2 soc/amd/common/block: Don't clobber SPI registers
Since the PSP SMI can trigger any time, even when ring 0 uses the SPI
controller backup and restore the SPI MMIO space in SMM, making
sure to not corrupt ongoing SPI transfers in ring 0.

There's still the possibility of register clobbering when the SPI
controller was busy and became ready before the SMI handler could
check the status bit.

TEST: Booted on AMD glinda with CONSOLE_SERIAL enabled and observed
      no boot failure.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: Iaa5270d93d4934b2e7ebdf04151f1c0d9f57cfb3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88435
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-28 20:11:20 +00:00
Patrick Rudolph
c13eadeadb soc/amd/common/block/psp/psp_smi_flash: Fix busy check
The busy check is only supported on Fam 17h Picasso and Raven Ridge.
On other platforms the register might not exist and the bits always
read as ones. This prevents the PSP SMI handler from accessing
the SPI flash.

TEST: Ensured that the code does not block on 1Ah platforms.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: I063b7cd66a5058ae558ad36e4a7dd89a48f718a7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88356
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-28 20:10:39 +00:00
Carlos López
fbcf031181 mb/qemu-riscv: set PCI_IOBASE
The correct value for the IO base is at 0x3000000, so set it. Otherwise,
I/O operations (e.g. inb(), outb(), etc.) won't work.

Change-Id: I5106fa95401de53e70f0859d27e07d2b8fde9ca0
Signed-off-by: Carlos López <carlos.lopez@openchip.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85675
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-08-28 20:10:19 +00:00
Kilian Krause
bf0ee592f5 soc/intel/alderlake: Make SATA speed limit configurable
Add support for limiting SATA interface speed through the FSP parameter
'SataSpeedLimit'. This is useful for mainboards with physical design
constraints that require operating at lower speeds than what the
controller and drives support.

The implementation adds a new chip config option that mainboards can
set in their devicetree to control this behavior.

Change-Id: Ib0a058d006b752975c57851f2418a4e94b3bfcca
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88951
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-28 20:09:02 +00:00
Michał Żygowski
482a2d6548 nb/intel/sandybridge/northbridge.c: Disable non-active PEG devices
TXT SINIT ACM checks the PEG bridge memory ranges whether they are
correctly assigned in the MMIO space. If the bridge is enabled but no
device is attached to it, coreboot will not assign any resources (if
hotplug is not enabled). When SINIT ACM checks the ranges, it fails
on prefetchable range check.

Hide the PEG devices if the bridge is not active. PCIe bridges should
generally be hidden if hotplug is not enabled and there is no
downstream device.

TEST=Perform successful measured launch of Xen with Intel TXT on Dell
OptiPlex 9010.

Change-Id: I0bd104ab416376e96102738f2e47c8ce041497a2
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87472
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-28 20:08:17 +00:00
Alicja Michalska
7e73d4ef30 Documentation: mb/erying/tgl: Update documentation
EDK2 driver for loading OpROMs have been merged into Matt's tree, and
should also be merged into main UefiPayloadPkg repo in upcoming
days/weeks.

With recent patches, DP and USB ports are working perfectly.

Change-Id: I9bef2c7e5a84660231abad9da69c0ec73e8b6507
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88719
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Nicholas <nic.c3.14@gmail.com>
2025-08-28 19:11:19 +00:00
Alicja Michalska
73cba1fdea mb/erying/tgl: Introduce CFR
Change-Id: I26e502d26d3498c623730f0a2fbc39bb96706c57
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88718
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-08-28 19:11:13 +00:00
Alicja Michalska
23cf7c64f9 mb/erying/tgl: Use booleans in devicetree
Looks a bit neater

Change-Id: Ia76e003ba70b4a2be7e5414ffa13e65f15baccc8
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88717
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-28 19:11:04 +00:00
Felix Singer
261b6b4fd1 soc/intel/skylake: Allow generating USB ACPI code
Hook up to the USB ACPI driver and enable the generation of ACPI code
for enabled USB devices.

Change-Id: I53fc73046e4b107064fa8c3c617ba6d9b807b71d
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83211
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-28 16:22:58 +00:00
Alicja Michalska
23e92a5ac0 mb/erying/tgl: Map remaining USB ports
All USB ports are working \o/

Change-Id: I49aa8a245f656b8b6e47ce3a0e69899c052cf3f3
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88716
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-08-28 01:53:05 +00:00
Alicja Michalska
762a535551 mb/erying/tgl: Clean up the GPIO table
Looks nicer, fixes DisplayPort and edge-cases where PCIe devices weren't
detected at random.

Change-Id: Ie00f2258e95eb6a44e1f71f462c8ca33c4184870
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88714
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-08-28 01:53:01 +00:00
Jincheng Li
179b8444c3 soc/intel/xeon-sp/gnr: Hook up public FSP bin and headers
GNR-AP public FSP
- https://github.com/intel/FSP/tree/master/BirchStreamFspBinPkg/ap

GNR-SP public FSP
- https://github.com/intel/FSP/tree/master/BirchStreamFspBinPkg/sp

GNR mainboards will by default use public FSP bin and headers.
If needing to use site-local FSP bin and headers, apply below
settings in the defconfig (use beechnutcity CRB as example),

CONFIG_FSP_USE_REPO=n
CONFIG_ADD_FSP_BINARIES=y
CONFIG_FSP_T_FILE="site-local/beechnutcity/Server_T.fd"
CONFIG_FSP_M_FILE="site-local/beechnutcity/Server_M.fd"
CONFIG_FSP_S_FILE="site-local/beechnutcity/Server_S.fd"
CONFIG_FSP_HEADER_PATH="src/vendorcode/intel/fsp/fsp2_0/
graniterapids/sp/"

TEST=Build and boot on intel/avenuecity CRB
TEST=Build and boot on intel/beechnutcity CRB

Change-Id: I88701316e21ec4737539294d17926aa0abe8c1fd
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88898
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Hancockc <hancock.chang@mitaccomputing.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Schumi Chu
Reviewed-by: Wilson-MiTACComputing <wilson.chien@mitaccomputing.com>
Reviewed-by: Mark Chang <mark.chang@mitaccomputing.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-27 17:13:33 +00:00
Shuo Liu
42ba7a9e48 soc/intel/xeon_sp/gnr: Add Kconfig symbols for SKUs GNR-AP and GNR-SP
Granite Rapids SoC has 2 SKUs, a.k.a. GNR-AP and GNR-SP, which
use different FSP headers/binaries. Add Kconfig items to support
these SKU types.

Change-Id: Ie3a2d603f0a2c303e8f3c0911598742fbc25d73a
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88897
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Wilson-MiTACComputing <wilson.chien@mitaccomputing.com>
Reviewed-by: Mark Chang <mark.chang@mitaccomputing.com>
Reviewed-by: Schumi Chu
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-27 17:13:17 +00:00
Avi Uday
c732f406c7 mb/google/ocelot: ec.h: Disable sync IRQ, sync IRQ wake capable for OCELOT4ES
This commit introduces changes to support the OCELOT4ES variant by
adding a conditional check in the EC header file for enabling this
new variant.

TEST=Verify that ocelot builds without any error
Change-Id: Id7b27ce405df8e67675834a069133c87af71fd37
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88940
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-08-27 17:12:53 +00:00
Avi Uday
73961bf680 mb/google/ocelot: Use same mainboard part number for all ocelot variants
This patch unifies all the ocelot variants based on
`BOARD_GOOGLE_MODEL_OCELOT` to use the same mainboard part number
`Ocelot` for code cleanliness.

TEST=Verify that ocelot builds without any error
Change-Id: I461a8142b93b10200b28bfe8855363ce2a30051d
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88939
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-27 17:11:43 +00:00
Avi Uday
691d5e84cd mainboard/google/oceot: Drop redundant logo_valignment selection
This commit removes the explicit `logo_valignment` setting from the
`common_soc_config` for Ocelot.

The default vertical alignment for the splash screen logo is
`FW_SPLASH_VALIGNMENT_CENTER`, which is the desired behavior for ocelot.

Change-Id: I967c6f0b6926d23a399d01197dbed9e40b979aff
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88935
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-08-27 17:04:02 +00:00
Kapil Porwal
b67d88aecb mb/google/bluey: Enable PMIC based slow charging in romstage
Enable PMIC based slow charging in romstage until we have fast charging
solution enabled.

BUG=b:438004604
TEST=Verify battery charging during romstage.

Change-Id: Idb8ea7151a2a467194aee2b357d8a5f24e691717
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88928
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-27 03:10:13 +00:00
Kilian Krause
dcb7c317c2 mb/siemens/mc_rpl1: Enable Intel I210 MACPHY driver
Enable the i210 driver for this variant which uses I210 MACPHYs.
Additionally, add a function to retrieve a valid MAC Address for the
given MACPHY.

Change-Id: If519194f52910e4ace59095a997bafff7eab44ca
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88887
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-26 11:19:12 +00:00
Kilian Krause
2b26ea0eda mb/siemens/mc_rpl1: Configure SPI and implement TPM support
Configure SPI according to the mainboard wiring. Disable GSPI completely
as it is unused on this platform. Enable FSPI and configure it to
interface with the TPM device.

Implement TPM measured boot functionality starting from bootblock to
ensure secure boot chain validation from the earliest boot stage.

Change-Id: I89b60101c94393816b51154459f39bb22d5b976d
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88886
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-26 11:19:06 +00:00
Kilian Krause
2bcd7f1522 mb/siemens/mc_rpl1: Adjust UART settings and enable LPSS UART
Enable UART0, UART1 and UART2 in the devicetree. Adjust current UART
console configuration from UART0 to UART2. Additionally, enable LPSS
UART for the coreboot console on UART2.

Change-Id: I4ba521b3edd6a37f726a256a26051d5ab9acadfc
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88885
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-26 11:19:00 +00:00
Kilian Krause
524fd18bd6 mb/siemens/mc_rpl1: Create variant specific Kconfig file
A variant specific Kconfig file is introduced. This improves
configuration management by separating variant-specific options from the
baseboard.

Change-Id: I3760bf0ec2d16722ba99459244968ef2db249453
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88884
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-26 11:18:54 +00:00
Kilian Krause
c7cd4e3305 mb/siemens/mc_rpl: Move SOC selection to baseboard
Move the SOC-specific Kconfig options from the variant to the baseboard
configuration. This ensures all variants will inherit the correct SOC
selection.

This simplifies configuration and ensures consistency across variants.

Change-Id: Icf13ebd022dbe35f7c5deadfb425f1f9b572ed86
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88883
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-26 11:18:49 +00:00
Kilian Krause
6427e51c4f mb/siemens/mc_rpl1: Adjust USB port settings in devicetree
In total three USB ports are used:
- Port 1: Type A connector connected to USB2/USB3 port 0
- Port 2: Type A connector connected to USB2/USB3 port 1
- Onboard: connected to USB2 port 2
Overcurrent reporting is not supported for these ports.

Remove the appropriate UPDs in devicetree and move them to the
variant level to match the hardware configuration.

Change-Id: I9ab02780cfc11f88ddd2bb52bd7fbfb3fdd450ef
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88882
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-08-26 11:18:43 +00:00
Kilian Krause
71c4619045 mb/siemens/mc_rpl: Remove unused devices from devicetree and Kconfig
Remove unused device entries from devicetree.cb and Kconfig files for
PCIe, audio, camera, WiFi and Bluetooth.

Change-Id: I8c45736e0f7f6887a0863c72c4ca2e6854b4349d
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88881
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-26 11:18:37 +00:00
Kilian Krause
296f5968d3 mb/siemens/mc_rpl1: Adjust I2C bus enablement in devicetree
This mainboard only uses I2C0 and I2C1. Disable all the others. Move I2C
configuration from baseboard to variant.

Change-Id: I0c554ea4da948bc96d6a392c39bcb07a25a79eb4
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88880
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-26 11:18:30 +00:00
Kilian Krause
a1dd6bfc22 mb/siemens/mc_rpl1: Adjust PCIe settings in devicetree
This mainboard does not utilize CKLREQ signaling for PCIe. Only three
PCIe clock sources are used on this board. Configure the Root Ports
accordingly to hardware implementation.

Change-Id: If4241a05dd0c5df258d4a7018d71a21f7d314e69
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88879
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-26 11:18:24 +00:00
Luca Lai
f94469c2a9 mb/google/nissa/var/pujjolo/pujjoquince: Add wifi sar table
Add AX211 and BE200 wifi sar table for pujjolo/pujjoquince
wifi sar config. Use fw_config to separate different wifi card settings.

WIFI_SAR_TABLE_PUJJOLO_AX211		:0
WIFI_SAR_TABLE_PUJJOLO_BE200		:1
WIFI_SAR_TABLE_PUJJOQUINCE_AX211	:2
option WIFI_SAR_TABLE_PUJJOQUINCE_BE200	:3

BUG=b:428071905
Test=emerge-nissa coreboot

Change-Id: Iea8b32a19c4c2116afb5e5e4014dbc32e484ae3e
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88908
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-08-26 03:30:06 +00:00
Luca Lai
6781f458ee mb/google/trulo/var/pujjolo: Enable fivr settings
Add fivr related setting based on schematics 500E_S3A0_TWL_MB_FVT_20250527.pdf

BUG=b:437881361
TEST=Build and boot to OS, check suspend funtion work fine using
suspend_stress_test -c 5 command.

Change-Id: I6c7f2807cc6a9c7c82e28d26205b33d068792522
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88907
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-08-26 02:46:20 +00:00
Kapil Porwal
17a88540fd soc/qualcomm/x1p42100: Use SPMI driver
Use SPMI PMIC ARB driver to communicate with SPMI slave devices.

BUG=b:438004604
TEST=Communicate with SPMI slaves.

Change-Id: I44b7249d82abdbb82cb53d9c9aa04ce8bbff068b
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88927
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-26 02:41:32 +00:00
Kapil Porwal
c1128ae649 soc/qualcomm/cmn: Add SPMI driver
Add Qualcomm PMIC ARB driver.

BUG=b:438004604
TEST=Communicate with IPMI slaves.

Change-Id: Id872068ea377175a791e478b45e02aa9fcc4327d
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88926
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-26 02:41:26 +00:00
Hualin Wei
0eebd5596b mb/google/fatcat: Create lapis variant
Create the lapis variant of the fatcat reference board by copying
the fatcat files to a new directory named for the variant.

BUG=b:438785495
TEST=1. util/abuild/abuild -p none -t google/fatcat -x -a
        make sure the build includes GOOGLE_LAPIS
     2. Run part_id_gen tool without any errors

Change-Id: Iabcc673a1868cea1d8a650af213d583cc2e27c28
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88893
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-25 12:03:42 +00:00
Ingo Reitz
4931b978d9 soc/mediatek: Increase CBFS cache to 8MB in memlayout.ld
Increase the CBFS cache in the memory layout of MediaTek Chromebook SoCs
to allow larger payloads like LinuxBoot to be loaded correctly.

TEST=Build and boot coreboot with LinuxBoot payload for
Google/Cherry/Tomato.

Change-Id: I4ce15e04cc19612ef1eed0fa0674ef8a7fd21fbe
Signed-off-by: Ingo Reitz <9l@9lo.re>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88916
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-08-24 21:18:52 +00:00
Patrick Rudolph
234eb53ed9 nb/intel/sandybridge/raminit: Speed up reading SPD EEPROMs
Use i2c_eeprom_read() to speed up reading the SPD EEPROMs.

TEST=Booted on Lenovo X220 and used cbmem -t:
Before:
 940:waiting for ME acknowledgment of raminit          116,514 (62,804)
After:
 940:waiting for ME acknowledgment of raminit          110,212 (57,612)

Boots 5msec faster when MRC cache is present.

Change-Id: I500d7ff7a66b08b5036c0031e4fa20746d06df19
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88795
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-08-24 20:23:54 +00:00
Sean Rhodes
7d57333529 ec/starlabs/merlin: Add a "off" mode for the power LED
Users have requested to be able to disable the power LED, so add
this as an option.

Change-Id: I74da148c7891ab3dd5e5b692239670c9937ab302
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88890
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-24 20:23:40 +00:00
Luca Lai
36624072a6 mb/google/trulo/var/pujjolo: Update wlan rtd3 settings
Correct srcclk pin setting.

BUG=b:422600523
TEST=Build and boot to OS, check suspend funtion work fine using
suspend_stress_test -c 5 command.

Change-Id: I15e56f124de8b89a6a7f042128fc09fa8c613fc7
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88857
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-24 20:23:30 +00:00
Patrick Rudolph
42a5c189b2 mb/lenovo/X220: Add CFR support
TEST=Booted on Lenovo X220 and found the UEFI menu working.

Change-Id: I194ff7b663c092c90882de4e7408b4c1e907984e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88903
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-08-24 20:23:08 +00:00
Patrick Rudolph
8509798006 sb/intel/common/smbus: Use proper delay instruction
Use udelay() over reading port 80h to delay CPU operation.

Since SMBUS runs at 100Khz a typical operation takes about
200usec or more to complete. Using udelay(1) doesn't delay
the boot for too long.

TEST=Booted on Lenovo X220. No additional boot delay was found.

Change-Id: Ied745927b1c54b53d7450b8e0c0a03d648a3ebba
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88810
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-24 20:20:56 +00:00
Sean Rhodes
5f7b5fcb19 mb/starlabs/byte: Lower the PL4 value to 65W
This should be 65W to match the standard 65W GaN chargers.

Change-Id: I9a2be32b3b377090694cf23c4a4b85db47108c48
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88784
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-24 20:20:35 +00:00
Felix Singer
4a6a0de029 3rdparty/fsp: Update to upstream master
Updating from commit id cc36ae2b5775:
2025-05-28 10:49:43 +0800 - (Edge Platforms RPL-S/RPL-S Refresh IPU 2025.3 (6073_04) FSP)

to commit id 9623d524500c:
2025-08-21 11:29:54 -0700 - (BirchStream FSP (0041D92))

This brings in 21 new commits:
9623d524500c BirchStream FSP (0041D92)
b7098dda5432 Edge Platforms RPL-S/RPL-S Refresh IPU 2025.4 (6074_00) FSP
2041cc51bc13 Edge Platforms RPL-P IPU 2025.4 (6074_00) FSP
f0b6387ff36d Edge Platforms ADL-PS IPU 2025.4 (6074_01) FSP
65d94a063083 Edge Platforms ADL-S IPU 2025.4 (6074_00) FSP
94d6d59e8c55 Edge Platforms ADL-P IPU 2025.4 (6074_00) FSP
fdf1b314e645 Merge branch 'master' of https://github.com/intel/FSP
0a2a0a885fb5 Edge Platforms RPL-PS IPU2025.4 (6074_01) FSP
5446654ac8c9 CedarIslandFspBinPkg: Fix warnings when building with GCC
fcaccc628262 ECG BTL-S Hybrid MR1 (6073_02) FSP
7d1f30bbc86a ECG BTL-S Hybrid MR1 (6073_02) FSP
da161ac1fa54 ECG BTL-S Hybrid MR1 (6073_02) FSP
a71309861345 ECG ARL-UH MR1 (5124_47) FSP
b05a45da7198 ECG ARL-S MR1 (5124_46) FSP
3a98ea9c8bb3 ECG ARL-S MR1 (5124_46) FSP
9c289110ee1a AZB IPU 2025.4 (6251_01) FSP
570ac0f5fa03 Edge Platforms MTL-UH_MTL-PS MR3 (5124_47) FSP
8681dceeca0f Edge Platforms TGL-UP3/H IPU 2025.3 (8063_02) FSP
70df3004b137 IoT RPL-PS MR2 (5276_01) FSP
4ab112d1df66 IPU2025.3
15848ee4934a IoT ADL-N IPU25.3 (6114_00)

Change-Id: I9858f4460de1d75ebb858c42d0767f17aa346ecd
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88912
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-08-24 03:55:08 +00:00
Felix Singer
de98da43fa 3rdparty/intel-microcode: Update to upstream main
Updating from commit id eeb93b7a818b:
2025-05-12 11:40:14 -0600 - (microcode-20250512 Release)

to commit id 4ded52b4b0e1:
2025-08-11 17:00:18 -0600 - (microcode-20250812 Release)

This brings in 1 new commits:
4ded52b4b0e1 microcode-20250812 Release

Change-Id: I869a8d707ff54aa93518d3bac40d7d471e663bd5
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88911
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-08-24 03:55:03 +00:00
Subrata Banik
bdee19ba87 soc/qualcomm/x1p42100: Add ASCII memory map diagram to memlayout.ld
The memlayout.ld for X1P42100 was copied from a previous SoC and
lacked clear documentation about the platform's specific memory
organization.

This commit adds a detailed ASCII art diagram that provides a visual
representation of the complete memory map. The diagram clarifies the
locations of all major regions, such as AOPSRAM, SSRAM, BSRAM, SHRM,
and the various DRAM segments, which greatly improves the clarity and
maintainability of the linker script.

TEST=Builds successfully for x1p42100.

Change-Id: Ia1714f8da25a22a13f5960d056df33463dd99f31
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88783
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-23 03:12:53 +00:00
Subrata Banik
51a8e238b0 lib: Correct logo bottom margin handling for all panel orientations
This patch fixes a bug in load_and_render_logo_to_framebuffer where the
logo_bottom_margin was only correctly applied to the NORMAL
orientations.

For other orientations, the margin was incorrectly applied, resulting
in the logo not being positioned as expected.

TEST=Able to see logo footer in alignment with the logo center while
booting google/felino.

Change-Id: Ia886ef5305166b1307fcf5b0acd12582b4b6ad80
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88889
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-23 03:12:43 +00:00
Zhongtian Wu
9999a4aebb mb/google/nissa/var/pujjocento: Change touchscreen properties
Disabling fw splash caused touchscreen malfunctions.
Removing stop_delay_ms restored touchscreen functionality.
This modification reduces reset->i2c communication time
(before: 580ms; after: 300ms).

BUG=b:431870029,b:431870484
BRANCH=none
TEST=Build and boot to pujjocento. Verify touchpanel sequence

Change-Id: I838390f003d71bc63af0613ecf72515487a70492
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88878
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
2025-08-23 03:12:31 +00:00
Swathi Tamilselvan
8d2df573a8 soc/qualcomm/x1p42100/qclib: Support to pack and load CPR binary in CBFS
CPR image is required by Qclib for PMIC initialization. This patch adds
support to pack and load the CPR binary, reserves memory for CPR
settings in the memory layout and adds CPR entry in if_table which
is passed to Qclib.

TEST=1. Create an image.serial.bin and ensure it boots on X1P42100.
2. Verified using CPR load log from coreboot.
```
[INFO ]  CBFS: Found 'fallback/cpr' @0xa3900 size 0x46d in mcache
		@0x1485e340
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
		supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 1133 bytes, hash algo 2, HW acceleration
		forbidden
[INFO ]  CBFS: Found 'fallback/shrm_meta' @0xebb80 size 0xb0d in mcache
		@0x1485e7c0
```

Change-Id: I58161a1d05222c84e077ada1024db50440e783f1
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88870
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-22 06:05:08 +00:00
Swathi Tamilselvan
a484a6529c soc/qualcomm/common/qclib: Support to declare cpr_settings region
CPR image is required by Qclib for PMIC initialization. This patch
adds support to declare cpr_settings region and create CBFS prefix
for CPR.

Change-Id: Ia92717715eacaf05d33db040d99cf81d8d288111
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88869
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-22 06:05:01 +00:00
Ivy Jian
dc04ee827b mb/google/fatcat/var/kinmen: Generate SPD ID for memory modules
Add 2 memory parts in mem_parts_used.txt, and generate SPD id
for these parts.

1. H58G56CK8BX146 (Hynix)
2. MT62F2G32D4DS-023 WT:C (Micron)

BUG=b:422831379
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Ia6ee285f558a456c423586ccd7e970d14dd3cfea
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88865
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-08-21 18:54:57 +00:00
Tony Huang
e7cdf035fb mb/google/brox/var/caboc: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching PC10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

Disable GPP_F20 (EN_PP3300_SSD) and GPP_H23 (SRCCLKREQ#5) by fw_config
for Non-SSD sku.

BUG=b:435567235
TEST= emerge-brox coreboot
      suspend_stress_test verify that the device suspends to S0ix.

suspend_stress_test w/o this CL
(with Kioxia PCIE Gen4 SSD KBG60ZNV512G)
  Suspend failed, pc10 count did not increment from 0
  Package C-States Now :
  Package C2 : 26205917
  Package C3 : 0
  Package C6 : 0
  Package C7 : 0
  Package C8 : 0
  Package C9 : 0
  Package C10 : 0
  Substate   Residency
  S0i2.0     0
  S0i3.0     0

suspend_stress_test w/ this CL
  Device suspends to S0ix.
  Substate   Residency
  S0i2.0     0
  S0i3.0     12020538

Change-Id: Iecffa89ae7865bc63b1b0dd974a439f35e9ca7f4
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88771
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Reviewed-by: sridhar siricilla <siricillasridhar@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-08-21 16:47:31 +00:00
Swathi Tamilselvan
cec34128d0 soc/qualcomm/x1p42100: Support to load CPUCP firmware in x1p42100
CPUCP firmware along with its corresponding DTB must be loaded
and then taken out of reset from coreboot to initialize the CPUCP
subsystem. This patch adds support to load CPUCP and CPUCP DTB
firmware in X1P42100. The register details are part of
HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=1. Create an image.serial.bin and ensure it boots on X1P42100.
2. Verified using CPUCP load log from coreboot.
```
[INFO ]  CBFS: Found 'fallback/cpucp_dtbs' @0xe5580 size 0x163 in mcache
		 @0xff7dd714
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
		supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 355 bytes, hash algo 2, HW acceleration
		forbidden
[DEBUG]  Loading segment from ROM address 0x9f8040f8
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x81240000 memsize 0x103c srcaddr
		0x9f804130 filesize 0x12b
[DEBUG]  Loading Segment: addr: 0x81240000 memsz: 0x000000000000103c
		filesz: 0x000000000000012b
[DEBUG]  using LZMA
[SPEW ]  [ 0x81240000, 8124103c, 0x8124103c) <- 9f804130
[DEBUG]  Loading segment from ROM address 0x9f804114
[DEBUG]    Entry Point 0x81240000
[SPEW ]  Loaded segments
[DEBUG]  SOC:CPUCP DTBS image loaded successfully.
[INFO ]  CBFS: Found 'fallback/cpucp' @0xbe8c0 size 0x2607d in mcache
		@0xff7dd658
[DEBUG]  read SPI 0xcee914 0x2607d: 12635 us, 12328 KB/s, 98.624 Mbps
[INFO ]  VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
		supported for secdata_kernel v0, return 0
[INFO ]  VB2:vb2_digest_init() 155773 bytes, hash algo 2, HW
		acceleration forbidden
[DEBUG]  Loading segment from ROM address 0x9f8040f8
[DEBUG]    code (compression=1)
[DEBUG]    New segment dstaddr 0x1cb00000 memsize 0x2a628 srcaddr
		0x9f8041f4 filesize 0x11c6f
[DEBUG]  Loading Segment: addr: 0x1cb00000 memsz: 0x000000000002a628
		filesz: 0x0000000000011c6f
[DEBUG]  using LZMA
[SPEW ]  [ 0x1cb00000, 1cb21950, 0x1cb2a628) <- 9f8041f4
[DEBUG]  Clearing Segment: addr: 0x000000001cb21950 memsz:
		0x0000000000008cd8
[DEBUG]  Loading segment from ROM address 0x9f804114
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x1cb2b000 memsize 0xb520 srcaddr
		0x9f815e63 filesize 0x134e
[DEBUG]  Loading Segment: addr: 0x1cb2b000 memsz: 0x000000000000b520
		filesz: 0x000000000000134e
[DEBUG]  using LZMA
[SPEW ]  [ 0x1cb2b000, 1cb36520, 0x1cb36520) <- 9f815e63
[DEBUG]  Loading segment from ROM address 0x9f804130
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x1cb3e000 memsize 0x890 srcaddr
		0x9f8171b1 filesize 0x23
[DEBUG]  Loading Segment: addr: 0x1cb3e000 memsz: 0x0000000000000890
		filesz: 0x0000000000000023
[DEBUG]  using LZMA
[SPEW ]  [ 0x1cb3e000, 1cb3e890, 0x1cb3e890) <- 9f8171b1
[DEBUG]  Loading segment from ROM address 0x9f80414c
[DEBUG]    BSS 0x1cb3f000 (4096 byte)
[DEBUG]  Loading Segment: addr: 0x1cb3f000 memsz: 0x0000000000001000
		filesz: 0x0000000000000000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0x1cb3f000, 1cb3f000, 0x1cb40000) <- 9f8171d4
[DEBUG]  Clearing Segment: addr: 0x000000001cb3f000 memsz:
		0x0000000000001000
[DEBUG]  Loading segment from ROM address 0x9f804168
[DEBUG]    BSS 0x81200000 (38916 byte)
[DEBUG]  Loading Segment: addr: 0x81200000 memsz: 0x0000000000009804
		filesz: 0x0000000000000000
[DEBUG]  it's not compressed!
[SPEW ]  [ 0x81200000, 81200000, 0x81209804) <- 9f8171d4
[DEBUG]  Clearing Segment: addr: 0x0000000081200000 memsz:
		0x0000000000009804
[DEBUG]  Loading segment from ROM address 0x9f804184
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x81250000 memsize 0x11068 srcaddr
		0x9f8171d4 filesize 0xe59
[DEBUG]  Loading Segment: addr: 0x81250000 memsz: 0x0000000000011068
		filesz: 0x0000000000000e59
[DEBUG]  using LZMA
[SPEW ]  [ 0x81250000, 81261068, 0x81261068) <- 9f8171d4
[DEBUG]  Loading segment from ROM address 0x9f8041a0
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x81280000 memsize 0xc628 srcaddr
		0x9f81802d filesize 0x6d09
[DEBUG]  Loading Segment: addr: 0x81280000 memsz: 0x000000000000c628
		filesz: 0x0000000000006d09
[DEBUG]  using LZMA
[SPEW ]  [ 0x81280000, 8128c628, 0x8128c628) <- 9f81802d
[DEBUG]  Loading segment from ROM address 0x9f8041bc
[DEBUG]    data (compression=1)
[DEBUG]    New segment dstaddr 0x81290000 memsize 0x31bf8 srcaddr
		0x9f81ed36 filesize 0xb43f
[DEBUG]  Loading Segment: addr: 0x81290000 memsz: 0x0000000000031bf8
		filesz: 0x000000000000b43f
[DEBUG]  using LZMA
[SPEW ]  [ 0x81290000, 812c1bf8, 0x812c1bf8) <- 9f81ed36
[DEBUG]  Loading segment from ROM address 0x9f8041d8
[DEBUG]    Entry Point 0x1cb00000
[SPEW ]  Loaded segments
[DEBUG]  SOC:CPUCP image loaded successfully.
[DEBUG]  CPU_CLUSTER: 0 init finished in 735 msecs
```

Change-Id: I195f038b2380de7796691f0194cf3e39f8d9a991
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88815
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-21 07:11:20 +00:00
Niklaus Liu
a2b6e20509 soc/mediatek/common: Increase per-channel SPMI max byte count to 2
In the scenario of suspend, when the SPM firmware attempts to turn off
the VDDQ and VMDDR power supplies, the command sent is rejected by PMIF,
resulting in a system hang. The reason is that SPM simultaneously wrote
two registers (two bytes), while the original configuration only allowed
reading or writing one byte at a time.

Modify the maximum number of bytes that an SPMI user can read or write
in a single operation to meet the requirement of reading or writing 16
bits at once.

BUG=b:420874944
BRANCH=skywalker
TEST=2-byte R/W passed; suspend-resume verified successfully.

Change-Id: I46ace45564328c46ab340b74d73e3574957e36ef
Signed-off-by: Niklaus Liu <niklaus.liu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88790
Reviewed-by: Vince Liu <vince-wl.liu@mediatek.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Niklaus Liu <niklaus.liu@mediatek.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-08-21 04:24:13 +00:00
Vince Liu
6ba2df9be5 soc/mediatek/common: Use polling to reduce eDP HPD wait time
Some eDP panels assert HPD (Hot Plug Detect) after panel VCC is enabled,
typically around 200ms. To reduce boot time, this commit replaces the
original fixed 200ms delay with polling for the HPD status, shortening
the waiting period to approximately 70ms.

Once the HPD pin is detected high, an additional delay of around 1ms is
introduced to ensure the AUX channel is ready for EDID reading.

BUG=b:434574691,b:439535227,b:439476647
BRANCH=none
TEST=Check firmware display on Navi and Skywalker

Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I6702c79416700b44d4bfbc763b6fc6003feb69b5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88864
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-08-21 04:23:53 +00:00
Swathi Tamilselvan
ee347d8812 soc/qualcomm/common/qclib: Support to load AOP config and meta in CBFS
Add support to load AOP config and AOP config metadata.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: Ic6a7eaa771178f20920df7936685cb212467b055
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88856
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-20 04:04:04 +00:00
Swathi Tamilselvan
3f4c84513d soc/qualcomm/x1p42100/qclib: Support to pack AOP config and meta in CBFS
Add support to pack AOP config and AOP config metadata. Reserve
region for aop blob meta load in memlayout.

Change-Id: Iafa4d878d6bf515824681b24f6078ab868c26bf6
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88814
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-20 04:03:59 +00:00
Elyes Haouas
5de5b519ca mb/prodrive/atlas/vpd.c: Replace union {0} initializers with {} for C23 compliance
This change addresses GCC-15 behavior where {0} union initializers only
clear the first member, leaving padding bits uninitialized. The new {}
initializer ensures full union clearing as required by C23.

Change-Id: I1d2761856e0c9bf9cc7045cc8e3af622582bd1ed
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88860
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-20 03:11:02 +00:00
Nicholas Sudsgaard
48207895af lint: Warn about using change IDs for merged changes
This script will warn and suggest fixes when a CB:<change-id> of an
already merged change is found in the commit message. This should
enforce the clarification that was added to the documentation in
CB:88776.

This script requires a JSON parser (i.e. jq) to parse Gerrit's
REST API[1]. While it may be possible to grep the values, we chose to
use a proper parser to ensure there would be no false-positives.

TEST=
Prepare a commit with the following commit message:

  Here are some open changes: CB:88614 CB:88717 CB:87282
  Here are some abandoned changes: CB:88413 CB:84504 CB:82136
  Here are some merged changes: CB:88566 CB:88598 CB:88697
  Here are some old merged commits: CB:1 CB:50 CB:950
  Here are some wrong stuff: CL:100 CB:TEST CB:99999

The script produces the following result (may change in the future when
open changes are merged etc):

  Using a change ID (CB:88566) for an already merged commit; please replace it with:
  commit 21639c3771 ("mb/getac/p470: Use common gpio functions")
  Using a change ID (CB:88598) for an already merged commit; please replace it with:
  commit 05a38e2af3 ("mb/google/fatcat: Disable memory training progress bar")
  Using a change ID (CB:88697) for an already merged commit; please replace it with:
  commit 1da2f46db8 ("soc/intel/alderlake: Restore mem_init_override_channel_mask()")
  Using a change ID (CB:1) for an already merged commit; please replace it with:
  commit 140a990a61 ("Teach abuild to emit JUnit formatted build reports")
  Using a change ID (CB:50) for an already merged commit; please replace it with:
  commit 7c634ae8c1 ("msrtool: added support for Intel CPUs")
  Using a change ID (CB:950) for an already merged commit; please replace it with:
  commit c31384e62c ("Fix up Sandybridge C state generation code")
  CB:99999 does not exist

[1] https://gerrit-review.googlesource.com/Documentation/rest-api.html

Change-Id: I1c72f739b1f47b1227ef1e158b1553aa56945d7e
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88715
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-08-19 20:57:26 +00:00
Nicholas Sudsgaard
6acf07022d Doc/contributing: Add clarification on how to reference other commits
This should address the following open action item from the coreboot
leadership meetings[1]:

> Add clarification to docs, "do not use gerrit change-id or CB: format
> in reference to already-merged patches".

[1] https://mail.coreboot.org/archives/list/coreboot@coreboot.org/thread/YCA55MINAFK5M56OAUA2NMM7WDMDEGXI/

Change-Id: Ie742caca70e284254bb7f8a070c3a441b6a80c58
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88776
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-19 20:57:21 +00:00
Yu-Ping Wu
40d0ec0fa4 Revert "soc/mediatek/common: Remove 200 ms delay from eDP init path"
This reverts commit df7bf9404d.

Reason for revert: This breaks Skywalker firmware display.

Change-Id: I92cb26533c73f4e0c552f3c41d9c1f408ca2d083
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88812
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-19 20:57:10 +00:00
NyeonWoo Kim
244a34b3d0 cpu/x86/mp_init: Refactor ICR wait logic
Extracted ICR wait logic into a new function 'icr_wait_timeout'.

Change-Id: Ie48899f7afb125061fd7efd44c83f5775c05d254
Signed-off-by: NyeonWoo Kim <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88788
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-08-19 20:56:58 +00:00
Patrick Rudolph
eee5be070a cpu/intel: Use mtrr_use_temp_range()
Cover the SPIROM with a temporary MTRR to speed up SPI flash accesses
after MPinit has removed the MTRR that was installed for postcar stage.

TEST=Booted on Lenovo X220 and measured using cbmem -t:
Before:
  16:finished LZMA decompress (ignore for x86)         1,391,520 (366,351)

After:
  16:finished LZMA decompress (ignore for x86)         1,218,418 (210,054)

Boots 156msec faster than before.

Change-Id: Ia3df06b5c2a09e05c76361f3e38be83475122ee7
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88811
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-19 20:56:12 +00:00
Patrick Rudolph
e37a53a2fc arch/x86/memcpy: Fix undefined behaviour
Clear DF flag before invoking MOVS instruction to make sure it
increments %esi/%edi on each mov.

Change-Id: I209f50dec2003ea9846e5958d3e77b8979f338df
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88796
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-19 20:55:24 +00:00
alokagar
7c0f7e0b3f vc/intel/fsp: Update PTL FSP headers to FSP 3272_04
Update header files for FSP for Panther Lake platform to FSP 3272_04
from FSP 3182_01

Details:
-Update FspmUpd.h: Add below variable
   -MsHashInterleaveBit, MsHashMask, LogoPixelHeight, LogoPixelWidth,
    LogoXPosition, VgaGraphicsMode12ImagePtr, LogoYPosition,
    IsWckIdleExitEnabled, ChannelToCkdQckMapping, PhyClockToCkdDimm
-Update FspsUpd.h: Update the definition of PchTsnEnable
-Update MemInfoHob.h:
  - Add structure for RMT_VAR and related defintions.

BUG=b:435593291
TEST=Able to build google/fatcat with the partial header changes

Change-Id: Ibd9f32798e07d53a7e0e12b5828435c6d70f5f57
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88632
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-19 11:29:21 +00:00
Martin Kepplinger
d315f26217 payload/seabios: Update from 1.16.3 to 1.17.0
from the project's Releases.md file:
* Prefer PCI IO allocations above 4Gig on 64bit capable machines.
* Multiple simultaneous USB keyboard and mouse support.
* Legacy support for internally generated ACPI tables has been removed.
* SeaVGABIOS support for VBE get/set palette data.
* Several bug fixes and code cleanups.

TEST=Successfully booted lenovo/t530

Change-Id: Ie1f0620ce46ebdafc84e8e13a79aa21c0526c235
Signed-off-by: Martin Kepplinger <martink@posteo.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88256
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-08-18 23:44:36 +00:00
Kapil Porwal
c61a762a47 mb/google/bluey: Add QuenbiH board
BUG=b:436402120
TEST=Build Google/QuenbiH.

Change-Id: Ie4f3d6e41192e0865cd82285047f184bc2a8f425
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88787
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-18 22:02:05 +00:00
Kapil Porwal
9edf49b008 mb/google/bluey: Add BlueyH board
BUG=b:436402120
TEST=Build Google/BlueyH.

Change-Id: Ifceb70a2f25cff6d404bb6691146b2bb2109a957
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88786
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-18 22:01:59 +00:00
Kapil Porwal
9868417d5e mb/google/bluey: Refactor Kconfig for Hamoa SoC
BUG=b:436402120
TEST=Build Google/Quenbi.

Change-Id: Ia9cb040930be1609a9b2a0c9934b30e85386a2d6
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88785
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-18 22:01:52 +00:00
Daniel Peng
74d91d0b76 mb/google/nissa/var/glassway: Support Memory MICRON MT62F512M32D2DR-031WT:B
Add the new memory support: MICRON MT62F512M32D2DR-031WT:B

BUG=b:438654646
BRANCH=firmware-nissa-15217.B
TEST=Run command "go run ./util/spd_tools/src/part_id_gen/\
     part_id_gen.go ADL lp5 \
     src/mainboard/google/brya/variants/glassway/memory/ \
     src/mainboard/google/brya/variants/glassway/memory/\
     mem_parts_used.txt"

Change-Id: I3ffb5001596776ac4cfd9b3ffa2bb1c486b33b6f
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88781
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-18 13:49:16 +00:00
Cong Yang
7eb832b1dc mb/google/skywalker: Configure GPIO GPIO_AP_EDP_BKLTEN as output
Config GPIO GPIO_AP_EDP_BKLTEN as output low. When skipping firmware
display, it can prevent leakage to GPIO_AP_EDP_BKLTEN and cause it
to be pulled up to a 0.6 V step.

BUG=b:438353560
BRANCH=none
TEST=skip fw display check GPIO_AP_EDP_BKLTEN Waveform

Change-Id: Icea1e035d62c89ea26bc58afa1d64ab8a448cc04
Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88772
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Haikun Zhou <zhouhaikun5@huaqin.corp-partner.google.com>
2025-08-18 03:48:19 +00:00
Subrata Banik
cdd42ccde8 soc/qualcomm/x1p42100: Use 4K for memory region alignment
The alignment for several memory regions in the linker script was
specified using numeric values like `4096` or the hexadecimal `0x1000`.
Replace these values with the more readable `4K` shorthand. This change
improves consistency within the file and has no functional impact on
the generated binary.

TEST=Build and boot google/quenbi.

Change-Id: I28fdf3714d96f5e68a615d1550cf47d975ab5685
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88803
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-18 02:04:07 +00:00
Tony Huang
2146ecc8e1 mb/google/brox/caboc: Enable PEG60 with PEG62
Currently the SSD is preventing the system from entering S0ix sleep,
the system PKG C-State is stuck at PC3.

Intel RDC#642067 reveals while PEG60 is NDA but PEG62 is DA, need to
keep default PEG60 enabled and assign an unused CLKREQ# for port PEG60.

PEG60 is 00:06.0 (CPU PCIe Root port A).
PEG62 is 00:06.2 (CPU PCIe Root port B).
Caboc connectd SSD to PEG62 while PEG60 is not used.

As described above, follow RDC to assign the unused CLKREQ#5 for port
PEG60 and enable its related settings including pcie4_0, GPP_H23 NF2
as SRCCLKREQ#5, vGPIO and confirm the SSD can enter suspend.

BUG=b:435567235
TEST= emerge-brox coreboot
      suspend_stress_test pass 100 cycles on SSD sku.
      Measured the Boot/Resume time has improved.
      seconds_power_on_to_kernel (Boot time)
      Before/After 2.616/1.609
      seconds_system_resume (Resume time)
      Before/After s0ix error/0.338123

Change-Id: I26afeffd466cb2d8e0a0e4213214bde3b0a3b25b
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88764
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Simon Yang <simon1.yang@intel.com>
2025-08-18 01:06:29 +00:00
Subrata Banik
6925fd69f8 soc/qualcomm: Move common region macros to soc/memlayout.h
The `SSRAM_START/END`, `BSRAM_START/END`, and `AOPSRAM_START/END`
macros were redefined across multiple Qualcomm SoC `memlayout.ld` files.

To reduce code duplication and improve maintainability, this commit
moves these common macros into the shared `<soc/memlayout.h>` header
part of the Qualcomm common code.

The SoC-specific linker scripts are updated to remove the local
definitions.

TEST=Built for all affected SoCs (qcs405, sc7180, sc7280, x1p42100)

Change-Id: I8638b8e03e1e51f57b7e91a072f3d9cdb4ec6200
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88782
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-17 01:10:35 +00:00
Subrata Banik
d220b65b8f soc/qualcomm/qcs405: Add common include path
Add the common Qualcomm SoC include path to the qcs405 Makefile.
This allows the SoC-specific code to use shared headers located in
`src/soc/qualcomm/common/include`, promoting better code reuse and
organization.

TEST=Build for qcs405 target successfully.

Change-Id: Ie4bc9f3a4fc259adcdc4107c92aab0cb5c8676c1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88789
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-17 01:10:15 +00:00
Subrata Banik
b25939786d soc/qualcomm/x1p42100: Refactor CBMEM top address to use linker symbols
This commit refactors how the CBMEM top address is determined. Instead
of using a hardcoded value, the CBMEM top address is now starts at
offset `_dram_smem`.

Note: CBMEM region grows from top to bottom hence, starting cbmem_top
at offset `_dram_smem` won't override the SMEM reserved range.

The hardcoded value is problematic as it overrides the SMEM reserved
range and resulted into the boot halt.

The changes include:

- cbmem.c: The cbmem_top_chipset() function is updated to return the
address of the `_dram_smem` linker symbol plus its size.

This refactoring removes a magic number from the code, improving
readability, maintainability, and consistency with how other memory
regions are handled.

BUG=b:437948495
TEST=Able to ensure booting google/quenbi till kernel w/o
abrupt shutdown.

```
[DEBUG]  CBMEM:
[DEBUG]  IMD: root @ 0xff7ff000 254 entries.
[DEBUG]  IMD: root @ 0xff7fec00 62 entries.
```

Change-Id: Idb6a8a47f38d873c6ad4f0d995e77e657cc00ac0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88780
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-17 01:09:49 +00:00
Subrata Banik
d6ec4f108d soc/qualcomm/x1p42100: Mark additional reserved memory ranges
This commit refactors the DRAM memory layout to reserve additional
regions critical for platform functionality and debugging. It
consolidates several CPUCP-related memory areas and adds new
reservations for Ramdump and Shared Memory.

- Ramdump and Shared Memory: New reserved regions, dram_ramdump and
  dram_smem, are added to protect memory used for crash dumps and
  inter-processor communication.

- CPUCP Optimization: The individual NCC, CPUCP, and CPUCP-DTS regions
  are consolidated into a single, contiguous dram_cpucp region from
  0x80A00000 to 0x815A0000. This simplifies the memory map and
  optimizes resource allocation.

Reserving these regions is crucial to prevent other bootloader stages
or the kernel from overwriting critical firmware data, which could lead
to unexpected behavior or system instability.

BUG=b:437948495
TEST=Able to ensure booting google/quenbi till kernel.

Change-Id: I80f6d288dd054a34a1e60736c8b14f072559c1ac
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88779
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-17 01:07:08 +00:00
Subrata Banik
1b760645b9 soc/qc/x1p42100: Dynamically configure DRAM resources in ramstage
This commit updates the x1p42100 platform to support a dynamic memory
layout for DRAM. This is a crucial step toward supporting different
board variants with varying memory capacities.

The changes involve:

- ramstage build: The mmu.c source file is now included in the ramstage
build, providing the necessary functions to configure the Memory
Management Unit (MMU) for fragmented memory regions.

- Linker Script (memlayout.ld): The dram_space_1 and dram_space_2
regions are statically defined with their maximum possible sizes.

- SoC Initialization (soc.c): The soc_read_resources function is
refactored to use a new helper function, qc_get_soc_dram_space_config,
to retrieve a list of available DRAM regions. It then iterates through
this list to dynamically register each memory region with ram_range.
This replaces the previous static ram_range call with a more flexible
approach that can handle fragmented memory maps. Reserved regions are
also updated to use a dynamic index.

This refactoring allows the system to correctly handle memory maps for
devices with more than 2GB of DRAM, which was a limitation of the
previous static configuration.

TEST=Able to build and boot google/quenbi w/ 16GB of DRAM (using
DDR_SPACE and DDR_SPACE_1 regions).

Change-Id: If94644110272713f77db5a0dd6d23ec0798a15f0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88753
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-17 01:06:58 +00:00
Subrata Banik
276432faf7 soc/qualcomm/common: Add MMU configuration for fragmented DRAM regions
Stating with Qualcomm X1P42100 SoC generation, the DRAM memory map is
not expected to be contiguous (unlike previous generations) therefore,
the memory map could be something like this.

1. Assume hardware design has 4GB of DRAM then the memory map would
look like:
  - DDR_SPACE (2 GB) :  0x80000000 - 0x100000000
  - DDR_SPACE_1 (2 GB) : 0x880000000 - 0x900000000

2. Assume hardware design has 16GB of DRAM then the memory map would
look like:
  - DDR_SPACE (2 GB) :  0x80000000 - 0x100000000
  - DDR_SPACE_1 (14 GB) : 0x880000000 - 0x400000000

3. Assume hardware design has 64GB of DRAM then the memory map would
look like:
  - DDR_SPACE (2 GB) :  0x80000000 - 0x100000000
  - DDR_SPACE_1 (30 GB) : 0x880000000 - 0x1000000000
  - DDR_SPACE_2 (32 GB) : 0x8800000000 - 0x9000000000

This commit introduces logic to handle systems with fragmented DRAM
configurations. Previously, the Memory Management Unit (MMU) was
configured assuming a single, contiguous block of DRAM.

This change extends the MMU setup to properly configure multiple,
non-contiguous DRAM regions.

The changes include:

- Declaring dram_space_1 and dram_space_2 as optional regions, allowing
the dynamic allocation for these DRAM ranges based on DRAM capacity of
the platform.

- Introduce `qc_get_soc_dram_space_config` function that takes care of
DRAM based resource splitting as per `_dram`, `_dram_space_1` and
`_dram_space_2` region limit.

- Modifying qc_mmu_dram_config_post_dram_init() to check for these
optional regions and configure them individually. This ensures all
available DRAM is correctly mapped and accessible to the system.

This approach improves flexibility and allows coreboot to support a
wider range of Qualcomm platforms with different memory layouts.

TEST=Able to boot google/quenbi to OS.

Change-Id: If3788f4c77535f9a5e47ad2034ab9a8e0fe85b51
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88752
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-17 01:06:50 +00:00
Subrata Banik
b4347f11d9 include: Make DRAM an explicit region
This patch makes DRAM an explicit region by introducing
DECLARE_OPTIONAL_REGION(dram) and DRAM_END().

Note: many SoC platforms determine DRAM size and layout dynamically
during boot, making a static compile-time value is not feasible always.
Attempting to use REGION_SIZE(dram) in this scenario would result in a
missing symbol `_dram_size` error.

By making dram an optional region, we allow its size and address to be
defined only when available, preventing build failures on platforms
that configure DRAM dynamically.

The old extern u8 _dram[] is removed, as it's now covered by the new
region definition.

This is a preparatory step for future changes that will make use of
the new DRAM_END() macro.

This symbol is necessary for systems that require
the DRAM size to be known and accessible from the linker script or
other parts of the build system.

Additionally, a new macro DRAM_END(addr) is defined in memlayout.h.
This macro provides a consistent way to mark the end of the DRAM
region, similar to how REGION_END and other start/end macros are used
throughout the codebase.

TEST=Able to build and boot google/quenbi.

Change-Id: Ib98ec4b991eed56385c83be6a9ca39ff1380ff1b
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88751
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-16 01:58:58 +00:00
Subrata Banik
11c8d423d1 soc/qc/common: Remove ddr_base from qc_mmu_dram_config_post_dram_init
This commit refactors the qc_mmu_dram_config_post_dram_init function
to remove the ddr_base parameter. The function can now retrieve the
base address of the DRAM from the ddr_region global variable, which
is already available.

TEST=Able to build and boot google/quenbi.

Change-Id: I97159dee6a035ed3e38cbfca1e44b8e671d15fc1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88765
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-16 01:58:34 +00:00
Subrata Banik
73de3f95ac mb/google/bluey: Support hardware watchdog logging
This patch adds support for hardware watchdog event logging which is
useful while debugging crashes or abnormal shutdown.

TEST=Able to build and boot google/bluey.

Change-Id: Iaa60e4eb564a1f517b979c2007707746f3453092
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88775
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-16 01:58:26 +00:00
Tony Huang
25e0a4642c mb/google/brox/var/caboc: Update LAN LED behavior
Value is from vendor, change to 0x0807 the LED behavior meets spec:
LED0: Green when connected.
LED2: Blink amber when active.

BUG:b=437217680
TEST=emerge-brox coreboot
     Check firmware log output
     [DEBUG]  r8168: Customized LED 0x807
     [DEBUG]  r8168: read back LED setting as 0x807
     Verified the LED behavior of LAN actions meets spec.

Change-Id: I37a3c62b38cd7a3a23b4f8a9c3cb2432393c7a27
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88720
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-08-15 19:00:50 +00:00
Sowmya Aralguppe
e5ff7cb186 mb/google/ocelot/var/ocelot: Update DDI port Configuration
This patch enables DDC only for HDMI (Port B) to support EDID/DDC
communication so that the system can communicate with the monitor and
set up the display properly.

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b: None
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: I6bf7c249dd154ab12a4b2539ecb7872392c132fa
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88648
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-15 19:00:37 +00:00
Alicja Michalska
8df079c609 mb/lattepanda/mu: Enable CRB TPM (Intel fTPM)
While helping with board bringup, I noticed that CRB is enabled in mFIT
but it was missing in board code.

Change-Id: I8f34cac2508ef15f5b6f6542a912fb12af3c2dbf
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88275
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: KunYi Chen <kunyi.chen@gmail.com>
2025-08-15 19:00:23 +00:00
Matt DeVillier
6e9c0a26e3 device/device_util: Fix format specifier for DEVICE_PATH_GICC_V3
dev->path.gicc_v3.mpidr is an unsigned long long, so the format
specifier should be %llx, not %x. Keep the minimum 2 digit output.

BUG=CID 1611971

Change-Id: I126b0281efcba2c3e41cf6da4d006b8d2eb7215b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88769
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-08-15 19:00:14 +00:00
Shon Wang
4a82f37525 mb/google/nissa/var/quandiso: Generate new RAM ID
Generate RAM ID for
IC SDRAM(315P) MT62F1G32D2DS-023 WT:C
IC SDRAM(315P) H58G56CK8BX146
IC SDRAM(315P) K3KL8L80EM-MGCU(FBGA)

DRAM Part Name                 ID to assign
MT62F1G32D2DS-023 WT:C         7 (0111)
H58G56CK8BX146                 7 (0111)
K3KL8L80EM-MGCU                7 (0111)

BUG=b:438402880
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I7ff2f2d43784a6034c1262913dbeaffc1dc3036f
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88766
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-15 19:00:05 +00:00
Nicholas Sudsgaard
17a7c351b8 mb/google/brya/var/kaladin/hda_verb.c: Correct number of entries to 21
Counting the entries on the verb table, there are 10 "AZALIA_" macros
and 44 32-bit values. Therefore, the correct amount of entries should be
10 + (44 / 4) = 21.

Change-Id: Ic858d9076d12755014caa28e428d57dde0ef375d
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88645
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-15 18:59:55 +00:00
Nick Vaccaro
b65b98ace6 mb/goog/ocelot/var/ocelot: switch to H58G56BK8BX068 memory part
Switch the DRAM_ID 0 memory part from the H58G56BK7BX068 memory part
to H58G56BK8BX068 for ocelot.

BUG=b:437989448
TEST=`emerge-ocelot coreboot chromeos-bootimage', flash and boot
ocelot and verify it's able to train memory without error.

Change-Id: I979a75f770cc5bf82b7c5537e4c36651ecc21ea6
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88759
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-15 18:58:42 +00:00
Julius Werner
8097809c8a libpayload: Fix strsep() edge cases
Our strsep() function is slightly incorrect in that it leaves the
`stringp` pointer pointing to the terminating NUL byte after parsing the
last token. The man page for official implementations says:

> In case no delimiter was found, the token is taken to be the entire
> string *stringp, and *stringp is made NULL.

This doesn't affect things in practice much because we also
(incorrectly) return NULL when called with `**stringp == '\0'`, meaning
the usual pattern of calling `strsep()` in a row without checking
results first still works when there are less tokens than expected,
since we terminate early from that case instead. But it does break the
edge cases where the caller wants to check if there were extra bytes
beyond the last token (`stringp == NULL`), and where we call `strsep()`
on a pointer pointing directly to a terminating NUL byte already
(supposed to return an empty string but our implementation actually
returns NULL). It doesn't look like these edge cases occur anywhere in
current libpayload or depthcharge code.

This patch fixes the issue and also adds a unit test to ensure it
remains correct in the future. (Also move the definition of the `errno`
variable from lib.c into string.c, because `perror()` in string.c is the
only function that actually needs that, and the crazy linker error you
get when only linking one but not the other into a test will waste you
half an hour to figure out.)

Change-Id: I610b5117710c110bcba4fac2a0bb6c13f4f8d046
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88729
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-13 17:44:31 +00:00
Sowmya Aralguppe
e38a216368 soc/intel/pantherlake: Rearm and clear only for valid crashlog in PMC
Rearm and clear functions are called only if a valid crashlog is
present and extracted. If there is no valid crashlog, rearming will
lead to incorrect notification and skipping of the next crashlog event

BUG=b: None
TEST= PMC discovery buffer - rearmed status bit (trig_armed_sts)
      MMIO read of Bit position 25 is rearmed status bit
	  MMIO read of desc_table_addr = (bar_address + offset)
	  desc_table_addr = 0x9c198000 +  0x1d00 = 0x9c199d00
	  :1 for cold boot and
	  :0 for warm boot after manual crash

Change-Id: I42da487abd383567d7945835b738557e2e3fa714
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88519
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
2025-08-13 13:23:39 +00:00
Sowmya Aralguppe
510686add4 soc/intel/pantherlake: Rearm crashlog using watcher
After crashlog data is extracted, CPU rearm command is issued to
prepare the crash logging mechanism for future events. Instead of
command and response polling of mailbox, watcher interface which is a
direct MMIO based, low latency control register is used for efficiency.
In PTL, a Crashlog watcher providing control the same way provided by
Crashlog Mailbox Interface used by (mainly) BIOS is used for all CPU
crashlog control requests from BIOS to PUNIT.

BUG=b: None
TEST= Manually trigger crash using command
iotools mmio_write32 (baraddress + watcher offset=0x10) 0x20000000
followed by warm boot, check rearm status - which is 25th bit of
*(bar_address)

Change-Id: I89dd23fad144c1c7122b5536f1ac848ea66ea6b1
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88515
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-13 13:23:23 +00:00
Sowmya Aralguppe
609eb4c5f1 mb/google/ocelot/var/ocelot: Remove unused I2C controllers
Set I2C2, I2C3, and I2C4 controllers to disabled in serial_io_i2c_mode
Remove configuration for I2C2, I2C3, and I2C4 from common_soc_config

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b: None
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: Ibe26bde3ffbd4b188584369cdd686ffb116d6a7d
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88650
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-08-13 13:23:06 +00:00
Yidi Lin
df7bf9404d soc/mediatek/common: Remove 200 ms delay from eDP init path
According to MediaTek, this delay was added in the driver bring-up stage
to mitigate the display garbage issue. Now, the delay can be removed.

BUG=b:434574691
TEST=Check FW screen on Navi

Change-Id: I5408d95be7a4aaf8bb4bb639c319320514c4fd99
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88744
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-08-13 06:57:01 +00:00
Yidi Lin
a70bf82036 soc/mediatek/common: Measure eDP initialization time
Meaure the execution time for following eDP functions.
- dptx_check_sinkcap
- dptx_get_edid
- dptx_set_trainingstart
- mtk_edp_init

These dptx_* functions are the primary contributors to the execution
time of mtk_edp_init, which is only called in dev/recovery mode. This
insight can be used for future boot time optimization by breaking down
the eDP initialization process.

TEST=Boot with DEV mode using the boot image without serial console
support.
TEST=cbmem -c|grep "done after"
[INFO ]  dptx_check_sinkcap done after 38 msecs
[INFO ]  dptx_get_edid done after 294 msecs
[INFO ]  dptx_set_trainingstart done after 100 msecs
[INFO ]  mtk_edp_init done after 438 msecs

Change-Id: I7aabf3a33b9628f20fe16980033b00de9afc44e6
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88584
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-08-13 06:56:55 +00:00
Yidi Lin
6bb1ba95e1 soc/mediatek/common/dp: Move mtk_edp_init to dptx_common.c
mtk_edp_init is similar in dptx_v1.c and dptx_v2.c. Make mtk_edp_init
common by

1. Extract dptx_set_tx_power_con and dptx_set_26mhz_clock to
   edp_power_on.
2. Add dptx_hal_phy_init weak function for the platform which does not
   require initialization.

TEST=emerge-cherry coreboot && emerge-rauru coreboot

Change-Id: I686208c6bf8538354fb4fd238755899b0ef8f86b
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88582
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-08-13 06:56:49 +00:00
Subrata Banik
e49e8c6355 soc/qc/x1p42100: Add memory layouts for CPUCP and TZ regions
The commit adds new memory regions for the CPUCP (CPU Subsystem Control
Processor) and TZ (TrustZone) components to the x1p42100 SoC. This is
necessary to properly reserve the memory used by these firmware
components during boot.

The changes involve:
 - Declaring new memory regions dram_cpucp_dtbs, dram_cpucp, dram_tz,
   and dram_tz_rem in the symbols_common.h header.
 - Defining the base addresses and sizes for these new regions in
   memlayout.ld.

Registering these memory ranges as reserved in the soc_read_resources
function in soc.c so that coreboot does not overwrite them.

TEST=Able to load aop firmware while booting google/quenbi without
boot hang.

Change-Id: I1ecbc1e5ea420b7bdd5518612082ca0e14b35f6e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Suggested-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88750
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-13 03:34:36 +00:00
Tony Huang
c418a3b843 mb/google/brox/var/caboc: Update WWAN gpio
Caboc schematic 0702 uses a MOS reverse pin to connect
GPP_A21(WWAN_FWUPD) to WWAN(PERST). The WWAN_PERST is a low active pin.
Change GPP_A21 and overridtree setting based on the above description.

BUG=b:437017620
TEST=emerge-brox coreboot
     WWAN module is enumerated in lspci
     modem status can find WWAN module

Change-Id: I3b75b53f0e5731b2fec48634c672a6432acdde7f
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88706
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-08-12 16:35:32 +00:00
Tony Huang
77b52ed3cc mb/google/brox/var/caboc: HDA: Correct number of jacks to 35
Commit 32b944b77a ("mb/google/brox/var/caboc: Update hda_verb table"), CB:88627 didn’t update the number of jacks, so do it now.

BUG=b:435345756
TEST=emerge-brox coreboot
     check system audio output is fine

Change-Id: Id559ceba2d5c21b120c76147bf042520e57865a7
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88644
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-08-12 16:29:54 +00:00
Swathi Tamilselvan
e31fbc493d soc/qualcomm/cmn/qclib: Support reuse of existing DDR training data
This patch adds support to skip DDR training when valid training data
is available in flash.

The exact size of the training data is passed to ensure accurate hash
computation. A hash is computed on the DDR training data using the
specified size and compared with the stored hash in the header. This
requires passing only the exact training data size to ensure correct
validation.

TEST=Create an image.serial.bin and ensure it boots on X1P42100. Verify
that the DDR training is skipped when valid data is available in flash.

w/o this patch: doing RW_MRC_CACHE update in every boot.

```
[DEBUG]  MRC: Checking cached data update for 'RW_MRC_CACHE'.
[DEBUG]  read SPI 0xc1f290 0xf27c: 5010 us, 12390 KB/s, 99.120 Mbps
[DEBUG]  MRC: cache data 'RW_MRC_CACHE' needs update.
[DEBUG]  MRC: updated 'RW_MRC_CACHE'.
```

w/ this patch: no need to perform RW_MRC_CACHE update.

```
[DEBUG]  FMAP: area RW_MRC_CACHE found @ c10000 (65536 bytes)
[DEBUG]  read SPI 0xc10024 0xf268: 5016 us, 12371 KB/s, 98.968 Mbps
```

Change-Id: I1a5ad0766ea77b22e6a8cb97c24a90c24629dfd0
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88742
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-08-12 08:39:15 +00:00
Luca Lai
bdcf19f404 mb/google/trulo/var/pujjolo: Add fw config for PDC
Because the EQ tuning is different from type-c C1 port in
pujjolo and pujjoquince daughter board, so use fw config to
assign the specific PDC fw.

BUG=b:436445362
TEST= Build and boot to OS and check PDC FW version.

Change-Id: Id9ce85e40e919ab572ce1c560b4daf3c977de682
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88698
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-12 08:04:38 +00:00
Luca Lai
13897bde9a mb/google/trulo/var/pujjolo: Add wlan rtd3 setting
Because of preventing S0ix fail caused by wlan, so according to
intel suggestion, add wlan rtd3 setting.

BUG=b:422600523
TEST= Build and boot to OS and check S0ix test using
`suspend_stress_test -c 5` work fine.

Change-Id: I959da35d60e0da058727519d6db082ea415dbe2a
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88743
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-12 08:04:28 +00:00
Swathi Tamilselvan
90589d44d2 soc/qualcomm/x1p42100: Reserve DDR memory regions for AOP and BL31
Updated the memory layout file to include necessary DDR region
reservations for AOP and BL31.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I67b0210dfc563c0a0e8f879b1f41693e1d0e6384
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88724
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-11 18:00:25 +00:00
Subrata Banik
2e61995b2f soc/qualcomm/x1p42100: Add support for Hamoa SoC
Introduce a new `SOC_QUALCOMM_HAMOA` Kconfig option and refactor the
Qualcomm SoC build to support Hamoa.

This change prepares the groundwork for Hamoa-based mainboards by:

- Creating a common base: A new `SOC_QUALCOMM_BASE` Kconfig option
  is introduced to group configurations shared between Qualcomm SoCs.
- Separating SoC-specific blobs: The build process now dynamically
  selects the correct device tree blob (DTB) and display control blob
  (DCB) files for Hamoa via a new `DTB_DCB_BLOB_PATH` variable in the
  `Makefile.mk`.
- Enabling future mainboards: This allows mainboards built on the Hamoa
  SoC to be configured and built within the existing Qualcomm SoC
  directory.

BUG=b:437662790
TEST=Able to build and boot google/quenbi.

Change-Id: Ife983495b757fbf06ad96f0ca15fd89bf41c77c0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88737
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-11 17:51:21 +00:00
Subrata Banik
281b01ce5e soc/qualcomm/x1p42100: Remove unused PMIC file from CBFS
This commit removes the Pmic.bin file from the coreboot filesystem
(CBFS) and the Makefile.mk for the Qualcomm x1p42100 SoC.

The PMIC file is no longer used in the boot process. It's safe to
remove it to reduce the size of the final coreboot image and clean
up the build configuration.

TEST=Able to build and boot google/quenbi.

Change-Id: Iac8e4b32677f36959323a5dd3a5c7f88a6359720
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88736
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-11 17:51:13 +00:00
Elyes Haouas
ecbca16bf4 tree: Replace union {0} initializers with {} for C23 compliance
This change addresses GCC-15 behavior where {0} union initializers only
clear the first member, leaving padding bits uninitialized. The new {}
initializer ensures full union clearing as required by C23.

Change-Id: I1d9b063d8bdd3d2f0b0f67e6c20eb484ff6a5cc5
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88732
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-08-11 16:40:34 +00:00
Eren Peng
b74d2b77d2 mb/google/trulo/var/kaladin: Add WIFI SAR table
Add WIFI SAR table for intel WIFI SAR table

BUG=b:434861866
TEST=Build and flash to DUT, check that SAR table is loaded by cbmem -c | grep SAR

Change-Id: Idf48254ec43535ff51859ecbec3ea75b7c35e70c
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88702
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-11 15:23:05 +00:00
Walter Sonius
4b46a0690e mb/hp: Add HP ProDesk 600 G1 SFF Business PC (Haswell / NPCD379 SIO)
The HP ProDesk 600 G1 SFF comes with a mainboard named "Merlin Rev.A"
which is also used by the EliteDesk 800 G1 SFF and Z230 SFF series.
Differences are in available USB2, USB3 and SATA (headers / ports)
, PCIe (slots / length), video outputs (number / type) or chipset used.
While the EliteDesk 800 G1 SFF shares the same OEM BIOS update file, the
Z230 SFF differs. This port was made on a model with 2 DP / DP++, 1 VGA,
4 USB2 and 2 USB3 backpanel ports, 4 SATA ports and 4 PCIe slots
(1 16x and 3 1x length) using a Q85 chipset (without heat sink).

Model: HP ProDesk 600 G1 SFF Business PC
Regulatory Model: TPC-F046-SF
Product No. J0E94ET#ABH, PROMO600PDeSi54590500hq4X46k NL (C8T44AV)
Mainboard: Merlin Rev.A, 795972-001

Pure autoport (initial commit) doesn't boot, more patches will bring up
general Haswell fixes, vendor/product naming corrected, RAM SPD MAP
slot detection, devicetree edits enabled all PCIe ports and some NPCD379
code from other HP desktops makes most superio related functions work.

Flash instructions:
After setting the FDO jumper on the motherboard the whole ROM can be
dumped, however writing is locked for some part of the BIOS region.
An external flasher ch341a_spi (3.3v mod) was used with a SOIC 8 pomona
probe to flash the MX25L12873F in situ without any issues. Only the
power of the USB programmer was used, and the board's main PSU was
disconnected during flash!

Tested:
 - coreboot 25.06-77-g812d0e2f626d as base
 - EDK2 (MrChromebox/2502)
 - SeaBIOS 1.16.3
 - Broadwell mrc.bin (tidus)
 - Haswell mrc.bin (peppy)
 - Haswell NRI
 - libgfxinit textmode (SeaBIOS) / framebuffer (EDK2)
 - both DP / DP++ (HDMI) & VGA output available during POST, BOOT and OS
 - Pentium G3220 / Xeon E3-1225 v3 / Xeon E3-1231 v3
 - RAM 1/2/3/4 slots filled using mixed 1.35 / 1.5v 1333 / 1600MHz DIMMs
	(NRI & mrc.bin)
	0/1: 4GB DDR3-1600 - Samsung M378B5173BH0-CK0 (2013-W30)
	0&2: 4GB DDR3-1600 - Kingston 9905402-174.A00G (2015-W33)
	1/2: 2GB DDR3-1333 - Kingston 99U5458-001.A00LF (2010-W29)
	0/3: 2GB DDR3-1600 - Micron 8JTF25664AZ-1G6M1 (2013-W37)
 - Fedora MATE 42 (Kernel 6.14)
 - KDE NEON 6.4 (Kernel 6.11)
 - MS Windows 10 / 11
 - Audio Outputs: 2x DP, Headphone, Line Out, Speaker (left&right chan.)
 - Audio Input: Line In (back)
 - USB2/3 all ports (including internal headers)
 - Intel I217-LM Gb LAN
 - SATA 4 ports
 - PCIe 16x slot @2.5GT/s (or 8x @8GT/s) and three 1x slots @5GT/s
 - dGPU nVidia GeForce GT640-2GD3 / AMD Radeon RX460 4GB (PCIe 8x)
	(disabled Hide PEG devices, option ROMs load in SeaBIOS & EDK2)
 - PS/2 ports (both Keyboard and Mouse)
 - Serial port (coreboot console & OS)
 - PowerButton (Poweron/Poweroff/Wake)
 - LEDs HDD & POWER (both off during suspend)
 - Shutdown/Reboot/Suspend
 - power_on_after_fail= Disable / Enable / Keep
 - Strip down the Intel ME/TXE firmware (make menuconfig)
 - Disabling ME HECI (manually disable in devicetree.cb)
 - flashrom -p internal -c "MX25L12835F/MX25L12873F" #(read & write)

Not tested:
 - COMB (serial port header)
 - PAR (parallel port header)
 - Audio Input Microphone Port (front)
 - USBDEBUG PORT
 - VBIOS

Not working:
 - CMOS checksum errors only on psu_fan_lvl resets to defaults sometimes
 - dual GPU (iGPU shows visual glitches while dGPU works fine)
	This occurs on both Broadwell, Haswell mrc.bin and Haswell NRI,
	may show i915 error in dmesg after waking from suspend!
	All dGPU testing have been done with a cheap PCIe riser cable!
 - Disable Intel ME PCI interface (make menuconfig)
 - PSU FAN control its either full OFF or full ON see instruction!
 - TPM Windows 10/11 detects it but "bios failed to communicate error"
 - Wake on LAN (Power on from coldboot work, but not wake from suspend)

PSU FAN instructions:
If the superio HWM (devicetree.cb node pnp 2e.8) is set to on, the FAN
will turn OFF during post and stays OFF. If the superio HWM pnp 2e.8 is
set to off the FAN will stay ON and will rampup after post in roughly a
minute to its maximum RPM and will stay that way (current default)!

NRI note:
EDK2 shows 0GB instead of the actual RAM amount installed. While using
Haswell mrc.bin EDK2 shows the correct amount of RAM. The earlier noted
RAM modules have also been tested using NRI in Memtest86+ v7.20 which
still correctly displays and test the total amount of RAM.

The data.vbt blob was extracted using debugfs from the OEM firmware
v2.65 enabling both Displayport / DP++ (HDMI) and VGA video outputs.

Theoretically like the "compaq_8200_elite_sff" it should be possible
to flash internally using a 2 step flash procedure using a minimized ME
a small SeaBIOS based coreboot and a temporary flash layout inside the
writeable BIOS region.

Change-Id: If1082e0b56364f32e43f954b589fa627cbaee50c
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88616
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-11 15:22:18 +00:00
Luca Lai
2339508b6c mb/google/trulo/var/pujjolo: Update P-sensor parameters
Because RF team verified the P-sensor related function and
give suggestion that follow pujjoga's setting.

BUG=b:411558536
TEST=Build and boot to OS and check with RF team.

Change-Id: I938505af02d9d3f5ba98f34fef58b67b48f049db
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88703
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-11 15:22:02 +00:00
Sowmya Aralguppe
cd2a969c82 soc/intel/pantherlake: Remove storage-off related code
Crashlog storage and power management in PTL is changed to a unified
and persistent model,removing the need for manual SRAM power-down
commands after crashlog extraction.

Change-Id: I5bea1c816bbb68a4b2b21cc3be6cf118b4282fe7
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88512
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-08-11 15:21:31 +00:00
Fabian Meyer
fe6fa36504 mb/asrock: Add SPR 1S server board ASRock Rack SPC741D8-2L2T/BCM
SPC741D8-2L2T/BCM is a Xeon SP 4th/5th gen (Eagle Stream) platform with:
- 1 SPR socket, 8 DDR5 DIMMs each
- 4x PCIe 5.0 / CXL 1.1 x16 slots
- 2x MCIO PCIe 5.0 x8 and 1 MCIO on PCH
- 2x M.2 PCH PCIe slots
- 2x 10 Gbit/s NIC and 2x 1 Gbit/s i210 NIC

It has an AST2600 BMC for remote management and most SuperIO functions
such as serial and an additional Nuvoton NCT6796D-E for others.

Working:
- All CPU cores of a 4/5th-gen Xeon SP are available at full speed
- All 8 memory DIMMs (KSM48R40BS8KMM-16HMR) with 32 bit execution
- All 4 PCIe slots
- On-board USB ports
- Video output via the AST2600 (on-board VGA)
- M.2 devices

Untested:
- TPM header

Not working:
- Serial port I/O, related to the AST2600 SuperIO not being located at
  the default address of 0x2E (it uses 0x4E instead).
- PC speaker (buzzer), for the same reason.
- M.2 SSDs only use PCIe 3.0 x2, however, they should be capable of
  PCIe 3.0 x4 speeds, which can be observed using the vendor firmware.
- Using more than 1 DIMM with 64 bit execution (the FSP
  temp_ram_exit function never returns)

TEST=build/boot to Linux 6.12 using mainline edk2

Change-Id: I5b00a6f4ee68f71203940644860bf095615a9412
Signed-off-by: Fabian Meyer <fabian.meyer@student.kit.edu>
Co-authored-by: Yussuf Khalil <yussuf.khalil@kit.edu>
Co-authored-by: Felix Zimmer <felix.zimmer@student.kit.edu>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87747
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-08-11 15:21:19 +00:00
Luca Lai
b486c84b23 mb/google/trulo/var/pujjolo: Update DTT settings for thermal control
The DPTF parameters were defined by the thermal team.
Based on thermal table in b:420800911#comment1

BUG=b:420800911
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I5fe20642505be50194084cd859e8fa20b4127dd0
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88554
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-11 02:10:24 +00:00
Luca Lai
ece0072d1c mb/google/trulo/var/pujjolo: Update verb table to fix pop noise
Because there is a pop noise when bios booting stage, so modify
verb table to fix the issue.

Change description by vendor:
The Class-D K DC function has been added (which is the main solution
this time), along with enabling silence detect to filter out noise
below -84 dB to prevent it from being played through the speaker.

BUG=b:430749506
TEST= Build and boot to OS, and check by EE and Realtek vendor.

Change-Id: I3ac6cc82daf2ea78e73392ad67a5f4da131ddef5
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88623
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-08-11 02:10:17 +00:00
Subrata Banik
795157a606 mb/google/bluey: Increase MRC cache size
Increase the size of the Memory Reference Code (MRC) cache to prevent
boot failures.

Previously, the MRC cache was 64K (32K for recovery and 32K for
read/write), which was insufficient for the firmware. This change
expands the UNIFIED_MRC_CACHE to 128K, with RECOVERY_MRC_CACHE and
RW_MRC_CACHE each receiving 64K.

BUG=b:437402936
TEST=Able to build and boot google/quenbi till depthcharge.

w/o this patch:

```
[ERROR]  REGF metadata allocation failed: 3880 data blocks 2048 total blocks
[ERROR]  MRC: failed to update 'RW_MRC_CACHE'.
```

w/ this patch:

```
[DEBUG]  FMAP: area RW_MRC_CACHE found @ c10000 (65536 bytes)
...
[DEBUG]  FMAP: area RW_MRC_CACHE found @ c10000 (65536 bytes)
[DEBUG]  MRC: Checking cached data update for 'RW_MRC_CACHE'.
[DEBUG]  read SPI 0xc10010 0xf27c: 5011 us, 12387 KB/s, 99.096 Mbps
[DEBUG]  MRC: cache data 'RW_MRC_CACHE' needs update.
[INFO ]  REGF update can't fit. Will empty.
[DEBUG]  SF: Successfully erased 65536 bytes @ 0xc10000
[DEBUG]  MRC: updated 'RW_MRC_CACHE'.

```

Change-Id: Ie456f9ab870eab06c2d23cb5d2734faf644a2176
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88727
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-10 02:47:55 +00:00
smadhesu
34d9305dcc soc/qc/x1p42100: Pack QcLib DTB into CBFS
This patch enables packaging of the QcLib DTB into CBFS.

TEST=Verify QcLib execution on Bluey platform.

Change-Id: I3e70a6615336cae783456f4d2f72b811fd9b6edc
Signed-off-by: smadhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88723
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-10 02:47:39 +00:00
Julius Werner
8f09629fb1 spi_flash: Fix initialization of flags field in lb_spi_flash
Commit 8dec5fcaf8 ("drivers/spi: Add 4-byte address mode flag to
lb_spi_flash") split the existing 32-bit `erase_cmd` field into multiple
fields. The new `flags` field thus created is used to pass information
about whether the flash is in 4-byte address mode.

Unfortunately, we forgot to initialize the new fields in the case that
the flash is not in 4-byte address mode. This means it can have any
arbitrary value, including values where the new flag bit is accidentally
set (causing flash access errors in the payload).

This patch fixes the problem and tries to prevent further issues with
field changes in the future by explicitly zeroing the entire coreboot
table structure before starting to fill in the values.

Change-Id: I3ad9812fc76ae2989dcf4a294034c4e31456c74e
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88700
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-08-09 01:36:39 +00:00
Zhongtian Wu
ab2ef8878c mb/google/trulo/var/pujjocento: Update touchscreen information
The properties of PARA3406 and PARA3408 are the same
Update PARA3406&PARA3408 to PARA340X

BUG=b:417106542
BRANCH=none
TEST=Build and boot to pujjocento. Verify touchscreen works.

Change-Id: Ifed5dd9c2b0512c700f5262d7105578bc604a945
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88705
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-08 09:33:29 +00:00
Zhongtian Wu
0bedce05d8 mb/google/nissa/var/pujjocento: Change touchpanel sequence to meet spec
Setup GPP_C0 and GPP_C1 in early and romstage to meet spec requirements
Spec require TP_Reset ON after VTSP ON 0-10ms.
Before modification,TP_Reset ON before VTSP ON.
After modification,TP_Reset ON after VTSP ON 1ms.

BUG=b:421455835
BRANCH=none
TEST=Build and boot to pujjocento. Verify touchpanel sequence

Change-Id: I7d3d79c9f67edf42b64316757c448fe385207a86
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88704
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-08-08 09:31:22 +00:00
Jian Tong
543fb60ec4 mb/google/brox/var/lotso: Set slew rate to 1/8
Set slow slew rate VCCIA and VCCGT to SLEW_FAST_8.
The slope of the voltage measured by the oscilloscope 4 mV/us is close to the theoretical value of 3.75 mV/us.

BUG=b:404416910
TEST=emerge-brox coreboot chromeos-bootimage
	USE=fw_debug confirm SlowSlewRate set to 2 at FSP

Change-Id: I7ec05c6a20997fcc094b20fa763eb3bc030fefa1
Signed-off-by: Jian Tong <tongjian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88696
Reviewed-by: Dengwu Yu <yudengwu@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-08 08:33:29 +00:00
Zheng Li
c114906239 mb/google/trulo/var/pujjocento: Update DTT settings for thermal control
Update DTT settings according to b:436759545#comment1 in
order to increase the limit of the charging current to 3A/1.5A.

BUG=b:436759545
TEST=emerge-nissa coreboot, and thermal engineer verifies OK.

Change-Id: I3f07884b2817904925050ef24957b5070a8cab65
Signed-off-by: Zheng Li <lizheng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88699
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-08 04:33:51 +00:00
Kapil Porwal
b603f23088 mb/google/bluey: Avoid using function call table
BUG=none
TEST=Build Google/Quenbi.

Change-Id: Ie2df9402c3a2cf95e150a4a4321477ddee7e9678
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88655
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-08 02:53:27 +00:00
Kapil Porwal
dc64b9659d soc/qc/cmn: Refactor qclib_load_and_run function
Move below code to `qclib_prepare_and_run()` -
1. Serial debug interface entry.
2. Enable serial output.
3. Dump interface table entries.
4. Handle reset requested by qclib.
5. Copy qclib log to cbmem.

BUG=none
TEST=Build Google/Quenbi.

Change-Id: I2f724d4da21a07fbc726dc5600cc706379b91138
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88654
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-08 02:53:22 +00:00
Alok Agarwal
e290bb6750 mb/baseboard/ptlrvp: Disable memory training progress bar
Set disable_progress_bar to disable the memory progress bar for fatcat
board. Removed the memory progress bar feature to enhance performance.

BUG=b:418675387
TEST=After setting disable_progress_bar, memory training progress bar is
disable.

Change-Id: Ic303aa57843039f49130c09da0345f7e7573b0e5
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88613
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: <srinivas.kulkarni@intel.com>
2025-08-08 02:53:04 +00:00
alokagar
05a38e2af3 mb/google/fatcat: Disable memory training progress bar
Set disable_progress_bar to disable the memory progress bar for fatcat
board. Removed the memory progress bar feature to enhance performance.

BUG=b:418675387
TEST=After setting disable_progress_bar, memory training progress bar is
disabled.

Change-Id: I25302f6ed095603150d8e7e0bbe04ff96944f07c
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88598
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: <srinivas.kulkarni@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-08 02:52:58 +00:00
Patrick Rudolph
f789899dac sb/intel/common/gpio: Move register defines
Move ICH7 GPIO register defines into private scope. This enforces
the use of GPIO common code and mainboard can no longer directly
access GPIO I/O registers.

Change-Id: Iedf3e55f8aecf7b1ac6f47b29d9f88d58d1b6867
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88568
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-08-07 17:48:10 +00:00
Patrick Rudolph
d6ceaf72da mb/samsung/lumpy: Use gpio_base2_value
Instead of directly accessing GPIO I/O registers use existing
common code to read the SPD pin straps.

Change-Id: Ie758a4bfb35d1f81c16537cda0e26e43ac860b1e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88567
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-08-07 17:47:43 +00:00
Patrick Rudolph
21639c3771 mb/getac/p470: Use common gpio functions
Use existing common code instead of directly accessing GPIO
I/O registers. Makes code more readable.

Change-Id: Ieebf37372f1c44a877ef6e77eecaa9049bf3aec4
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88566
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-08-07 17:47:37 +00:00
Patrick Rudolph
8d4bb94663 sb/intel/common/gpio: Add and use gpio_invert()
Introduce a new helper function to set the INVERT bits on
the first GPIO bank. Use it on google link instead of using
a custom implementation.

Change-Id: Icfdbc3dcae5678695b6fcc9dab7ff97d291963cd
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88565
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-07 17:26:22 +00:00
Cindy Lu
85306062d8 mb/google/skywalker: Create variant Tarkin
Create the variant Tarkin.

BUG=b:436492315
TEST=emerge-skywalker coreboot
BRANCH=None

Change-Id: Iad24d09b9d505fd95264c9179d8e202262b1d3dd
Signed-off-by: Cindy Lu <luyi8@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88653
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
2025-08-07 17:23:23 +00:00
Kapil Porwal
1da2f46db8 soc/intel/alderlake: Restore mem_init_override_channel_mask()
Commit 87c9bb3994 ("soc/intel/adl: Fill in SPD data on both channels
of DDR5 memory") accidentally deleted the function
mem_init_override_channel_mask().

Additionally, skip checking for channel 0 while consuming the channel
disable mask.

BUG=none
TEST=CQ

Change-Id: I6217b2801e88b8ab98b2a3acaa0cb9580b05bb64
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88697
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-08-07 07:58:39 +00:00
Eren Peng
f0d5b25e02 mb/google/trulo/var/kaladin: Add firmware name and gpio for ISH
Add firmware name and update gpio pins GPP_B3 GPP_B4 for ISH

bug=b:434789824,b:434858349
TEST=Flash and boot to OS on kaladin, tested sensors work fine and unit can enter s0ix

Change-Id: Ia8dbf17a589a580116430cc4978b8d4ebbcf785e
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88597
Reviewed-by: Kyle Lin <kylelinck@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-07 03:48:08 +00:00
zengqinghong
0b3fc8ce2d mb/google/nissa/var/pujjoniru: Decrease cpu power limits
Based on TWL 15W baseline, PL4 should set to 83W.
Ref: 646929_ADL_N_TWL_PowerMap_Rev2p6.xlsm

BUG=b:434861879
TEST=emerge-nissa coreboot chromeos-bootimage
     cbmem -c | grep PL shows PL4=83

Change-Id: I6fa929ad6f3444d323364f71687b27eb0c9c468c
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com​>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88646
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jian Tong <tongjian@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-08-06 05:48:10 +00:00
Subrata Banik
f01cc9258b mb/google/rex/var/screebo: Use ACPI for touchscreen power sequencing
This commit transitions the touchscreen power sequencing from static
coreboot GPIO configuration to ACPI-driven management using the
devicetree infrastructure for the Screebo variant.

BUG=b:430444353
TEST=Able to build and boot google/screebo. Verified touchscreen is
working as expected with this patch.

Change-Id: Ie3456032c232ac92ed7501c08b1c89b0ac274c8c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88638
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-08-05 10:19:04 +00:00
Subrata Banik
ef11f95125 soc/qualcomm/x1p42100: Set 1ms TX delay
This commit overrides the `UART_BITBANG_TX_DELAY_MS` Kconfig option to
1ms for the `x1p42100` SoC configuration.

TEST=Able to build google/quenbi with proper AP console log.

```
[NOTE ]  coreboot-coreboot-unknown.9999.2712497 ....
[DEBUG]  ARM64: Exception handlers installed.
[DEBUG]  ARM64: Testing exception
[DEBUG]  ARM64: Done test exception
[DEBUG]  NCC Frequency bumped to 1.363(GHz)
```

Change-Id: Ic99ce17ea5e74fca483ef0cc8dd326d3459288b4
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88637
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-04 16:26:35 +00:00
Subrata Banik
2c8d157ea4 {drivers, soc/qualcomm/common}: Add configurable delay for UART bitbang
This commit introduces a new Kconfig option, UART_BITBANG_TX_DELAY_MS,
to make the UART TX pin stabilization delay configurable.

A default 5ms (CONFIG_UART_BITBANG_TX_DELAY_MS) delay is added in
uart_init() after the TX pin is set high. This addresses an issue
where the initial character sent by the UART could be corrupted due
to the pin not being stable. The delay ensures the line state is
properly established before data transmission begins.

This was found to resolve early boot console corruption on some boards.
The issue is likely a race condition where the first character starts
transmitting before the GPIO output is fully stabilized.

TEST=Able to build and boot google/zombie w/o any junk characters in
AP firmware log.

w/o this patch:

```
�ɍ���щ�����х�ѥ��b����ٕ��Jrrrjjm              UuI5�ፕ�ѥ���������ͥ��х�����jm             UuI5���ѥ���ፕ�ѥ��m��jm           UuI5����ѕ�ѕፕ�ѥ��m��[DEBUG]  NCC Frequency bumped to 1.363(GHz)
```

w/ this patch:

```
[NOTE ]  coreboot-25.06-78-gfe786406960e-dirty Fri Aug 01 17:12:22 UTC 2025 aarch64 bootblock starting (log level: 8)...
[DEBUG]  ARM64: Exception handlers installed.
[DEBUG]  ARM64: Testing exception
[DEBUG]  ARM64: Done test exception
[DEBUG]  Silver Frequency bumped to 1.5168(GHz)
[DEBUG]  L3 Frequency bumped to 1.1904(GHz)
```

Change-Id: I33c9ea65aa42d23acf3b89f977d4985569c144e8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88633
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-04 16:26:29 +00:00
Subrata Banik
b0d2d522ea soc/qualcomm/x1p42100: Enable bootblock compression
Enable bootblock compression on the X1p42100 SoC to decrease boot
time by 10-20 ms.

This change helps to reduce the size of the bootblock, allowing it
to be loaded and decompressed faster, which improves overall boot
performance.

TEST=Able to build and boot google/quenbi.

Change-Id: I81cdbec4a05c8abacae39ff208cc0f7469206161
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88626
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-04 16:26:25 +00:00
Matt DeVillier
1e11bda5d0 soc/intel/cmn/smbus: Drop use of update_spd_len()
It doesn't make sense to use CONFIG_DIMM_SPD_SIZE to determine the
amount of data to read from the SPD, then override that value.

Clean up the mess and simply set the SPD length fror the spd_block
struct to CONFIG_DIMM_SPD_SIZE.

Change-Id: Ifec6cf1f6d7c931131460ea72440aa236590d0b6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88523
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-03 01:29:04 +00:00
Jeremy Soller
910f111891 soc/intel/mtl: Fill in SPD data on both channels of DDR5 memory
Commit 91a1276d53 ("soc/intel/alderlake: Implement WA for DDR5 DIMM
modules") was added to allow FSP to perform the SPD read for DDR5
modules since coreboot did not properly support reading SPD from
EEPROM for DDR5. The same code was copied for Meteorlake.

Now that DDR5 SPD EEPROM reading has been fixed in commit e9cb352706
("soc/common/smbus: Support reading SPD5 hubs for DDR5"), remove the
now unneeded workaround for DDR5 and use coreboot's SPD read as we
do for all other module types.

Change-Id: I600d8fd480cb84d5dcb679e4f0bdeeaaebfab386
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82733
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-03 01:28:49 +00:00
Matt DeVillier
0da943ed99 soc/intel/meteorlake: Fix DDR5 channel mapping
This patch applies commit 0e7cf3d81d ("soc/intel/alderlake: Fix DDR5
channel mapping") to Meteor Lake.

DDR5 memory modules have two separate 32-bit channels (40-bit on ECC
memory modules), and the SPD info refers to one channel: the primary
bus width is 32 (or 40) bits and the "DIMM size" is halved. On Meteor
Lake, there are 2 memory controllers with 4 32-bit channels each for
DDR5. FSP has 16 positions to store SPD data, some of which are only
used with LPDDR4/LPDDR5.

To try to make things less confusing, FSP abstracts the DDR5 channels
so that the configuration works like on DDR4. This is done by copying
each DIMM's SPD data to the other half-channel. Thus, fix the wrapper
parameters for DDR5 accordingly.

Change-Id: I00cd1fba855a50422a68fa662df4ca8ed2c6458d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88636
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-03 01:28:33 +00:00
Jeremy Soller
87c9bb3994 soc/intel/adl: Fill in SPD data on both channels of DDR5 memory
Commit 91a1276d53 ("soc/intel/alderlake: Implement WA for DDR5 DIMM
modules") was added to allow FSP to perform the SPD read for DDR5
modules since coreboot did not properly support reading SPD from
EEPROM for DDR5.

Now that DDR5 SPD EEPROM reading has been fixed in commit e9cb352706
("soc/common/smbus: Support reading SPD5 hubs for DDR5"), remove the
now unneeded workaround for DDR5 and use coreboot's SPD read as we
do for all other module types.

Change-Id: I5a92199a7cd2718e9396f0dac8257df40e4f834c
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75284
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-08-02 16:49:28 +00:00
Ian Feng
a23be7a6fe mb/google/fatcat/var/francka: Disable ALC721 & ALC722 clock stop support
This change allows flag to be override via devicetree,
instead of relying on the default value in alc711_slave.
It helps fix the missing event issue when plugging or
unplugging the 3.5mm headphone jack.

BUG=b:417133565, b:420516709
TEST=Verified build and boot with ALC721 and ALC722.
Headphone path switches successfully via audio jack event.
Confirmed SSDT dump at PCI0.HDAS.SNDW.
Package (0x02)
{
    "mipi-sdw-simplified-clockstopprepare-sm-supported",
    Zero
},

Change-Id: I975ed83e8614bd88861f115ffeea7c2450e6a432
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88587
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Mac Chiang <mac.chiang@intel.com>
2025-08-02 16:48:14 +00:00
Ian Feng
227d434e2d drivers/soundwire/alc711: Support clock stop flag from devicetree
Allow overriding the default value (true) via devicetree configuration.
If disable_clkstop_sm_support is set in the devicetree,
the corresponding field in alc711_slave is set to false.

BUG=b:417133565, b:420516709
TEST=Verified build and boot with ALC721 and ALC722.
Headphone path switches successfully via audio jack event.
Confirmed SSDT dump at PCI0.HDAS.SNDW.
Package (0x02)
{
    "mipi-sdw-simplified-clockstopprepare-sm-supported",
    Zero
},

Change-Id: If958cd0c2136e4dd3f60cb9203d9394913d3f66e
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88586
Reviewed-by: Mac Chiang <mac.chiang@intel.com>
Reviewed-by: Simon Yang <simon1.yang@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-02 16:47:53 +00:00
Nicholas Chin
49219f1ce1 Docs: Use markdown autolinks instead of Sphinx doc directive
Several files use embedded reStructuredText blocks in order to use the
:doc: directive to reference other markdown files using a relative path.
MyST Parser supports a similar feature using the standard Markdown
autolink (angled bracket) syntax, so use this instead as it is cleaner.
Both methods use the first heading of the linked file as the text shown
in the reference, though MyST Parser also supports the standard [link
text](../path/to/file.md) syntax to explicitly set the link text.

Note that when using the autolink syntax, `project:` must be prepended
to the relative path as it expects a URI scheme for all autolinks. This
is not required when using the separate text and URI syntax.

Before:
    ```{eval-rst}
    Example text :doc:`../relative/path`.
    ```

After:
    Example text <project:../relative/path.md>

Using the Markdown syntax also avoids formatting issues if any plain
text in the eval-rst block uses Markdown formatting syntax where they
would unintentionally be parsed differently due to text being parsed as
reStructuredText.

Some :doc: instances still remain as they are used within reST style
tables in an eval-rst block, so these were left as is since the Markdown
syntax would be invalid in that context.

[1]: https://myst-parser.readthedocs.io/en/latest/syntax/cross-referencing.html#autolinks

Change-Id: I8828bf7efe13de6d6f628f6b64151fbd25289fa5
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88618
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-08-02 16:47:10 +00:00
Zhigang Qin
6afc1ff9ac soc/mediatek/mt8189: Disable 8189G APU power to reduce power consumption
Since MT8189G does not support APU, the LDO_VSRAM_OTHERS and BUCK_VCORE
regulators for the APU power domain can be turned off. Disabling these
power supplies reduces overall system power consumption by about 1mW.

BUG=b:420874944,b:421989583,b:423081787
BRANCH=none
TEST=Verified by measuring system current in S3 state before and after
     disabling APU power.

Signed-off-by: Niklaus Liu <niklausi.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I4e4eeb575327b554f5837bfc0f6a464ff7a1e228
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88631
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-08-02 16:46:26 +00:00
Vince Liu
965131e40f soc/mediatek/common: Fix build error by including stdint.h in cpu_id.h
Include `stdint.h` in `cpu_id.h` to ensure `u32` is properly defined.
This resolves build errors when files including `cpu_id.h` cannot find
the definition for `u32`.

BUG=b:379008996
BRANCH=none
TEST=build passed
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: If4b41a6eae38470d4d30baeeef50c8b1ebb82033
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88630
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-02 16:46:21 +00:00
Appukuttan V K
e49743755d mb/google/ocelot: Select EC_GOOGLE_CHROMEEC_MEC for MCHP variants
This commit updates the Kconfig for the Google Ocelot mainboard to
select EC_GOOGLE_CHROMEEC_MEC for the OcelotMCHP and OcelotMCHP4ES
variants.

BUG=b:394208231
TEST=Build Ocelot and verify all variants compiles without any error.

Change-Id: Ie5f776d40029b52a57d82aa9b02b95fbf3905cfd
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88629
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Varun Upadhyay <varun.upadhyay@intel.com>
2025-08-02 16:45:56 +00:00
Tony Huang
32b944b77a mb/google/brox/var/caboc: Update hda_verb table
Update hda_verb table from vendor.

BUG=b:435345756
TEST=emerge-brox coreboot
     check system audio output is fine

Change-Id: Id46d1798b605e7d1fbdfacf2e1899bfc40a113a6
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88627
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-08-02 16:45:44 +00:00
Ivy Jian
ba228d160f mb/google/fatcat: Create new kinmen4es variant
This new variant will support PTL pre-production silicon. The existing
`kinmen` variant will support production silicon.

BUG=b:434847748
TEST=Able to build google/kinmen4es.

Change-Id: If0597c1b63179e46a83286f2d46f958189f627cc
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88622
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-08-02 16:45:30 +00:00
alokagar
6a42eb9134 soc/intel/pantherlake: Disable memory training progress bar
Introduce the disable_progress_bar setting in configuration to allow
disabling the memory training progress bar during firmware
initialization.

BUG=b:418675387
TEST=After setting disable_progress_bar, memory training progress bar
is disabled.

Change-Id: I35e8191df27c0eda634724580514e980bd620136
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88529
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-08-02 04:57:03 +00:00
Jeremy Soller
e9cb352706 soc/common/smbus: Support reading SPD5 hubs for DDR5
DDR5 uses a Serial Presence Detect (SPD) with hub function
(SPD5 hub device) to store the SPD data. The SPD5 hub has 1024 bytes of
EEPROM (`CONFIG_DIMM_SPD_SIZE=1024`).

Ref: DDR5 SDRAM spec, JESD79-5C.01

Change-Id: Ic5e6c58f255bef86b68ce90a4f853bf4e7c7ccfe
Co-authored-by: Meera Ravindranath <meera.ravindranath@intel.com>
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/52731
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-02 01:47:44 +00:00
Matt DeVillier
cba46a41b7 mainboard/{hardkernel,protectli}: Drop use of DRAM_SUPPORT_DDR5
This is now selected at the SoC level and therefore redundant.

Change-Id: Ib6ae94c359d3dac34886147e9078043e4f132f84
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88522
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-02 01:47:22 +00:00
Luca Lai
a79f341d29 mb/google/trulo/var/pujjolo: Disable mipi camera dmic LED
Because we do not want to enable the mipi camera dmic LED
at booting, so pull down the EN_PP2800_WCAM_X.
(Pujjolo_Pujjoquince_MB_EVT_20250523.pdf).

BUG=b:427962702
TEST= Build and boot to OS, check the LED is off. And
check the mipi camera function works fine.

Change-Id: Ia9ccf3e335ad65c9a8f68fe33226803cc8555228
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88604
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-08-02 01:47:03 +00:00
Martin Roth
9411c6e7c7 util/amdfwtool: Fix NULL pointer dereference in fill_dir_header
Move the NULL pointer check to the beginning of the fill_dir_header function
before any dereference of the directory pointer. This prevents the potential
segmentation fault that could occur if directory is NULL.

This fixes CID 1540835 - Dereference before null check (REVERSE_NULL).

Change-Id: I12bb146d59839381478034f974b7d408f92ae677
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88617
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-02 01:46:47 +00:00
Nicholas Chin
280d3a25e8 util/lint/kconfig_lint: Fix operator precedence issue
Perl 5.42.0 added a new warning for possible precedence problems between
the `!` logical negation operator and various other operators [1]. In
particular, the kconfig_lint script uses `!` and `=~` (binding operator)
to check that a filename does not match a regex, but was written in a
way that would be parsed as negating the filename and then comparing it
to the regex. The resulting warning from the newer version of Perl
caused lint-stable to fail on the lint-stable-008-kconfig test due to
the non empty output, causing the pre-commit hook to fail.

Fix this by using the negated binding operator `!~` instead as
recommended by the Perl documentation [2].

[1] https://perldoc.perl.org/perl5420delta#New-Warnings
[2] https://perldoc.perl.org/perldiag#Possible-precedence-problem-between-!-and-%25s

Change-Id: I3631b8b0be92bf85a1510be1f1d4221a010be1ba
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88619
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-08-02 01:46:36 +00:00
Matt DeVillier
fbc2d76ab3 soc/intel/*: Select 'DRAM_SUPPORT_DDRx' as appropriate
These will be used in subsequent patches which optimize the reading of
SPDs based on the supported memory type(s).

Change-Id: I8b0d4f37b4b992c42bede25d678cb9afc9db3dd6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88521
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-08-02 01:46:21 +00:00
Benjamin Doron
008f0ec078 util/smmstoretool: Alias EfiImageSecurityDatabaseGuid to "secureboot"
Finalise the new support for adding secure boot variables by adding this
alias. db and dbx have this GUID, all others (PKDefault, KEKDefault,
dbDefault, dbxDefault, PK, and KEK) have the "global" GUID.

Change-Id: I58a825498d57c0bc04516fe41fe94924bdff2181
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88426
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-31 18:14:58 +00:00
Benjamin Doron
88aeb8b7cd util/smmstoretool: Allow setting authenticated variable
Change-Id: I82ee1b84dfa7fafb17ddb0d4adf1891e1c5f149b
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88425
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-31 18:14:44 +00:00
Matt DeVillier
e977560e72 payloads/edk2: Increase non-full-screen menu size
When the edk2 full-screen setup option is not used, the default console
size is 80x25, which is far to small to effectively navigate the menus,
especially now with many boards implementing CFR for setup options.
Increase the default size from 80x25 to 128x40, which is a good middle
ground for both low-res laptop displays and large external monitors.

TEST=build/boot edk2 with full-screen setup option disabled on Starlabs
starlite_adl and byte_twl with displays of varying resolution.

Change-Id: I5ddcd06a66989b45f8f6e39a102298dc73b06c6d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88594
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-07-31 18:13:50 +00:00
Pranava Y N
ac7487d766 mb/google/fatcat: Use same MAINBOARD_PART_NUMBER for felino variants
This patch unifies all the felino variants based on
`BOARD_GOOGLE_MODEL_FELINO` to use the same mainboard part number
`Felino`.

BUG=b:430205874
TEST=Able to build/boot felino

Change-Id: I15a9372e18a910916e9f695d920fc502bf6afa06
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88611
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-31 18:13:00 +00:00
Tony Huang
0f84878c89 mb/google/brox: Handle NULL return value in variant_get_auxfw_version_file
When bundled fw is NULL the system boot hangs.
Add a judgement to return mismatch when bundled fw is NULL.

BUG=b:434844512
BRANCH=firmware-brox-16080.B
TEST=emerge-brox coreboot
     set FW_CONFIG=STORAGE_NVME and DUT can boot into OS

Change-Id: Ibe81e944725b8c387c61451c2e422d57f7aeb8c1
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88606
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jon Murphy <jpmurphy@google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-07-31 15:05:20 +00:00
Subrata Banik
749fd1a8d8 soc/intel/pantherlake: Use macro for VGA Init Control
The magic number '1' for VgaInitControl is replaced with the
VGA_INIT_CONTROL_ENABLE macro for improved readability and
maintainability.

This makes the code's intent clearer and aligns with best practices
for using named constants.

The VGA_INIT_CONTROL_ENABLE macro is defined in ux.h along with a
comment to describe its purpose.

TEST=Able to see eSOL while booting google/fatcat.

Change-Id: I27a91030c0aaa52e099869c5870da670d3e28628
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88608
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-31 02:05:03 +00:00
Luca Lai
3c4fb7b729 mb/google/trulo/var/pujjolo: Update verb table
Update the verb table to decrease the speaker output level.

BUG=b:404480459
TEST=Build and boot to OS, check test result is pass with
hardware engineer and Realtek.

Change-Id: I4f0544ab220ffdbcb2e61ca2f1d2e0d9ae36b1ce
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88592
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-30 17:55:38 +00:00
wu.garen
2ae0f6cdb9 mb/google/trulo/var/kaladin: Add fw config for ELAN touchscreen
Kaladin support 2 kinds of ELAN touchscreen with different
slave address:

TOP(Touch_IC on Panel): slave address 0x10
DBTS(Touch IC on Daughter BOARD):slave address 0x15

Add FW config to separate ELAN touch screen.

BUG=b:434591789
TEST=build and verified touchscreen work

Change-Id: I3e1c748baf1d392c626ce17f4fcb601ec02ce428
Signed-off-by: wu.garen <wu.garen@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88585
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-30 17:54:50 +00:00
Kapil Porwal
53dd93ff14 libpayload/drivers/pci_qcom: Fix address during ATU config
BUG=none
TEST=CQ

Change-Id: Id9825cca5dc6cb26cc72970ee496efa564c0b95d
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88588
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-30 17:54:17 +00:00
Yu-Ping Wu
54016e273e util/cbmem/sysfs_drv: Fix incompatible pointer type for 'size'
Fix the following error for armv7a-cros-linux-gnueabihf-clang.

sysfs_drv.c:247:49: error: incompatible pointer types passing 'uint64_t *' (aka
      'unsigned long long *') to parameter of type 'size_t *'
      (aka 'unsigned int *') [-Werror,-Wincompatible-pointer-types]
  247 |                 if (!cbmem_sysfs_probe_cbmem_entry(id, &addr, &size))
      |                                                               ^~~~~
sysfs_drv.c:99:84: note: passing argument to parameter 'size_out' here
   99 |   ...id, uint64_t *addr_out, size_t *size_out)
      |                                      ^
1 error generated.

BUG=b:434971585
TEST=none
BRANCH=none

Change-Id: I5e2be25d57c5e69501564b6e8b6d880ec046bc3b
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88605
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-30 07:55:11 +00:00
Subrata Banik
a9997f2d7f soc/intel/cmn/block: Request bus master in final op for DSP and HDA
This commit assigns pci_dev_request_bus_master to the .final operation
for both the DSP and HDA device operations to ensure that the bus
master is enabled.

This change ensures correct PCI configuration for DSP and HDA devices,
preventing potential issues with direct memory access operations.

BUG=b:427091370
TEST=Able to build and boot google/fatcat.

w/o this patch

```
firmware-shell: pcir.b 0 0x1f 3 0x4
0x02
```

w/ this patch:

```
firmware-shell: pcir.b 0 0x1f 3 0x4
0x06
```

Change-Id: Id2480dba08ea8ee7a9219327b8a31f8f9f65410c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88575
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-30 05:56:51 +00:00
Subrata Banik
fea789ed63 mb/google/fatcat/var/francka: Use ACPI for touchscreen power sequencing
This commit transitions the touchscreen power sequencing from static
coreboot GPIO configuration to ACPI-driven management for the Francka
variant.

BUG=b:430444353
TEST=Able to build and boot google/francka. Verified touchscreen is
working as expected with this patch.

Change-Id: I2b6c0cacdc159eaf98279bd57efb81c8454ee580
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88510
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-30 05:56:42 +00:00
Nick Vaccaro
211526ff38 Revert "mb/google/brya: Fix mux_conn index used by ec/google/chromeec"
BUG=b:368661724, b:434033860, b:407590653, b:398060672
TEST: `emerge-brya coreboot chromeos-bootimage`, flash and boot mithrax
to recovery screen and verify it can detect USB recovery stick in USB-C
ports.

This reverts commit 9207621d23.

Change-Id: I453562ab5802c7b9e38b7555415747dd9205aacb
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88596
Reviewed-by: Eran Mitrani <mitrani@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-29 21:37:27 +00:00
Nick Vaccaro
7b91339e55 Revert "mb/google/brya: Fix pmc_mux port mapping for mithrax and felwinter"
BUG=b:368661724, b:434033860, b:407590653, b:398060672
TEST: `emerge-brya coreboot chromeos-bootimage`, flash and boot mithrax
to recovery screen and verify it can detect USB recovery stick in USB-C
ports

This reverts commit e638a113fa.

Change-Id: I6a6349515f6662d792cf2f069bc847effa33a400
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88595
Reviewed-by: Eran Mitrani <mitrani@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-29 21:37:16 +00:00
Yidi Lin
8a45e505b9 soc/mediatek/common/dp: Change dptx_hal_phy_wait_aux_ldo_ready to static
TEST=emerge-rauru coreboot

Change-Id: Ia72960c14426b8412bfb5238fa882d1adcb1d6b3
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88581
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-29 16:18:22 +00:00
Sowmya Aralguppe
350c977fef soc/intel/pantherlake: Clear crashlog record using watcher
After crash data extraction, the records are cleared and reinitialized
to their default values. This is done using watcher interface instead
of BIOS mailbox commands because of low latency and efficiency.

Ref: LNL FAS 733648
BUG= b:None
TEST= iotools mmio_dump 0x9c199d40 0x10 - PMC
0x000000009c199d40: 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef
iotools mmio_dump 0x9c1d0058 0x10 - CPU
0x000000009c1d0058: 0xcafecafe 0xcafecafe 0xcafecafe 0xcafecafe
Initial 8 bytes of header are zeroes - indicating that both header
and crashlog data buffer are cleared

Change-Id: I8a36e091f61833067caf9e9f94ba79149e699d68
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88514
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-29 14:52:00 +00:00
Eren Peng
ae942a70b8 mb/google/trulo/var/kaladin: Update GPIOs table
Update GPIO config:
 - GPP_A16 -> NC
 - GPP_D0 -> NC
 - GPP_E9 -> NC
 - GPP_E13 -> MEM_STRAP_3
 - GPP_E17 -> NC
 - GPP_H17 -> NC

BUG=b:434005755
TEST=Flash and boot to OS on kaladin

Change-Id: I201e2bfa9a9da048b09552c3e3bfd976185a56a7
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88559
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-29 14:51:22 +00:00
Eren Peng
0a4bc79685 mb/google/trulo/var/kaladin: Update USB2 driving settings
Update USB2 driving for all USB2 ports

BUG=b:419548309
TEST=Pass USB2 eye diagram test on kaladin

Change-Id: I947ec78de29e20f72122c1b84df4ee99e2655208
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88556
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-29 14:51:06 +00:00
Luca Lai
f34bc61ca7 mb/google/trulo/var/pujjolo: Correct the Goodix touchpad description
Fix the ACPI HID and description for Goodix touchpad.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to OS and check the touchpad name in evtest.

Change-Id: I44b75841034a2004c62a577e60c630cc0e430fc8
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88461
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-29 14:50:22 +00:00
Avi Uday
d4b735f9f1 mb/google/ocelot: Turn off unused I2C ports
The I2C2 and I2C3 ports are unused. This patch removes them from overridetree.cb as they are already turned off in chipset_wcl.cb.

BUG=b:434127691

Change-Id: I8c00f7c96915a1a11b848af5ea128900fb5a16db
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88562
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-29 07:08:34 +00:00
Daniel Peng
190c27d08b mb/google/brya/var/marasov: Add SPD ID for K3KL6L60GM-MGCT and K3KL8L80EM-MGCU
Add the 2 new Samsung memory support.

DRAM Part Name   Vendor   Model    ID to assign
K3KL6L60GM-MGCT  Samsung  LPDDR5X  4 (0100)
K3KL8L80EM-MGCU  Samsung  LPDDR5X  5 (0101)

BUG=b:426427376, b:432169883
BRANCH=firmware-brya-14505.B
TEST=emerge-brya coreboot chromeos-bootimage

Change-Id: Ib707e2e482dc90bc02d73bd0fcda62630bacf1b5
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88449
Reviewed-by: Daniel Peng <daniel_peng@pegatron.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-29 03:03:46 +00:00
Sasirekaa Madhesu
d79febf356 soc/qc/x1p42100: Enable QcLib, SHRM and AOP firmware load
This patch enables QcLib execution for DDR and PMIC initialization.
SHRM and AOP firmware metadata are passed from coreboot to QcLib via
the interface table. On first entry, QcLib authenticates SHRM metadata
through TME and brings SHRM out of reset. Upon re-entry, QcLib forwards
AOP metadata to TME for authentication and brings AOP out of reset.

TEST=Verified QcLib boot (DDR Init, SHRM/AOP authentication & out of
reset flow) on google/bluey.

Change-Id: I4b726d5066ca807bf9d4df70f275e5dd991520cc
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88487
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-29 01:51:53 +00:00
Sasirekaa Madhesu
db10b681b4 soc/qc/x1p42100: Load and populate QcLib interface table entries
This patch adds support to pack aop_meta into CBFS and load QcLib DTB,
SHRM metadata, and AOP metadata. It also populates the QcLib interface
table with these information for firmware authentication and execution.

TEST=Verify presence of AOP metadata file in the CBFS and QcLib
interface table content.

Change-Id: I1a74d9ffbfc10023b0e5610d54218909b18efa01
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88486
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-29 01:50:47 +00:00
Hari L
eee3ea0346 mb/google/bluey: Enable PCIE Feature for bluey
Enable PCIE init for bluey board and update device pci node.
Remove unused pci 4.0 node(WLAN).

TEST= Verified that link is enumerated and NVMe is accessible via PCIE.

Change-Id: I7ad4a9409ff0465b45b8bb1f3e005bf9f83f2c42
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88535
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-29 01:49:50 +00:00
Hari L
6f115f7bf0 soc/qualcomm/x1p42100: Configure Gen4 PHY link for x1p42100
Add support to enable QMP PCIe 4.0 PHY 2x2/1x4 lanes.
The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST= Verified that link is enumerated and NVMe is accessible via PCIE.

Change-Id: I9dd9a5340f28326ebabf12489c11e7f73f2c8d2f
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88583
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-29 01:49:32 +00:00
Hari L
823fa6b8f6 soc/qualcomm/common: Integrate QMP PCIe 4.0 PHY 2x2/1x4
Enable QMP PCIe 4.0 PHY 2x2/1x4 lanes.
The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST= Verified that link is enumerated and NVMe is accessible via PCIE.

Change-Id: I8a3cb1b21e712e588f641f70c040a2334faf0031
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88543
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-29 01:49:17 +00:00
Subrata Banik
6bb199d258 mb/google/fatcat/var/fatcat: Move ISH_GP_x pads to fw_config.c
The ISH GPIO pads for `ISH_GP_x` (GPP_B04, GPP_B05, GPP_B07, GPP_B08,
GPP_B22, GPP_B23) were previously configured in the generic gpio_table.
This commit moves their configuration to the `ish_enable_pads` and
`ish_disable_pads` structures within `fw_config.c`.

This change ensures that these ISH-specific pads are only configured
when the ISH is enabled, aligning with best practices for power
management and reducing potential conflicts when ISH is not in use.

BUG=b:396557201
TEST=Able to build and boot google/fatcat w/ ISH enable and/or disable.

Change-Id: I4ef896d220fbe5f9c042c4d9df97d32ac238cbc5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88570
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-29 01:43:10 +00:00
Subrata Banik
a5212f15ce mb/google/fatcat/var/fatcat: Remove unused GPP_B06 GPIO configuration
The GPP_B06 pin configuration for ISH_GP_2_SNSR_HDR is never required
for the Panther Lake SoC/ISH. This commit removes the obsolete entry
from the GPIO table, streamlining the configuration.

BUG=b:396557201
TEST=Able to build and boot google/fatcat.

Change-Id: I3f38c52a305d14e21c7fcf2dfb943133ae4a7e45
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88569
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-29 01:43:05 +00:00
Eren Peng
d7415f5d9a mb/google/trulo/var/kaladin: Remove external bypass settings
We use internal bypass for kaladin, so remove the external bypass settings

BUG=b:432378989
TEST=Flash and boot up kaladin, test that DUT can enter S0ix

Change-Id: I84207a21f15de2df813387e16065688f409b2523
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88553
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-07-28 14:37:39 +00:00
Avi Uday
479b39c3e9 mb/google/ocelot: Update wake on touch GPIO
GPP_F18 is the correct wake on touch GPIO, which overrides GPP_DW0_18.

Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST=Touchpad works on ocelot RVP

Change-Id: I4ea9c36a371d69f829ba64bfeb35ab9afccf1e06
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88540
Reviewed-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-28 14:33:51 +00:00
Jakub Czapiga
7095c99a87 util/cbmem: Add support for CBMEM in sysfs
This commit adds support for CBMEM in sysfs. Useful for systems without
access to /dev/mem e.g. Android.
Linux kernel driver: drivers/firmware/google/cbmem.c
Linux driver Kconfig: CONFIG_GOOGLE_CBMEM

BUG=b:391874512
TEST=(devmem) cbmem -l; cbmem -x; cbmem -r 434f4e53; cbmem -t;
cbmem -a 1200
TEST=modprobe cbmem; cbmem -l; cbmem -x; cbmem -r 434f4e53; cbmem -t;
cbmem -a 1200

Change-Id: I527889509ffc84203be42d0160e5363c60eafd02
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86606
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-07-28 14:31:00 +00:00
Walter Sonius
eeb15e83cb mb/gigabyte: Add ga-h81m-d2w (ITE8620E superio)
This board came virtually rebranded from a specific German OEM called
Wortmann AG and was identified as "TERRA_PC/H81M-D2W" model: 1009381.
It however ships a GIGABYTE GA-H81M-D2W rev 1.0 branded motherboard
which is extremely similar to a Retail GIGABYTE GA-H81M-D2V rev 1.0.
The only obvious differences are the onboard video outputs, its serial
connectivity and total abscence of it on the GIGABYTE support website.

- GA-H81M-D2W
    DVI-D + DVI-I + serial port header on motherboard
- GA-H81M-D2V
    DVI-D + VGA + DB9 serial port connector on backplate

Mainboard: GIGABYTE GA-H81M-D2W rev 1.0

Pure autoport (initial commit) doesn't boot, second patch brings up
general Haswell fixes, vendor/product naming corrected, RAM SPD MAP
slot detection, PCIe fixes enabling onboard LAN and other PCIe slots
and some IT8625E superio code from a other coreboot port made most
ITE8620E superio related functions work, especially WDT otherwise this
board resets every couple of seconds! Autoport did log hda codec / pins
but it didn't include them in the hda_verb.c, so I added them manually
which also fixes pcspkr (beep codes, not soundcard connected).

Flash instructions:
Internal flashing using flashrom works on OEM and when running coreboot
using the following command: flashrom -p internal -c "MX25L6473F" -w ROM
An external flasher ch341a_spi (3.3v mod) used with a SOIC 8 pomona
probe to recover the MX25L6473F in situ also works without issues. Only
the power of the USB programmer was used, and the board's main PSU was
disconnected during external flash!

Tested:
 - coreboot 25.06-77-g812d0e2f626d as base
 - EDK2 (MrChromebox/2502)
 - SeaBIOS 1.16.3
 - Broadwell mrc.bin (tidus)
 - Haswell mrc.bin (peppy used for all mrc.bin noted testing)
 - Haswell NRI
 - libgfxinit textmode (SeaBIOS) / framebuffer (EDK2)
 - DVI-D & DVI-I (VGA) all work during POST, BOOT and OS
 - Pentium G3220 / Xeon E3-1225 v3 / Xeon E3-1231 v3
 - RAM single and dual slot 2GB/4GB/8GB mixed DDR3 DIMMS max 6, 8, 16GB
	(NRI & mrc.bin)
	0/2: 2GB DDR3-1333 - Kingston 99U5458-001.A00LF (2010-W29)
	0&2: 4GB DDR3-1600 - Kingston 9905402-174.A00G (2015-W33)
	0/2: 2GB DDR3-1600 - Micron 8JTF25664AZ-1G6M1 (2013-W37)
	0/2: 4GB DDR3-1600 - Samsung M378B5173BH0-CK0 (2013-W30)
	(NRI single DIMM won't mix with others)
	0/2: 8GB DDR3-1600 - SK Hynix HMT41GU6MFR8C-PB (2023-W20)
	(ECC UDIMM, mrc.bin only, see NRI note below)
	0&2: 4GB DDR3-1600 ECC - Kingston 9965432-051.A00LF (2013-W19)
	0&2: 8GB DDR3-1866 ECC - Micron 18JSF1G72AZ-1G9E1 (2013-W29)
 - Fedora MATE 42 (Kernel 6.14)
 - KDE NEON 6.4 (Kernel 6.11)
 - MS Windows 10 / 11
 - Audio Outputs both DVI > HDMI, Headphone, Line Out (left&right chan.)
 - Audio Input Line In (back)
 - pcspkr
 - USB2/3 all Intel ports
 - SATA 4 ports
 - PCIe slots (16x 5GT/s & both 1x 5GT/s)
 - iGPU (plus dGPU as in dual GPU work both with mrc.bin / Haswell NRI)
 - dGPU (nVidia GeForce GT640-2GD3 2.5GT/s / Radeon HD7770-1GB 5GT/s)
 - Realtek RTL8111F onboard Gb LAN
 - Wake on LAN
 - HWM shows both fan speeds and voltages
 - PS/2 port (both Keyboard and Mouse with Y splitter cable)
 - Serial port header (coreboot console & OS)
 - PowerButton (Poweron/Poweroff/Wake)
 - ResetButton
 - LEDs HDD & POWER (off during suspend)
 - Shutdown/Reboot/Suspend
 - Strip down the Intel ME/TXE firmware (make menuconfig) see ME note!
 - Disabling ME HECI (manually remove from devicetree.cb) see ME note!
 - flashrom -p internal -c "MX25L6473F" #read & write

Not tested:
 - Audio Inputs Front & Back Microphone Ports
 - parallel port header
 - USBDEBUG
 - VBIOS

Not working:
 - Disable Intel ME PCI interface (make menuconfig)
 - USB2/3 all VIA VL805 backpanel ports

FD layout note:
The original OEM firmware ships a BIOS region that seem to use the
whole firmware:

00000000:00000fff fd
00000000:007fffff bios
00001000:001fffff me

Although coreboot works fine with this flash descriptor layout it is
mandatory to flash a complete image! Replacing only a specific region
like the BIOS region when relying on --ifd will confuse flashrom and
trash the flash chip's contents! As a temporary measure one can use
--layout to flash a specific region using the following layout:

00000000:00000fff fd
00001000:001fffff me
00200000:007fffff bios

Permanently changing the flash descriptor layout to look like this will
solve flashing specific regions and remains a valid option since it
cannot break GIGABYTE its DualBIOS feature since its absent.

NRI note:
EDK2 shows 0GB instead of the actual RAM amount installed. While using
Haswell mrc.bin EDK2 shows the correct amount of RAM. The earlier noted
RAM modules have also been tested using NRI in Memtest86+ v7.20 which
still correctly displays and test the total amount of RAM.
ECC UDIMMs currently do not work on this board because NRI does
not check whether the board / chipset support ECC. This results
in RCVET failures for the ECC bytelane (byte 8). Eventually this
will be fixed in NRI. Haswell mrc.bin works as expected.

ME note:
Neutering the ME will let the system still function correctly, unless
you include EFFS and FCRS partitions addressed by ME_CLEANER_ARGS:

"-S --whitelist EFFS,FCRS"

Failing to supply these ME partitions will cripple superio functions as
in serial output (breaks coreboot serial console) and HWM fan and
voltage info goes random nuts while the fan stays at normal speed.

VIA VL805 note:
Without firmware loading (which is still unknown) and enabling it in the
devicetree.cb will give DMAR IOMMU errors therefore disabled by default!

The data.vbt blob was extracted using debugfs from the OEM F5 firmware
which enables both video outputs DVI-D and DVI-I (VGA).

Since this board is not listed on the GIGABYTE website, but it works
with the Retail GA-H81M-D2V F6 firmware I listed that one instead in the
board_info.txt. However I cannot confirm that this coreboot port also
works for the GA-H81M-D2V, it is good practice to at least check its
gpio values matching this port!

Change-Id: I80dc414a92d115099ec8966841af0cf22d5b1d09
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88412
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-28 13:45:35 +00:00
Zhixing Ma
5537ce7c2f mb/google/fatcat: Fix GPIO config for headphone jack detection
This commit updates GPP_F17 (CODEC_INIT_N) configuration to fix an issue
with the 3.5mm headphone jack on the I2S codec AIC not detecting
headphone plug/unplug events. Specifically, we need to configure GPP_F17 to have interrupt capability, edge detection to detect plug and unplug events, and power state persistence.

BUG=b:434208278
TEST=After booting to OS, plug and unplug a headphone to the I2S codec
add-in card, headphone is getting detected.

Change-Id: I1c662ec680d8175be5854c753ea1481d09afb561
Signed-off-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88564
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-28 03:18:17 +00:00
Luca Lai
953957e961 mb/google/trulo/var/pujjolo: Change ICCmax at VCCIN_AUX from 25A to 27A
Becasue of requirement for VCCANA power from MBVR mode to FIVR mode,
so change ICCmax at VCCIN_AUX will be from 25A to 27A due to
internal VR.

BUG=b:417662158
TEST=Build and boot to OS at the rework motherboard and verfied by
power team.

Change-Id: Ie036412c0e435cfce39940de6bab363f9e875f42
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88558
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-27 15:46:25 +00:00
Luca Lai
87d5c7224b mb/google/trulo/var/pujjolo: Select Strauss keyboard to show G icon
Because the machine shows circle icon instead of G icon in 'Setting'
->'Device'->'View keyboard shortcuts'.
So add MAINBOARD_HAS_GOOGLE_STRAUSS_KEYBOARD to enable G icon.

BUG=b:429495479
BRANCH=none
TEST= Build and boot to OS and enter 'Setting'->'Device'
->'View keyboard shortcuts' to see G icon.

Change-Id: I0a195c65fe2835f9be66c56fb7129851b3251b90
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88446
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-27 15:45:51 +00:00
Curtis Chen
eb005f5f5c mb/google/brya/var: Clarify comment for 'tcss_aux_ori'
For the latest trulo projects: kaladin,pujjolo,pujjocent,
the original comment was too brief and led to some misunderstanding.
In the past years, only retimer has the SBU muxing function. Or said,
only retimer has Aux Orientation feature. So, 'no retimer' implies
Aux Orientation feature inside the processor is needed.

And now, the modern future PDC also has the Aux Orientation feature.
Not all "no retimer" cases require setting the override bit anymore.
The even numbered bits should be set only when there is no retimer and
the processor's Aux Orientation is still required.
(If set, the SoC inverts the orientation value coming from EC/PDC when
operating in flipped orientation.)

In the referenced issue tracker, the system has 'no retimer' and uses
a 'future PDC'. (The PDC has the Aux Orientation feature.)
Test results (DP + TCSS):
  - 'tcss_aux_ori' = 0 + PDC sends orientation detected value -> PASS
  - 'tcss_aux_ori' = 5 + PDC sends 'original' value           -> PASS
  - 'tcss_aux_ori' = 5 + PDC sends orientation detected value -> FAIL
     (Fail means only display one side.)

This patch updates the comment to more accurately describe the expected
usage and avoid future confusion.

Refer doc#:
646929 TWL PDG
734752 TCSS Cookbook (MTL Backward/MTL/PTL/WCL)
627270 TWL Bios Spec
758766 MTL Bios Spec
766031 MTL PDG

BUG=b:4292672
BRANCH=none
TEST=Update coreboot device tree with different tcss_aux_ori value and
     test the DP connection via TCSS on 2 orientations.

Change-Id: I3281110e522c53a35abf30fd1c372bb5ca18c10d
Signed-off-by: Curtis Chen <curtis.chen@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88482
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:10:15 +00:00
Jincheng Li
85b26f75d2 soc/intel/xeon_sp: Remove fast_spi_cache_bios_region
FSP-T will help to cache bios region along with MTRR programming
by setting CodeRegionBase/CodeRegionLength, thus there is no need
for xeon_sp platforms to do it.

TEST=Build and boot on intel/avenuecity CRB
TEST=Build and boot on intel/archercity CRB

Check MTRR usage and below duplicated MTRR item get removed:
[DEBUG]  0x00000000ff000005: PHYBASE1: Address = 0x00000000ff000000, WP
[DEBUG]  0x000fffffff000800: PHYMASK1: Length  = 0x0000000001000000, Valid

Change-Id: Ia414a35c663f3aa1b02d944475a96e11d07a4f00
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88533
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-07-25 17:08:06 +00:00
Swathi Tamilselvan
fc4911ec35 soc/qualcomm/x1p42100: Add CPU Clock boost support for X1P42100
Add support to increase the CPU clock frequency to 1.36(GHz).
The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=Create an image.serial.bin and ensure it boots on X1P42100 and
CPU runs in 1.36GHz Frequency.

Change-Id: Ie51e032141bdfabf4c96b6891ec9f084561d97ff
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88532
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-25 17:07:45 +00:00
Swathi Tamilselvan
1a9fb29a53 soc/qualcomm/common: Add API to enable Zondaole PLL for X1P42100
Add API to enable Zondaole PLL.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I80e0b97eeda1bdd10059cc571c1258909df446f1
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88531
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:07:40 +00:00
Patrick Rudolph
e272b20c85 sb/intel/common: Remove unused function prototype
Drop clear_gpio() since it's unused.

Change-Id: Ic5359f7689d7f633c34605cab107ba3623d0b806
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88507
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:07:26 +00:00
Patrick Rudolph
c54fde5040 sb/inte/common/gpio: Implement gpio_input() and gpio_output()
Implement the two functions defined as prototypes in gpio.h.
Allows to drop custom SMI handler code and use the generic function
from gpio.c instead.

Change-Id: I795af83374118d3fc2b46837b1822205c966fda6
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88508
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:07:16 +00:00
Patrick Rudolph
55bed620a4 mb/dell: Use gpio_base2_value
Instead of open coding what gpio_base2_value() does use the
function to get the GPIO states of the ID pins.

Change-Id: Ib09993998f7e8ee2a7e5295f49ed14058a095eb0
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88505
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-25 17:06:35 +00:00
Patrick Rudolph
84899e6fb7 sb/intel: Convert set_gpio to gpio_set
Drop the custom function to set the value of a single GPIO and
use the generic function prototype defined in include/gpio.h instead.

Migrate all users of the old function to the new function.

Allows to share more code between older x86 Intel boards and newer
x86 Intel boards since they now use a common header.

Change-Id: I8c83b3436818275958cd8eb8b1c0d7b235e0344c
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88504
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:05:54 +00:00
Patrick Rudolph
0c79443ca9 sb/intel/*/gpio: Convert get_gpios to gpio_base2_value
Drop the custom function to retrieve the value of multiple GPIOs
at once as integer value and use the generic function prototype
defined in include/gpio.h instead.

Therefore:
* select GENERIC_GPIO_LIB
* Stub gpio_input(). Existing code assumes the pin is input.
* Drop get_gpios() implementation
* Include new header file gpio.h
* Migrate pins from type int to gpio_t

Migrate all users of the old function to the new function.

Allows to share more code between older x86 Intel boards and newer
x86 Intel boards since they now use a common header.

Change-Id: I2296ff72231b569c618295b36b95a89ffebb3a6e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88503
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:05:39 +00:00
Patrick Rudolph
69364fc9e0 sb/intel: Convert get_gpio() to gpio_get()
Drop the custom function to set the value of a single GPIO and
use the generic function prototype defined in include/gpio.h instead.

Migrate all users of the old function to the new function.

Allows to share more code between older x86 Intel boards and newer
x86 Intel boards since they now use a common header.

Change-Id: I714eaf2115a455d327e6b2313dafd0e293bee8a7
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88506
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-25 17:05:12 +00:00
Patrick Rudolph
2d7891abe2 sb/intel: Add soc/gpio.h
In order to use the common gpio.h header file typedef gpio_t in
soc/gpio.h for Intel common code, Intel lynxpoint and Intel broadwell.

Change-Id: I2049a2cfd75c60d00bdd564b294808760b6aff7f
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88502
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-25 17:05:01 +00:00
Patrick Rudolph
6a20caea01 drivers/lenovo/hybrid_graphics: Add missing header
Include the missing header stdbool.h

Fixes compilation error
hybrid_graphics.h:6:28: error: unknown type name 'bool'
while refactoring some code.

Change-Id: I96f7255049cd9e24d74838a173e920a00636b09e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88546
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:04:22 +00:00
Patrick Rudolph
04cc15feb4 sb/intel/common/pmutil: Drop unused header
Change-Id: Ic63668eb741d96f0d28e3657c0b1c9a683ade272
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88544
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-25 17:04:09 +00:00
Patrick Rudolph
b44c0ab25b ec/lenovo/pmh7: Include stdbool.h
When moving headers compilation can fail as pmh7.h is missing
the include for type bool. Add the missing include to make sure
future code refactoring works.

Fixed the error:
src/ec/lenovo/pmh7/pmh7.h:27:1: error: unknown type name 'bool'

Change-Id: Ib0a2489a0c461bf021168e98737ecb6062caa696
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88542
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-25 17:03:55 +00:00
Matt DeVillier
b20f6d27e2 device/dram: Rename 'USE_DDRx' config options
Rename config options 'USE_DDRx' to 'DRAM_SUPPORT_DDRx' to make them
less clunky, and in preparation to expand their use inside SoC code.

Change-Id: Ie6edd730c5cbad679a90fcf7989a942d9b2dd3d8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88520
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: <yuchi.chen@intel.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-25 17:03:02 +00:00
lizheng
1ade8247ce mb/google/trulo/var/pujjocento: update hda_verb table for ALC257
Update hda_verb table for pujjocento to optimize noise floor.

BUG=b:433647377
TEST=emerge-nissa sys-boot/coreboot sys-boot/chromeos-bootimage

Verify that the noise floor on AP is less than -90 dB when
DUT plays mute.wav.

Change-Id: Ib8642a88bb707e99c3d459eb70a6fdf5562f4c75
Signed-off-by: lizheng <lizheng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88549
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 17:02:43 +00:00
wu.garen
28848dc4fb mb/google/trulo/var/kaladin: Add elan touchscreen support
New Touchscreen support for kaladin.
Touchscreen controller: ELAN_EKTH3918NBY

BUG=b:432399420

Change-Id: Ia6edc78e11c6dbd5835017f443f272ff3c12b66e
Signed-off-by: wu.garen <wu.garen@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88471
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-07-25 04:26:36 +00:00
Eren Peng
9a89e3b4c6 mb/google/trulo/var/kaladin: Select USE_UNIFIED_AP_FIRMWARE_FOR_UFS_AND_NON_UFS
Kaladin need to set this config since we use unified firmware for UFS and non UFS skus

BUG=b:432579255
TEST=Flash and boot on every sku on kaladin

Change-Id: I5fa8f51776e6ba13e9003ea7913c2b4784b76217
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88475
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-25 03:52:51 +00:00
Eren Peng
f84934a203 mb/google/trulo/var/kaladin: Add DRAM part H58G56CK8BX146
Add DRAM part H58G56CK8BX146

BUG=b:432397864
TEST=Flash and boot to OS successfully on kaladin

Change-Id: Id880940d608c76b88e384ee2cbea03eec8e35b53
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88469
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 03:52:36 +00:00
Sasirekaa Madhesu
dd76bcc4c3 soc/qc/sc7280: Relocate SHRM firmware load to common Qualcomm path
This patch moves the shrm_fw_load_reset() API from the SC7280 specific
implementation to the Qualcomm common directory. This change enables
reuse of the API across multiple Qualcomm chipsets.

Change-Id: Ifab870b9aea7396e29fa93c999c29cf11ab0d199
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88545
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 02:36:23 +00:00
Pranava Y N
88b10e09b6 mb/google/ocelot: Set TPM_TIS_ACPI_INTERRUPT for all ocelot variants
Set `TPM_TIS_ACPI_INTERRUPT` to 49 (GPE0_DW1_17) for all ocelot
variants using `BOARD_GOOGLE_MODEL_OCELOT` instead of
`BOARD_GOOGLE_OCELOT`.

BUG=b:433177132
TEST=Able to boot Ocelot

Change-Id: I662e1b38530861da008cf54da4a31dd0ac6212c8
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88541
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-07-25 02:08:34 +00:00
Pranava Y N
c2dfe61016 mb/google/ocelot: Disable CNVi bluetooth core in the baseboard code
Disable CNVi bluetooth in the baseboard by default. This will be
enabled per variant basis based on the WIFI fw_config in variant.c
file.

BUG=b:433215861
TEST=Able to connect to boot Ocelot and connect to bluetooth.
Below error is not seen when WIFI_PCI_6/7 selected.

```
[ERROR]  CNVi BT is enabled without CNVi being enabled
```

Change-Id: Ibe5d22c013852f868a2a3296c79dfdf1de7c1455
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88551
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-25 02:08:02 +00:00
Megha Verma
69e6d96aad mb/google/fatcat: Configure host command ranges for FATCAT4ES variant
The commit introduces changes to support the FATCAT4ES board variant
by updating the EC command range configuration. The changes updates the
gen1_dec register to configure correctly to accomdate the FATCAT4ES
variant which ensures the ec-host communication should not fail. Also it
ensures other conditional checks in the EC header file for enabling this
new variant.

BUG=b:432676108
TEST=Build with the FATCAT4ES configuration and verify ec host
    communication is not failing.

Change-Id: I5c84dc2161847f9fe4316c0e63aa876696947423
Signed-off-by: Megha Verma <megha.verma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88552
Reviewed-by: <srinivas.kulkarni@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-24 19:14:33 +00:00
Jian Tong
8bdc170901 mb/google/brox/var/lotso: Update VR domain config
Based on RPL 15W baseline and 686872_RPL_UPH_RPL_UH_R_Power_Map_Rev2p4p1.xlsm
Get VR domain configs from internal power teams.

BUG=b:404416910
TEST=emerge-brox coreboot chromeos-bootimage
	USE=fw_debug confirm VR configs

Change-Id: I5c7124477eeaa7b864e58c083e9c546f955bee29
Signed-off-by: Jian Tong <tongjian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88539
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dengwu Yu <yudengwu@huaqin.corp-partner.google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-07-24 18:51:18 +00:00
Subrata Banik
a6842184ab mb/google/fatcat/var/kinmen: Use ACPI for touchscreen power sequencing
This commit removes redundant touchscreen GPIO configurations from
romstage_gpio_table. These GPIOs are no longer required to be explicitly
set for the touchscreen while using ACPI for touchscreen power
sequencing.

When the generic.use_gpio_for_status flag is enabled, the touchscreen
driver's power resource method will perform a probe to determine the
device's operational status. This probe specifically verifies two
critical conditions:

- The Enable GPIO pin is enabled (HIGH).
- The Reset GPIO pin is not in reset (LOW).

If both of these conditions are met, the touchscreen is considered ready
and functional.

Conversely, if either of these conditions is not met, the _ON method
within the power resource will be invoked. The _ON method is then
responsible for executing the full touchscreen initialization sequence
to bring the device into an operational state.

BUG=b:430444353
TEST=Able to build and boot google/kinmen. Verified touchscreen is
working as expected with this patch.

Change-Id: I0bb2e1ddd4168ef1831b30817dbb3bc3f6e6a5d2
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88518
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-24 09:00:25 +00:00
Subrata Banik
712aac780f mb/google/rex/kanix: Use ACPI for touchscreen power sequencing
This commit transitions the touchscreen power sequencing for the Karis
variant from static coreboot GPIO configuration to ACPI-driven
management. This allows the kernel's touch driver to handle the power
sequencing, providing more flexible and dynamic control.

Redundant touchscreen GPIO configurations are removed from
early_gpio_table, and romstage_gpio_table. These GPIOs are no
longer required to be explicitly set in coreboot given the shift to ACPI
power sequencing.

The generic.use_gpio_for_status register is set to true in the
device's override tree to enable ACPI power sequencing for touchscreen
signaling.

When the generic.use_gpio_for_status flag is enabled, the touchscreen
driver's power resource method will perform a probe to determine the
device's operational status. This probe specifically verifies two
critical conditions:

- The Enable GPIO pin is enabled (HIGH).
- The Reset GPIO pin is not in reset (LOW).

If both of these conditions are met, the touchscreen is considered ready
and functional.

Conversely, if either of these conditions is not met, the _ON method
within the power resource will be invoked. The _ON method is then
responsible for executing the full touchscreen initialization sequence
to bring the device into an operational state.

BUG=b:430444353
TEST=Able to build and boot google/kanix. Verified touchscreen is
working as expected with this patch.

Change-Id: I5c049c76fed185a40c31a6e779119c953926e6c9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88517
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-24 09:00:14 +00:00
Subrata Banik
26e6d0be00 mb/google/rex/var/karis: Use ACPI for touchscreen power sequencing
This commit transitions the touchscreen power sequencing for the Karis
variant from static coreboot GPIO configuration to ACPI-driven
management. This allows the kernel's touch driver to handle the power
sequencing, providing more flexible and dynamic control.

Redundant touchscreen GPIO configurations in bootblock and romstage are
removed from early_gpio_table, and romstage_gpio_table. These GPIOs are
no longer required to be explicitly set in coreboot given the shift to
ACPI power sequencing.

The generic.use_gpio_for_status register is set to true in the
device's override tree to enable ACPI power sequencing for touchscreen
signaling.

When the generic.use_gpio_for_status flag is enabled, the touchscreen
driver's power resource method will perform a probe to determine the
device's operational status. This probe specifically verifies two
critical conditions:

- The Enable GPIO pin is enabled (HIGH).
- The Reset GPIO pin is not in reset (LOW).

If both of these conditions are met, the touchscreen is considered ready
and functional.

Conversely, if either of these conditions is not met, the _ON method
within the power resource will be invoked. The _ON method is then
responsible for executing the full touchscreen initialization sequence
to bring the device into an operational state.

BUG=b:430444353
TEST=Able to build and boot google/karis. Verified touchscreen is
working as expected with this patch.

Change-Id: I967650290dda9ca3ca66a2f161fff0ae84b14f04
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88516
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-24 09:00:02 +00:00
Jian Tong
00d99a6e9b mb/google/brox/var/lotso: Configure Acoustic noise mitigation
- Enable Acoustic noise mitigation
- Set slow slew rate VCCIA and VCCGT to SLEW_FAST_4
- Set FastPkgCRampDisable VCCIA and VCCGT to 1

BUG=b:404416910
TEST=emerge-brox coreboot chromeos-bootimage
	USE=fw_debug confirm SlowSlewRate set to 1 at FSP

Change-Id: I0b8622472e4e851bb5d1d64367a402f7ad6dfabc
Signed-off-by: Jian Tong <tongjian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88537
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dengwu Yu <yudengwu@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
2025-07-24 08:46:57 +00:00
LiLiang Chen
4b6ebbdd94 mb/google/skywalker: Initialize clkbuf and srclken in romstage
Initialize clkbuf and srclken drivers.

BUG=b:379008996,b:422503190,b:403478729
BRANCH=none
TEST=1. Check register is configured  correctly:
clkbuf:
[clk_buf_init_pmic_clkbuf] XO_WCN_VOTER(0x7c0)
[clk_buf_init_pmic_clkbuf] XO_NFC_VOTER(0x1)
[clk_buf_init_pmic_clkbuf] XO_CEL_VOTER(0x7c0)
[clk_buf_init_pmic_clkbuf] XO_EXT_VOTER(0x1)
srclken:
RG_CENTRAL_CFG1: 0x104014e5
RG_CENTRAL_CFG2: 0x1010
RG_CENTRAL_CFG3: 0x400f
RG_CENTRAL_CFG4: 0x2020800
RG_CENTRAL_CFG5: 0x1bfc1761
RG_CENTRAL_CFG6: 0x0
2. Pass Y1_PMIC MT6365-26MHz cystal test.

Signed-off-by: LiLiang Chen <liliang.chen@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I9fe79a9f457f3e2efd2e810b87ea91c92ddd69b5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88526
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-24 06:38:47 +00:00
LiLiang Chen
f131f0e336 soc/mediatek/mt8189: Add clk_buf and srclken_rc drivers
MT8189 uses MT6359 clk_buf, and will use new RC mode with srclken_rc.
The clk_buf will provide several 26M clocks, and these clocks can be
independently turned on.

BUG=b:379008996,b:422503190,b:403478729
BRANCH=none
TEST=show driver init log:
RG_CENTRAL_CFG1: 0x104014e5
RG_CENTRAL_CFG2: 0x1010
RG_CENTRAL_CFG3: 0x400f

Signed-off-by: LiLiang Chen <liliang.chen@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ia04526d55191c695caf3ef40002e1ec99f299966
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88525
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-24 06:38:40 +00:00
Jeremy Compostella
2de0158eec soc/intel/pantherlake: Add asynchronous CBFS file loading support
This commit introduces support for asynchronous coreboot File
System (CBFS) file loading from SPINOR, specifically targeting the
fsps.bin file, in the Intel Panther Lake (PTL) System on a Chip (SoC)
platform. The primary motivation for this change is to improve boot time
performance by utilizing SPI Direct Memory Access (DMA) to preload files
while the Central Processing Unit (CPU) continues executing other tasks.

This feature uses cooperative multithreading. Because the scheduling is
cooperative, the boot process stays mostly predictable, which minimizes
debugging difficulties while still enhancing boot performance.

The preload operations are strategically modified according to the
chipset lockdown settings. This guarantees that payload preloading is
finalized prior to SPI DMA locking when the chipset lockdown is managed
by FSP or otherwise maximizes the pre-loading feature.

Note: As there is no UPD to control the Fast DMI DMA interface lockdown,
a special FSP binary, built without the Fast SPI DMA driver
(PcdSpiDmaEnable), is required when chipset lockdown setting is set to
CHIPSET_LOCKDOWN_COREBOOT.

TEST=On a Fatcat device, with CHIPSET_LOCKDOWN_COREBOOT, the boot time
     has improved by around 17-18 ms.

Change-Id: I4106058d382b99eac5f988c134cc02f024f7d473
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88300
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-23 22:07:55 +00:00
Jeremy Compostella
eb1b5ee116 soc/intel/cmn/block/fast_spi: Introduce a DMA transfer queue
This commit implements a token-based queuing system to reduce delays
between consecutive DMA operations. The queuing mechanism aims to
improve overall throughput.

A Kconfig option FAST_SPI_DMA_QUEUE_SIZE defines the maximum number of
concurrent DMA transfers that can be queued and processed.

When DMA transfers are queued, a new thread is initiated to run
fast_spi_dma_main_thread(). This function consistently monitors for
available transfer tokens and performs DMA operations when tokens are in
the DMA_REQUESTED state. If there are no tokens in the desired state,
the thread_running flag is set to false, and the thread terminates
smoothly.

While it provides a barely perceptible boot time improvement with the
Panther Lake configuration, it makes the boot flow more consistent and
predictable.

TEST=On a Fatcat device with CBFS_PRELOAD enabled and set up, we observe
     consecutive logs as follows, proving a new DMA transfer is issued
     as soon as the previous one's completion is detected.
     [DEBUG]  Fast-SPI: transfer completed in 2574 us
     [DEBUG]  Fast-SPI: Reading 240 blocks via DMA

Change-Id: Ic5249362041cfa028885874b43893e1d7942ed94
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88474
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
2025-07-23 22:07:39 +00:00
Sowmya Aralguppe
182ba52792 soc/intel/pantherlake: Remove mailbox interface offset
In PTL Crashlog Watcher interface is used instead of Mailbox since it
is based on the Intel Platform Monitoring Technology (PMT) standard.
The Watcher interface provides a more flexible and efficient way to
control and monitor crashlog collection. Hence the functionalities like
rearm and clear are implemented using watcher interface instead of BIOS
mailbox to PUNIT.

Change-Id: I24c5c9753a577b255a7129d20ab83f93001a0485
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88500
Reviewed-by: <srinivas.kulkarni@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-07-23 17:11:54 +00:00
Sowmya Aralguppe
2ee78458be soc/intel/pantherlake: Use CONSUMED_BIOS bit
After the BIOS reads and processes the crashLog record, it sets the
CONSUMED_BIOS bit to indicate that the reading and storing of crashlog
record is complete. This is read only bit. When this bit is set ,
crashlog discovery and data collection are skipped. This bit helps in
preventing the same crashLog from being extracted multiple times after
a reset.

BUG= b:None
TEST= The header value during warm boot after crash
      cpu_cl_disc_tab.header.data dw0=88420003, dw1=0x0

Change-Id: I4b9e6900218f28b6beb71b7667bc1c57f0134a84
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88499
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: <srinivas.kulkarni@intel.com>
2025-07-23 17:11:37 +00:00
Kapil Porwal
9a8ba5b39a {lib, drivers/intel}: Move BMP rendering logic out of SoC code
This patch refactors the BMP rendering logic, moving it from
drivers/intel/fsp2_0 to src/lib. This centralizes the code
responsible for rendering BMP images to the framebuffer.

Key changes:
- Move BMP rendering functions (e.g., calculate_logo_coordinates,
  copy_logo_to_framebuffer) and their dependencies to
  src/lib/render_bmp.c and src/lib/render_bmp.h.
- Decouple BMP definitions from UEFI headers by introducing new
  coreboot-specific structures for BMP images and BLT pixels.
- Consolidate bootsplash-related declarations into bootsplash.h,
  including new `fw_splash_vertical_alignment`,
  `fw_splash_horizontal_alignment`, and `struct logo_config`.
- Update `soc_load_logo_by_coreboot` to use the new common
  `load_and_render_logo_to_framebuffer` function and `struct
  logo_config` for rendering.
- Relocate `release_logo` to `src/lib/render_bmp.c` for better
  module structure.
- Update `src/lib/Makefile.mk` to include the new render_bmp.c.

This refactoring improves code organization and reusability, making
BMP rendering accessible without tight coupling to Intel-specific
driver code.

BUG=b:427387842
TEST=Verify firmware splash screen on google/fatcat.

Change-Id: I0e20ea7e44b4b3ccdb2d4aa9b6aa10ed3447ccfc
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88361
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-23 17:11:10 +00:00
Ivy Jian
a617317775 mb/google/fatcat/var/kinmen: Support SAR table selection via FW_CONFIG
Add wifi SAR table support for kinmen. Bit 2 in the CBI/FW_CONFIG
field is used to determine which SAR table file to load at runtime.

BUG=b:424628935
TEST= check coreboot log:
before:

[WARN ] CBFS: 'wifi_sar_defaults.hex' not found.
[ERROR] Failed to get the wifi_sar_defaults.hex file size!
[ERROR] failed getting SAR limits!

after:

[INFO ] Use wifi_sar_0.hex.
[INFO ] CBFS: Found 'wifi_sar_0.hex' @0x7072c0 size 0x116 in mcache @0x73abdd28

Change-Id: I63e44ba0a4094264165cc9bd7e41c4bd2094c242
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88458
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-23 17:10:44 +00:00
David Wu
92dd8cea59 mb/google/nissa/var/riven: Add parade touchscreen support
This change adds the necessary configuration for the parade
touchscreen (PRT3406) device, connected to I2C bus 24.

It includes settings for:
* HID descriptor
* Device description
* IRQ configuration
* Detection
* Reset, stop and enable GPIOs with their respective delays
* Power resource handling
* HID descriptor register offset

BUG=b:431658711
TEST=emerge-nissa coreboot and parade touchscreen can work well

Change-Id: I5ca4853c4105d422b907c29fd0b3a4f2a1ce6d9f
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88483
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-23 17:10:27 +00:00
Ian Feng
b98f786375 mb/google/fatcat/var/francka: Increase reset delay to 100ms for ILTK0001
Fix resume failure on i2c-ILTK0001:00 where acpi_subsys_resume
returns -121. Increase reset_delay_ms from 10ms to 100ms to
ensure the device is ready after reset.

BUG=b:411164455
TEST=Build and boot and verified resume time across 5 cycles.
All within 500 ms limit.
Suspend-resume time w/ and w/o:

w/o: Average=433.6 ms
1. Resume time 430 ms within limit of 500 ms
2. Resume time 435 ms within limit of 500 ms
3. Resume time 440 ms within limit of 500 ms
4. Resume time 430 ms within limit of 500 ms
5. Resume time 433 ms within limit of 500 ms

w/: Average=449.4 ms
1. Resume time 440 ms within limit of 500 ms
2. Resume time 439 ms within limit of 500 ms
3. Resume time 451 ms within limit of 500 ms
4. Resume time 482 ms within limit of 500 ms
5. Resume time 435 ms within limit of 500 ms

Change-Id: I67ea9aa5ca8ba6f30f772c2decd464d889865347
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88527
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-23 17:10:17 +00:00
Luca Lai
5f0177ac5d mb/google/trulo/var/pujjolo: Update Stylus IRQ wakeup group
Because when stylus bringing into the garage will resume
from suspend using powerd_dbus_suspend command, so
update the stylus setting which wake_gpe from DW0 to DW2
to fix the funtion.

BUG=b:430712526
BRANCH=none
TEST= Build and boot to OS and check when stylus bringing into
garage and the system will not resume from suspend.

Change-Id: I526b608b03631f365bb33fc44904c87b00a47436
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88479
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-23 17:10:07 +00:00
Felix Held
5b1a8b53b6 soc/amd/common/i23c_pad_ctrl: add I3C pad config options
Before, the I2C/I3C pads could only be configured to I2C mode. To be
able to use the I3C controller, add the corresponding options and
implementation for the I3C pad mode with all possible voltages.

Change-Id: I1cc2e830019101cfef96b9474477717a8a75111c
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87435
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-07-23 17:09:55 +00:00
Patrick Rudolph
4b58ec5ac2 soc/amd/common/block/psp: Add fTPM specific bits
Add helper functions for PSP fTPM support.

Signed-off-by: Patrick Rudolph <patrick.rudolph@amd.com>
Change-Id: I5c111bbdda52859381693cb0a15d49f3284a2291
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88355
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-23 17:09:31 +00:00
Jincheng Li
15bf25de78 Documentation/soc/intel: Update the referenced linuxboot_defconfig
Changes mainly include:
- Switch kernel compression from LZ4 to LZMA for better compression
  efficiency.
- Support loopback block device.
- Enable SCSI and ATA support.

Change-Id: I1a46a239eead27efa709ee07bf1b85a10cd631b4
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88501
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-07-23 17:09:15 +00:00
Sowmya Aralguppe
debfac6352 mb/google/ocelot/var/ocelot: Add wake support for touchpad
This patch supports wake on touch for touchpad when LPSS I2C interface
is used by overriding GPE DW0 with group GPP_F.

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: Id2cc248aacebc0e85d06ad5c63c0605dd72cd05c
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88534
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-07-23 17:09:00 +00:00
Patrick Rudolph
b6425a9a78 soc/amd/common: Add comments about bootblock
Since the boot flow is different on AMD compared to other x86
platforms document what is done and where.

Explain that AMDCOMPRESS does more than compressing the input.
It also parses the input as an ELF and extracts the first PT_LOAD marked
area from it and discards all other information from the ELF.

Explain bootblock.bin generation and that it has not much to do
with bootblock.elf, unlike on other platforms.
While on it also fix a whitespace in the following line.

Change-Id: Ida763f879c133be54ea1ca2abd3059db0d2c1ef7
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87316
Reviewed-by: Alexander Goncharov <chat@joursoir.net>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-07-23 17:01:19 +00:00
Patrick Rudolph
69888bc7fc util/cbfstool/amdcompress: Bail out on invalid ELF
Ensure that only one PT_LOAD segment is inside the input ELF as
the tool only expects and support one PT_LOAD segment. Instead of silently
discarding all other PT_LOAD segments than the first throw an error.

Change-Id: I90cfc8b9dd0b5e8060880790e5ff0ce73843943b
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87315
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-23 17:00:41 +00:00
Bincai Liu
3b008bde8c soc/mediatek/mt8196: Fix intermittent black screen issue
Currently we set DP_PHY_DIG_TX_CTL_0 during the PHYD reset flow.
However, that would cause the training to fail and result in
intermittent black screen issues.

As suggested by the eDP PHYD designer, the reset procedure should be
refined by setting bit 0 of DP_PHY_DIG_SW_RST from 0 to 1 to reset the
eDP PHYD status before training. DP_PHY_DIG_TX_CTL_0 controls the eDP
PHYD lane count: setting BIT0 enables lane0, and setting BIT1 enables
lane1. The eDP PHYD designer also recommends that when resetting PHYD,
it is sufficient to set DP_GLB_SW_RST_PHYD and leave DP_PHY_DIG_TX_CTL_0
unchanged.

After this change, this function is identical to the mt8189
implementation. Move dptx_hal_phyd_reset code to common for reuse.

BUG=b:427119942
BRANCH:rauru
TEST=Check the display function on Navi

Change-Id: I07bd6203a2b957eea79d1431953b043820c00338
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88450
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-23 16:04:48 +00:00
Raymond Sun
da33feeb51 soc/mediatek/mt8189: Correct thermal SRAM base address and length
A recent code review reveals incorrect SRAM base address and length
settings from the thermal driver refactor. This causes incorrect initial
values in SRAM and leads to CPU DVFS not working properly. After
correction, the CPU DVFS voltage and clock operate normally.

BUG=b:428613901
BRANCH=none
TEST=Clocks fm_armpll_ll_ck (LITTLE) and fm_armpll_bl_ck (big) are
correct. Voltages: vbuck1 (big) <1100mV, vmodem (LITTLE) <1050mV.
echo 2000000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
echo 2000000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
echo 2600000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq
echo 2600000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_max_freq
clkdbg() { echo $@ > /proc/clkdbg ; cat /proc/clkdbg ; }
clkdbg fmeter | grep armpll
cat /sys/kernel/debug/regulator/regulator_summary | grep buck1
cat /sys/kernel/debug/regulator/regulator_summary | grep modem
 6: fm_armpll_bl_ck              : 2600000
 8: fm_armpll_ll_ck              : 1999968
 vbuck1                           1    0      0  normal  1037mV     0mA     0mV     0mV
 vmodem                           1    0      0  normal  1043mV     0mA   400mV  1100mV

Signed-off-by: Raymond Sun <raymond.sun@mediatek.corp-partner.google.com>
Change-Id: I5caebb27a47d7b19330ec8ac23e20a6efe23e940
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88530
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-07-23 09:59:16 +00:00
Jeremy Compostella
9e41c7cec7 soc/intel/cmn/block/fast_spi: Lock DMA before exiting coreboot
Introduce a DMA lock mechanism to secure the Fast SPI DMA operations
during the payload boot phase. A new `fast_spi_dma_lock` function is
added to lock the DMA control register when the system enters the
payload boot state. This ensures that DMA operations are appropriately
secured, preventing any unintended data transfers post-boot.

TEST=On a Fatcat device with an FSP not locking down Fast SPI DMA,
     coreboot logs show "Fast-SPI: DMA has been locked." and
     /sys/devices/pci0000:00/0000:00:1f.5/config shows that bit 15 of
     register FAST_SPI_DMA_CONTROL (0xbc) has been is set.

Change-Id: Ie4abbcfc798480319a32b0049e3559d623ef78ef
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88488
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-22 22:22:00 +00:00
peng.eren
c1d45ef93b mb/google/trulo/var/kaladin: Update touchpad settings
Update touchpad settings

BUG=b:431870030
TEST=Flash and boot on DUT, touchpad works normally

Change-Id: If3eefd5041e06b25dd1945a40fd2aa95186efc4a
Signed-off-by: peng.eren <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88431
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-22 16:31:06 +00:00
peng.eren
f13f980e03 mb/google/trulo/var/kaladin: Add fw_config probe for storage
Add FW Config probe for storage

BUG=b:430725546
TEST=Flash and boot on NVMe,eMMC,UFS

Change-Id: I7a200124930d0191f9c6f488444c052d803dfa70
Signed-off-by: peng.eren <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88430
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-22 16:30:58 +00:00
peng.eren
50c39b3a22 mb/google/trulo/var/kaladin: Fix Type C function
Fix Type C USB and display function

BUG=b:429267772
TEST=Build and flash to DUT, verify Type C USB and display function works

Change-Id: I37af5f4608b2756f0918a6b544b53818d1e45d63
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88374
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-22 16:30:52 +00:00
Patrick Rudolph
f0d50aa404 commonlib/include/commonlib: Add volatile qualifier
With the introduction of the stack canary breakpoint QEMU uncovered
a different bug within coreboot. Currently the compiler optimizes
over aggressively inline functions and memory stores.

That also affects write_at_ble8(), which is supposed to store a
single byte at time. The compiler however optimizes multiple byte
stores into a single wider (and possibly unaligned) store operation.

This can be seen in the emited assembly code of write_le16(), as used
to install the EBDA:
 401348a:       66 c7 04 25 13 04 00    movw   $0x400,0x413
 4013491:       00 00 04

Make sure that the compiler does not optimize multiple calls to
write_at_ble8() by adding the volatile qualifier.

The emitted assembly code of the same function changes to:
 401394c:       c6 04 25 13 04 00 00    movb   $0x0,0x413
 4013953:       00
 4013954:       c6 04 25 14 04 00 00    movb   $0x4,0x414
 401395b:       04

Fixes a strange bug in QEMU where it triggers the DEBUG breakpoint
handler on unaligned 16-bit stores in the first 4KiB of memory.
Aligned stores and store outside of the first 4KiB do not dispatch
the DEBUG breakpoint handler.

Change-Id: Ibbc661235a38c7f7540b656a67f067c3e51105d1
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85855
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-22 16:30:38 +00:00
Jincheng Li
3828153ea5 soc/intel/xeon_sp/gnr: Use official microcodes
Use microcode updates from intel-microcode submodule by default.
Downstream users can still decide to use their own files.

TEST=Build and boot on intel/avenuecity CRB
TEST=Build and boot on intel/beechnutcity CRB

Change-Id: I5a37423426b19dc9ec76984df5ad9c6d2a28f83b
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88283
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-07-22 16:30:02 +00:00
Jincheng Li
a87cbcd3c9 soc/intel/xeon_sp/ibl: Config ACPI base using PMC device
IBL shall use PMC device to program ABASE instead of PCR.

TESTED=Build and boot on intel/avenuecity CRB with below log:
[INFO ]  soc_config_acpibase : pmbase = 501

Change-Id: I3497c287a5370deed02b269405bc45d5d41e7f33
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88144
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-22 16:29:45 +00:00
Martin Roth
480ac15044 util/cbfstool: Prevent overflow when sorting fit table entries
If fit_table_entries() fails, it returns zero, but the sort loop
subtracts 1 from that value before comparing for the loop termination.
Since the value is unsigned, this results in wraparound overflow,
effectively causing an infinite loop. To mitigate this, store the
number of FIT entries as an int, and use that for the loop exit
condition check. Use int type for the loop counters as well to
avoid the compiler complaining about an signed/unsigned comparison.

BUG=CID 1612099

Change-Id: Id0a16bdb86d075ec6c322b44fd782f81d15ca6a7
Signed-off-by: Martin Roth <gaumless@gmail.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88324
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-22 16:29:34 +00:00
Walter Sonius
bf4f08f3b6 mb/hp/snb_ivb_desktops/variants/compaq_8300_elite_sff: early VGA output
Recent development of the "pro_6300" variant fixed VGA output in EDK2
(MrChromebox/2502) and SeaBIOS 1.16.3 using libgfxinit by removing the
following line from Kconfig "select GFX_GMA_ANALOG_I2C_HDMI_B" hinted by
Keith Hui. This fix also applies to the "compaq_8300_elite_sff" variant.

The VGA output without this change only works after loading the OS!

Change-Id: Ifaf3df12fdde996d2842650be411a6d844f949a4
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88305
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-22 16:28:57 +00:00
Jakub Czapiga
dd19f6bc5a util/cbmem: Extract devmem and common code to separate files
Extract devmem-specific code to a separate file providing unified API.
Move hexdump() and cbmem_print_entry() to common.c.
Create common function for getting coreboot table entries. This can be
adjusted later to use higher-level API that selects appropriate backend.

BUG=b:391874512
TEST=cbmem -l; cbmem -x; cbmem -r 434f4e53; cbmem -t

Change-Id: Ic11f0659833e03324f6909fa3c1d62c36988b7b7
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86557
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-07-22 16:28:04 +00:00
Sean Rhodes
def945f3ba soc/intel/apollolake: Measure the IBBL, IBB and OBB from the bootblock
Get information about the current Boot Guard implementation, such as
whether it's enabled, the profile and if Measured Boot or Verified
Boot are required.

Then, measure the three individual components of the BIOS.

Tested on the StarLite Mk III where all three components were measured
successfully:
    [DEBUG]  Boot Guard 2.0: Verified Boot: Enforced
    [DEBUG]  Boot Guard 2.0: Measured Boot: Enforced
    [DEBUG]  TXE Hash:
    [DEBUG]  0xfef08f5e: ...
    [DEBUG]  0xfef08f6e: ...
    [DEBUG]  IBBL Hash:
    [DEBUG]  0xfef08f7e: ...
    [DEBUG]  0xfef08f8e: ...
    [DEBUG]  IBB Pointer: Present
    ...
    [DEBUG]  IBB Hash:
    [DEBUG]  0xfef08f9e: ...
    [DEBUG]  0xfef08fae: ...

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: Ia962ae40b411671e82540b19f3b8680529783711
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65444
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-22 16:27:49 +00:00
Jian Tong
fbb0738272 mb/google/brox/var/lotso: Decrease cpu power limits
Based on RPL 15W baseline, PL4 should set to 87W.
Ref: 686872_RPL_UPH_RPL_UH_R_Power_Map_Rev2p4p1.xlsm

BUG=b:404416910
TEST=emerge-brox coreboot chromeos-bootimage
     cbmem -c | grep PL shows PL4=87

Change-Id: Ief8c4e5b119dc334f3b469a046946f95a070b866
Signed-off-by: Jian Tong <tongjian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88498
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-22 11:12:44 +00:00
Pranava Y N
ce88b12420 mb/google/ocelot: Set correct TPM I2C bus for all ocelot model variants
Set `DRIVER_TPM_I2C_BUS` to 0x01 for all ocelot variants selecting
`BOARD_GOOGLE_MODEL_OCELOT` instead of `BOARD_GOOGLE_OCELOT`. This
ensures that the right I2C Bus is selected for all the variants.

BUG=b:433177132
TEST=Ensure that TPM I2C probing is successful.

```
[INFO ]  Probing TPM I2C: I2C bus 1 version 0x3230322a
[INFO ]  DW I2C bus 1 at 0xfe022000 (400 KHz)
[INFO ]  done! DID_VID 0x504a6666
[INFO ]  TPM ready after 0 ms
```

Change-Id: Ib728eb410fcf2000e5d421d186a321a79b3894b0
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88513
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-22 05:00:19 +00:00
Sowmya Aralguppe
e050e2fbfc mb/google/ocelot/var/ocelot: Remove irrelevant comment
This patch removes comments that are not applicable when aligned to
fw_config.c

Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: Id258b4e89c522ec438a74a9a149388bcfde125d1
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88462
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-21 19:05:05 +00:00
Sowmya Aralguppe
b66c8ea3d3 mb/google/ocelot/var/ocelot: Remove Bluetooth Audio offload
Remove Bluetooth Audio offload to align to fw_config.c

Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I30edbc0a5622e8893469384b853cad323c6ac544
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88460
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-21 19:05:00 +00:00
Sowmya Aralguppe
d5d633f607 mb/google/ocelot/var/ocelot: Update variant.c
Modify variant configuration to support THC-based touchscreen and
touchpad configurations.

Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I7af8195f76312aa362a6be504b3fec7a81acec06
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88418
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-21 19:04:55 +00:00
Jeremy Compostella
3b069d320c cbfs: Add a function to wait for all CBFS preload operations to complete
Introduce cbfs_preload_wait_for_all() to guarantee that all CBFS preload
contexts complete their tasks before moving forward. This function goes
through each preload context and waits for the corresponding thread to
finish by using thread_join(). If any preload thread runs into an issue,
it records an error message along with the context name.

This addition provides a synchronization point during the boot process
which platform code can leverage, typically when the storage backend
supporting asynchronous file transfer is about to be deactivated.

Change-Id: I3ee27ef2fbfdc19bd75532713966f333ad975861
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88457
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-21 13:45:12 +00:00
Paul Menzel
a7710ed8fd Documentation: coding_style: Add *long* to long multi-line comment example
Update the example, after the short multi-line comment alternative was
added several years ago, when the Wiki was still used.

Change-Id: I401180a9ac7c7cdc45fb8e9ba364823092cea6da
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88492
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-07-21 13:44:54 +00:00
Paul Menzel
19d7104d85 drivers/intel/touch: Use recommended short multi-line comment style
The current style is not part of the coding style [1]. The comment has
five lines, so it’s unclear if the short or long multi-line comment
style should be used. Use the short one, to keep it concise.

[1]: Documentation/contributing/coding_style.md

Change-Id: I500340fd02a54c69db4ca5d753fcb690fae1c520
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88491
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-21 13:44:30 +00:00
Luca Lai
451988d015 mb/google/trulo/var/pujjolo: Fix Goodix touchscreen function
Change level from low to high to fix goodix touchscreen issue.

BUG=b:430156965
BRANCH=none
TEST= Build and boot to OS to test touch function work fine.

Change-Id: I9bd16b2a9ebb5699ad4bf04b018aefc6b86b4199
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88432
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-21 05:39:23 +00:00
Sasirekaa Madhesu
542e52c126 soc/qualcomm/x1p42100: Optimize memory layout for X1P42100
Refactor memory layout on x1p42100 to reuse a single reserved region
for all QC image metadata passed from coreboot to QcLib for TME
authentication. Also, reposition the PRERAM_CBMEM_CONSOLE reservation
after the QcLib region to allow for future expansion.

TEST=Successfully booted google/bluey.

Change-Id: I6eea99241c233935c5d99d48093c42bb1424143f
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88485
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-20 03:42:32 +00:00
lizheng
2e47bd50f2 mb/google/trulo/var/pujjocento: Add 6W and 15W DPTF parameters
The DPTF parameters were defined by the thermal team.
Based on thermal table in 432114256 comment#1

BUG=b:432114256
TEST=emerge-nissa coreboot chromeos-bootimage
Signed-off-by: lizheng <lizheng@huaqin.corp-partner.google.com>

Change-Id: I969f93f384bb2a59f1300478794f48e30997736d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88463
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-19 14:23:43 +00:00
Sean Rhodes
6e4f4538bb soc/intel/{tgl,adl,mtl,ptl}: Default to Software Connection Manager
Commit 060df17f1d ("soc/intel/alderlake/acpi: Add Kconfig options for SCM and FCM")
set the default to Firmware Connection Manager, as linux commit
c6da62a219d028de10f2e22e93a34c7ee2b88d03 did not work correctly with
Software Connection Manager.

This issue was fixed with linux commit
719e1f561afbe020ed175825a9bd25ed62ed1697, so now that Software
Connection Manager works, default to it for normal builds as well as
ChromeOS ones.

Change-Id: I4393fc4992d602b7214929592f542270002d84ec
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88484
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-19 14:23:31 +00:00
haril
1b8dd662a9 soc/qualcomm/x1p42100: Add PCIE Clock support for x1p42100
Add support to enable PCIE NOC, Controller and PHY clocks.
The register details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=Create an image.serial.bin, ensure it boots on X1P42100 and
check clock status

Change-Id: I6007a8315343a2d56d51c8472ace831a10146768
Signed-off-by: Hari L <haril@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88481
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-19 14:23:22 +00:00
Vince Liu
4d3def7514 soc/mediatek/mt8189: Fix timer reset in BL31 by using time_prepare_v2
After reboot, the system does not need to serve pending IRQ from
systimer. Therefore, clear systimer IRQ pending bits in init_timer().
For that to work, the systimer compensation version 2.5 needs to be
enabled. Otherwise, inaccurate timestamps may occur after BL31, for
example in depthcharge. As the solution has already been implemented
in time_prepare_v2, mt8189 can adopt this version to fix the issue.

Also remove unnecessary headers in timer.c.

BUG=b:430211678
BRANCH=none
TEST=check the depthcharge timstamp in `cbmem` is correct.
 554:finished TPM enable update                        399,533 (12,059)
  90:starting to load payload                          399,541 (8)
  15:starting LZMA decompress (ignore for x86)         410,775 (11,234)
  16:finished LZMA decompress (ignore for x86)         465,472 (54,697)
  99:selfboot jump                                     487,643 (22,171)
  15:starting LZMA decompress (ignore for x86)         490,591 (2,948)
  16:finished LZMA decompress (ignore for x86)         502,153 (11,562)
  15:starting LZMA decompress (ignore for x86)         502,210 (57)
  16:finished LZMA decompress (ignore for x86)         504,510 (2,300)
1000:depthcharge start                                 534,769 (30,259)
1002:RO vboot init                                     534,813 (44)
1020:vboot select&load kernel                          534,815 (2)
1030:finished EC verification                          554,600 (19,785)
1060:finished AuxFW Sync                               560,740 (6,140)
1040:finished storage device initialization            612,960 (52,220)
1050:finished reading kernel from disk                 639,711 (26,751)
1100:finished vboot kernel verification                710,596 (70,885)
1102:starting kernel decompression/relocation          731,729 (21,133)
1101:jumping to kernel                                 945,034 (213,305)

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Signed-off-by: Zhanzhan Ge <zhanzhan.ge@mediatek.corp-partner.google.com>
Change-Id: Ic79003b5a5b747a3761fd4612cad6a96ada216b6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88468
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-19 12:11:45 +00:00
Vince Liu
d898653b0e soc/meidatek/mt8196: Extract common timer code for reuse
To promote code reuse and maintainability, move mt8196/timer_prepare.c
to timer_prepare_v2.c. The original timer_prepare.c is renamed to
timer_prepare_v1.c. Also use `mtk_systimer->cntcr` instead of
`SYSTIMER_BASE` for consistency.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Iab617e7a8bfedb81bcf673edd94d24870df7f751
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88467
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-19 12:10:57 +00:00
Vince Liu
d1c096a5b9 src/soc/mt8196: Correct systimer register offset
A recent datasheet review finds that the previously used offset for
the `cnttval` register is incorrect. Since the relevant bits used by
`clear_timer()` have default values of 0, the functionality is not
affected before this fix.

BUG=b:430211678
BRANCH=rauru
TEST=check the timestamp order of depthcharge is correct in `cbmem`
  16:finished LZMA decompress (ignore for x86)         895,082 (526)
1000:depthcharge start                                 941,621 (46,539)
1002:RO vboot init                                     942,644 (1,023)
1020:vboot select&load kernel                          942,645 (1)
1030:finished EC verification                          980,005 (37,360)
1060:finished AuxFW Sync                               997,302 (17,297)
1040:finished storage device initialization            1,025,910 (28,608)
1050:finished reading kernel from disk                 2,174,931 (1,149,021)
1100:finished vboot kernel verification                2,229,874 (54,943)
1102:starting kernel decompression/relocation          2,249,121 (19,247)
1101:jumping to kernel                                 2,284,317 (35,196)

Total Time: 2,020,762

Change-Id: I018d81de79d6896a31972f925d5a26f41cf942a0
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Signed-off-by: Zhanzhan Ge <zhanzhan.ge@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88480
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-19 11:14:23 +00:00
Raymond Sun
edaa67d0c9 mb/google/skywalker: Add thermal init flow in romstage
BUG=b:379008996
BRANCH=none
TEST=build pass, thermal init log:
[INFO ]  ===== lvts_thermal_init begin ======
[INFO ]  thermal_init: thermal initialized

Signed-off-by: Raymond Sun <raymond.sun@mediatek.corp-partner.google.com>
Change-Id: Id57f73206135f814f44b34290c5f2624ea56e1df
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88442
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-19 10:57:53 +00:00
Vince Liu
6aec09875b soc/mediatek/mt8189: Add thermal driver
Add MT8189 thermal driver for LVTS (low voltage thermal sensor)
initialization.

BUG=b:379008996
BRANCH=none
TEST=temperature log should between 30~50 degrees:
[INFO ]  thermal_init: thermal initialized
[INFO ]  [LVTS_MSR] ts0 msr_all=13c50, valid=1, msr_temp=15440, temp=44430
[INFO ]  [LVTS_MSR] ts1 msr_all=13c41, valid=1, msr_temp=15425, temp=44660
[INFO ]  [LVTS_MSR] ts2 msr_all=13c3f, valid=1, msr_temp=15423, temp=44690
[INFO ]  [LVTS_MSR] ts3 msr_all=13c4e, valid=1, msr_temp=15438, temp=44461
[INFO ]  [LVTS_MSR] ts4 msr_all=13bc6, valid=1, msr_temp=15302, temp=46540
[INFO ]  [LVTS_MSR] ts5 msr_all=13bd2, valid=1, msr_temp=15314, temp=46356
[INFO ]  [LVTS_MSR] ts6 msr_all=13bd1, valid=1, msr_temp=15313, temp=46372
[INFO ]  [LVTS_MSR] ts7 msr_all=13bc9, valid=1, msr_temp=15305, temp=46494
[INFO ]  [LVTS_MSR] ts8 msr_all=13bed, valid=1, msr_temp=15341, temp=45944
[INFO ]  [LVTS_MSR] ts9 msr_all=13be3, valid=1, msr_temp=15331, temp=46097
[INFO ]  [LVTS_MSR] ts10 msr_all=13c01, valid=1, msr_temp=15361, temp=45638
[INFO ]  [LVTS_MSR] ts11 msr_all=13bc6, valid=1, msr_temp=15302, temp=46540
[INFO ]  [LVTS_MSR] ts12 msr_all=13c06, valid=1, msr_temp=15366, temp=45562
[INFO ]  [LVTS_MSR] ts13 msr_all=13c03, valid=1, msr_temp=15363, temp=45607
[INFO ]  [LVTS_MSR] ts14 msr_all=13bf3, valid=1, msr_temp=15347, temp=45852
[INFO ]  [LVTS_MSR] ts15 msr_all=13c1a, valid=1, msr_temp=15386, temp=45256
[INFO ]  [LVTS_MSR] ts16 msr_all=13c8b, valid=1, msr_temp=15499, temp=43528
[INFO ]  [LVTS_MSR] ts17 msr_all=13c8b, valid=1, msr_temp=15499, temp=43528

Signed-off-by: Raymond Sun <raymond.sun@mediatek.corp-partner.google.com>
Signed-off-by: Kai-chun Huang <kai-chun.huang@mediatek.corp-partner.google..com>
Change-Id: I37dd9da6592146ade556660fa07d2fa374646da5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88441
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-19 10:57:35 +00:00
Maximilian Brune
5cc4b9e6ce soc/amd/common/cpu/noncar: Add bootblock overlap detection
Currently overlaps with bootblock are not detected by our linker script.
So increasing the PSP_SHAREDMEM_BASE + size to an extent that would
overlap with bootblock would be just ignored.

Add another region for the sole purpose of detecting these overlaps.
This may not be the ideal solution, but should sufficient for now.

Also check that the actual loadable segment of bootblock does not use up
more space then that.

Tested: Check that GCC and Clang can still compile it and that the
loadable segment (and therefore what PSP loads into memory) does not
change.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I0f82f9b8655908676dc2d6545e72cb40fe9110e1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86862
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-18 21:32:21 +00:00
Matt DeVillier
67cd138df9 soc/intel/apollolake: Add missing header in measured_boot.h
tss_structures.h is needed for SHA256_DIGEST_SIZE.

Change-Id: I0f19b09b770d1e7de6483beb55e901e5f7d3a456
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88473
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-07-18 21:30:19 +00:00
David Wu
a428481574 mb/google/nissa/var/dirks: Update power limits
Update PsysPL2 and PsysPmax values on dirks.

BUG=b:399236160
TEST=emerge-nissa coreboot and
     check PsysPL2 and PsysPmax values on dirks

Change-Id: I45f11cccc0c77fcdb73629065f71e1284c36857b
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88246
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
2025-07-18 16:51:25 +00:00
David Wu
55ae0d8a37 mb/google/nissa/var/baseboard/nissa: Add power limits functions
Support variant specific power limits

BUG=b:399236160
TEST=emerge-nissa coreboot and check correct value on dirks.

Change-Id: If09a8f4d157c6fd01aabae1e455e289d3908b39b
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88245
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-18 16:51:21 +00:00
Patrick Rudolph
82163aedc6 soc/amd/common/block/cpu/noncar: Move BSS and DATA out of PT_LOAD
Currently .bss and .data are within the PT_LOAD area of the
bootblock.elf and thus are placed and initialized at the correct spot
when PSP loads the BIOS Reset Image into DRAM.

On S3 resume PSP verifies that the "BIOS Reset Image" is unmodified
before it hands over control to such. Due to the use of BSS and DATA
within the BIOS Reset Image and the modifications of such at previous
boot the verification always fails.

This change moves '.bss' and '.data' out of the *first* PT_LOAD area
and moves it into a separate data_segment also marked PT_LOAD. Since
the second PT_LOAD is ignored by AMDCOMPRESS it doesn't end in the area
being verified at S3 resume. Since '.data' is now part of a separate
PT_LOAD a new region is inserted called '.datacopy' which is filled
by using objcopy. In turn the assembly code in bootblock will memcpy
'.datacopy' to '.data'.

TEST: Can still boot on amd/birman+ and on up/squared.

Change-Id: Id159ade3029060ce2ca6abcb723d5bdfe8841c3a
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87305
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-07-18 16:50:07 +00:00
Pranava Y N
6405641647 mb/google/fatcat: Use same mainboard part number for all fatcat variants
This patch unifies all the fatcat variants based on
`BOARD_GOOGLE_MODEL_FATCAT` to use the same mainboard part number
`Fatcat`.

BUG=b:430205874
TEST=Able to build/boot fatcat

Change-Id: I13a45e4763abaa9dfe26c53b4e5051d50640291d
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88353
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-18 14:09:43 +00:00
Benjamin Doron
c5613469ae device: Make a note that SeaBIOS doesn't support above 4G MMIO
This is fairly intuitive upon thinking about it, SeaBIOS has neither
long mode nor PAE page tables, but make it obvious to developers,
and let users know this.

Change-Id: I769c1bdb9d7ea78d56455d125adf3d9bf07a1211
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88453
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-18 03:39:24 +00:00
Jincheng Li
ced4c09359 soc/intel/xeon_sp/gnr: Implement get_mmio_high_base_size
Report above 4G MMIO base and size to coreboot so that coreboot
could correctly set MTRR coverage for the whole region instead
of only covering PCI driver used parts, where much fragmentation
was introduced.

TESTED=Build and boot on intel/avenuecity CRB, check MTRR usage:
[DEBUG]  0x0000000080000000: PHYBASE0: Address = 0x0000000080000000, UC
[DEBUG]  0x000fffff80000800: PHYMASK0: Length  = 0x0000000080000000, Valid
[DEBUG]  0x00001e0000000000: PHYBASE1: Address = 0x00001e0000000000, UC
[DEBUG]  0x000fff0000000800: PHYMASK1: Length  = 0x0000010000000000, Valid
[DEBUG]  0x00001f0000000000: PHYBASE2: Address = 0x00001f0000000000, UC
[DEBUG]  0x000fffc000000800: PHYMASK2: Length  = 0x0000004000000000, Valid
[DEBUG]  0x0000000000000000: PHYBASE3
[DEBUG]  0x0000000000000000: PHYMASK3: Disabled

Change-Id: I61a7e96b3e7566d6a2c14951e7eb4f0be98c13e5
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88279
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-18 03:38:34 +00:00
alokagar
7100f226ca vc/intel/fsp/fsp2_0/wcl: Add FSP headers for WCL FSP
Details:
- First set files to compile google/ocelot mainboard w.r.t. WCL FSP
  3266_02.
- Change file path for the FSP_HEADER_PATH for WildacatLake.

BUG=b:431683053
TEST=Build Ocelot without any errors.

Change-Id: Iec31b0055bc145d795adef6723511ac07f83406b
Signed-off-by: alokagar <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88433
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-18 01:15:12 +00:00
Alper Nebi Yasak
5171098814 drivers/qemu/bochs: Allow building for non-x86 architectures
The Bochs display driver uses port I/O functions to initialize the VGA
device, so it could only have been built on x86 architectures so far,
but its supported devices can be used just fine on others on the QEMU
side as long as the emulated platform supports PCI. A previous commit
adds port I/O functions for more including ARM* and RISC-V, which should
enable this driver to be successfully built and used on these as well.

Allow the Bochs display driver to be built for non-x86 QEMU boards by
changing the Kconfig dependencies. Make VGA text framebuffer support
depend on x86, because it isn't usable at the standard 0xB8000 address
on other architectures. Add a dependency on PCI since this is a PCI
device and vexpress-a9 (qemu-armv7) doesn't have the (emulated) hardware
for PCI.

Change-Id: I7f72d7ea13e54ecf89d067394c02b572c5f92d24
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80376
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-17 20:39:48 +00:00
Maximilian Brune
d233b6c903 payloads/external/LinuxBoot/Makefile: Fix build prerequisite
Sometimes during build you could get this error:
mkdir: cannot create directory 'build': File exists
make[1]: *** [Makefile:48: build] Error 1
make: *** [payloads/external/Makefile.mk:408: payloads/external/LinuxBoot/build/initramfs] Erro
make: *** Waiting for unfinished jobs....
    Test 6.3
    WWW        https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.3.tar.xz

Usually this should not happen, because the 'build' target is an
order-only prerequisite, but I assume its still happening, because the
makefile is called twice during a Linuxboot build. Once for the Linux
kernel and once again for the initramfs.

A quick and dirty fix is to add a '-p' to the mkdir command.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I5663d1cb592bec6a8576347dd22223b382cd617f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87821
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 20:39:15 +00:00
Maximilian Brune
502d19be89 payloads/external/LinuxBoot/targets/u-root.mk: Add missing prerequisite
the build directory prerequisite was missing. As far as I know, it
didn't cause any issues, but it should still be there for correctness.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ieba578871af2fe886def059ab1568b85cd641e6e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87820
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-17 20:39:10 +00:00
Maximilian Brune
cba0f0b8b9 payloads/external/LinuxBoot: Rename build target
To avoid confusion and make it more obvious that the 'build' target
creates the build directory, append a slash at the end.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I49b4fef859f642cc03c0223cb1773597718e56cb
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87819
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 20:39:05 +00:00
Maximilian Brune
43a54e3b1b util/amdfwtool: Add binary parsing
This adds parsing for some more possible firmware blobs on AMD.
These binaries are used on a mainboard based on glinda SOC.

Tested: Boot birman_plus mainboard

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I78d7a9dba71de557e0a9a885d8561eea1f4191ef
Original-signed-off-by: Anand Vaikar <a.vaikar2021@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84373
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 20:38:52 +00:00
Martin Roth
85da3954d0 .gitmodules: Ignore changes make by what-jenkins-does
When running `make what-jenkins-does`, the intel-sec-tools and gowsid
submodules are left with some new files, marking them as dirty.
This changes fixes that.

Change-Id: Ice98c1a61201cbf63580835966b78f053d7853a2
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87380
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 20:38:35 +00:00
Matt DeVillier
397c5fe420 Documentation: Add a mainboard entry for the Lenovo T480/T480s
Add a heading for Skylake/Kabylake Lenovo mainboards in anticipation
of additional boards being added in the future. Add a new page for the
T480/T480s, loosely based on the page for the T440p.

Thanks to Askareth on Matrix for the initial draft and copious testing.

Change-Id: I3c7a9ca28be5524b42177b92387f35c6d25b48da
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88439
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 18:15:40 +00:00
Mate Kukri
6768586353 Documentation: Add information about the deguard utility
Change-Id: Idba0f461d31db31cbc9c35ee3da70c116d5493ce
Signed-off-by: Mate Kukri <km@mkukri.xyz>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84825
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 18:15:32 +00:00
Matt DeVillier
ad8b738af0 mb/lenovo: Add ThinkPad T480 and ThinkPad T480s
These machine have BootGuard fused and requires deguard to
boot coreboot.

Known issues:
- Alpine Ridge Thunderbolt 3 controller does not work
- Some Fn+F{1-12} keys aren't handled correctly
- Nvidia dGPU is finicky
  - Needs option ROM
  - Power enable code is buggy
  - Nouveau only works on linux 6.8-6.9
- Headphone jack isn't detected as plugged in despite correct verbs

Thanks to Leah Rowe for helping with the T480s.

Change-Id: I19d421412c771c1f242f6ff39453f824fa866163
Signed-off-by: Mate Kukri <km@mkukri.xyz>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83274
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
2025-07-17 18:15:23 +00:00
Matt DeVillier
96e381766e ec/lenovo: Add support for MEC1653 EC
Add support for the MEC1653 EC as used by the Thinkpad T480/480s.

Change-Id: If82a7d27eb3163f51565c0c6e60cab60753611a7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88395
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: Máté Kukri <km@mkukri.xyz>
2025-07-17 18:15:03 +00:00
Benjamin Doron
2181b02765 util/smmstoretool: Properly initialise the authenticated variable header
MonotonicCount is required, or UEFITool fails to parse the store.
TimeStamp is required for variables with authenticated attributes.

Change-Id: Iea933c9943ec18ea773700cdf1e3bede0e8ef292
Signed-off-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88424
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 18:14:17 +00:00
Benjamin Doron
3058464263 util/smmstoretool: Add support for creating variable from file contents
This helps with initialising UEFI secure boot variables for the first
boot, for example, by setting PKDefault, KEKDefault, dbDefault and
dbxDefault to the desired certificates.

Tested, and the get subcommand returns the same data that the set
command added. However, EDK2's variable driver (from approximately
edk2-stable202505) asserts that the variable store isn't the expected
size, and UEFITool can't decode it correctly. This is also the case for
other types supported before this patch, suggesting that the bug is in
general variable-handling code in this utility. Will be debugged and
addressed in a follow-up.

Change-Id: If36394bb56388a35882702c93e26e63124fe0a63
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88377
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 18:14:08 +00:00
Benjamin Doron
b49f567e45 util/smmstoretool: Ensure that the FVB header isn't too large
If the header size is equal to fv.length, then `fv_parse()` will go
out-of-bounds when obtaining the variable store data, and obviously,
there is no data if the header takes up all available space.

Change-Id: I0ac46e098a14b51f936cb99f5e6bf83411570bc5
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88452
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-07-17 18:14:01 +00:00
Benjamin Doron
a6fbaa47ea util/smmstoretool: Clarify the auth_vars field
We want to distinguish between a variable store that's marked as capable
of storing authenticated variables (basically, checking their signatures
and promising that there's no TOCTOU possible), and a variable with the
authentication-checking enabled.

Change-Id: Ibf6ffbe279961ff54b0988d98a912a8421598e3b
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88423
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-17 18:13:56 +00:00
Patrick Rudolph
3698517d82 mb/amd: Use mec152x tool
Instead of providing an EC_SIG binary blob, generate it at build time
using the mec152x tool. Allows to move the EC_BODY in the fmap without
the need to generate a new EC_SIG.

TEST=Booted on amd/birman_plus without EC_SIG blob.
Change-Id: I2d7a791820d905b088194b290853509f10689fc6
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87429
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 18:13:33 +00:00
Patrick Rudolph
5a0953614b util/amdtools: Add ec_usb_pd_fw
ec_usb_pd_fw is a board specific utility to generate pointers to
firmware images found in the SPI flash. On some AMD boards the
x86 SPI flash is shared with the EC. The EC can also update the
USB Power Delivery controllers firmware, but it needs to know where
to load the firmware from. It uses pointers stored in the first
128 bytes of the x86 SPI flash.

Add a small utility to generate pointers to the USB PD firmware,
located somewhere in the ROM identified by the FMAP region.

There can be up to 12 USB PD firmwares, depending on the used
vendor or model.

Change-Id: I98717e849592f83eb7bacbfed33a8d4b811a5e18
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87430
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 18:13:16 +00:00
Patrick Rudolph
e63620012c util: Add Microchip EC FW tool
The Microchip EC can share the SPI flash with the x86 host. Since
it boots first and does power sequencing, there's no problem with
concurrent access happening. Due to various vendor specific flash
layouts used on x86, the EC needs a pointer to it's own firmware.

The pointer resides at flash offset 0 and is read by MEC152x and
MEC1701 and MEC172x ECs, probably others as well.

The introduced tool generates the EC FW PTR at flash offset 0.

Allows to get rid of hand-crafted binary files (EC_SIG) being used
on AMD mainboards that hardcode the offset and must manually being
checked if those match the FMAP.

When there'll be additional firmware regions added it becomes
unconvienient to maintain those by hand.

Usage output:

Usage: ./util/mec152x/mec152xtool <rom-file> <command>
        -h|--help
        -f|--fmap_region_name

Command:
 GEN_ECFW_PTR - Writes the ECFW PTR

Based on https://chromium.googlesource.com/chromiumos/platform/ec/+/08f5a1e6fc2c9467230444ac9b582dcf4d9f0068/chip/mchp/util/pack_ec_mec172x.py

Change-Id: I3b74c9f65643ad4437de29d4aed307b1a2b33286
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87428
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-17 18:13:10 +00:00
Sean Rhodes
0b5ce9d9f0 soc/intel/apollolake: Add support for IFWI Measured Boot
Add Measured Boot that is specific to Apollolake, and is used
for measuring the IBBL, IBB and TXE. The IBB is measured only if it
exists, and only after it has been loaded into the CSE.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I61ce4a34875d6d3357d4088167cdd887bafdff23
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65272
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-07-17 17:44:57 +00:00
Sean Rhodes
289cff3423 soc/intel/apollolake: Load the IBB into CAR
Copy the IBB into CAR via the CSEs RBP to ensure it has not been
modified.

Test on the StarLite Mk III and Mk IV:
Without VBOOT:
    [DEBUG]  CSE: IBB Verification Result: PASS
    [DEBUG]  CSE: IBB Verification Done  : YES
    [DEBUG]  CSE: IBB Size               : 88

With VBOOT:
    [DEBUG]  CSE: IBB Verification Result: PASS
    [DEBUG]  CSE: IBB Verification Done  : YES
    [DEBUG]  CSE: IBB Size               : 102

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I0d4e26834cef4c876e37e414b424a031c11111ff
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65577
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 17:44:48 +00:00
Sean Rhodes
2408695dd3 soc/intel/apollolake: Add a loader for the IBB
Add a loader that will load the IBB into the CSE via the Ring Protocol
Buffer.

All registers were taken from Intel document number #336561.

Change-Id: Ia41e3909f8099d2ea864166e9ea03e10e40a1b68
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65270
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 17:44:41 +00:00
Sean Rhodes
61b66e9a81 soc/intel/apollolake: Add function to clear MCA in Bank 4
Change-Id: Ic3b88e336a1cb3be5a9281ce266c7d9fb2465799
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65576
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 17:44:27 +00:00
Sean Rhodes
138402e7ff soc/intel/apollolake: Create IBB, IBBL and OBB
coreboot's method of creating IFWI is to modify an existing IFWI
images by deleting the IBB, replacing the IBBL with the bootblock
and everything else is put in the OBB.

This poses a problem when using Intel's FIT or technologies such
as Boot Guard. The main problem is that the IBB is never verified by
the CSE or copied from SRAM to CAR, so the CSE cannot complete BUP
and stays in recovery mode. The vast majority of the stages in
Apollolake's Secure Boot flow is not met using this method (Intel
document number 597827 summarizes these steps).

This patch series is based on the principles of a patch from Brenton
Dong (CB:17064) creates an IBBL, IBB and OBB binaries with the
correct functions to complete the Secure Boot flow. This is to copy
the IBB from SRAM using the CSE's Ring Buffer Protocol.

These binaries can then be used by FIT or coreboot's existing
method of hacking IFWI together (IFWI_STITCH) via IFWITOOL. If it is
the latter and Boot Guard is enabled, the hashes for IFWI and "ibb+obb"
must be recreated.

Whilst this option doesn't form a complete image, the components it
builds will work as Intel intended them to once stitched correctly into
an IFWI image.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I0deebf04f22f3017ee0c13bf1ca7f6dcc0d458b5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65680
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-17 17:44:11 +00:00
Jamie Ryu
61b4e1983c mb/google/fatcat: Update PCH reset power cycle duration to 1 second
This updates FSP UPDs for PCH PM SLP minimum assertion width and reset
power cycle duration to reduce the delays during a global reset and S5
suspend and resume flow.

Reference:
 Panther Lake External Design Specification (EDS) Volume 2 (#813032)

BUG=None
TEST=Build a fatcat coreboot and issue a global reset to check the reset
delay is reduced to 1 second. Issue a lid close to suspend to S5 and
wake up by lid open to check the delay is reduced to 1 second.

Change-Id: If94917879125b1a523de131936047b497cce8ba7
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88444
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-17 17:43:14 +00:00
Jamie Ryu
e9af95d5ab soc/intel/pantherlake: Configure FSP UPDs for minimum assertion widths
This configures FSP UPDs for PCH PM minimum assertion widths and
reset power cycle duration per mainboard variants configuration.
This also checks the reset power cycle duration is not be smaller
than SLP_S3, SLP_S4 and SLP_A Minimum Assertion Width.

 PchPmSlpS3MinAssert: SLP_S3 Minimum Assertion Width Policy
 PchPmSlpS4MinAssert: SLP_S4 Minimum Assertion Width Policy
 PchPmSlpSusMinAssert: SLP_SUS Minimum Assertion Width Policy
 PchPmSlpAMinAssert: SLP_A Minimum Assertion Width Policy
 PchPmPwrCycDur: PCH PM Reset Power Cycle Duration
  The Reset Power Cycle Duration starts at 20ms and increases by 20ms
  for each step, beginning from 0x0 to 0xFF. Each subsequent increment
  corresponds to an additional 20 milliseconds in duration.

Reference:
 Panther Lake External Design Specification (EDS) Volume 2 (#813032)

BUG=None
TEST=Build a fatcat coreboot and boot to OS without an issue.

Change-Id: I7234c7539c1e7eb5e2b8c04ccff6c62c853d6807
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88443
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-17 17:43:09 +00:00
Victor Shih
79bd154b49 drivers/genesyslogic/gl9763e: Mask replay timer timeout of AER
Due to a flaw in the hardware design, the GL9763e replay timer
frequently times out when ASPM is enabled. As a result, the warning
messages will often appear in the system log when the system accesses
the GL9763e PCI config. Therefore, the replay timer timeout must be
masked.

BUG=b:428025481

Sample output on screen:
PCIe Bus Error: severity=Corrected, type=Data Link Layer
device [17a0:e763] error status/mask=00001000/00002000
 [12] Timeout

Change-Id: I6f921f40f169d7811b7bd51145023b549e8aee1c
Signed-off-by: Victor Shih <victorshihgli@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88291
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 17:42:41 +00:00
Gavin Liu
a775bfc2b2 soc/mediatek/mt8189: Specify MTKLIB_PATH for building BL31
Add BL31 static library path to BL31 build argument.

BUG=b:379008996
BRANCH=none
TEST=build passed

Signed-off-by: Gavin Liu <gavin.liu@mediatek.corp-partner.google.com>
Change-Id: I718be15e1a9b6942558ce929baedec18bdcd3309
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88448
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-07-17 13:36:17 +00:00
kai-chun.huang
e583b2ffb7 soc/meidatek/mt8196: Extract common thermal code for reuse
To promote code reuse and maintainability, move partial thermal driver
to common.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Kai-chun Huang <kai-chun.huang@mediatek.corp-partner.google.com>
Change-Id: I6a52d1cb02d04308f1e833df0f318f93a8231fe1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88440
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 13:35:08 +00:00
Nicholas Chin
f62734976c mb/dell: Convert E6400 into a variant
In preparation for adding additional GM45/ICH9 based Dell Latitude
laptops, rework the E6400 port to use a variant scheme so that code can
be shared.

Change-Id: I8094fce56eaaadb20aef173644cd3b2c0b008e95
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84565
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-17 13:15:10 +00:00
Jamie Ryu
8d60bf9975 mb/google/fatcat: select MIPI pre-prod if PTL pre-prod SoC is set
This adds changes to conditionally enable the config
`DRIVERS_INTEL_MIPI_SUPPORTS_PRE_PRODUCTION_SOC` when
`SOC_INTEL_PANTHERLAKE_PRE_PRODUCTION_SILICON` is enabled.
This ensures that MIPI firmware and drivers are compatible with
Panther Lake pre-production silicon.

BUG=b:424355826
TEST=Ensures `DRIVERS_INTEL_MIPI_SUPPORTS_PRE_PRODUCTION_SOC` is
enabled for google/fatcat4es and all variants with ES silicon.

Change-Id: I9687618cfceac32425fa19b4f1f30040b88a2d15
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88220
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-17 13:14:58 +00:00
Jamie Ryu
2f978ecab3 mb/google/fatcat: Choose platforms with pre-prod Panther Lake SoC
This updates the Kconfig for Google Fatcat mainboards to include
`SOC_INTEL_PANTHERLAKE_PRE_PRODUCTION_SILICON` option to ensure
compatibility with Panther Lake pre-production silicon. This selection
aligns these boards with the necessary pre-production silicon settings

BUG=b:424355826
TEST=Ensure mainboards like fatcat4es and fatcatnuvo4es have
`SOC_INTEL_PANTHERLAKE_PRE_PRODUCTION_SILICON` config enabled.

Change-Id: Icde96976e0e3ccfc543bc948d2923e0f84e7da68
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88219
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-17 13:14:52 +00:00
irving-ch-lin
eb1483ba17 soc/mediatek/mt8189: Increase SCP clock frequency from 26MHz to 416MHz
Increase the default SCP clock from 26MHz (value 0) to 416MHz (value 4).
With this change, decoder performance improves from 4K@39FPS to 4K@87FPS
during testing.

BUG=b:413506208
BRANCH=none
TEST=tast run root@${dut_ip_addr} video.Seek.stress_h264

Signed-off-by: Irving-CH.lin <irving-ch.lin@mediatek.corp-partner.google.com>
Change-Id: I30b3162b50c44ed23acc9e77eb5528b59e6ff569
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88445
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-17 13:14:24 +00:00
Martin Roth
9c5557f982 util/abuild: Add --sequential-boards option
By default, when building all boards, we use a single thread for each
board and build a number of boards in parallel. The --sequential-boards
flag will change that to use all specified cores to build each board
in sequence.

This can give better performance in some cases where multiple builds
are conflicting for a given resource.

Change-Id: I35ae7a5df5de48b8ce3373b6659be0df5104ed39
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88239
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-16 21:49:43 +00:00
Benjamin Doron
9e5234feee payloads/external/edk2: Drop our toolchain override
It's no longer maintained here other than to address specific issues,
and it prevents us from benefiting from upstream changes. Already,
switching to the GCC toolchain saves 5-10 KiB.

Use the GCC toolchain over the backwards-compatible GCC5 one, since the
latter is being deprecated, and the former landed a few years ago,
in edk2-stable202305.

Change-Id: I47e47592ea29f5a09790b284378f28385faf29f9
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88429
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-16 18:03:03 +00:00
Benjamin Doron
8d9e18a122 payloads/edk2: Indicate whether edk2-platforms is available
This allows EDK2 build files to decide whether these modules should be
built.

Change-Id: I12dc346d17ab0f963dedd5560b66b96210a4ec48
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88428
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-07-16 18:02:58 +00:00
Bob Moragues
626fd50a94 mb/google/fatcat/var/kinmen: Enable ISH
BUG=b:415605634
TEST=test build
BRANCH=none

Change-Id: I6110b2f2b0af20740f4ada61bbc1691a8bcc8bc9
Signed-off-by: Bob Moragues <moragues@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88371
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Yuval Peress <peress@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-16 18:01:27 +00:00
LiLiang Chen
e7cefe4f41 soc/mediatek/mt8196: Move srclken_rc related code to common
To promote code reuse and maintainability, move srclken_rc related code
to common folder.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: LiLiang Chen <liliang.chen@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ic8401f910bf37c3f413147e293d1d9274c62d8ee
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88378
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-16 06:58:23 +00:00
Jamie Ryu
e9731f8925 soc/intel/pantherlake: Add configs for pre-production silicon
This patch introduces a new configuration option
`SOC_INTEL_PANTHERLAKE_PRE_PRODUCTION_SILICON` that allows users to
specify if their mainboard is using Panther Lake pre-production silicon
aka Engineering Silicon (ES) with pre-production signed ME Firmwares.
The default value is set to 'n', ensuring it is disabled unless
explicitly chosen.

BUG=b:424355826
TEST=No change in the functionality, just added new configs.

Change-Id: I8ad83b07f057a227b62e33b6c6c0f46c3952be6b
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88218
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-16 02:14:25 +00:00
erin liang
8687b3d108 mb/google/trulo/var/pujjolo: Add ISH firmware config
Due to Pujjoquince does not have ISH, thus define bit 29 in
firmware_config to indicate ISH presence per platform.

BUG=b:417599885
BRANCH=none
TEST= Use the command ls /dev/cros_ and no cros_ish option
will appear

Change-Id: I286300eadf7991d3a30936f5904ff3eef4480039
Signed-off-by: erin liang <erin.liang@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88364
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-15 21:01:27 +00:00
Hualin Wei
722c9314c7 mb/google/dedede/var/awasuki: Add 2 HYNIX modules to RAM id table
Add HYNIX H54G46CYRBX267 as id 0, and add HYNIX H54G56CYRBX247
as id 1, resulting in the list below:

DRAM Part Name                 ID to assign
K4U6E3S4AB-MGCL                0 (0000)
K4UBE3D4AB-MGCL                1 (0001)
MT53E1G32D2NP-046 WT:B         1 (0001)
NT6AP512T32BL-J1               2 (0010)
NT6AP1024F32BL-J1              3 (0011)
CXDB4CBAM-ML-A                 2 (0010)
H54G56CYRBX247                 1 (0001)
H54G46CYRBX267                 0 (0000)

BUG=430792154
TEST=Use part_id_gen to generate related settings

Change-Id: I6ea840862b4b7b728a351425da9fc4052c201e3c
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88419
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-15 21:01:06 +00:00
Matt DeVillier
6082bd7711 ec/lenovo/h8: Rework invalid temperature reporting
As far back as the x201, Lenovo's EC ACPI has treated 128 as an invalid
value, and returned a corrected value when it is reported/read from EC
RAM. Drop the ME workaround, which most H8-equipped boards select, in
favor of Lenovo's logic, since both accomplish the same result.

Change-Id: Icdc91e439ec30c8263de5810a13e75f7595472a5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88416
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-15 17:32:25 +00:00
Matt DeVillier
621b1061d0 ec/lenovo/h8: Add Kconfig to select use of Thermal Zone 1
Looking at the ACPI dumps of many older Thinkpads, most do not have a
second thermal zone (zone 1), they only use zone 0. This doesn't seem
to be a problem for most boards in the tree currently, but newer boards
(such as the T480) are reporting critical temperature errors on zone 1,
due to differences in the EC RAM layout (ie, TMP1 is not valid).

To mitigate this issue with the T480 (and likely other newer boards),
only include the ACPI code for thermal zone 1 for boards which need it.
Explicitly select it for those boards based on ACPI dump analysis and
model similarity.

Change-Id: Ic022f2e14b2cae74656c0ac85ba8410d50cdc9de
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88415
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-07-15 17:31:46 +00:00
Matt DeVillier
bc116b8797 ec/lenovo/h8: Replace chip regs for BT/WWAN detect with Kconfig options
Using Kconfig options instead of chip registers allows for newer boards
which do not implement BT/WWAN detection to not compile in the GPIO-
related parts, which are only valid for older (pre-FSP) platforms.

Change-Id: Ibfe738adfc75abfaf078c6b7ff5472a1424909f5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88414
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-15 17:31:15 +00:00
Matt DeVillier
d9169ef617 ec/lenovo/pmh7: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

TEST=build/boot lenovo/t480 w/edk2 payload

Change-Id: I8f5c335a8b9d1697b77b3c3542bd96f98583dbf6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88394
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-07-15 17:30:53 +00:00
Matt DeVillier
45d9973a6d ec/lenovo/h8: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

TEST=build/boot lenovo/t480 w/edk2 payload

Change-Id: I198f569e69abd42071df4d5354cd2bb258749257
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88393
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-15 17:30:37 +00:00
Tony Huang
ce5a1e8a51 mb/google/brox: Create caboc variant
Create the caboc variant of the brox reference board by copying
the template files to a new directory named for the variant.

BUG=b:420796212
TEST=util/abuild/abuild -p none -t google/brox -x -a
make sure the build includes GOOGLE_CABOC.

Change-Id: I424933574873defe5289fbe7309270583cb8a49e
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88379
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-15 17:30:18 +00:00
Jeremy Compostella
d745d38393 soc/intel/cmn/block/fast_spi: Add DMA support
This commit introduces Direct Memory Access (DMA) support for the Intel
Fast SPI block, enhancing data transfer capabilities from SPI flash
memory. The primary motivation for this addition is to improve
performance in multitasking environments by offloading read operations
to DMA, thus freeing up CPU resources for other tasks. The traditional
memory-mapped SPI flash read operations can be CPU-intensive and slow in
scenarios where large data volumes are transferred.

This feature is gated by a FAST_SPI_DMA configuration option. The DMA
operations are integrated with existing SPI flash read functionalities,
ensuring fallback to memory-mapped operations if DMA is unsupported or
fails. The DMA code implementation uses mutex-based synchronization to
ensure thread-safe DMA transactions.

The boot_device_ro() function has been modified to check for DMA support
and installs custom DMA operations when available.

We conducted measurements on a 200 KB data transfer and noticed a 1.8%
improvement with DMA compared to memcpy on memory-mapped SPINOR, with
DMA taking 10.8 ms and memcpy taking 11 ms.

Change-Id: I4b4ca9ff08e436ca627afa6b0d9bb00f3c450a5e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88277
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-15 16:14:59 +00:00
Sasirekaa Madhesu
8e666c367d soc/qualcomm/x1p42100: Update boot critical firmware memory layout
This patch updates the memory layout for AP Firmware boot on the
Qualcomm x1p42100 SoC. This update is crucial to ensure that all
processors and co-processors can successfully load their
respective blobs during the process of booting to the OS.

TEST=Successfully booted google/blueu.

Change-Id: Ibce385e9d201f0a3c5daf19e8dfe235fa9f695af
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88420
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-15 07:31:39 +00:00
Nir Lichtman
e35c784847 Doc/gfx/libgfxinit.md: Fix file names in source code references
The files were renamed in commit 7458629de3 (drivers/intel/gma: Move gfxinit into sub package).

Change-Id: I41de759809122cdef8d4449fb6f564bbcd48bf9e
Signed-off-by: Nir Lichtman <nir@lichtman.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88392
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-07-14 14:38:41 +00:00
Elyes Haouas
0e682859e7 payloads/external/U-Boot: Upgrade from 2024.07 to v2025.07
Change-Id: Id31a726e475ea1d1dd1b8c08a150849d1045e95e
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85804
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-07-14 08:14:18 +00:00
Jeremy Compostella
8b52167a9f arch/x86: Add support for cooperative multitasking on x86_64
This commit extends the cooperative multitasking functionality to
support the x86_64 architecture. Previously, cooperative multitasking
was only available for x86_32, as indicated by the error directive in
thread.c.

A new thread_switch_64.S file has been added to implement 64-bit
register handling for thread switching, and thread_switch.S has been
renamed to thread_switch_32.S accordingly.

Change-Id: I14ed625160a62e42d800757d30397c6c85f943b4
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88216
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-13 18:55:39 +00:00
Martin Roth
569b7a8861 Docs/releases: Finalize 25.06 release notes
This change incorporates the final statistics for the 26.06 release and
changes it from upcoming to the final version of the notes.
- Add a section for Project Updates
- Update the introduction, removing the comment about GCC 15, which was
a bit confusing. We can now build the toolchain with GCC 15, but it is
not yet part of the toolchain.

Change-Id: I27defefacdf8b3a826c801da051e3218394f81e2
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88312
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-12 01:22:27 +00:00
Luca Lai
5db8bf0cfa mb/trulo/var/pujjolo: Enable USB3 WWAN device
Enable USB3 WWAN since the issue is fixed with the latest schematics.

Schematic version: 500E_S3A0_TWL_MB_FVT_20250527

BUG=b:424945817
BRANCH=none
TEST=Remove Verify USB3 WWAN with the latest schematics.check the WWAN USB3 interface is now working properly..

Change-Id: I30eb74a8456bc63c964269822e0b10135d24aa1f
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>

Schematic version: 500E_S3A0_TWL_MB_FVT_20250527

BUG=b:424945817
BRANCH=none
TEST=Verify USB3 WWAN with the latest schematics.

Change-Id: I30eb74a8456bc63c964269822e0b10135d24aa1f
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88340
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-11 16:15:45 +00:00
Luca Lai
e013c9586c mb/trulo/var/pujjolo: Modify mipi camera parameters
Because of intel suggestion, the change will fix the sensor driver
could be "probe fail" issue. So update mipi camera parameters' value.

Change:
1. CSI Camera lanes from 2 to 4.
2. Value of index 0 of frequency link array from 720000000 to 360000000
3. Value of index 1 of frequency link array from 360000000 to 180000000

BUG=b:395763555
BRANCH=none
TEST=Build and boot to OS and check mipi camera function.

Change-Id: Ieea6d99182df9c5aa9ca7a7f72f031921c24199e
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88288
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-07-11 16:15:20 +00:00
erin liang
7b8520ab69 mb/trulo/var/pujjolo: Update fingerprint enable pin status
Update fingerprint enable pin status to keep the module disabled
and in reset in firmware. This allows the module to be enabled
and released from reset during kernel boot via ACPI.

BUG=b:411558536
BRANCH=none
TEST= Boot to OS and into VT2, use ectool --name=cros_fp version
will return fingerprint version information and check the
functionality works.

Change-Id: I98707e0e6ba550f6b7d75a84e72843c3873fa56c
Signed-off-by: erin liang <erin.liang@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88287
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-07-11 16:15:08 +00:00
David Wu
f74027d5ae mb/google/nissa/var/craask: Add elan touchscreen support
This change adds the necessary configuration for the elan
touchscreen (ELAN9004) device, connected to I2C bus 16.

It includes settings for:
* HID descriptor
* Device description
* IRQ configuration
* Detection
* Reset, stop and enable GPIOs with their respective delays
* Power resource handling
* HID descriptor register offset

BUG=b:430467732
TEST=emerge-nissa coreboot and elan touchscreen can work well.

Change-Id: I08a32eae272d5ef93f1c89bcb96b9ba50c037624
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88370
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-07-11 16:14:58 +00:00
Walter Sonius
396a883a0c mb/hp/snb_ivb_desktops: Include PS/2 controller ASL code for MS Windows
The PS/2 Keyboard and Mouse won't work in Microsoft Windows 10 or 11 on
these tested HP variants:
 - compaq_pro_6300
 - compaq_8200_elite_sff
 - compaq_8300_elite_sff

Unless the following line to acpi/superio.asl was added:
#include <drivers/pc80/pc/ps2_controller.asl>

Without this patch PS/2 ports only work in EDK2, SeaBIOS, GRUB 2 and
Linux.

Dmesg output for comparison without and with patch (trimmed):
[    0.232601] pnp: PnP ACPI: found 16 devices
...
[    0.231146] pnp: PnP ACPI: found 18 devices
...

TEST=Boot Windows 10 / 11 verify that PS/2 Keyboard & Mouse works!

Although only 3 models were tested and this common option affects all
snb_ivb_desktops variants I'm pretty confident it will work on all the
others since it also works on boards from other Manufacturers from Dell
and GIGABYTE even single port with splitter cable.

Change-Id: I21c10cc24c25887ab822a5889de5eec3b3537ac9
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88322
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-07-11 16:14:50 +00:00
Ivy Jian
18c067d392 mb/google/fatcat/var/kinmen: Add Synaptics touchpad
Add support for Synaptics HID-over-I2C touchpad
(addr and offset per spec: Product Spec_03510_Rev1.pdf)

BUG=None
TEST=1. emerge-fatcat coreboot
     2. check touchpad function is working properly.

Change-Id: Ib4e96e9b7df7d9adba2534b12eaf5d6cb7bb4317
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88349
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-11 03:31:32 +00:00
Vince Liu
2f5b384ba5 soc/mediatek/mt8189: Enable EARLY_MMU_INIT to improve boot time
The boot time is improved by 50ms in bootblock.

BUG=b:379008996
BRANCH=none
TEST=check the boot time by `cbmem`.
(previous)
11:start of bootblock                                247,551 (60)
12:end of bootblock                                  312,495 (64,944)

(now)
11:start of bootblock                                255,424 (60)
12:end of bootblock                                  270,911 (15,487)

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I0c3a5cff7eecb67e34d8ff1d3084f6a34d9cdbe0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88368
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-07-10 19:52:10 +00:00
Walter Sonius
d5bce8c420 mb/hp: Add HP 260 G1 DM Business PC (Haswell)
This HP desktop comes in 4 different CPU variants. This port was made
using the Pentium 3558U @ 1.70GHz variant with 2*4GB DDR3L SODIMM RAM
modules with a single SATA adapter cable. Other variants may come with
an M2.SSD slot which may need other devicetree.cb PCIe / SATA edits!

Model: HP 260 G1 DM Business PC
Regulatory Model: TPC-1011-DM
Product No.: N9F00EA#ABH, 260G1eD/G3558U/500h/4X/50f NL
Mainboard: E131920, 791401-002

Pure autoport (initial commit) doesn't boot, further patches bring up
general Haswell fixes, vendor/product naming corrected, RAM SPD MAP
slot detection, (m)PCIe fixes enabling onboard LAN and mini PCIe slot
and some NPCD379 code from other HP desktops make most superio related
functions work for this PC.

Flash instructions:
After setting the FDO jumper on the motherboard the whole ROM can be
dumped, however writing is locked for some part of the BIOS region.
An external flasher ch341a_spi (3.3v mod) was used with a SOIC 8 pomona
probe to flash the MX25L6406E in situ without any issues. Only the
power of the USB programmer was used, and the board's main PSU was
disconnected during flash!

Tested:
 - coreboot 25.06-77-g812d0e2f626d as base
 - EDK2 (MrChromebox/2502)
 - SeaBIOS 1.16.3
 - SystemAgent mrc.bin (haswell/peppy)
 - libgfxinit textmode (SeaBIOS) / framebuffer (EDK2)
 - DP / DP++ (HDMI) & VGA all available during POST, BOOT and OS
 - Pentium 3558U
 - RAM single 4GB and dual slot 8GB total with 1.35V DDR3L SODIMMS
	4GB DDR3-1600 - SK Hynix HMT451S6BFR8A-PB (2016-W01)
	    HMT451S6BFR8A-PB NO AA 1601
	    1Rx8 PC3L-12800S-11-13-B4
	4GB DDR3 1600 - Kingston 9905469-143.A00LF (2016-W05)
	    KTH-X3CL/4G
	    1.35V
	    BPMK0831621
	    9905469-143.A00LF
	    0000007258426-PW005291
 - Fedora MATE 42 (Kernel 6.14)
 - KDE NEON 6.4 (Kernel 6.11)
 - Audio Outputs HDMI, Headphone, Lineout & Speaker (left&right chan.)
 - USB2/3 all ports
 - Realtek onboard Gb LAN
 - miniPCIe slot + its embedded USB (Intel Wireless AC3160HMW+BT)
 - SATA port using the original flatcable adapter
 - PowerButton (Poweron/Poweroff/Wake)
 - LEDs HDD & POWER (both off during suspend)
 - Shutdown/Reboot/Suspend
 - Strip down the Intel ME/TXE firmware (make menuconfig)
 - Disabling ME HECI (manually disable in devicetree.cb)
 - flashrom -p internal -c "MX25L6406E/MX25L6408E" (read & write)

Not tested:
 - Broadwell mrc.bin
 - Front Microphone Port
 - USBDEBUG
 - VBIOS

Not working:
 - FAN control its either full OFF or full ON see instruction!
 - Wake on LAN
 - Ethernet is detected as PCIe slot connected instead of onboard
 - Disable Intel ME PCI interface (make menuconfig)
 - Windows 10/11 USB detection/hotplug issues (all USB ports)
 - Haswell NRI (posts & boots but will shutdown in less than a minute)

FAN instructions:
If the superio HWM (devicetree.cb node pnp 2e.8) is set to on, the FAN
will turn OFF during post and stays OFF. If the superio HWM pnp 2e.8 is
set to off the FAN will stay ON and will rampup after post in roughly a
minute to its maximum RPM and will stay that way (current default)!

The data.vbt blob was extracted using debugfs from the OEM firmware
v2.19 which enables all video outputs Displayport / DP++ (HDMI) and VGA.

Theoretically like the "compaq_8200_elite_sff" it should be possible
to flash internally using a 2 step flash procedure using a minimized ME
a small SeaBIOS based coreboot and a temporary flash layout inside the
writeable BIOS region.

Change-Id: Ifedd9f700e5f3875d3577fa56225d9d49d622b47
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88326
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-10 16:47:34 +00:00
P, Usha
48c6f66fa4 mb/google/ocelot: Update TPM_TIS_ACPI_INTERRUPT value in Kconfig
Update TPM related default value for TPM_TIS_ACPI_INTERRUPT based on
schematic_1433518 after mapping GPP_B to GPE0_DW1.

BUG=b:394208231, b:430001789
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I890c6779a24eaa7804594003466e8660af4becc2
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88358
Reviewed-by: Krishna P Bhat D <krishna.p.bhat.d@intel.com>
Reviewed-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-07-10 16:34:12 +00:00
P, Usha
0660fe50de mb/google/ocelot: Update GPE configuration
This patch updates the GPE configuration for Ocelot in baseboard
devicetree based on schematic_1433518.

BUG=b:394208231, b:430001789
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I60bcf586ab8653732925bfd9393baef226519c3a
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88106
Reviewed-by: Krishna P Bhat D <krishna.p.bhat.d@intel.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-10 16:33:56 +00:00
Ivy Jian
5b3063802e mb/google/fatcat/var/kinmen: Fix touchscreen IRQ setting
Previously, the touchscreen IRQ pin was not correctly configured to
GPP_F18_IRQ, which caused an unexpected interrupt storm and led to
the touchscreen becoming unresponsive. This change sets it to the
correct configuration. (schematics version 20250611_v31)

BUG=b:430200649
TEST= Ensure the touchscreen is working properly.
Ensure the interrupt count increases only when the screen is touched
via 'cat /proc/interrupts | grep ELAN'

Change-Id: I20cc9632df76acdfafd2968ece0dde8ee95cc791
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88360
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-10 14:06:46 +00:00
Baozhen Yang
6c4e502fdd mb/google/nissa/var/pujjocento: Reduce PL4 to 38W with no battery
When battery is not present, reduce power limits to below 45W,avoid
inability to enter the system.

To avoid poor efficiency of the adapter, leave a margin and set the
powerlimit to 38W.

This will check the current battery status and configure cpu power
limits using current PD power value.

BUG=b:418695656
BRANCH=None
TEST=
1、built (emerge-nissa coreboot chromeos-bootimage) and push ap firmware
   to dut.
2、Connect 15W machine without battery to 45W adapter and check if it
   starts up properly.
3、Use ec command “cbmem -c | grep PL“ to check if the PL4 value is 38
   watts.
   Log result:[INFO] CPU PL4 = 38 Watts

Change-Id: Iadd43c75ea9235b7ba0e3b97ef460280c13ef1e3
Signed-off-by: Baozhen Yang <yangbaozhen5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88210
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-10 14:06:32 +00:00
Luca Lai
6e92554ab6 mb/trulo/var/pujjolo: Modify FW_CONFIG for mipi camera
Because of internal misunderstanding, modify mipi camera FW_CONFIG

Schematic version: 500E_S3A0_TWL_MB_FVT_20250527

BUG=b:395763555
BRANCH=none
TEST=Boot to OS and verify the mipi camera device are set based on
     fw_config.

Change-Id: Id2d62d14bdfd6ad925c5a0c1a9799350a93e57e2
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88352
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-10 14:06:24 +00:00
Ben Kao
4f5f75da34 mb/trulo/var/pujjolo: Correct USB3 Type-A OC pins
Align USB3 Type-A and the related GPIO settings with Pujjolo schematic
(Pujjolo_Pujjoquince_MB_EVT_20250523.pdf).

BUG=b:427962702
TEST= Connect USB 3.0 devices to the Type-A interface and use "lsusb -t"
 command to verify the connection

Change-Id: I559dc8105258b91ca89b2f10644e4f95d6a4a085
Signed-off-by: Ben Kao <ben.kao@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88290
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-10 14:06:17 +00:00
Subrata Banik
a1dfd39e04 mb/google/fatcat/var/kinmen: Add AUDIO_UNKNOWN and probe for ALC721
This commit enhances the Kinmen variant of the Fatcat mainboard by
introducing an `fw_config` field for AUDIO. This field includes an
`AUDIO_UNKNOWN` option, providing a clear state when no specific audio
configuration is selected or known.

Furthermore, a probe statement for `AUDIO_ALC721_SNDW` has been added
to the `hda` device. This ensures that the system can correctly identify
and initialize the Realtek ALC721 audio codec when present.

These changes improve the flexibility and accuracy of audio
configuration and detection for the Kinmen board.

BUG=b:430205874
TEST=Able to boot google/kinmen to UI without valid Audio configuration.

Change-Id: I86634a4a49c4006584fc808719b2891186953a51
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88367
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-10 02:23:43 +00:00
Subrata Banik
306544b427 mb/google/fatcat/var/francka: Add AUDIO_UNKNOWN and audio probes
This commit introduces an `AUDIO_UNKNOWN` option to the `fw_config` for
the Francka variant of the Fatcat mainboard. This allows for a default
or fallback state when a specific audio configuration isn't known or
desired.

Additionally, this change introduces audio probe statements that allow
the system to boot successfully even if `FW_CONFIG` is set to
`AUDIO_UNKNOWN`, effectively disabling the audio controller in such
cases.

This prevents boot failures when an unsupported or unknown audio codec
is selected, improving system robustness.

BUG=b:430205874
TEST=Able to boot google/francka to UI without valid Audio
configuration.

Change-Id: I34f7fe5f0509cbddfd3648afb087786373fcf8df
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88366
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-07-10 02:23:38 +00:00
Subrata Banik
edf47d44cd mb/google/fatcat/var/fatcat: Disable Audio for invalid Audio FW_CONFIG
This commit modifies the Fatcat mainboard configuration to ensure the
Audio controller is only enabled when a valid `FW_CONFIG` is selected.

This change introduces audio probe statements that allow the
system to boot successfully even if `FW_CONFIG` is set to
`AUDIO_UNKNOWN`, effectively disabling the audio controller in such
cases.

This prevents boot failures when an unsupported or unknown audio codec
is selected, improving system robustness.

BUG=b:430205874
TEST=Able to boot google/fatcat to UI without valid Audio configuration.

Change-Id: I7d1fa07978725129c2651f258894f3590e0a69eb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88365
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-07-10 02:23:33 +00:00
Jeremy Compostella
454079c3bc lib/cbfs: Ensure cache buffer alignment in ramstage
The cache buffer is expected to be aligned to CONFIG_CBFS_CACHE_ALIGN by
the mem_pool_alloc function.

Change-Id: I153a4de5ae2b8549288946d0773009d586d5c65c
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88299
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 14:10:16 +00:00
Sowmya Aralguppe
0ef670a66a mb/google/ocelot/var/ocelot: Configure FPS related changes
This patch configures Interrupt, Enable and Reset pins for FPS.

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: Ida4fab8da007403898e6843d5161249a5093fd54
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88351
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 14:09:27 +00:00
Sowmya Aralguppe
6ab37f0e0e mb/google/ocelot/var/ocelot: Add FW_CONFIG for Finger Print
This patch adds FW_CONFIG probe for Finger Print(FP).

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: Ie817774d962898e2770206db52fc00ad241fb580
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88336
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 14:09:21 +00:00
Sowmya Aralguppe
3f61df24d5 mb/google/ocelot/var/ocelot: Add FW_CONFIG for Storage
Add FW_CONFIG probe based on Ocelot for Storage devices:
    1.SD
    2.UFS
    3.NVMe

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: I4aff3e3815d5fd09daa550d1a353bd828b7f382c
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88331
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 14:09:15 +00:00
Sowmya Aralguppe
bb95a26cda mb/google/ocelot/var/ocelot: Add FW_CONFIG for WiFi
This patch provides option to enable WiFi through
1) PCIe Interface - Enable PCIe and Disable CNVi
2) CNVi - Enable CNVi Module and Disable PCIe

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: I82360f87b3afc83b6494e59060d3213806aefc8a
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88330
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-09 14:09:07 +00:00
Sowmya Aralguppe
410b3c697f mb/google/ocelot/var/ocelot: Add FW_CONIG for ISH
This patch provides option to enable/disable ISH.Removed the
copies and redundant ISH pins from GPIO.c

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: I02bfa6b90b1c37a1d69d094804b4153e191a29af
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88329
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 14:09:02 +00:00
Kyle Lin
afaf4c3d7b mb/google/brya/variants/pujjolo: Update ISH GPIOs and add ISH firmware name
GPIO config for ISH:
 - GPP_B3 -> IMU_INT_L
 - GPP_B4 -> ACC_INT_L
 - GPP_B5 -> ISH_I2C0_SCL
 - GPP_B6 -> ISH_I2C0_SDA
 - GPP_D1 -> SEN_MODE2_EC_ISH_INT_ODL

ISH FW Name: pujjolo_ish.bin

TEST='ectool --name=cros_ish motionsense' command should print the
following messages:
Motion sensing active
Sensor 0: 420   704     8068
Sensor 1: 452   -16844  908
Sensor 2: 0     0       0

Change-Id: I6798c47c84d6948a861ac641d4e4b6830ba53b23
Signed-off-by: Kyle Lin <kylelinck@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87897
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 06:49:08 +00:00
Subrata Banik
f6de6f8933 mb/google/fatcat: Drop redundant SNDW GPIO mapping
This patch removes redundant SNDW GPIO mapping that was already present
in fw_config.c and applied as per FW_CONFIG.

BUG=b:427091370
TEST=Boot beep verification is possible using google/fatcat.

Change-Id: Ibeca991b9e855792df48073d2138b9c7ec130c41
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88350
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 06:37:34 +00:00
Yidi Lin
584fdd6572 soc/mediatek/mt8196: Remove redundant bootblock.c from Makefile.mk
Change-Id: I7974dbde907e1697073080c0260c5968c40d9ed2
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88359
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-09 04:55:47 +00:00
Sean Rhodes
24ea6937f2 soc/intel/apollolake: Add the Kconfig options for IFWI Boot Profile
The Boot Profile for use with the IFWI Boot Flow. The selected profile
should be equal to or higher than the one configured in IFWI.

No Profile
  Since its inception, coreboot has ignored the Boot Flow designed by
  Intel; this only uses an IBB and OBB. Neither are measured or verified
  and mapped without assistance.

Legacy
  Profile 0 is for platforms that do not wish to enable Boot Guard boot
  block verification or measurement enforcement.

Verified
  Profile 1 is strict Verification enforcement. It prevents unverified
  BIOS components from running.

Verified and Measured
  Boot Guard Profile 2 is strict Verification and Measurement
  enforcement; this prevents unverified BIOS components from running.
  Upon manufacturing completion, this value is burned into an FPF
  and is permanent. This setting is only configurable when OEM signing
  is enabled.

Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Change-Id: I83d2fd134e1a893766f625fe2e2ddd81d48f9f8a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66103
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:19:08 +00:00
Martin Roth
c68645cd88 util/supermicro: Fix mem leak in get_line_as_int error conditions
When parsing the string, if it doesn't end with 0 or \n, get_line_as_int
returns -1, but wasn't freeing the buffer. Also if we got an empty
string with just null termination, that byte would also cause a leak, so
move the second free() to the bottom. It's always fine to free a null
pointer if the allocation failed.

BUG=CID 1419489

Change-Id: Ibb3a7544ec8c46820b6e47b6fd4bbe5cabafe1a8
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88335
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:18:31 +00:00
Martin Roth
05396238da libpayload/drivers: Fix mem-leak in cbmem_console error condition
When returning from cbmem_console_snapshot() because of a corrupted
console structure, the memory that was just allocated was not being
freed as it "should be".

BUG=CID 1419477

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I85370fb49c9ef9a00cd2ea516fa80c9e152c9b48
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88334
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-07-08 16:18:25 +00:00
Martin Roth
1219981177 drivers/emu/qemu: Add a comment about fw_cfg assumptions
This documents that if the fw_cfg table was improperly configured by
QEMU, the fw_cfg_smbios_init() function would leak memory. We could
add a check to verify that this doesn't happen, but honestly that seems
like overkill. This just documents the issue in case this code is
copied for use elsewhere.

BUG=CIDs 1405799, 1405791, 1405792, 1405796, 1405797
Signed-off-by: Martin Roth <gaumless@gmail.com>

Change-Id: I4f253194dae52897633ab5d96bb8c2964b8365d0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88332
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-08 16:18:17 +00:00
Ivy Jian
d866e72b3a mb/google/fatcat/var/kinmen: Set CRFP to use GPIO for status
Set the CRFP device to use GPIO for the power status. This causes an
ACPI `_STA()` function to be generated that returns the power status of
the CRFP 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.

BUG=b:428793056
TEST=Boot the board and make sure the FPMCU was booted once
     (e.g. examine FPMCU console logs)
TEST=Dump SSDT on kinmen

    Scope (\_SB.PCI0.SPI0)
    {
        Device (CRFP)
        {
        ...
        ...
            PowerResource (PR00, 0x00, 0x0000)
            {
                Method (_STA, 0, Serialized)  // _STA: Status
                {
                    0x5D = \_SB.PCI0.GTXS /* External reference */
                    Local0
                    If (!Local0)
                    {
                        Return (Zero)
                    }

                    0x27 = \_SB.PCI0.GTXS /* External reference */
                    Local0
                    Local0 ^= One
                    If (Local0)
                    {
                        Return (Zero)
                    }

                    Return (One)
                }

                Method (_ON, 0, Serialized)  // _ON_: Power On
                {
                    Local0 = _STA ()
                    If ((Local0 == One))
                    {
                        Return (Zero)
                    }

                    \_SB.PCI0.CTXS (0x27)
                    \_SB.PCI0.STXS (0x5D)
                    Sleep (0x03)
                    \_SB.PCI0.STXS (0x27)
                }

                Method (_OFF, 0, Serialized)  // _OFF: Power Off
                {
                    \_SB.PCI0.CTXS (0x27)
                    \_SB.PCI0.CTXS (0x5D)
                }
            }
        }
    }

Change-Id: Ia3054c61dfab185d124b3aae8df9e80aa6afc71a
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88338
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:17:58 +00:00
Ivy Jian
4367daae20 drivers/spi: Add option to generate proper PowerResource _STA
The _STA method of drivers/spi PowerResource currently always
returns true. To allow generating _STA that returns the device's actual
power state, this CL adds a new boolean option `use_gpio_for_status` to
the `drivers_spi_acpi_config` struct, and propagates the value to
`acpi_power_res_params` to reuse the feature implemented for acpi/device
in [1].

[1] https://review.coreboot.org/c/coreboot/+/55027

BUG=b:428793056
TEST=Dump SSDT on kinmen with use_gpio_for_status=true

    Scope (\_SB.PCI0.SPI0)
    {
        Device (CRFP)
        {
        ...
        ...
            PowerResource (PR00, 0x00, 0x0000)
            {
                Method (_STA, 0, Serialized)  // _STA: Status
                {
                    0x5D = \_SB.PCI0.GTXS /* External reference */
                    Local0
                    If (!Local0)
                    {
                        Return (Zero)
                    }

                    0x27 = \_SB.PCI0.GTXS /* External reference */
                    Local0
                    Local0 ^= One
                    If (Local0)
                    {
                        Return (Zero)
                    }

                    Return (One)
                }

                Method (_ON, 0, Serialized)  // _ON_: Power On
                {
                    Local0 = _STA ()
                    If ((Local0 == One))
                    {
                        Return (Zero)
                    }

                    \_SB.PCI0.CTXS (0x27)
                    \_SB.PCI0.STXS (0x5D)
                    Sleep (0x03)
                    \_SB.PCI0.STXS (0x27)
                }

                Method (_OFF, 0, Serialized)  // _OFF: Power Off
                {
                    \_SB.PCI0.CTXS (0x27)
                    \_SB.PCI0.CTXS (0x5D)
                }
            }
        }
    }

Change-Id: I9591957f2db66081ffe447f91afd6655835d8feb
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88337
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-08 16:17:53 +00:00
David Wu
03c331399c mb/google/nissa/var/craask: Add focaltech touchscreen support
This change adds the necessary configuration for the focaltech
touchscreen (FTSC1000) device, connected to I2C bus 38.

It includes settings for:
* HID descriptor
* Device description
* IRQ configuration
* Detection
* Reset and enable GPIOs with their respective delays
* Power resource handling
* HID descriptor register offset

Datasheet: FT8112_Data_Sheet_V0.2_HKC20240415.pdf

BUG=b:429335394
TEST=emerge-nissa coreboot and focaltech touchscreen can work well.

Change-Id: Ic1c4bea599db23d5bc760bb7a54a2581cb293ce3
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88284
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:17:40 +00:00
Werner Zeh
b3d7c40fb5 mb/siemens/mc_rpl: Remove code for board_id
This board does not use the board_id-feature hence the code can be
removed.

Change-Id: I18c67580d4611b4c53248315937277bed53bd1ea
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88263
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-07-08 16:17:11 +00:00
Werner Zeh
5de16ed1b8 mb/siemens/mc_rpl: Remove unused embedded controller code
This mainboard does not have an embedded controller (EC), therefore
remove the code for it.

Change-Id: Ib37b3cc257f7ac4af6a6505a3e43c9e5275fcd3f
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88262
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:17:05 +00:00
Werner Zeh
a1067ec6de mb/siemens/mc_rpl: Remove unneeded code to select a VBT name in CBFS
This mainboard will just have a single VBT in cbfs which will be named
as the default name is (vbt.bin). There is no need to chose between
different configurations for the VBT selection. Therefore, remove the
corresponding code.

Change-Id: Ia72e8bae23c15476c362e456dc8358bec3b102a5
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88261
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-07-08 16:16:58 +00:00
Werner Zeh
463cda84d2 mb/siemens/mc_rpl: Remove unused Type-C data definition
This mainboard is not going to use Type-C subsystem. Therefore, disable
and remove the config data for it.

Change-Id: I2d9e53bf63b41811040f84cfe9dedf275f1059e4
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88260
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Kilian Krause <kilian.krause@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:16:53 +00:00
Werner Zeh
dcbe591201 mb/siemens/mc_rpl: Use SPD data from HWInfo instead of from CBFS
Siemens boards store their memory configuration data (SPD) in a field
inside the HWInfo block (which itself is located in CBFS). This patch
removes all *spd.hex-files and uses HWInfo instead for the SPD data
source. In addition, the memory data swizzling is updated to reflect
the board wiring so that DRAM can work properly.

Change-Id: I63d6e7c4543b7d99a4b1815c8ee81efcb6a87b94
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88259
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-07-08 16:16:46 +00:00
Keith Hui
6c059f8af3 IVB mainboards: Drop 1024M option for gfx_uma_size
While reviewing CB:87192 that deals with this option on another
mainboard, it was found that northbridge/intel/sandybridge
actually could not handle this option (present on Ivy Bridge
only anyway) properly. It would only factor 544MB into memory
calculations while telling IGD it can use 1024MB.

Until a fix can be implemented there, remove this option from
Ivy Bridge mainboards.

Change-Id: I0c87c52ef050cca54e050de3d41603c4ab29740b
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88294
Reviewed-by: Kevin Keijzer <kevin@quietlife.nl>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:16:33 +00:00
Keith Hui
3b61dbaa06 mb/asus/p8z77-m_pro: Remove incorrect gfx_uma_size options
Values here above 512M are:
1. Inconsistent with Intel IVB datasheet vol.2, document #326765;
2. Apparently not properly supported by nb/intel/sandybridge.

Take them out until a fix can be implemented.

Change-Id: I6183f447af2816d00c9f6d78329113cd9c584191
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88293
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:16:28 +00:00
Keith Hui
2b7115b139 mb/hp/snb_ivb_desktops: Add gfx_uma_size options up to 512MB
This board is missing option values for 256MB and up.
Make complete by referencing asus/p8x7x-series and Intel IVB
datasheet vol.2, document #326765.

Intel datasheet lists an additional 1GB option for Ivy Bridge
CPUs, but since nb/intel/sandybridge/northbridge.c has been
found to not handle this setting properly when doing memory
calculations, a fix is needed there before it can be included.
It was not an option for Sandy Bridge anyway.

BUG=https://ticket.coreboot.org/issues/581

Change-Id: Id89290a673b0e5dbc72c11c097aeb70d410adeab
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87192
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-07-08 16:16:21 +00:00
Walter Sonius
d99769bbde mb/hp/snb_ivb_desktops/variants: enable 4th sata port on tested models
Recent development of the "pro_6300" variant fixed the 4th sata port,
using "register sata_port_map" = "0x17" in "overridetree.cb" the same
is valid for the following 2 variants:
 - compaq_8300_elite_sff
 - compaq_8200_elite_sff

BUG=581#note-22
TEST=grub2 output & dmesg output

p4
�����������������������������������������
�                                  Boot Menu                                   �
�����������������������������������������

                                                Device Path :
   Select a Boot Device                         PciRoot(0x0)/Pci(0x1F,
                                                0x2)/Sata(0x4,0xFFFF,0
   UEFI Shell                                   x0)
   USB Device
   SATA: hp DVD A DH16ABSH

dmesg | grep SATA | grep link
[    4.994271] ata1: SATA link down (SStatus 0 SControl 300)
[    5.304068] ata2: SATA link down (SStatus 0 SControl 300)
[    5.616102] ata3: SATA link down (SStatus 0 SControl 300)
[    5.920122] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)

Change-Id: Idcef5854e1e97380bec12374411ddfdb50395c29
Signed-off-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88304
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-08 16:16:11 +00:00
Sowmya Aralguppe
95784dbafb mb/google/ocelot/var/ocelot: Add FW_CONFIG for Audio
Add FW_CONFIG probe based on Ocelot for Audio device:
	1.HDA Interface
	2.SNDW Interface
	3.DMIC - 2

Schematic version: schematic_1433518
Platform Mapping Document : Rev0p86

BUG=b:394208231
TEST= Build Ocelot and verify it compiles without any error.

Change-Id: Ideea34defdb6f4da63374ae09e2088c3de745657
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88173
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-07-08 16:15:48 +00:00
Vince Liu
f323adb19f soc/mediatek/mt8189: Increase SPI NOR clock rate from 26MHz to 52MHz
Set SPI NOR clock from 26MHz to 52MHz to improve boot time.

BUG=b:379008996
BRANCH=none
TEST=Verified clock rate via oscilloscope, and measure boot time with
cbmem
(previous) Total Time: 800,539
(now) Total Time: 739,292

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ibe3df8200417fa9a8292bfd3c29339b7d125e3c4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88339
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-07-08 09:42:51 +00:00
Bartłomiej Grzesik
689af47b52 commonlib: Add pvmfw related timestamps
Add 3 new timestamps for measuring the time to setup pvmfw in
depthcharge. First indicate when the setup has started. Second when the
comm with GSC has finished and third when the setup is complete.

BUG=b:429115233
BUG=b:359340876
TEST=build rauru

Change-Id: I0e0d069ae85997d3e4c02f257cd801e7b6787762
Signed-off-by: Bartłomiej Grzesik <bgrzesik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88289
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-08 09:22:21 +00:00
Werner Zeh
f1d06a5ad4 soc/intel/common/block/memory: Provide a way to use SPD data from memory
There can be cases where it is needed to provide the SPD data in a
different way than an EEPROM or CBFS file. This patch adds a third
method where the SPD data can be provided in a memory buffer for
memory-down configurations. Where this memory buffer comes from
and how SPD data is filled in is up to the mainboard code.

To use this new method set 'spd_data.in_mem' to 'true' and provide a
pointer to the SPD data in memory via 'spd_data.ptr' where
'spd_data.len' holds the length of the SPD data in that buffer.

This feature is useful for Siemens mainboards where the SPD data is part
of a larger configuration block called 'HWInfo block'. Though this block
itself do reside in CBFS, the SPD data cannot simply be indexed into
(like with the cbfs_index). Instead, the hwinfo-lib is used to get
dedicated fields from that block, this includes the SPD data, too. With
this patch the SPD data can be retrieved from HWInfo block and passed as
a buffer to the memory initialization code.

Change-Id: I2bd4970967cfe81bba96d8e2b2fd3a0bb85430c4
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88258
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-07 14:32:11 +00:00
Jakub Czapiga
11b1dc0a97 Reapply "util/cbmem: Consolidate CBMEM and coreboot table access"
This reverts commit 712dfb3761.

printf formats fixed to use PRI* macros instead of raw values.

BUG=b:391874512
TEST=cbmem -l; cbmem -x; cbmem -r 434f4e53; cbmem -t; cbmem -c \
On both x86 (Brya) and ARM64 (Corsola)

Change-Id: Iba6e3af080fe10c4a55adfcaee9c373a2cce1378
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88292
Reviewed-by: Jon Murphy <jpmurphy@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-07 14:31:30 +00:00
Martin Roth
13f1c6118e Documentation: Update cbmem.md with more information
Change-Id: I2b3eecdf994d4d5b48eacb3ae695efbb5640eb8b
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87193
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-07 14:31:12 +00:00
melongmelong
07267d19ce arch/x86/postcar_loader: Add comment line for reloc_params assignment
During finalize_load(), cpu/x86/mtrr/earlymtrr.c:postcar_mtrr is signaled

to be loaded as reloc_params, e.g. with its cache flushed.

Add a comment line to specify the relationship to improve the readability.

I didn't see code to set up parameter at first time.
So, I just guess that adding a comment would be helpful. :)

Change-Id: Ic7d3f9cf514ce5a8efc2af9e78992cb39a91e537
Signed-off-by: NyeonWoo Kim <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86866
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-07-07 14:30:58 +00:00
Baozhen Yang
e94ac6e655 mb/google/nissa/var/pujjocento: Reduce PL4 to 38 W with no battery
When battery is not present, reduce power limits to below 45W,
avoid inability to enter the system.

To avoid poor efficiency of the adapter, leave a margin and set the powerlimit to 38w.

This will check the current battery status and configure cpu power
limits using current PD power value.

BUG=b:418695656
BRANCH=None
TEST=
1、built(emerge-nissa coreboot chromeos-bootimage) and push ap firmware to dut.
2、Connect 15W machine without battery to 45W adapter and check if it starts up properly.
3、Use ec command “cbmem -c | grep PL“ to check if the PL4 value is 38 watts.

Change-Id: I72429052f5b3d25e56076176728498357a298cdd
Signed-off-by: Baozhen Yang <yangbaozhen5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88282
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-07 14:29:52 +00:00
Benjamin Doron
2eaec1b53a sbom: Fix build with merged bootblock and romstage
Do not attempt to use the VBOOT pkgconfig file when it doesn't exist.

Change-Id: I9633fc7fb060b1d00fddfd938ff2956c03b24274
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88319
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-07 14:29:29 +00:00
Alicja Michalska
267f08dafd MAINTAINERS: Add KunYi Chen as maintainer for LattePanda Mu
It makes it easier to request reviews on patches or report bugs.

Change-Id: Icaefa00c866ec6600637f67e7906f523b36348cb
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88276
Reviewed-by: KunYi Chen <kunyi.chen@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-07 11:42:44 +00:00
Martin Roth
812d0e2f62 Documentation/lib: Update Timestamp documentation
- Rephrase some items
- Add additional code examples
- Add additional sections
- Update documentation to the current state of the codebase.

Change-Id: I6e4cc244edf6cc860cc66165173f134a30a81589
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87186
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-04 13:18:33 +00:00
Bill XIE
d461627668 payloads/Kconfig: Allow compression for Linux payloads
Linux (bzImage) payloads used to be totally not compressed with
cbfstool. However, only bzImage is already compressed and initrd is
usually compressed, but the trampoline, parameter, and kernel command
line should be compressible.

Now cbfstool can copy segments instead when compression fails, so
compression for Linux payloads (including LinuxBoot) could be enabled
for compressible components.

TEST=With LZMA, parameter is compressed from 0x1000 to 0x4c,
     trampoline is compressed from 0x171 to 0x14b, kernel command line
     is not compressed for being too short (0x22), initrd is not
     compressed for being already compressed.

Signed-off-by: Bill XIE <persmule@hardenedlinux.org>
Change-Id: I8af3c904de55910a1298673d8ec2925a317bcff5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87935
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-04 13:18:21 +00:00
Bill XIE
f3ca3aa16b util/cbfstool/cbfs-payload-linux: Copy segments when compression fails
When compression fails (usually due to larger result), we could retry
with memcpy() as in cbfs-mkpayload.c, instead of stopping immediately.

Signed-off-by: Bill XIE <persmule@hardenedlinux.org>
Change-Id: Id8b2cffef3832c4bad49bd722c9a5133735f61b0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87934
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-04 13:18:17 +00:00
Sean Rhodes
29440057b0 mb/starlabs/{adl_n,twl}: Don't use the IOT FSP
The IOT version of FSP is inconsistent at resuming from S3,
so switch to the client version.

Change-Id: Ifadfebf53e20bc82e6272ea28e5bc443b9829545
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88055
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-07-04 13:18:05 +00:00
Matt DeVillier
eaf76d2dd1 vc/intel/fsp2_0/twinlake: Update FSP headers
Replace the existing TWL FSP headers, which were copied from ADL-N,
with the actual TWL headers.

TEST=starlabs byte_twl passes abuild w/o using IOT FSP.

Change-Id: I5c2836e81dee47dee73b14ce02f7bb8d0e846135
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88274
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-07-04 13:17:59 +00:00
Angel Pons
d5854e4139 Haswell NRI: Implement COMP offset optimisation
This algorithm minimises the per-channel, per-lane digital COMP offsets
by adjusting the global COMP offset accordingly. The purpose of this is
not fully known, but it is likely to prevent saturation of per-channel,
per-lane registers during subsequent training steps, which NRI does not
implement yet. Some of the COMP offset functions are generic since they
are also used in said training steps.

Tested on Asrock B85M Pro4, still boots to Arch Linux.

Change-Id: Idb03c6c5ed85a522ff1b55905f522211d1472bd9
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87833
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-04 13:17:47 +00:00
Martin Roth
2739c4b773 SBOM: Change makefile to get versions from build.h
Builds using SBOM were failing in the release because we don't have a
git tree to get information from. We can't assume that the coreboot
source will always be in a git tree, so it needs to be updated. This
updates build.h to contain all the data that the SBOM wants and changes
the SBOM makefile to get its information from build.h which can generate
the required data in a number of different ways.

Change-Id: I59fba349d95cb0dcff7a31d335f4acb4f11c89c7
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88236
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-07-04 13:17:38 +00:00
Appukuttan V K
a4156f99ff soc/intel/ptl: Add Wildcat Lake CPU ID to platform reporting
This commit updates the platform reporting logic to recognize the
Wildcat Lake SoC CPU ID.

Key changes:
 - Add CPUID_WILDCATLAKE_A0 to the list of recognized CPU IDs in
   the platform reporting module.

References:
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I8c9e81446a12ee0a6e18f1ba3f36166652a05f5e
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88271
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-07-04 13:17:25 +00:00
Appukuttan V K
9f73b04074 soc/intel/pantherlake: Add new MCH ID for Wildcat Lake
This commit introduces a new MCH device ID to support the Wildcat
Lake SoC. It updates the PCI device ID list and platform reporting
logic to accommodate this new ID.

Key changes:
 - Add PCI_DID_INTEL_WCL_ID_3 (0xfd02) to the list of recognized
   device IDs.
 - Update system agent operations to include the new MCH ID.
 - Enhance platform reporting to recognize the new MCH ID.

References:
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I464fb147f0d3df214ca64b1321eebab08505d7bc
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88248
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-04 13:17:15 +00:00
Ian Feng
167c771bc5 mb/google/fatcat/var/francka: Enable audio codec ALC722/ALC1320
Enable Realtek ALC722 and ALC1320 soundwire codec for francka.
Refer to the main board schematic(1224A) and
audio board schematic(1106A).

BUG=b:420516709
TEST=Build and boot and check the ssdt dump PCI0.HDAS.SNDW.
Scope (\_SB.PCI0.HDAS.SNDW)
    Device (SW00)
        Name (_ADR, 0x000030025D072201)  // _ADR: Address
        Name (_DDN, "Headset Codec")  // _DDN: DOS Device Name
Scope (\_SB.PCI0.HDAS.SNDW)
    Device (SW20)
        Name (_ADR, 0x000230025D132001)  // _ADR: Address
        Name (_DDN, "Speaker Amp")  // _DDN: DOS Device Name
Scope (\_SB.PCI0.HDAS.SNDW)
    Device (SW30)
        Name (_ADR, 0x000330025D132001)  // _ADR: Address
        Name (_DDN, "Speaker Amp")  // _DDN: DOS Device Name

Change-Id: I542d94fd792272d3b7d75538671ba2f59c331a1e
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88022
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mac Chiang <mac.chiang@intel.com>
2025-07-04 13:15:37 +00:00
Luca Lai
d8455dfbf6 mb/trulo/var/pujjolo: Change wifi SAR id fw config bits
Because of the internal misunderstanding, so now correct the right fw
config of wifi SAR id number from 18 to 21 to 17 to 20.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to OS and check coreboot log to check the wifi SAR table could work fine.

Change-Id: Ib006996fb8887a36feb5dfe71baef58fa74c35f7
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88200
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-04 13:15:28 +00:00
Zhixing Ma
a9e97268fe crossgcc: Fix acpica base url version
Due to a recent acpica version upgrade, the acpica tool is now
failing to download due to an incorrect url. This commit aims to
fix the issue by updating the iasl base url to match the upgraded
version.

Change-Id: I7eddff2d17587f5d90295928800c10068c8cf281
Signed-off-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88278
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-07-04 00:53:28 +00:00
Michał Kopeć
dabc200abb mb/lenovo/m900_tiny: enable power LED blink in S3 and S4
The power LED may be disabled by GPP_D1. The pin is PWM capable, so
configure it in PWM mode with a frequency of 0.5Hz, duty cycle of 50%
when entering sleep.

The result is that the power LED toggles on/off every second.

TEST=Boot to Windows 10, enter S3, and wake. The power LED will blink
when system is asleep and glow continuously when awake.

Change-Id: I121e0ef3e47aec1cacdace3f2af47a3fdacf69cf
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84860
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-07-03 17:48:11 +00:00
Michał Kopeć
cb86b9a089 mb/lenovo/m900_tiny: Put options in CFR cbtable
Change-Id: I259f88a3ceb9aee54016bb88a7d4de2b58dffa83
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87048
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-07-03 17:48:06 +00:00
Kun-Yi Chen
26d6da4533 mb/lattepanda/mu: Correct UART1 pinmux for native mode
Correct UART1 TX/RX pad configuration in early_gpio.c from NF2
to NF1. This enables proper UART1 signaling on GPP_D17 and GPP_D18
when operating in native mode.

This change is based on guidance from Intel Doc. No. 648094.

TEST=Patched and booted board. Confirmed UART1 communication
works via serial adapter. Loopback test passed.

Change-Id: Ib1f5ee17e6f3d8a845d024e6b8593606b0430b6f
Signed-off-by: Kun-Yi Chen <kunyi.chen@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88195
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-03 16:57:48 +00:00
Kun-Yi Chen
2ec9a9f17d mb/lattepanda/mu: Update eDP/HDMI in devicetree
Updated DDI port configuration to properly enable eDP (Port A)
and HDMI (Port B) with HPD and DDC settings on LattePanda MU.

This change ensures both internal and external displays are
detected and initialized correctly during boot.

Change-Id: I84e5bc4b8a26f58b9cb26a4018eef640ac245e7f
Signed-off-by: Kun-Yi Chen <kunyi.chen@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88194
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-03 16:57:43 +00:00
Kun-Yi Chen
3cfa24c1bf mb/lattepanda/mu: Enable PMC drivers
Enable Intel PMC and ACPI IPC interface in Kconfig to fix
power-off failure on shutdown.

Previously, the system failed to fully power off after shutdown,
leaving some power rails active and preventing restart via the
power button. A full power cycle was required to reboot.

This change ensures proper system power-off behavior.

TEST=Tested shutdown behavior with PMC and ACPI IPC interface
enabled in Kconfig. System now powers off cleanly and can restart
via power button without unplugging power

Verify OS: Ubuntu 24.04

Change-Id: I1f93410bcd717630319adabec40534b5b7467582
Signed-off-by: Kun-Yi Chen <kunyi.chen@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88193
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-07-03 16:57:38 +00:00
Kun-Yi Chen
c3dba4da2b mb/lattepanda/mu: Add flashmap definition
Add `board.fmd` and update Kconfig to define FMDFILE for
LattePanda MU.

This file describes the flash layout including
- Flash Descriptor
- ME
- MRC_CACHE
- SMMSTORE
- CBFS

TEST=Built mb/lattepanda/mu with and without board.fmd.

Adjusting FMAP layout via board.fmd changes section sizes and offsets.
This affects the position and size of the COREBOOT (CBFS) region in
the final ROM image.

With board.fmd:
  - FMAP layout explicitly defines COREBOOT size and offset
  - build log shows detailed FMAP section breakdown, including
    CBFS region

Sample log excerpt:
  'COREBOOT' (CBFS, size 3865600, offset 12911616)

Without board.fmd:
  - default FMAP layout is applied
  - COREBOOT region is located differently

with board.fmd

```
Writing new image to build/coreboot.pre
    UPDATE-FIT set FIT pointer to table
    UPDATE-FIT Microcode
    CBFS       coreboot.rom

    FIT table:
    Index  Type                 Addr             Size
         0 Microcode            0xffc504b0      0x00000000

    CBFSLAYOUT  coreboot.rom

This image contains the following sections that can be manipulated
with this tool:

'SI_DESC' (size 4096, offset 0)
'SI_ME' (size 4272128, offset 4096)
'SI_PDR' (size 2015232, offset 4276224)
'RW_MRC_CACHE' (size 65536, offset 12582912)
'SMMSTORE' (size 262144, offset 12648448)
'COREBOOT' (CBFS, size 3865600, offset 12911616)

...

Built lattepanda/mu (MU_8G)
```

without 'board.fmd'

```
Writing new image to build/coreboot.pre
    UPDATE-FIT set FIT pointer to table
    UPDATE-FIT Microcode
    CBFS       coreboot.rom

    FIT table:
    Index  Type                 Addr             Size
         0 Microcode            0xffc502b0      0x00000000

    CBFSLAYOUT  coreboot.rom

This image contains the following sections that can be manipulated
with this tool:

'SI_DESC' (size 4096, offset 0)
'SI_ME' (size 4272128, offset 4096)
'SI_DEVICEEXT2' (size 2015232, offset 4276224)
'RW_MRC_CACHE' (size 65536, offset 12582912)
'SMMSTORE' (size 262144, offset 12648448)
'COREBOOT' (CBFS, size 3866112, offset 12911104)

...

Built lattepanda/mu (MU_8G)
```

Change-Id: If197679c8359f5f75ab125b0c8600926611ac57b
Signed-off-by: Kun-Yi Chen <kunyi.chen@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88192
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-03 16:57:32 +00:00
Doris Hsu
b5db9bcc9d soc/intel/alderlake: Enable USB3 HSIO related parameters for USB3 GEN2 support
Add parameters and default setting of FSP

BUG=b:407645233
TEST= IOMT verification confirmed, that USB settings can be updated through FSP parameters.

Change-Id: Idbd9ee795b74f43921472ef42a95b2be23af6f5d
Signed-off-by: Doris Hsu <doris.hsu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88105
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-07-03 16:57:21 +00:00
Jeremy Soller
da49da6c82 soc/intel: Add Arrow Lake-S/HX IDs
Change-Id: I7a0a56cf80f053b4bb0c8acb9038c1e46dca5d2e
Ref: Intel Arrow Lake-S/HX EDS, Volume 1 (#729037, rev 2.01)
Ref: Intel 800 Series Chipset Family PCH EDS, Volume 1 (#728144, rev 1.52)
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87454
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-03 16:57:15 +00:00
Vince Liu
8cec500968 mb/google/skywalker: Configure firmware display for eDP panel
Add eDP panel power-on sequences and initialize the display in the
ramstage. Also Set display registers to normal mode if initialization
flow is skipped to prevent abnormal behavior.

BUG=b:400886838,b:422507985
BRANCH=none
TEST=utility gbb --set --flash --flags=0x39, and check the firmware
screen.
utility gbb --set --flash --flags=0x0, and check the DUT screen.

Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.corp-partner.google.com>
Change-Id: I09edceefee9c17ce18681b85da8ca75f65ed2876
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88273
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-03 13:31:30 +00:00
Vince Liu
78a89d4d70 soc/mediatek/mt8189: Extract code to disable secure mode from DDP driver
Extract code for disabling secure mode from mtk_ddp_init and implement
it as mtk_display_disable_secure_mode(). This allows disabling display
secure mode without using DDP, for example, when FW display is not
needed.

Unlike previous SoCs, MT8189 is designed so that access to display
registers defaults to secure mode, due to specific product requirements.
However, Chromebook products do not use this setting and instead require
the register permissions to be set for normal mode access, consistent
with previous SoC behavior.

Also reordered function declarations to group similar types (e.g.,
display, DDP) together for better readability.

BUG=b:422507985
BRANCH=none
TEST=utility gbb --set --flash --flags=0x0, and check the DUT screen.

Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ic378ef62540c408ccd59e482abfe9f9c8ca5a13d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88272
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-07-03 13:31:22 +00:00
Swathi Tamilselvan
8d8d0f9746 soc/qualcomm/x1p42100: Add Clock support for x1p42100
Add support to enable QUPV3, QSPI and GPLL0 clocks. Modify
XO Source clock frequency value to 19.2KHz. The register
details are part of HRD-X1P42100-S1 document.
https://docs.qualcomm.com/bundle/resource/topics/HRD-X1P42100-S1/

TEST=Create an image.serial.bin and ensure it boots on X1P42100

Change-Id: I6252bc1fda3c53a683c65d2ab4a3b9f27ea64618
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88175
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-07-03 00:59:23 +00:00
Swathi Tamilselvan
20c2813891 soc/qualcomm/common: Update QUP register structure for QUP v3.2
The register layout for QUP has been updated in QUP v3.2. Update the
structure definition accordingly. Allow SoCs to use the existing version
or the updated version based on QC_COMMON_QUPV3_2.

Change-Id: I304012d72a1af33510dcd620953367f0a9e98ac1
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88190
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-03 00:58:42 +00:00
Martin Roth
d24c4086e1 Documentation: Add Ramstage Bootstates
Change-Id: I18801967be50e2f318b4404d08c171ffa7e92bbc
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87189
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-07-02 21:58:29 +00:00
Martin Roth
10d01fc2de Documentation: Add Threads
Change-Id: I49a273118f19e4b332ac7f51b1f34247acf66b85
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87188
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-07-02 21:58:23 +00:00
P, Usha
faf0f29f8d mb/google/ocelot: Update EC host command range for variants
This patch updates the EC host command range configuration for Ocelot
board variants, ensuring that each variant uses the correct range based
on its specific EC.

BOARD_GOOGLE_OCELOTMCHP and BOARD_GOOGLE_OCELOTMCHP4ES uses Microchip
EC.
BOARD_GOOGLE_OCELOT and BOARD_GOOGLE_OCELOT4ES uses Nuvoton EC.
BOARD_GOOGLE_OCELOTITE and BOARD_GOOGLE_OCELOTITE4ES uses ITE EC.

Key changes:
- Microchip EC: Configured to use host command ranges 0x800-0x807 and
0x200-0x20f. The register is set to 0x00040801 to accommodate these
constraints.

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: If08f2362a7b3bafca69375ce3b346f75435a83df
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88179
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-02 21:35:48 +00:00
Keith Hui
ac4dfa5762 mb/hp/snb_ivb_desktops: Add Compaq Pro 6300 MT/SFF variant
A compaq_8300_elite_sff build can run on these models mostly unmodified.
Spawn a new variant from it, tie up some obvious loose ends and bring it
officially into the fold.

BUG=https://ticket.coreboot.org/issues/581

Change-Id: Ic0f04d586a8361968d7f6c3e3d048f945528cb84
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86869
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Walter Sonius <walterav1984@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-07-02 18:08:08 +00:00
Patrick Rudolph
984c64295b drivers/crb/tpm: Add new method to retrieve base address
In order to support runtime evaluation of the TPM base address
introduce and use a new method for CRB TPMs.

Change-Id: I29c81d82947eb2603472a515f9ada598e4f8e6ea
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88249
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tim Wawrzynczak <inforichland@gmail.com>
2025-07-02 16:15:09 +00:00
Matt DeVillier
1e8e5d902a mb/starlabs/starlite_adl: Add support for MXC6655 accelerometer
Add support for the Memsic MXC6655 accelerometer on I2C0, as an
alternative to the existing Kionix KCXJ9. Use the "detect" function
of the I2C generic driver to determine which is present at runtime.

TEST=build/boot starlite_adl with MXC6655, verify screen roation works
properly when detached from keyboard under Linux and Windows.

Change-Id: I59d424903cceda9871855372e1d666eaa12443b0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88253
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-07-02 16:14:36 +00:00
Martin Roth
5993dd6ef5 Documentation: Add Timers, Stopwatch, and Delays
Change-Id: I3b58817c1ed06e6d7d5d5668b0e38ec8cfedf122
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87187
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-02 16:13:10 +00:00
Vince Liu
4f1f502fd5 soc/mediatek/mt8189: Add PI image loader in ramstage
Load PI image through CBFS and pass parameters of PI image to mtk_fsp
for parsing.

BUG=b:379008996
BRANCH=none
TEST=check the boot log:
[INFO ]  CBFS: Found 'pi_img.img' @0x3d880 size 0x10b in mcache @0xfffdd314
[DEBUG]  mtk_init_mcu: Loaded (and reset) pi_img.img in 14 msecs (720 bytes)

Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Change-Id: Iada90ad4298d0a91ad73798252db19b12f2f6ef7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88266
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-07-02 08:14:56 +00:00
Vince Liu
e3ffa3c14f soc/meidatek/mt8196: Move PI image related code to common
To promote code reuse and maintainability, move PI image related code to
common folder. The function add_pi_image_params is renamed to
pi_image_add_mtk_fsp_params for prefix consistency.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: If5e3d9e6d5f97ead763ef9adc2d23bce0ed68877
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88265
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-02 08:14:46 +00:00
smadhesu
e96bf7e094 soc/qc/x1p42100: Support to generate Bootblock as multi ELF
This commit performs below to create Bootblock binary.
1. createxbl.py: Converts "bootblock.raw.elf" to MBN (v7 format).
2. create_multielf.py: Concatenates TME SEQ, TME FW, QC_SEC and
bootblock into multi ELF binary.

BUG=b:415949107

TEST=Generate image.serial.bin and verify bootup on X1P42100

Change-Id: Icc499221d8806b549f6c873a14382a28c3efb74f
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88241
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-02 03:27:49 +00:00
smadhesu
ae5810e358 util/qualcomm: Add MBN v7 format support
The QCOM X1P42100 SoC requires images loaded by PBL in MBN v7
format. This script is updated to support MBN v7 format which will
be used to generate the Bootblock binary.

Starting with the Qualcomm x1p42100 SoC, the bootblock ELF header
expects MBN version 7 instead of version 6 with the SC7280 SoC. This
patch adds the necessary adjustment to ensure compatibility with older
SoC platforms and also adds incremental support for newer SoC
generations. If Qualcomm SoCs in the future demands a more advanced
version of MBN (version > 7), additional logic will be added to the
newly added section as `self.flash_parti_ver == 8`.

BUG=b:420542130, b:404985109

TEST=Create image.serial.bin with bootblock in MBN v7 format and
ensure it boots on X1P42100. Please refer to the steps mentioned
below to create final AP FW image for QC SoC X1P42100.

Step 1: Create Bootblock MBN image using createxbl.py script where the
newly added MBN v7 support will be used.

Step 2: Call create_multielf.py to create the concatenated multi ELF
( TME SEQ + TME FW + QC_SEC + BOOTBLOCK from step 1)

Step 3: Call nqgpt.py to create final GPT image.

Change-Id: I484df537ac7d1e51ec86dcae74a74dc211710616
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88240
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-02 03:27:39 +00:00
Elyes Haouas
626c5364b8 tree: Use boolean for PcieRpSlotImplemented[]
Change-Id: I15b062a7225700988d5db8a0840d555dc2a1c353
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88269
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-02 02:14:22 +00:00
Subrata Banik
a90a7e0aed mb/google/bluey: Specify ROM size per board variant
This commit refines the ROM size configuration for Google Bluey
mainboards by moving the `BOARD_ROMSIZE_KB_*` selection from the
common Kconfig to the specific board variants.

Previously, `BOARD_ROMSIZE_KB_65536` was selected for
`BOARD_GOOGLE_BLUEY_COMMON`. This blanket setting is inaccurate as
different Bluey-based boards utilize different sized ROMs.

With this change:
- `BOARD_GOOGLE_BLUEY` now selects `BOARD_ROMSIZE_KB_65536`.
- `BOARD_GOOGLE_QUENBI` now selects `BOARD_ROMSIZE_KB_32768`.

This ensures that each board variant has the correct ROM size
configured, preventing potential issues related to image size or
flash programming.

TEST=Able to verify that google/bluey AP FW image os 64MB and
google/quenbi AP FW is 32MB in size.

Change-Id: Ifcf75b310f08cbc4bbbd27ad7947df06da4f5d5a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88268
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-01 16:50:51 +00:00
Subrata Banik
0c9204046a mb/google/bluey: Update SPI flash vendor selection
This commit refactors the SPI flash vendor selection for Google Bluey
boards to accurately reflect the components used by each variant.

Previously, `SPI_FLASH_WINBOND` was unconditionally selected for
`BOARD_GOOGLE_BLUEY_COMMON`. This is incorrect as different Bluey
variants may use different SPI flash chips.

This change now specifically selects:
- `SPI_FLASH_MACRONIX` for `BOARD_GOOGLE_BLUEY`
- `SPI_FLASH_WINBOND` for `BOARD_GOOGLE_QUENBI`

This ensures that the correct SPI flash driver is enabled for each
specific board variant, as per underlying hardware design.

TEST=Able to build google/bluey.

Change-Id: I7deaed90a7f6533ed4fe9fd815715dabdaa561a3
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88267
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-07-01 16:50:45 +00:00
Subrata Banik
d636b38577 soc/qualcomm/x1p42100: Select ARM64_USE_ARM_TRUSTED_FIRMWARE
This commit enables `ARM64_USE_ARM_TRUSTED_FIRMWARE` for the
Qualcomm X1P42100 SoC.

Selecting this option ensures that coreboot is configured to
integrate with ARM Trusted Firmware (TF-A), which is essential
for proper boot and power management functionality on this platform.

BUG=b:424149462
TEST=Able to build google/bluey.

Change-Id: I30bc3eb9eedcaaef67cccf8c2f29c6ed76c71e9a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88251
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-07-01 16:50:37 +00:00
Elyes Haouas
17abedaef6 include/smp/node: Drop unused is_smp_boot
Change-Id: I831d405c58817da64eb241f432a3eb8a096dbe1b
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86327
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-07-01 15:08:52 +00:00
Elyes Haouas
c0413336bc acpi/acpi.h: Use boolean
permanent_smi_handler and acpi_s3_resume_allowed returns boolean,
so use boolean instead of int.

Change-Id: I8f390bf3b472519dc41db7daa57b16458961139e
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84858
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-07-01 15:08:32 +00:00
Elyes Haouas
9be383b855 drivers/lenovo/hybrid_graphics/chip: Use boolean when appropriate
Change-Id: I1f456765eb60b8ad1e680255b50abad5dea8252c
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86610
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-07-01 15:08:02 +00:00
Elyes Haouas
f33507c1d8 mb/{google/zork,novacustom/mtl-h}: Use true/false for boolean
enable_power_saving is a boolean so use "true" "false".

Change-Id: I0f62fc2b0db3abd3f204951f15081b89e02a0754
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86608
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-07-01 15:07:54 +00:00
Elyes Haouas
ae282fe502 drivers/generic/bayhub: Use boolean for power_saving
Change-Id: I7cc89989296b48e20b41e6ff06570a9d30bfc114
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86607
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-07-01 15:07:44 +00:00
Elyes Haouas
0a94fcd2db crossgcc: upgrade binutils from version 2.43 to 2.44
Change-Id: Ic78053f55c59de7af16fca0265d0d23fadfb20f6
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86254
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-07-01 15:06:54 +00:00
Zhigang Qin
316f76635f soc/mediatek/mt8189: Use pmif_spmi_v2 for MT8189
MT8189 is equipped with the Power Mode Resource Collector (PMRC)
feature, and the implementation to set PMIF to normal mode is the same
as in pmif_spmi_v2. Use pmif_spmi_v2 to correct the configuration to
allow PMIF to properly enter normal mode on MT8189.

BUG=b:379008996
BRANCH=none
TEST=check the following logs for PMIC communication
[DEBUG]  pmic_efuse_setting: Set efuses in 10 msecs
[INFO ]  [RTC]rtc_boot,327: PMIC_RG_SCK_TOP_CON0,0x50c:0x1
[INFO ]  [RTC]rtc_boot,330: PMIC_RG_SCK_TOP_CON0,0x50c:0x1
[INFO ]  [RTC]rtc_enable_dcxo,66: con=0x486, osc32con=0xfe69, sec=0x0
[INFO ]  [RTC]rtc_check_state,173: con=486, pwrkey1=a357, pwrkey2=67d2
[INFO ]  [RTC]rtc_osc_init,62: osc32con val = 0xfe69
[INFO ]  [RTC]rtc_eosc_cali,20: PMIC_RG_FQMTR_CKSEL=0x4a

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: Ib3eeba7ca9bd446b641a17fbe97bcda373cb4a24
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88244
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-07-01 07:59:40 +00:00
Vince Liu
f3bd8b7a07 soc/mediatek/pmif_spmi: Move pmif_spmi_force_normal_mode() to common
Move pmif_spmi_force_normal_mode() to common code for better sharing:
- Extract code from common/pmif_spmi.c to common/pmif_spmi_v1.c
- Extract code from mt8196/pmif_spmi.c to common/pmif_spmi_v2.c

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I47c6260872e0922feeab6e849b0ded8d2f7f4eb5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88243
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-07-01 07:59:28 +00:00
Elyes Haouas
ef10e93e0a tree: Replace scan-build by clang-tidy
Change-Id: I0e59a1667759723bbf8d76232e7e5375837d2e9a
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87908
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-07-01 01:12:32 +00:00
Elmo Lan
6707e9281c mb/google/brox: Update cpu power limits
brox_rtk_ec share the same power design with brox,
so follow brox set as 9W.

BUG=b:414474440
TEST=system can boot when AC only.

Change-Id: Ia05b331f229127b898f4549d5ba1ac2771ac8b7b
Signed-off-by: Elmo Lan <elmo_lan@realtek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88213
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-06-30 19:21:15 +00:00
Elyes Haouas
f1aa0a175b util/crossgcc: Build compiler-rt using runtimes
compiler-rt is not a variable used by the LLVM_ENABLE_PROJECTS config,
but has a separate configuration option.

Change-Id: Iacd9b5f1fc1444b3dd1a785b91510f346e7a2f51
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80737
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-30 04:22:23 +00:00
Elyes Haouas
b0e0c688c8 buildgcc: Use -d to check libstdc++ include directory
Change-Id: I3d8519557d99f6cb910e721643c1b4b2eab6bb05
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88231
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:21:35 +00:00
Elyes Haouas
f2fed71533 crossgcc: Upgrade acpica from 20241212 to 20250404
Change-Id: Iddd9c6f3510e80ee3ae39d86a10cd23e77dc0a05
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87342
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:20:52 +00:00
Elyes Haouas
07a8737cbd crossgcc:Initialize OPT_LDFLAGS to avoid unset variable in IASL build
Change-Id: Ibdad41baee8bb245112160be237f1081fbfc89c8
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88233
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:20:39 +00:00
Elyes Haouas
ad9bfd4243 crossgcc: Always update HOSTCFLAGS from GMP headers if already built
Change-Id: I332cdec6d56cf09b0380dbf43575ed2d5d45461a
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88232
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:20:05 +00:00
Elyes Haouas
c3f5d7c1ee crossgcc: Upgrade MPFR from 4.2.1 to 4.2.2
Change-Id: I5e8d8daa40d05652cacd1a5e355dff10e289d9d0
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86995
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:19:39 +00:00
Elyes Haouas
a3ea1cb542 util/crossgcc: Upgrade CMake from 3.31.3 to 4.0.3
Change-Id: I46f63e0b6c41f871ccff2454b2db8b99b765d4f5
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86975
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:18:50 +00:00
Elyes Haouas
f9cde87f5a crossgcc/buildgcc: Fix GMP-6.3.0 build with GCC 15 using proper prototypes
The old test code used outdated function declarations that break with
C23 in GCC 15. Instead of forcing C17 standard:

1. Add full prototype for g() function
2. Use 'void' for empty parameters
3. Clean up messy formatting

This keeps C23 compatibility while fixing the build.

Tested with GCC 15.1.0

The -std=gnu17 workaround is no longer needed.

Change-Id: I718a5ed5c11742b1c3448abf7198c96ac78bc98a
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87995
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:18:04 +00:00
Elyes Haouas
35d6ee9223 crossgcc/buildgcc: Remove invalid option for CMake
"--parallel" is not a valid option for CMake.

Change-Id: Idba76ce6a29e5d582ce49aa91ce4013aebc6d835
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88230
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-06-30 04:16:31 +00:00
Martin Roth
bd36a4a465 util/lint: Remove missing dirs from checkpatch linter
The mb/adlink directory no longer exists, so remove it from the list of
checked directories.
Add a check to make sure that the directory exists before trying to lint
it in the future.

Change-Id: I59874cb7356c2e8eeb8fc216f2930b3d8ef513c7
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88237
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-29 22:34:57 +00:00
Martin Roth
a0f2e42879 util/lint: Improve final newline check
- Change .inc to .mk. This was missed when renaming the makefiles.
- Verify that dirs/files exist before checking.
- Use $FINDOPTS to control search when not in a git repo.

Change-Id: If0d80403a3e799b8103164cc075601a50c33a8d9
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88238
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-29 22:34:38 +00:00
Martin Roth
6cb9efa19a util/lint: Ignore opensil for Kconfig linter
The Kconfig linter was browsing into the openSIL tree and reporting
issues for the release because it can't use git grep there. This change
explicitly tells the Kconfig linter to ignore the openSIL submodule.

Change-Id: Ia0399225cced9f199a6d2a90bc6c2af905ff4e99
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88235
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-29 22:33:50 +00:00
Martin Roth
5228b3ef7b util/lint: Ignore binary files for cb lowercase linter
The binary files were not being correctly filtered. This tells grep to
just ignore binary files. This isn't particularly important inside the
git tree, but for releases where we can't use git grep, it becomes an
issue.

Change-Id: I2852ea1e8b0f337aa5c78daa5e9dbd0c3d6768a9
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88234
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-29 22:33:23 +00:00
Elyes Haouas
58d450d2dc util/crossgcc/buildgcc: Reorganize toolchain version variables
Group the variables by toolchain (GCC vs Clang) and order them by
build sequence.

Change-Id: Ifd911b719882adf1d2e9211f6009b579f8177abe
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88227
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-29 10:03:25 +00:00
Luca Lai
baf28f8668 mb/trulo/var/pujjolo: Add GPE configuration
Follow baseboard nissa and project pujjocento project to setting
GPE configuration.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to OS.

Change-Id: I75deadd0c1b7218c2d0820d637cc2ec02bf9154f
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88199
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-28 16:24:39 +00:00
Tony Huang
eb749f2416 spd/lp5: Add SPD for MT62F2G32D4DS-023 WT:C
Add MT62F2G32D4DS-023 WT:C in the memory_parts.json and re-generate the
SPD.

BUG=b:427327667
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I8f244c2f91d66ffcbc1ec2642304f77b522da09f
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88178
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-06-28 16:24:28 +00:00
Kun-Yi Chen
731bea2fc1 mb/lattepanda/mu: Make VBT compatible with ADL-N FSP IPU25.3
Replace `data.vbt` with version from Intel FSP repository to match
the updated FSP release used in this platform.

This change is required when using 3rdparty/fsp/AlderLakeFspBinPkg
commit: 15848ee4934acbd94069454f369e9869bb0f1295
which introduces the "IoT ADL-N IPU25.3 (6114_00)" release.

With the previous VBT, the system boots but fails to display
any graphics output (HDMI) during firmware POST and OS boot.
This updated VBT resolves the display initialization issue.

Source:
15848ee493/AlderLakeFspBinPkg/IoT/AlderLakeN/Vbt/Vbt_ADLN.bin

Change-Id: If948d3bbef02f516067db0bad07167bdf7c81ce2
Signed-off-by: Kun-Yi Chen <kunyi.chen@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88191
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-06-28 16:24:19 +00:00
Maximilian Brune
6b7f697309 util/amdfwtool/amdfwread.c: Properly error out in relative_offset()
The addresses and their modes should now all be correct and we can
therefore treat the case where `addr` and `mode` do not match as an
actual error.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Id12c29648c0437dd082b471689ec3649314dee1c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87298
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-28 16:23:51 +00:00
Maximilian Brune
4a99023e0f util/amdfwtool/amdfwread.c: Remove APOB_NV special case
There is no need to treat the APOB_NV binary special anymore, as
the mode and address should now always match for the APOB_NV address.
Since phoenix SOC generation this code even errors out on VBOOT
platforms, because APOB_NV address is actually a BIOS relative address.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I64d43e654e3694d7590edcba9a87c98367a7256c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87297
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-28 16:23:45 +00:00
Maximilian Brune
000ac2cc38 util/amdfwtool/amdfwtool.c: Use physical address for APOB_NV
In order to not change the actual binaries in too many ways,
commit a7eb390796 ("mb/*/*/*.fmd: Start flash at 0") kept the current
behaviour in which the address mode was set to ADDR_REL_BIOS, but the
address itself was actually a physical address. It has probably only
worked all these years, because PSP/ABL code did apparently ignore the
address mode for this specific binary for generations previous to
phoenix.

Assuming the address mode is actually ignored we might as well use the
right address mode corresponding to the address that is set. That way
tooling that is used to inspect this image is not completely confused.

This sets the ADDR_PHYSICAL address mode to all generations that have
the APOB NV quirk. It therefore only affects these generations (previous
to phoenix).

tested:
Check that the binary is identical on bilby, morphius, kahlee, onyx and
birman_plus. bilby, kahlee, onyx don't have an APOB_NV region. morphius
uses a physical address anyway and birman_plus doesn't have the
apob_nv_quirk.
Check that only the address mode is changed to ADDR_PHYSICAL (and the
checksum of the table) on guybrush, frostflow, crater, chausie.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ib2edfb27ba0fa316f1fbe31bc0ad8e2060a70f48
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87296
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-28 16:23:40 +00:00
Maximilian Brune
d0355cb647 util/amdfwtool: Move APOB_NV quirk to amdfwtool.c
This moves the code to amdfwtool.c, because the subsequent patch needs
it to be there in order to properly update the address_mode.

This patch should not change the binary in ANY way on any platform.

tested: Check that the binary is identical on guybrush, birman_plus,
frostflow, bilby, crater, grunt, myst, onyx_poc, morphius

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I9c64c67ff8b9656516344fdafbfd2254abfceeef
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87294
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-28 16:23:35 +00:00
Ivy Jian
6fa44461e7 mb/google/fatcat/var/kinmen: Add Fn key scancode
The Fn key on kinmen emits a scancode of 94 (0x5e).

BUG=b:409148565
TEST=Flash kinmen, boot to Linux kernel, and verify that KEY_FN is
generated when pressed using `evtest`

Change-Id: If919c6f421719e06399620b17e1f4f5a161a7de2
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88207
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-28 16:23:21 +00:00
Sowmya Aralguppe
dd7956bfc5 mb/google/ocelot: Update GPIO table
Configure GPIOs and related settings to align with the specifications
provided in the schematic_1433518 and platform mapping document
version Rev0p85.

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: Id63c52ffa2d111bd1f7c51831aa7087bef6006d9
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88102
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-06-28 16:23:05 +00:00
Tongtong Pan
1222c704b5 mb/google/fatcat/var/felino: Add pull high setting on GPP_V12
and NC_LOCK GPP_F09

To ensure that poweroff is normal and DUT can boot to S0
when press power button or lid open in S5 state, the WAKE pin
GPP_V12 needs to be pulled high on soc side and GPP_F09 needs
to be configured as NC_LOCK.

BUG=413283383
TEST=emege-fatcat coreboot and poweroff and
s5 boot functions are normal

Change-Id: Iea8e44aa263dda7e447be1c9e53ffabf93c95a80
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88211
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-28 16:22:48 +00:00
Subrata Banik
61d74dc8f7 payloads: Propagate SPI flash address mode flag to libpayload
This commit extends libpayload's understanding of SPI flash devices by
adding a flags field to both struct cb_spi_flash and struct
sysinfo_t.spi_flash.

The new CB_SPI_FLASH_FLAG_IN_4BYTE_ADDR_MODE flag will be populated
from the coreboot table's lb_spi_flash entry. This allows payloads to
reliably determine if the SPI flash is currently configured for 4-byte
addressing, enabling more robust flash operations without needing to
re-probe or re-enforce the mode.

Note: `erase_cmd` type was changed from uint32_t to uint8_t. This is
because only the lowest byte of the original uint32_t was ever used.
The change ensures proper sizing, maintains compatibility with older
coreboot tables, and makes the remaining space available for new fields.

BUG=b:417900125
TEST=Able to build google/bluey.

Change-Id: I101a50f899e82e9412024a049a9df59c5813313a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88182
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-28 02:40:48 +00:00
Subrata Banik
8dec5fcaf8 drivers/spi: Add 4-byte address mode flag to lb_spi_flash
Adds a new flags field to the lb_spi_flash coreboot table to indicate
if the SPI flash is operating in 4-byte address mode.

This allows payloads to query the current address mode directly from the
coreboot table, preventing redundant checks or re-enforcement of the
mode. The flag is set based on the
CONFIG_SPI_FLASH_FORCE_4_BYTE_ADDR_MODE configuration.

Important: `erase_cmd` was reduced from uint32_t to uint8_t.
Only the least significant byte was ever relevant, so this change
ensures accurate type representation, maintains backward compatibility
with existing coreboot table structures, and frees up space.

BUG=b:417900125
TEST=Able to build google/bluey.

Change-Id: I406536432b2a0c7f4108e5b33d5a20c272d917b0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88181
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-06-28 02:40:41 +00:00
Subrata Banik
a01c368a8a drivers/spi: Refactor 4-byte addressing mode handling in SPI flash
This commit refactors the logic for entering and exiting 4-byte
addressing mode in the SPI flash driver.

Changes include:
 - Renaming SPI_FLASH_EXIT_4BYTE_STAGE to SPI_FIRST_STAGE to better
   reflect its broader applicability to initial boot stages.
 - Applying SPI_FIRST_STAGE to both the force 4-byte address mode
   and exit 4-byte address mode configurations, ensuring these
   operations are only attempted during the appropriate early boot
   phases.
 - Renaming CMD_FORCE_4BYTE_ADDR_MODE to CMD_ENTER_4BYTE_ADDR_MODE for
   consistency and clearer semantics, as 0xb7 is typically used to enter
   this mode.

BUG=b:417900125
TEST=Able to build google/bluey.

Change-Id: I79e2c7bbd222fd0d76072860bdf3feba7e7d587d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88203
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-06-28 02:40:36 +00:00
Subrata Banik
30e7e604fb mb/google/fatcat/var/fatcat Align I2S and DMIC pad configuration
This commit aligns the I2S and DMIC pad configurations in `fw_config.c`
and `gpio.c` for the Fatcat mainboard.

The changes include:
- Reordering I2S1 pad configurations in `fw_config.c` to match their
  intended functions (TXD, RXD, SCLK, SFRM).
- Adding I2S2 pad configurations (SCLK, SFRM, TXD, RXD) to
  `fw_config.c`.
- Removing duplicate DMIC_CLK and DMIC_DATA pad configurations from
  `fw_config.c`.
- Moving the CODEC_EN pad configuration from `fp_disable_pads` and
  `fp_enable_pads` in `fw_config.c` to `gpio_table` in `gpio.c`, and
  changing its power state to DEEP (as applicable)
- Updating GPP_F17 to CODEC_INT_N with GPI configuration in `gpio.c`.

These adjustments ensure correct and consistent pad assignments
for audio functionality.

TEST=Able to hear devbeep while booting google/fatcat.

Change-Id: I477ffeef113e2f3a4d0e759b9416f9e7e5427ec3
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88180
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-06-28 02:40:25 +00:00
Martin Roth
9fe1546ffe Docs/releases: Update 25.06 release notes
These are the release notes planned to go out with the 25.06 release.

Note that we've removed the bugs section. We may look at adding
"Fixed Bugs" and "New Bugs" in the future, but it was depressing not
seeing changes between the releases.

Change-Id: I8cedbdb7b05605d1904446590fb25552a7e0c727
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88206
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-27 21:53:18 +00:00
Luca Lai
5c281529ea mb/trulo/var/pujjolo: Add FW_CONFIG for mipi camera
Add FW_CONFIG probe based on pujjolo boxster of below devices:
Mipi camera

Schematic version: 500E_S3A0_TWL_MB_FVT_20250527

BUG=b:395763555
BRANCH=none
TEST=Boot to OS and verify the mipi camera device are set based on
     fw_config.

Change-Id: I8760585d5012073fb3ca1d2636474a07b8eea97a
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88119
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-06-27 13:06:27 +00:00
Luca Lai
e5e79de8cc mb/trulo/var/pujjoquince: Add Fingerprint function
1. This change is based on the fact that the code for the pujjolo
and pujjoquince projects is shared.
2. Add fingerprint function and use proto board to verify the
functionality.

Schematic version: 500E_S3A0_TWL_MB_FVT_20250527

BUG=b:395763555
BRANCH=none
TEST=Use ectool --name=cros_fp version will return fingerprint
version information and check the functionality works.

Change-Id: I557c7b6a10b137604ff4abae81c7a231c48b099d
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88186
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-27 13:06:18 +00:00
Varadarajan Narayanan
0dcea61e7c cbfstool: Add multi ELF support
The current QCOM fixup function qualcomm_find_hash() assumes only one
ELF will be loaded by the primary boot loader and the bootblock is one
of the segments of that ELF.

However, the primary boot loader for QCOM X1P42100 SoC loads multiple
ELFs for QC_SEC, TME Sequencer, TME FW and bootblock. This change
updates the fixup functionality to handle bootblock being a separate
ELF.

If the bootblock offset does not fit within the first ELF, then the
fixup function understands that it is a multi ELF.

Additionally, it ensures the bootblock ELF uses MBN v7 format.

BUG=b:420542130

TEST=1. Create a image.serial.bin and ensure it boots on X1P42100
2. Used the following script to verify the hash
#! /bin/bash

image=/build/bluey/firmware/image-bluey.serial.bin
bin=/tmp/bb.bin
seg=/tmp/bb.seg
hash=/tmp/bb.hash

#
# Bootblock is the final ELF of the multi ELF. Hopefully
# there is no other ELF in ${image}. Get the offset of the
# final ELF in ${image} and get it out
#

bb_offset=`od -Ad -w4 -tx4 ${image} | grep 464c457f | tail -1 | cut -f1 -d ' '`

dd if=${image} of=${bin} skip=1 bs=${bb_offset} &> /dev/null

#
# The last two segments of the bootblock ELF have the actual
# executable and the hash. 'LOAD' is the executable segment and
# the other is the hash segment. Get their offsets and convert
# to decimal.
#
offs=`readelf -lW ${bin} | tail -2 | awk '{print $1" "$2" "$5}'`
offs=(`printf "%s %u %u %s %u %u" ${offs}`)

#
# Get the executable and hash segments
#
if [ ${offs[0]} = "LOAD" ]; then
        first=${seg}
        second=${hash}
else
        first=${hash}
        second=${seg}
fi

dd if=${bin} skip=${offs[1]} bs=1 count=${offs[2]} of=${first} &> /dev/null
dd if=${bin} skip=${offs[4]} bs=1 count=${offs[5]} of=${second} &> /dev/null

#
# Find the SHA384 hash for the executable segment
#
sha=`sha384sum ${seg} | cut -f1 -d ' ' | sed 's/../& /g'`

echo ===================================================
echo Expected hash:
echo
echo ${sha} | fold -w48
echo ===================================================
echo
hexdump -C ${hash} | grep -A4 "`echo ${sha} | cut -f1-4 -d ' '`"


Change-Id: If57ba0cc9a4f08b69d7712f27c215339307e73d4
Signed-off-by: Varadarajan Narayanan <vnarayan@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88148
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-26 16:56:14 +00:00
Sasirekaa Madhesu
6a02f2d4a7 util/qualcomm: Add script to concatenate ELF images
The PBL of QCOM X1P42100 SoC loads image in multi ELF format, which is
a concatenation of TME SEQ, TME FW, QC-SEC and Bootblock binaries.
This script stitches the binaries together into multi ELF image.

Usage: create_multielf.py [-h] -f IN_FILES [-o [OUT_FILE]]
Example: python create_multielf.py -f image1,image2,image3 -o output.bin

Change-Id: I9cdbdf6b5c62663491ccd7d42ab270742760aa0b
Signed-off-by: Sasirekaa Madhesu <smadhesu@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88145
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-26 14:30:49 +00:00
Kun Liu
3a0b6f625a mb/google/trulo/var/pujjocento: Enable WiFi SAR table
Enable WiFi SAR table for pujjocento.

BUG=b:409254508
BRANCH=none
TEST=emerge-nissa coreboot chromeos-bootimage,wifi.SetTXPower test pass.

Change-Id: Icafe49b7ff1e2ad867412bdec41362f8cbb87e48
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88172
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-26 14:30:40 +00:00
Luca Lai
64a79d23e8 mb/trulo/var/pujjoquince: Add SD card function
1. This change is based on the fact that the code for the pujjolo
and pujjoquince projects is shared.
2. Add SD card function and use proto board to verify the
functionality.

Schematic version: 500E_S3A0_TWL_MB_FVT_20250527

BUG=b:395763555
BRANCH=none
TEST=Boot to OS and verify the mmcblk0 shown which use lsblk
command, and check if sd card could store file in desktop.

Change-Id: Ib7f854d9c902ba3f257d154ae6b95ea443fa78f5
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88184
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-26 14:30:28 +00:00
Pranava Y N
b726a9c7e9 mb/google/fatcat: Create new fatcatite4es variant
This new variant will support PTL pre-production silicon. The existing
`fatcatite` variant will support production silicon.

BUG=b:424355826
TEST=Able to build google/fatcatite4es.

Change-Id: I9c51c1720a354f80edcf8c8ef75bd564dd6a5b5d
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88128
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-26 14:30:09 +00:00
Pranava Y N
e7984f39eb mb/google/fatcat: Create new fatcatnuvo4es variant
This new variant will support PTL pre-production silicon. The existing
`fatcatnuvo` variant will support production silicon.

BUG=b:424355826
TEST=Able to build google/fatcatnuvo4es.

Change-Id: I079f9bbf0be9c3149b3f583102bec32f328ab44d
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88129
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-26 14:30:04 +00:00
Pranava Y N
cdf0c76dc8 mb/google/fatcat: Create new fatcat4es variant
This new variant created will support PTL pre-production silicon. The
existing `fatcat` variant will support production silicon.

BUG=b:424355826
TEST=Able to build google/fatcat4es.

Change-Id: I0f925a73a42aaf6d3ae6980169d912374b12d8ae
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88171
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-26 14:29:58 +00:00
Bora Guvendik
8e5bdde028 mb/intel/ptlrvp: Add support for H58G66BK7BX067 memory
This commit introduces support for the H58G66BK7BX067 memory module
within the Intel PTLRVP mainboard variant. The changes include updates
to several configuration files to recognize and utilize this specific
memory module. The SPD source files and DRAM ID assignments have been
updated accordingly to integrate the new memory module into the build
system. This addition ensures compatibility and functionality with
the H58G66BK7BX067 memory module, allowing for expanded hardware
support and flexibility in memory configurations.

BUG=none
TEST=Build and verify memory module detection and initialization
on supported hardware configuration.

Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Change-Id: Ic281125dd40bbcef50d138e912e7557d6552eb9f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88177
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-26 14:29:42 +00:00
David Wu
110aebb4d2 mb/google/nissa/var/riven: Add focaltech touchscreen support
This change adds the necessary configuration for the focaltech
touchscreen (FTSC1000) device, connected to I2C bus 38.

It includes settings for:
* HID descriptor
* Device description
* IRQ configuration
* Detection
* Reset and enable GPIOs with their respective delays
* Power resource handling
* HID descriptor register offset

Datasheet: FT8112_Data_Sheet_V0.2_HKC20240415.pdf

BUG=b:426038745
TEST=emerge-nissa coreboot and focaltech touchscreen can work well.

Change-Id: I478924fbebf2a5ecd60bad48b37bfa6581100601
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88174
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-06-26 14:29:34 +00:00
Jincheng Li
bc8876d56d Revert "soc/intel/xeon_sp/uncore.c: mark TSEG/SMM region as reserved"
This reverts commit 2e495b09d5.

Reason for revert: mmio_tseg is reserved twice in
mc_add_dram_resources, where the duplication is introduced by
commit 43b0ed7089 ("soc/intel/xeon_sp: Improve final MTRR solution")

Change-Id: I0f1bf757d8d1fc449e4efc0ec171c6f982f79e9e
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88165
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-06-26 14:29:19 +00:00
David Wu
64d4888349 mb/google/dedede/var/magolor: Generate SPD ID for CXMT CXDB4CBAM-ML-A
Add support for the new memory CXMT CXDB4CBAM-ML-A.

BUG=b:427090130
TEST=Use part_id_gen to generate related settings

Change-Id: I176fb49c17379fcf454f5a4d3ab4b057b50d34ce
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88167
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-26 14:29:01 +00:00
Shon Wang
cc116e08aa mb/google/nissa/var/quandiso: Add touchscreen FTSC1000 support
New Touchscreen function for Quandiso project.
Touchscreen panel: HKO RB116AS01-4
Datasheet : Product%20Spec_RB116AS01-4_ver1.0.pdf

BUG=b:424332291
BRANCH=firmware-nissa-15217.B
TEST=1. emerge-nissa coreboot chromeos-bootimage
     2. Confirm command evtest and touchscreen function is workable.

Change-Id: I6b1f9929fc63c056d7714c9ed67bcaffeebdab8b
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88064
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-06-26 14:28:51 +00:00
Maximilian Brune
35648dc37b acpi: Add _func suffix for callback functions
It causes some name clashes (and therefore overshadowing) of function
names defined in xeon SOC code in later patches of the patch train.

We don't really have a standard naming scheme for callback functions, so
I just added a _func suffix/postfix to indicate the function is a
callback function and to prevent name clashes.

Change-Id: I21811f75ef6e7642a7e4f69997737cd7b8b1cef9
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88033
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Anand Vaikar <a.vaikar2021@gmail.com>
2025-06-26 14:28:34 +00:00
Yidi Lin
03be570994 mb/google/rauru: Remove unused get_oled_description
get_oled_description is a wrong function declaration. Remove
get_oled_description function declaration and include soc/display.h
for get_active_panel.

Change-Id: Id321882d5b4b00f4114ef7282d13af9003019f62
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88139
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-26 12:49:10 +00:00
Vince Liu
cc0a410ff5 soc/mediatek/dp: Correct eDP register settings for dptx_v2
SoCs with dptx_v2 (such as MT8196) use a different eDP MAC design from
old SoCs with dptx_v1. The formulas for register calculation are
different:
- The horizontal blanking (REG_3160_DP_ENCODER0_P0) is hsync + hbp + hfp
on MT8196, while on older SoCs it is hsync + hbp.
- The vertical blanking (REG_3174_DP_ENCODER0_P0) is vsync + vbp + vfp
on MT8196, but vsync + vbp on earlier SoCs.
The current formula for MT8196 only works correctly when ha/va are
multiples of 4 and hfp/vfp are 0. The new formula fixes display errors
at resolutions like 1366x768 (ha=1366, hfp=48).
To distinguish these differences, an edp_version parameter is added.

Also update the following settings for correct configuration:
- Set AUX_RX_UI_CNT_THR_AUX_FOR_26M to 14 to correct the previous
incorrect setting.
- Fix DVO_TGEN_H1 calculation for the case where ha is not a multiple
of 4 (such as 1366).

BUG=b:400886838
BRANCH=rauru
TEST=Check the display function on Navi

Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Id0ae6845ce6a06cdcbc3dd9b1f8a63e2890c3b24
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88188
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-26 12:06:58 +00:00
Nick Vaccaro
056405a10d mb/google/ocelot: convert variants for use with ES silicon
The Ocelot variants must support ES silicon as well as QS silicon.  This
CL changes ocelot to ocelot4es, changes ocelotite to ocelotite4es, and
changes ocelotmchp to ocelotmchp4es.

BUG=b:425397790
TEST=`emerge-ocelot` and verify it builds without errors.

Change-Id: Iac0700688e7f616477bf462c5734a70110f9d6d7
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88134
Reviewed-by: Avi Uday <aviuday@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-25 16:50:36 +00:00
Vince Liu
4ef51ffbd7 mb/google/skywalker: Add panel driver in mainboard
Add panel driver in mainboard for skywalker project.

BUG=b:400886838,b:425272330
BRANCH=none
TEST=check edp training pass and show log:
EQ training pass

Change-Id: I7352a6728237842a6819b7129c61a1d4c7646fcb
Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88170
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-25 07:54:02 +00:00
Vince Liu
cdb49c4d2e soc/mediatek/mt8189: Add ddp driver to support eDP output
Add DDP (display controller) driver that supports main path to eDP
panel. The output goes to display interface DSI.

BUG=b:400886838
BRANCH=none
TEST=Build pass and firmware display ok

Signed-off-by: Xiandong Wang <xiandong.wang@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Id6c942fc60d7fdd21981198dbd416acb235f6b27
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88169
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-25 07:53:54 +00:00
Vince Liu
d8fc5eba2d soc/mediatek/mt8189: Add eDP driver
Based on the dptx_v2 common driver, add eDP driver to adjust training
flow and turn off PHY power before PHY configuration to prevent
potential link training failures. Also correct the DISP_DVO0 address
since the initial value is not thoroughly checked during early bring-up.

DISP_DVO is a highly advanced variant of DP_INTF block for eDP or HDMI
or simply digital video output. DISP represents "display", while DVO is
the abbreviation of "digital video output". This version of DISP_DVO is
mainly designed for eDP1.5 protocol.

BUG=b:400886838,b:422095960
BRANCH=none
TEST=Check the display function on Skywalker. Check the log for
    "EQ training pass".

Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I59cfdae1d13cf7fb9627a4d534602cb309df3d67
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88168
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-25 07:53:40 +00:00
Irving-CH Lin
cfd0b4dd20 soc/mediatek/mt8189: Change msdcpll default freq to 384MHz
According to the eMMC specification, the maximum allowed source clock
frequency is 200MHz. Currently, a 416MHz source clock is used, which
after division results in 208MHz. This exceeds the spec limit.

Additionally, considering possible frequency fluctuations and desense
issues, 384MHz is a more reasonable and safer value. Limit the source
clock frequency to 384MHz to ensure compliance with the eMMC
specification and improve system stability.

BUG=b:396258620
BRANCH=none
TEST=echo fmeter > /proc/clkdbg ; cat /proc/clkdbg |grep msdcpll
30: fm_msdcpll_ck                : 383500

Signed-off-by: Irving-CH Lin <irving-ch.lin@mediatek.corp-partner.google.com>
Change-Id: I3c704b1200dd89a05476a5b14b75950aead51f30
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88166
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-25 07:53:30 +00:00
Seunghwan Kim
a60c5d205b mb/google/nissa/var/meliks: Initialize display signals on user mode
Meliks uses panel-built-in touch screen, it needs to set panel power
and reset signal to high for touch screen to work.

On user mode, coreboot doesn't initialize graphics since there is no
screen display before OS. So we would add a WA to initialize required
signals on user mode. It takes under 30 ms delay on booting time.

Bugzzy has fixed the same issue, copied the WA code from bugzzy.
- 1106bcce0d: `bugzzy: Initialize display signals on user mode`

Reference: HX83121-A panel specification (Page 60 - 64):
https://drive.google.com/file/d/1Q0wjzHmSOa_r2FwiNe4PtKWmhhacBw4W/view?pli=1&resourcekey=0-pnGgp8yzf68UpyqNE1Caew

BUG=b:412584604, b:398703068
BRANCH=nissa
TEST=Verified touch screen worked with test coreboot without FW splash
     screen. (crrev/c/6647126)

- A part of `cbmem -t` result before this change:
```
 115:finished elog init     914,227 (2,679)
  70:device setup done      915,121 (893)
    ...
1101:jumping to kernel      1,055,074 (9,849)

Total Time: 1,055,039
```

- A part of `cbmem -t` result after this change:
```
 115:finished elog init     911,708 (2,674)
  70:device setup done      936,680 (24,971)
    ...
1101:jumping to kernel      1,073,415 (9,360)

Total Time: 1,073,379
```

Change-Id: I92c7754cfbdf73e84a25b6d45b062ba9cafb04ab
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88107
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-25 02:40:29 +00:00
Subrata Banik
f846ec1e37 mainboard/google/fatcat: Set OEM footer logo bottom margin
Applies a `logo_bottom_margin` of 100 pixels to the `common_soc_config`
for the Fatcat mainboard and its variants (Felino, Francka, Kinmen).
This configures the OEM footer logo to be rendered 100 pixels above
the bottom edge of the screen.

BUG=b:423591644
TEST=Verified OEM footer logo displays 100px above the bottom edge on
google/fatcat builds.

Change-Id: I30a63b6ecccd20380d7f0b402891e286967284c3
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88164
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-25 00:05:15 +00:00
Subrata Banik
97f92d5c69 drivers/intel: Add support for configurable footer logo bottom margin
Introduces logo_bottom_margin to soc_intel_common_config to allow
adjusting the vertical (or horizontal, based on orientation) offset of
the footer logo from the screen edge. This provides flexibility for
OEM branding placement.

BUG=b:423591644
TEST=Able to show OEM splash screen on google/fatcat.

Change-Id: Ie3942d9eee07091286118ac488d1cc85ecc96c4c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88163
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-25 00:05:07 +00:00
Subrata Banik
3e0d8a2f2c mb/google/bluey: Enable 4-byte addressing mode
This patch selects `SPI_FLASH_FORCE_4_BYTE_ADDR_MODE` Kconfig option,
to enable 4-byte addressing for SPI flash devices.

BUG=b:417900125
TEST=Able to build google/bluey.

Change-Id: If7f651c2a59637c12ab07367f2680359446d823d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88093
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-24 06:03:23 +00:00
Subrata Banik
5568bee055 drivers/spi: Support forced 4-byte address mode via 0xB7 command
Many high-capacity SPI flashes (e.g., >16MB) default to 3-byte
addressing and require a specific command to enter 4-byte address mode.

This commit introduces support for sending the
CMD_FORCE_4BYTE_ADDR_MODE (0xB7) command during flash probing. When
Kconfig option `SPI_FLASH_FORCE_4_BYTE_ADDR_MODE` is enabled, this
ensures the flash chip is immediately switched to 4-byte addressing
after power-on.

This addresses issues with flashes like GigaDevice (GD25LQ128D) and
Winbond (W25Q256JWxx) that mandate this command for proper 4-byte
addressing. The new command definition is in `spi_flash_internal.h`.

BUG=b:417900125
TEST=Able to build google/bluey.

Change-Id: I935a0e1d6214d73c8ea487418adc93f016790432
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88156
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-24 06:03:18 +00:00
Nicholas Chin
a66d2d41f5 mb/lenovo/m900/devicetree.cb: Use OC6 enum
Commit 0e5d1d29bd ("soc/intel/skylake: Expand USB OC pins enum to
OC7") added the missing OC6 and OC7 enums for PCH-H, so use those
instead of a bare integer to map USB2 ports 10 and 11 to overcurrent
pin 6.

TEST=Timeless build did not change

Change-Id: I3680fae39e96783e4434b36a8dfd751888541cbb
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88160
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-24 04:32:54 +00:00
Angel Pons
f14880934b Haswell NRI: Use final timings after basic training
For "basic" (initial) memory training, we use larger-than-usual timings
for a few things, namely tCMD and tXP. After basic training is done, we
can switch to the final timings for the training steps that follow (not
many at the moment). Without this, NRI keeps using the training timings
at all times, which results in slightly lower performance (likely to go
unnoticed unless benchmarking the system).

Tested on Asrock B85M Pro4, still boots to Arch Linux.

Change-Id: I625f35adb02b36b1087cd758f983118d0a60b815
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87831
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-06-24 04:27:29 +00:00
Nicholas Chin
0e5d1d29bd soc/intel/skylake: Expand USB OC pins enum to OC7
Currently, the overcurrent pin enum is only defined up to OC5. However,
PCH-H chips support up to OC7 according to the 100 and 200 Series PCH
datasheets [1][2].

[1] Intel document 332690
[2] Intel document 335192

Change-Id: Ie35612eeaed2196caccc514429c7d80f84cf09a8
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88159
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-24 04:25:53 +00:00
wu.garen
1f28803dcd mb/trulo/var/kaladin: Create kaladin variant
Create the kaladin variant of trulo reference board by copying the
template files to a new directory named for the variant.

Due to new_variant.py limitation that repo can no longer be used in
inside, created this CL manually following google suggestion.

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

Change-Id: Ib0cbe8c4c0d988aec1bab0f272d1abd532cbc54f
Signed-off-by: wu.garen <wu.garen@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88009
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-06-24 04:25:29 +00:00
Hualin Wei
1c2978dba6 mb/google/dedede/var/awasuki: Add ChangXin modules to RAM id table
Add ChangXin CXDB4CBAM-ML-A as id 2, resulting in the list below:

DRAM Part Name                 ID to assign
K4U6E3S4AB-MGCL                0 (0000)
K4UBE3D4AB-MGCL                1 (0001)
MT53E1G32D2NP-046 WT:B         1 (0001)
NT6AP512T32BL-J1               2 (0010)
NT6AP1024F32BL-J1              3 (0011)
CXDB4CBAM-ML-A                 2 (0010)

BUG=422906387
TEST=Use part_id_gen to generate related settings

Change-Id: Ia9c091975cca6442833d374d40e98299ed5f0f0d
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88147
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-06-24 04:24:43 +00:00
Hualin Wei
912161e52d spd/lp4x: Modify parameters of SPD for NT6AP1024F32BL-J1
According to the latest SPD parameters provided by the manufacturer,
combined with the document 8Gb_LPDDR4X_B_Die_component_Datasheet(S).pdf
we correct channelsPerDie, diesPerPackage, ranksPerChannel of SPD
for Nanya NT6AP1024F32BL-J1; merged the parameters into the BIOS and
flashed it into the machine. The machine can boot and read the normal
size of memory.

BUG=b.422906387
TEST=util/spd_tools/bin/spd_gen spd/lp4x/memory_parts.json lp4x
     Use the dmidecode -t memory command to read the size of memory.

Output results:
awasuki-rev2  # dmidecode -t memory
# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.0 present.

Handle 0x000A, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 64 GB
	Error Information Handle: Not Provided
	Number Of Devices: 4

Handle 0x000B, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x000A
	Error Information Handle: Not Provided
	Total Width: 32 bits
	Data Width: 32 bits
	Size: 8 GB
	Form Factor: Unknown
	Set: None
	Locator: Channel-0-DIMM-0
	Bank Locator: BANK 0
	Type: LPDDR4
	Type Detail: Synchronous
	Speed: 2933 MT/s
	Manufacturer: Unknown (b03)
	Serial Number: 00000000
	Asset Tag: Not Specified
	Part Number: NT6AP1024F32BL-J1
	Rank: 2
	Configured Memory Speed: 2933 MT/s
	Minimum Voltage: 0.6 V
	Maximum Voltage: 0.6 V
	Configured Voltage: 0.6 V

Change-Id: I35823ce87b5d8d67894528e4a8781dd91247eb6c
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88146
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-24 04:24:34 +00:00
Maximilian Brune
47f1b798e4 util/amdfwtool/amdfwtool.c: Remove APOB_NV src address check
The current approach has two problems:
- Just because the source address is 0 does not mean it is no
  specifically set. A bunch of mainboards specify their APOB_NV base
  address at 0 in their FMAP files.
- There is no AMD SOC that has support for this binary, but doesn't give
  AMDFWTOOL the base address. It would also not work considering that
  AMD common/block/apob code gets the region from the FMAP.

Therefore just remove the check since no mainboard will ever enter the
else branch.

tested: binary identical for at least 1 mainboard on each SOC
generation.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ic85d6b25c95ab12dbcc72d17158591891dd04e97
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87292
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-24 04:23:59 +00:00
Michał Kopeć
c7fe471482 mb/novacustom/mtl-h/var/dgpu: Add NVIDIA dGPU ASL code
Add ACPI ASL code for the discrete NVIDIA GN21 GPU. Based on
google/brya, but adapted for Meteor Lake and the specific GPU found in
Clevo V5x0TNx.

NVIDIA did not provide us with the required documentation, so this
driver is entirely based on the Brya implementation, and poking Clevo
ACPI from Linux.

Without this patch, the NVIDIA driver would not load at all under
Windows, while Ubuntu would load the driver, but would be unable to
power off the dGPU, causing increased power draw.

TEST=Boot to Windows 11 via MrChromebox uefipayload_2502 and observe
that the NVIDIA Driver loads correctly, that the dGPU powers off when
unused and powers on while needed. Do the same in Ubuntu 24.04 under a
Gnome X11 session.

Change-Id: I9e5715cb4129a005cc9374fd53eaacd7d1a7f68e
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86824
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2025-06-24 04:21:51 +00:00
Michał Żygowski
24d8e6f35e Revert "mb/google/brox: Handle GPI_INT pin lower to GPI_WAKE"
This partially reverts commit 32ebaef73c
("mb/google/brox: Handle GPI_INT pin lower to GPI_WAKE")
as google/brox board has moved away from the PAD_CFG_GPI_INT_SWAPPED
usage. The revert simply removes the PAD_CFG_GPI_INT_SWAPPED solution,
which is not used anywhere anymore.

PAD_CFG0_ROUTE_SWAPPED bit can not be found in any PCH datasheet nor
EDS. Furthermore, the definition conflicts with PAD_CFG0_NAFVWE_ENABLE
bit, which, on the contrary, is defined in the datasheets and PCH EDS.

The conflict results in boards printing:
"GPIO XX doesn't support APIC routing," (where XX is pad number)
for each pad having the NAFVWE bit set.

Currently, none of the boards use PAD_CFG0_ROUTE_SWAPPED bit, and due
to the bit field conflict I assume it was mistakenly added.

Change-Id: I71299c9729f294cfafaec02222ef01e96b575740
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87485
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-24 04:21:09 +00:00
Mario Scheithauer
cf7159af64 mb/siemens/mc_ehl3: Limit eMMC speed mode to DDR50
Due to layout restrictions on mc_ehl3, the eMMC interface is limited to
operate in DDR50 mode. The alternative modes SDR104 and SDR50 are not
supported. Limit the capabilities in the eMMC controller to DDR50 mode
only so that the eMMC driver in OS will choose the right mode for
operation even if the attached eMMC card supports higher modes.

BUG=none
TEST=Boot into Linux and check dmesg output for mmc modes

Change-Id: Id84d34e7abd4bf73648d453182345bc2e4676d62
Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88110
Reviewed-by: Uwe Poeche <uwe.poeche@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2025-06-24 04:20:19 +00:00
Seunghwan Kim
68ede7b860 mb/google/nissa/var/meliks: Configure Acoustic noise mitigation
Set slow_slew_rate for VCCIA and VCCGT to SLEW_FAST_8 to improve EE
noise for meliks.

BRANCH=nissa
TEST=built firmware and got pass for EE noise test.

Change-Id: Ie1a9147736e3effa465134854ecd34554bee6906
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88126
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward Doan <edoan@chromium.org>
2025-06-24 04:19:55 +00:00
Jeremy Compostella
ea3cc3231c mb/intel/ptlrvp: Remove power limit constraints
This commit eliminates the power limit constraints initially adopted
from the Fatcat board's codebase. These constraints are tailored for
factory-specific scenarios, which are irrelevant to the Intel Panther
Lake RVP (PTLRVP) board's use case.

Change-Id: I3e4dfe85a2677ad3998fd6c0f9a59fa966587c59
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88132
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 17:04:42 +00:00
Cliff Huang
cae47dfd44 soc/intel/pantherlake: Correct DRHC and SATC in DMAR table
This commit addresses an issue within the DMAR (DMA Remapping) table
configuration for Intel Panther Lake (PTL) SoC. Specifically, it
introduces telemetry support to the DRHC structure. In addition, the
unnecessary Dynamic Platform and Thermal Framework (DPTF) entry is
removed from the SATC structure, aligning with the BIOS Requirements.
For detailed specifications, refer to the 812562 PTL Firmware
Architecture Specification (FAS).

BUG=b:423943431
TEST=Boot Fatcat board to ALOS. Disassemble the DMAR table using 2023+
version of iasl and check the DMAR for the telemetry entry in the DRHC
structure. There should not be a DPTF entry in the SATC structure.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I289f2520e4449a6aa33f53040b6c8f66faa4f2d7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88136
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 16:38:59 +00:00
Jeremy Compostella
e58883aace soc/intel/pantherlake: Refactor VR Fast Vmode I_TRIP threshold settings
A need arose to perform power and performance analysis on various SoC
SKUs with Fast VMode enabled, which the current chipset data structure
does not allow.

This commit refactors the configuration of Fast VMode I_TRIP thresholds
for Voltage Regulator (VR) domains across different power limit
configurations in Pantherlake SoCs. Previously, the I_TRIP threshold
values were statically set for each VR domain, but now they are defined
within a two-dimensional array that considers various power limit
scenarios.

This commit adds the I_TRIP values for different Power Limit SKUs
currently operated on Fatcat devices.

As part of this commit, the following two changes are being undone
because the previous code structure is now incompatible and lacks
purpose:

- commit 4b765fdd98 ("mb/google/fatcat: Disable EnableFastVmode on
  Panther Lake H SoC")

- commit 5d7e2b4c0c ("mb/google/fatcat: Disable VR settings on Panther
  Lake H SoC")

Change-Id: Iff21a9b0b230e08b99e032400cbe0021b8a4af43
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88042
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-23 16:30:12 +00:00
Jeremy Compostella
abbf549558 mb/google/fatcat: Add support for new Panther Lake IDs
This commit introduces support for additional Intel Panther Lake CPU IDs
in the `power_optimized_limits` structure, enhancing compatibility with
newer hardware. It also introduces macros for common power limit values,
streamlining the code and reducing repetition.

Change-Id: I6d7c24441ce6ed78c366f18627c237a2f4984cd5
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88131
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 16:29:58 +00:00
Jamie Ryu
57bffed893 soc/intel/pantherlake: Add new PCI and CPU IDs
This commit adds the relevant IDs to support new Panther Lake (PTL)
System on Chips (SoCs). The CPU profiles are aligned with the matching
definition from Panther Lake Firmware Support Package (FSP) revision
3144.01.

TEST=A Fatcat device with CPUID 0xc06c1 and MCH_ID 0xb003 booted with
     the relevant information printed in corebot logs.
     [DEBUG]  CPU: ID c06c1, Pantherlake B0, ucode: 00000105
     [DEBUG]  MCH: device id b003 (rev 06) is Pantherlake U
     [DEBUG]  PCH: device id e401 (rev 01) is Pantherlake SOC-H SuperSKU
     [DEBUG]  IGD: device id b090 (rev 00) is Pantherlake-U GT2

Change-Id: I66efe51a94edfffc2546817d06a63a9c4b51aa81
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88130
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
2025-06-23 16:29:49 +00:00
Jeremy Compostella
59fce656b1 soc/intel/pantherlake: Enable Thermal Design Current for various SKUs
This commit introduces the configuration and enabling of Thermal Design
Current (TDC) settings for various Panther Lake (PTL) SKUs. TDC values
are essential for managing thermal constraints, specifying the maximum
allowable current for specific Voltage Regulator (VR) domains under
given power limit scenarios. This enhancement provides tailored power
management for different SKUs, extracted from the Power Map Document
(#813278) which the Firmware Support Package (FSP) is not aligned with.

It introduces a new enum `soc_intel_pantherlake_sku` to represent
various SKUs as the current `soc_intel_pantherlake_power_limits` does
not meet the need for TDC settings. `cpuid_to_ptl` is updated to include
SKU mapping.

The VR romstage FSP params function implements logic to read SKU
information based on PCI device ID and CPU TDP, ensuring accurate
configuration.

TEST=FSP logs confirm TDC enablement at the specified values on a Fatcat
     device operating an H12Xe Panther Lake SoC.

Change-Id: I889d5f08b0c75b950e5a30d25d6a370cccd295aa
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88039
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 16:29:42 +00:00
Jeremy Compostella
5a2de49baa soc/intel/cmn/blk/power_limit: Add helper functions to romstage
This commit makes power limit helper functions accessible during
romstage by updating the Makefile to include `power_limit.c` for both
ramstage and romstage.

It also modifies a preprocessor directive to ensure
`variant_update_cpu_power_limits()` is not compiled in romstage as it is
only intended for late-in-the-boot usage and will not compile properly
in romstage.

This change enables power management configuration identification early
in the boot process, allowing for better control over power settings at
this stage.

TEST=Successfully compile the Fatcat board target.

Change-Id: Ibf4d85c71dd8963063ca014d151438b68ea918db
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88038
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 16:29:33 +00:00
Jeremy Compostella
2207a4b59a vc/intel/fsp/fsp2_0/pantherlake: Add TDC current limit configuration
This commit exposes the Thermal Design Current (TDC) limit in the
FSP_M_CONFIG structure. The TDC Current Limit is defined in 1/8A
increments. This allows for more precise control over the thermal design
current settings, enhancing power management capabilities.

Change-Id: Ie35611d5cdc14114542ac1a61611aa333c4bb1c9
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88037
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
2025-06-23 16:29:08 +00:00
Jeremy Compostella
efa24540b0 drivers/wifi/generic: Implement Bluetooth PRR DSM functions
This commit introduces Bluetooth Device-Specific Methods (DSM)
"7266172c-220b-4b29-814f-75e4dd26b5fd" functions 5, 6 and 7, enabling
access to the Power Resource for Reset (PRR) mode, status and reset
delay. It meets the DSM requirements listed in Intel Document number
559910. The Power Resource Advanced Configuration and Power
Interface (ACPI) code was adapted from Panther Lake (PTL) Firmware
Support Package (FSP) revision 3144.01 (IntelBtDsmFunc5.asl,
IntelBtDsmFunc6.asl and IntelBtDsmFunc7.asl).

TEST=The following sequence of acpidbg commands was used to verify
     functions 5, 6 and 7 behavior on a Fatcat device.
     acpidbg -b "evaluate \_SB.PCI0.CNVB._DSM \
           (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
           0 6 0" # Get PRR mode and status: [0x0 0x0]
     acpidbg -b "evaluate \_SB.PCI0.CNVB._DSM \
           (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
           0 5 (01 00 01 00)" # Set PRR mode (type) to 0x1
     acpidbg -b "evaluate \_SB.PCI0.CNVB._DSM \
           (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
           0 6 0" # Get PRR mode and status: [0x1 0x0]
     acpidbg -b 'evaluate \_SB.PCI0.CNVB.BTDL' # 0x32
     acpidbg -b "evaluate \_SB.PCI0.CNVB._DSM \
           (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
           0 7 60"
     acpidbg -b 'evaluate \_SB.PCI0.CNVB.BTDL' # 0x3C

Change-Id: I3b0a77f3c2b7bec5dcb909a1266c7d5f4d5a8d1e
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88115
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
2025-06-23 16:21:20 +00:00
Jeremy Compostella
d92b6163e7 drivers/wifi/generic: Implement Wi-Fi PRR DSM functions
This commit introduces Power Resource for Reset (PRR) Device-Specific
Methods (DSM) "7266172c-220b-4b29-814f-75e4dd26b5fd" functions 2 and 5,
enabling access to the Power Resource Reset mode, status and delay. It
meets the DSM requirements listed in Intel Document number 559910. The
Power Resource Advanced Configuration and Power Interface (ACPI) code
was adapted from Panther Lake (PTL) Firmware Support Package (FSP)
revision 3144.01 (IntelWifiDsmFunc2.asl and IntelWifiDsmFunc5.dsl).

TEST=The following sequence of acpidbg commands was used to verify
     functions 2 and 5 behavior on a Fatcat device.
     acpidbg -b "evaluate \_SB.PCI0.CNVW._DSM \
             (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
             0 2 (01 00 00 00)" # Get PRR mode (type): 0x0
     acpidbg -b "evaluate \_SB.PCI0.CNVW._DSM \
             (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
             0 2 (02 00 01 00)" # Set PRR mode (type) to 0x1
     acpidbg -b "evaluate \_SB.PCI0.CNVW._DSM \
             (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
             0 2 (01 00 00 00)" # Get PRR mode (type): 0x1
     acpidbg -b "evaluate \_SB.PCI0.CNVW._DSM \
             (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
             0 2 (03 00 00 00)" # Get PRR status: 0x0
     acpidbg -b "evaluate \_SB.PCI0.CNVW.CNVP._RST"
     acpidbg -b "evaluate \_SB.PCI0.CNVW._DSM \
             (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
             0 2 (03 00 00 00)" # Get PRR status: 0x2
     acpidbg -b 'evaluate \_SB.PCI0.CNVW.WFDL' # 0x32
     acpidbg -b "evaluate \_SB.PCI0.CNVW._DSM \
           (2c 17 66 72 0b 22 29 4b 81 4f 75 e4 dd 26 b5 fd) \
           0 5 60"
     acpidbg -b 'evaluate \_SB.PCI0.CNVW.WFDL' # 0x3C

Change-Id: I6b9d3b2d407d458a94cc2a1695c84f5dc00f9d1a
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88114
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 16:21:14 +00:00
Jeremy Compostella
81d7bc386e soc/intel/cmn/blk/cnvi: Set WFDL default value to 50 ms
The previous default value of 10 milliseconds is being updated to 50
milliseconds to comply with the latest guidelines (Panther Lake FSP
release 3144.01 CnviWifi.asl file).

TEST=Invoke the following set of acpidbg commands to verify that the
     _RST method still reaches state 2.
     acpidbg -b 'evaluate \_SB.PCI0.CNVW.PRRS' # 0x0
     acpidbg -b 'set N  \_SB.PCI0.CNVW.RSTT 1'
     acpidbg -b 'evaluate \_SB.PCI0.CNVW.CNVP._RST'
     acpidbg -b 'evaluate \_SB.PCI0.CNVW.PRRS' # 0x2

Change-Id: I2b0236c17117d368c1ee98e56c4c1b6525d63e27
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88135
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
2025-06-23 16:21:07 +00:00
Jeremy Compostella
1be1ccb42e soc/intel/cmn/blk/cnvi: Use WFDL field for Wi-Fi PLDR reset delay
Introduce a new ACPI field, "WFDL", to specify the Power Level Device
Reset (PLDR) delay for Wi-Fi operations. This replaces the previously
hardcoded delay value, allowing for easier adjustment and configuration
of the PLDR timing in the future. By utilizing a named field, this
change facilitates potential updates to delay configurations.

Change-Id: I0f243ccf404afb83554136a3a310a98d6100d8ff
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88116
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
2025-06-23 16:21:01 +00:00
Jeremy Compostella
ff46501d6d soc/intel/cmn/blk/cnvi: Correct generated ACPI code in comments
Align the ACPI code comments with the actual generated code for Wi-Fi
power resource management. This change enhances the maintainability and
readability of the code by ensuring that comments accurately reflect the
runtime SSDT code.

Change-Id: Ie33c716305251356a462b086fa8c61ec8d16c3cb
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88112
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-23 16:20:55 +00:00
Jeremy Compostella
782ae11bc7 soc/intel/cmn/blk/cnvi: Add _PRR method for Bluetooth CNVi Reset
The change introduces new Advanced Configuration and Power Interface
(ACPI) methods to handle Bluetooth device states, including status
checks and device reset procedures. Specifically, it adds a Power
Resource for Reset (_PRR) method and the associated power resources to
enable Operating System (OS)-level resets for Connectivity Integrated
(CNVi) Bluetooth devices as specified in Intel document
number 559910. This allows the OS to perform Bluetooth hardware recovery
in case of errors, ensuring compliance with Intel's standards. The Power
Resource ACPI code was adapted from Panther Lake (PTL) Firmware Support
Package (FSP) revision 3144.01.

The new ACPI Bluetooth code introduces the CNMT mutex, similar to the
USB Bluetooth ACPI code, to avoid simultaneous CNVi resets when
executing Wi-Fi and Bluetooth power resource _RST methods.

TEST=The following two use cases were verified using acpidbg on a Fatcat
     device.
     1. Test CNVi Bluetooth _RST() completion.
        acpidbg -b 'evaluate \_SB.PCI0.CNVB.PRRS' # 0x0
        acpidbg -b 'evaluate \_SB.PCI0.CNVB.RSTT' # 0x0
        acpidbg -b 'set N \_SB.PCI0.CNVB.RSTT 1'  # 0x1
        acpidbg -b 'evaluate \_SB.PCI0.CNVB.CNVP._RST'
        acpidbg -b 'evaluate \_SB.PCI0.CNVB.PRRS' # 0x2
     2. Test that CNVi Wi-Fi _RST calls CNVi Bluetooth CFLR method.
        acpidbg -b 'evaluate \_SB.PCI0.CNVB.PRRS' # 0x0
        acpidbg -b 'evaluate \_SB.PCI0.CNVW.RSTT' # 0x0
        acpidbg -b 'set N \_SB.PCI0.CNVW.RSTT 1'  # 0x0
        acpidbg -b 'evaluate \_SB.PCI0.CNVW.CNVP._RST'
        acpidbg -b 'evaluate \_SB.PCI0.CNVB.PRRS' # 0x1

Change-Id: I2389901faf4fad131bb7226e356b47f4b1a4ddac
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88111
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-23 16:20:50 +00:00
Tony Huang
23f5df6eae mb/google/nissa/var/yavilla: Add H58G66CK8BX147 to RAM ID table
DRAM Part Name                 ID to assign
H58G66CK8BX147                 1 (0001)

Yavilla use three memory strap pins for RAM_ID definition and it's consumed.
Since the MT62F1G32D4DR-031 WT:B was never used so it's safe to remove.
This CL make the H58G66CK8BX147 to set for RAM_ID1.

BUG=b:425545256
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I9df2710ceb77e4ace6de8976adc1285ef9784c03
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88121
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 02:11:53 +00:00
Subrata Banik
4a2c61a8a0 soc/qc/x1p42100: Allow building QC platform without upstream blobs
Qualcomm's latest SoC, the x1p42100, lacks upstreamed blobs. This
prevents coreboot builds because the default setting marks
CONFIG_USE_QC_BLOBS=y. As a result, build errors occur when the new
Qualcomm SoC blobs aren't in the upstream.

This change introduces `QC_BLOBS_UPSTREAM` Kconfig and set to default
`N` to build QC platform without relying on upstream blob support.
This is necessary for bringing up a new QC SoC-based platform, as
public QC blobs won't be available until later in the year. This
ensures that early QC development can proceed for QC SoC based
without depending on upstream blobs.

Override this Kconfig when QC blobs are available in upstream for
latest X1P42100 SoC.

TEST=Able to build google/bluey.

Change-Id: I04fde6e8917fb3f88c58eb2b55b47de1c2d33518
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88137
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-23 02:06:14 +00:00
Subrata Banik
2a09db3c29 drivers/intel: Refactor logo rendering with helper functions
This commit refactors the `soc_load_logo_by_coreboot()` function by
extracting common logo rendering logic into a new helper function:
`render_logo_to_framebuffer()`.

The `render_logo_to_framebuffer()` helper is responsible for:
- Loading the BMP image (by type).
- Checking the image size.
- Converting the BMP to GOP BLT format.
- Calculating the appropriate logo coordinates based on vertical
  or horizontal alignment, considering panel orientation for the
  footer logo.
- Copying the logo data to the framebuffer.
- Releasing the allocated logo buffer.

This refactoring significantly reduces code duplication within
`soc_load_logo_by_coreboot()`, making it more concise and readable.
It also centralizes the logo rendering process, improving
maintainability and simplifying future modifications.

The `soc_load_logo_by_coreboot()` function now focuses on
higher-level orchestration: graphics info initialization, MTRR
setup, panel orientation adjustment, and sequential calls to
`render_logo_to_framebuffer()` for the main and optional footer logos.
Error handling for MTRR and logo rendering failures is streamlined
with a `cleanup` goto label.

BUG=b:423591644
TEST=Able to show OEM splash screen on google/fatcat at center of the
screen.

Change-Id: I10f84fd1c2081efcf787d00ab7cfc6bb24feca21
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88032
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 02:05:23 +00:00
Subrata Banik
57d29ebd74 vc/google/chromeos: Don't pack cb_plus_logo.bmp if footer is present
When a ChromeOS device has `SPLASH_SCREEN_FOOTER` Kconfig enabled and
provides a logo path for an OEM-defined boot splash logo in the footer,
it indicates that the device doesn't need to render
`cb_plus_logo.bmp` logo (hence, avoid packing this bitmap for platforms
that select `SPLASH_SCREEN_FOOTER` Kconfig).

In such cases, only the main OEM logo should be displayed at the center
of the splash screen along with custom bitmap at footer of the splash
screen.

BUG=b:423591644
TEST=Able to show OEM splash screen on google/fatcat.

Change-Id: Ie5085babe2f8373058ce1aa18b7071260f2aef7f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88099
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 02:05:15 +00:00
Subrata Banik
ef051256dc mainboard/google/fatcat: Drop logo_valignment selection
This commit removes the explicit `logo_valignment` setting from the
`common_soc_config` for all Fatcat mainboard variants (fatcat, felino,
francka, and kinmen).

The default vertical alignment for the splash screen logo is
`FW_SPLASH_VALIGNMENT_CENTER`, which is the desired behavior for these
boards (in presence of footer logo).

BUG=b:423591644
TEST=Able to show OEM splash screen on google/fatcat at center of the
screen.

Change-Id: I3a9e86a928cdd76f13157eff2a29f209167613a8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88031
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-06-23 02:05:05 +00:00
Subrata Banik
dfeaead9f2 drivers/intel: Add horizontal logo alignment for splash screen
This commit adds horizontal alignment support for splash screen
logos into the existing helper function `calculate_logo_coordinates()`.
Updated helper function determines the X-coordinate for
logo placement based on specified horizontal alignment (left, right,
or center).

The `soc_load_logo_by_coreboot()` function is updated to utilize this
helper for footer logo placement when the panel orientation is
rotated (`LB_FB_ORIENTATION_RIGHT_UP`, `LB_FB_ORIENTATION_LEFT_UP`,
or `LB_FB_ORIENTATION_BOTTOM_UP`).

A new enum, `fw_splash_horizontal_alignment`, is defined in
`intelblocks/cfg.h` to explicitly represent these horizontal alignment
options, complete with descriptive comments and ASCII art.

This enhancement provides greater flexibility in positioning splash
screen elements, especially useful for rotated displays (for the footer
firmware splash screen).

BUG=b:423591644
TEST=Able to rotate the firmware splash screen (including footer logo)
while using portrait panel.

Change-Id: I23ae6d06e1df9cad1b2907a5c02b619dc831d468
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88030
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 02:04:57 +00:00
Subrata Banik
ced9f91ae9 soc/intel/cmn: Improve comments for fw_splash_vertical_alignment enum
This commit refines the comments for the fw_splash_vertical_alignment
enum members in src/soc/intel/common/block/include/intelblocks/cfg.h.

The redundant enum member names (e.g., FW_SPLASH_VALIGNMENT_CENTER:)
have been removed from the start of each comment block. This makes
the comments cleaner and more direct, focusing on the explanation of
the alignment behavior rather than re-stating the enum member's name.

Change-Id: Ife7a39622df1981adc09db82fecb5adc72d52d8d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88157
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-23 02:04:45 +00:00
Subrata Banik
d309a9dfa8 drivers/intel/fsp2_0: Suppress OEM footer in low-battery mode
This patch modifies the low-battery shutdown logic to bail out early
when the system is in a low-power state. This prevents the display of
the OEM footer logo, ensuring power conservation and avoiding
unnecessary rendering alongside the low-battery icon.

BUG=b:423591644
TEST=Boot platform with `CONFIG(USE_COREBOOT_FOR_BMP_RENDERING)`
    and low battery. Verify splash appears before shutdown w/o OEM
    footer logo.

Change-Id: Ie9a23c0fe9d6b7d314cf4bbe8a8a90eb5689568e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88015
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-23 02:04:36 +00:00
Subrata Banik
4373eea5d8 {lib, drivers/intel}: Add splash screen footer
This commit introduces the `SPLASH_SCREEN_FOOTER` Kconfig option,
enabling a custom footer image or logo on the firmware splash screen.
This provides an additional branding opportunity for device
manufacturers.

`soc_load_logo_by_coreboot()` now conditionally loads and renders
`footer_logo.bmp` when this option is enabled. The footer logo is
positioned at the bottom of the screen.

A new `SPLASH_SCREEN_FOOTER_LOGO_PATH` Kconfig option is added to
define the footer logo's file path. It defaults to a mainboard-specific
location. `Makefile.mk` is updated to ensure this logo is included in
the CBFS.

This additional branding is made possible by rendering bitmaps using
coreboot's native implementation (`USE_COREBOOT_FOR_BMP_RENDERING`).
FSP currently lacks the necessary callbacks to support this feature.

Currently, the OEM footer branding will appear even when the
system is booting in low-battery mode. A planned update will fix this
by exiting early from the boot process, preventing the footer from
showing and conserving power.

BUG=b:423591644
TEST=Able to display custom footer logo on boot.

Change-Id: I57f8af910e8b8f56e8a4a88f8cca6d60fad380b6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88029
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-23 02:04:26 +00:00
Subrata Banik
be5609bdaf lib: Introduce a new function bmp_load_logo_by_type()
This patch introduces `bmp_load_logo_by_type()` to allow loading a
specific BMP logo from CBFS based on `enum bootsplash_type`.

Now, bmp_load_logo() leverages bmp_load_logo_by_type() with the
system-determined logo type. The new bmp_load_logo_by_type() function
provides a direct interface to load any specified BMP by `enum
bootsplash_type`, which is beneficial for scenarios requiring explicit
logo selection.

BUG=b:423591644
TEST=Able to build and boot google/fatcat. Ensure FW splash screen looks
proper.

Change-Id: I2473f7d48ca2d196ced89d81391cf387627a2f86
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88013
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 02:04:16 +00:00
Subrata Banik
a1dbb4076c lib: Add support for different bootsplash types
This commit introduces an enumerated type `bootsplash_type` to
differentiate between various bootsplash logos, such as
`BOOTSPLASH_LOW_BATTERY` and `BOOTSPLASH_CENTER`.

A `bootsplash_list` array is added to map these types to their
corresponding default filenames. A new function,
`bmp_get_logo_filename`, is provided to retrieve the correct logo
filename based on the specified bootsplash type. This function also
handles overriding the `BOOTSPLASH_CENTER` logo name if
`CONFIG(HAVE_CUSTOM_BMP_LOGO)` is enabled.

The `bmp_load_logo` function is updated to utilize the new
`bootsplash_type` and `bmp_get_logo_filename` to dynamically select the
appropriate logo for display. This change streamlines logo management
and improves flexibility for different boot scenarios.

BUG=b:423591644
TEST=Able to build and boot google/fatcat. FW splash screen looks
proper.

Change-Id: I882deda56b5d30bb15cc7def408c4ea479ffd6ba
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88052
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-23 02:04:07 +00:00
Subrata Banik
f48865ab9a drivers/intel/fsp2_0: Refactor bitmap loading and GOP BLT conversion
This commit refactors the bitmap handling in the FSP2.0 driver to
enhance flexibility. Previously, `fsp_convert_bmp_to_gop_blt()`
directly called `bmp_load_logo()`, tying it to specific, predefined
bitmaps like low-battery or OEM splash logos. This prevented its
use for dynamic bitmap files (e.g., brand logos) at runtime.

To address this, `fsp_convert_bmp_to_gop_blt()` no longer handles
bitmap loading. Instead, a new unified API,
`fsp_load_and_convert_bmp_to_gop_blt()`, is introduced for scenarios
where FSP needs to load and convert a bitmap in a single step
(e.g., via its entrypoint).

This change makes `fsp_convert_bmp_to_gop_blt()` a generic API capable
of converting any provided bitmap into a BLT buffer. SoC layers
(like Alder Lake, Meteor Lake, Panther Lake) can now explicitly load
bitmaps and then pass them to `fsp_convert_bmp_to_gop_blt()`, or use
the new `fsp_load_and_convert_bmp_to_gop_blt()` for combined
operations.

Before:
- `soc_load_logo_by_coreboot()` -> `fsp_convert_bmp_to_gop_blt()`
      (loads logo internally)
- `soc_load_logo_by_fsp()` -> `fsp_convert_bmp_to_gop_blt()`
      (loads logo internally)

**After:**
- `soc_load_logo_by_coreboot()` -> loads logo
      -> `fsp_convert_bmp_to_gop_blt()`
- `soc_load_logo_by_fsp()` -> `fsp_load_and_convert_bmp_to_gop_blt()`

BUG=b:423591644
TEST=Able to build and boot google/fatcat. FW splash screen looks
proper.

Change-Id: Ia20e8d42bca6f40c4eb652eb69e3fce84409fc35
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88014
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-23 02:03:59 +00:00
Appukuttan V K
f3f9c0bd8e soc/intel/ptl: Add PCIe ACPI support for Wildcat Lake SoC
This commit introduces PCI device details specific to Wildcat Lake
within the Panther Lake ACPI code, using conditional compilation
to differentiate configurations.

Key changes:
 - Create separate ASL files for Panther Lake (`ptl_pcie.asl`) and
   Wildcat Lake (`wcl_pcie.asl`) PCIe port configurations.
 - Introduce conditional compilation to include Panther Lake or
   Wildcat Lake ASL files.
 - Wildcat Lake-specific changes compared to Panther Lake:
       - Remove following
         - PCIe RP : 00:1c.4 to 00:1c.7
                   : 00:06.2 & 00:06.3
References:
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and Fatcat and verify it compiles  without any error.

Change-Id: I7f6c4f80a811c596824734d749b8d1c4864ccb9b
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88109
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-23 02:03:27 +00:00
Brian Hsu
ba715b3d25 mb/google/nissa/var/guren: Add SPD ID for MT62F512M32D2DR-031 WT:B
Support memory of Micron MT62F512M32D2DR-031 WT:B in mem_parts_used list, and generate SPD ID for this part.

DRAM Part Name            Vendor  Model Spec        ID to assign
MT62F512M32D2DR-031 WT:B  Micron  LPDDR5 6400 16GB  3 (0011)

BUG=424688292
BRANCH=firmware-nissa-15217.B
TEST=Run command "go run ./util/spd_tools/src/part_id_gen/part_id_gen.go ADL lp5 src/mainboard/google/brya/variants/guren/memory/ src/mainboard/google/brya/variants/guren/memory/mem_parts_used.txt"

Change-Id: I310e48a8f240646ec631f0cbc8c0ad0b57e26e0d
Signed-off-by: Brian Hsu <Brian_Hsu@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88091
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-21 23:24:32 +00:00
Zhigang Qin
43b6f44e22 soc/mediatek/mt8189: Remove ulposc1 hardware calibration
Skywalker board with MT8189 uses software calibration for ulposc1 (ultra
low power oscillator) and does not support hardware calibration. Remove
the hardware calibration code accordingly.

BUG=b:423516707
BRANCH=none
TEST=build pass and boot up normally.

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: Iea4a0fd8f2c41b54880cef6647e90e0dd1d2bcf1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88151
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-21 10:08:28 +00:00
Vince Liu
f63016c36f soc/mediatek: Unify DPTX swing/preemphasis API
Right now dptx_hal_v2 has defined its own
dptx_hal_phy_set_swing_preemphasis, without utilizing the existing
dptx_hal_setswing_preemphasis defined in dptx_hal_common.h.
dptx_hal_v2.c also implements dptx_hal_setswing_preemphasis, but it's
never used.

To reduce duplicate code, rename dptx_hal_setswing_preemphasis in the
common API to dptx_hal_set_swing_preemphasis, and use it for the
dptx_hal_v2 code. Also fix the type for the `lane_count` argument, and
change variable names to make dptx_hal_v1 and dptx_hal_v2 more
consistent.

BUG=none
TEST=emerge-rauru coreboot
BRANCH=none

Change-Id: Id252d29fd1205a949c903d5560f44efc2ff7f477
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88150
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-21 10:08:02 +00:00
Vince Liu
df91698b11 soc/mediatek/mt8196: Refactor mt8196 eDP driver for better code sharing
Refactor the MT8196 eDP driver to improve code reusability:
- Move common parts of dp_intf.h to dp_intf_v2.h
- Move common parts of dptx_hal.h to dptx_hal_v2.h
- Move common parts of dptx_reg.h to dptx_v2.h
- Extract shared code from dptx.c to dptx_v2.c
- Extract shared code from dptx_hal.c to dptx_hal_v2.c
- Rename dp_intf.c to dp_intf_v2.c

SoC-specific parts remain in its respective .c and .h files.

BUG=b:400886838
BRANCH=none
TEST=Check the display function on Navi

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ia41f62c0f5f7b5a38d7c5650e6f3a06963cc84a7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88149
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-21 10:07:55 +00:00
Elmo Lan
03fca0f0b4 mb/google/brox: Enable support for Realtek EC
Add support for Realtek EC on brox_rtk_ec board.

BUG=b:414474440
TEST=FW_NAME=brox_rtk_ec emerge-brox coreboot chromeos-bootimage
     flash to brox board with realtek rts5915
     Boot normally and got those message from ap console:

[DEBUG]	Google Chrome EC uptime: 107.108 seconds
[DEBUG]	Google Chrome AP resets since EC boot: 2
[DEBUG]	Google Chrome most recent AP reset causes:
[DEBUG]		10.479: 32775 shutdown: entering G3
[DEBUG]		92.102: 8 reset: during EC initialization
[DEBUG]	Google Chrome EC reset flags at last EC boot: watchdog | sysjump
[DEBUG]	PNP: 0c09.0 init finished in 81 msecs

Change-Id: I65eaff78b6260548e8f30051a97ffadb69ec69c9
Signed-off-by: Elmo Lan <elmo_lan@realtek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88122
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-20 17:48:07 +00:00
Elmo Lan
c8eb52c10c ec/google/chromeec: Modify Realtek EC initialization timing
The host must initialize necessary settings before
accessing the Realtek EC via EMI.

BUG=b:414474440
TEST=FW_NAME=brox_rtk_ec emerge-brox coreboot chromeos-bootimage
     flash to brox board with realtek rts5915
     Boot normally and got those message from ap console:

[DEBUG]	Google Chrome EC uptime: 107.108 seconds
[DEBUG]	Google Chrome AP resets since EC boot: 2
[DEBUG]	Google Chrome most recent AP reset causes:
[DEBUG]		10.479: 32775 shutdown: entering G3
[DEBUG]		92.102: 8 reset: during EC initialization
[DEBUG]	Google Chrome EC reset flags at last EC boot: watchdog | sysjump
[DEBUG]	PNP: 0c09.0 init finished in 81 msecs

Change-Id: I85ad210ccd40097dff552f7e72fe712e33cfd95f
Signed-off-by: Elmo Lan <elmo_lan@realtek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88127
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-06-20 17:47:57 +00:00
Tony Huang
e2ac46bcc7 spd/lp5: Add SPD for hynix H58G66CK8BX147
Add H58G66CK8BX147 in the memory_parts.json and re-generate the SPD.

BUG=b:425545256
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: Iab55914d5cc2b188a122d4a1ee4468d0aa759938
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88120
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-20 02:19:53 +00:00
Crystal Guo
812379f500 soc/mediatek/common: Move map_to_lpddr_dram_type() to common for reuse
Relocate map_to_lpddr_dram_type() to the common directory to enable
sharing across MT8189, MT8196, and other SoCs with the same
DRAM_DRAM_TYPE_T values.

BUG=b:417001336
BRANCH=none
TEST=Check boot log
LPDDR5 chan0(x16) rank0: density 16384mbits x16, MF ff rev 0800
LPDDR5 chan0(x16) rank1: density 16384mbits x16, MF ff rev 0800
LPDDR5 chan1(x16) rank0: density 16384mbits x16, MF ff rev 0800
LPDDR5 chan1(x16) rank1: density 16384mbits x16, MF ff rev 0800

Signed-off-by: Crystal Guo <crystal.guo@mediatek.corp-partner.google.com>
Change-Id: I53d70aa26991f89ef05e56f8b7d972f8208d2484
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88123
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-19 15:15:31 +00:00
Vince Liu
7c19b1fa58 mb/google/skywalker: Run MTK FSP binary in ramstage
Load and run mtk_fsp_ramstage.elf in ramstage.

BUG=b:379008996
BRANCH=none
TEST=See coreboot log:
[INFO ]  CBFS: Found 'fallback/mtk_fsp_ramstage' @0x5e8c0 size 0x359
in mcache @0xfffdd298
[INFO ]  _start: MediaTek FSP_RAMSTAGE interface version: 1.0
[INFO ]  [mtk-fsp] RAMSTAGE_SOC_INIT
[INFO ]  _start: status 0
[INFO ]  mtk_fsp_load_and_run: run fallback/mtk_fsp_ramstage at phase
0x50 done

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I1ed5dbeea8fbf08730c5ecc5720b6e1f7677296c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88124
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-19 15:15:20 +00:00
Elyes Haouas
89e4fff2d3 crossgcc/buildgcc: introduce RISCV_ISA_SPEC for RISC-V ISA specification
Add RISCV_ISA_SPEC variable and replace hardcoded “20191213”.

Change-Id: I35c01a01998066dcafbd262cebd2f0c544983fa2
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87433
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-06-19 01:55:23 +00:00
Shon Wang
620c8d9f71 mb/google/brask/var/constitution: Generate RAM ID for B3221XM3BDGVI
Generate RAM ID for Kingston B3221XM3BDGVI

DRAM Part Name                 ID to assign
B3221XM3BDGVI                  2 (0010)

BUG=b:420797833
BRANCH=firmware-brya-14505.B
TEST=emerge-constitution coreboot

Change-Id: Ic4f92cb7d597a877b693906dee23e1b277fcf122
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87883
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
2025-06-18 17:35:51 +00:00
Shon Wang
57b12d2171 spd/lp4x: Generate initial SPD for B3221XM3BDGVI
Generate initial SPD for Kingston B3221XM3BDGVI

BUG=b:420797833
BRANCH=firmware-brya-14505.B
TEST=util/spd_tools/bin/spd_gen spd/lp4x/memory_parts.json lp4x

Change-Id: Id411ace4a6d535fcbe5be5317e0ec7fd0052b82f
Signed-off-by: Shon Wang <shon.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87881
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-18 17:35:15 +00:00
Matt DeVillier
7c0da94aeb mb/google/brya/var/pujjoga: Add and select VBT
Vbt extracted from coreboot-Google_Pujjoga.15217.834.0.bin.
Pujjoga/Pujjogatwin both use same variant dir/same VBT.

TEST=build/boot pujjoga

Change-Id: Ie2054f53563372e9ce7e6692513340a53c35b565
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88094
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-18 03:38:58 +00:00
David Wu
bcd569faf1 mb/google/skywalker: Create variant Baze
Create the variant Baze.

BUG=b:425277682
TEST=emerge-skywalker coreboot
BRANCH=None

Change-Id: Idc37e980d66d7e12ae7a1df9c1806b5f09f0c5fe
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88108
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-17 11:08:44 +00:00
Luca Lai
fb2c834f7c mb/trulo/var/pujjolo: Fix p-sensor function
Because the pujjolo motherboard p-sensor could not recognize, so
I modify the below changes.

1. Update P-sensor I2C bus from 2 to 3.
2. Copy P-sensor parameters from pujjocento.

BUG=b:395763555
BRANCH=none
TEST=Build and verify on pujjolo

    Device list:
    cat /sys/bus/iio/devices/iio\:device0/name
    sx9324

    The value of register 01 when away:
    i2cget -f -y 13 0x28 01
    0x00

    The value of register 01 when approaching:
    i2cget -f -y 13 0x28 01
    0x01

Change-Id: Ia5685ad790949001da7ba793759eb286b8cce1e8
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88104
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-17 10:42:20 +00:00
Luca Lai
a7cd5c8c6b mb/trulo/var/pujjolo: Enable USB3 functions
Enable USB3 related functions like usb-a, wwan, wlan.

BUG=b:395763555
BRANCH=none
TEST=Boot to OS and verify output of lsusb contains:
us 004 Device 002: ID 8564:4100 Transcend Information, Inc. USB3.1 Hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 33f8:01a2 Rolling Wireless S.a.r.l. Rolling RW101R-GL Module
Bus 003 Device 005: ID 093a:2516 Pixart Imaging, Inc. USB OPTICAL MOUSE
Bus 003 Device 004: ID 258a:002a SINO WEALTH Thunderobot KG3089
Bus 003 Device 002: ID 8564:4100 Transcend Information, Inc. USB2.1 Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Change-Id: Ia9cb6a394169530eb660023998dd92d8691a1607
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88062
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-17 10:40:07 +00:00
Luca Lai
2c53151c0c mb/trulo/var/pujjolo: Enable Ax211 wifi function
Add Ax211 wifi card setting to let wifi function work.

BUG=b:395763555
BRANCH=none
TEST=Insert Ax211 wifi card to MB and boot to OS to connect wifi
successfully.

Change-Id: I061ca0ad54bef23861ad8c937cece72902afff47
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88092
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-17 10:39:55 +00:00
Luca Lai
ad78fc535a mb/trulo/var/pujjolo: Add single ram configuration
Pujjolo project is going to have single RAM devices,so add single
ram configuration.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to OS. Verify functions work.

Change-Id: I92b0bd1e05276c170d35ce20508cc6f439104442
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88027
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-06-17 10:39:35 +00:00
Irving-CH Lin
f941b51e0e soc/mediatek/mt8189: Correct MFG MUX OPP init setting
Set the default MFG MUX OPP (Operating Performance Point) from 0
(mfg_sel) to 1 (mfgpll), as mfgpll is used in normal operation and
mfg_sel is only needed during DVFS transitions. Also enable glitch-free
configuration for mfgpll to improve PLL stability.

BUG=b:399571996
BRANCH=none
TEST=Change GPU DVFS by below commands:
echo 880000000 > /sys/devices/platform/soc/13000000.gpu/devfreq/13000000.gpu/min_freq
echo 880000000 > /sys/devices/platform/soc/13000000.gpu/devfreq/13000000.gpu/max_freq
And then check PLL and MUX register values are correct.

Signed-off-by: Irving-CH lin <irving-ch.lin@mediatek.corp-partner.google.com>
Change-Id: I285cc5f07facbb23a448151ceb6c1d037753432c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88090
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-17 07:51:10 +00:00
Kapil Porwal
a1d9b69f47 soc/qc/x1p42100: Add metadata files for shrm and cpucp
Add shrm_meta and cpucp_meta as raw files to the CBFS.

BUG=b:419213272
TEST=Verify presence of metadata files in the CBFS.

Change-Id: If97e2d6395ef108f405a3b66727fb19648ddf03d
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87889
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Varadarajan Narayanan <vnarayan@qualcomm.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-17 03:57:55 +00:00
Kapil Porwal
b369756680 util/qualcomm: Add script to extract a segment from ELF
Create a new script to extract
- ELF header
- Program header table (PHT)
- A given segment number
- Hash table segment with type as NULL and p_flags as 0x02000000
from an ELF.

Usage:

```
elf_segment_extractor.py [--eh] [--pht] [--segment <index>] [--hashtable]  <elf_file> <output_file>
```

BUG=b:419213272
TEST=Extract first segment alongwith ELF header and PHT.
TEST=Extract a segment with an index number.
TEST=Extract the last segment if index is 'N'.
TEST=Extract hash table segment alongwith ELF header and PHT.

e.g.
elf_segment_extractor.py --eh --pht --segment 0 cpucp.elf cpucp_meta
elf_segment_extractor.py --segment 0 cpucp.elf cpucp_meta
elf_segment_extractor.py --segment N cpucp.elf cpucp_meta
elf_segment_extractor.py --eh --pht --hashtable cpucp.elf cpucp_meta

Change-Id: I1ea58d0ca17ad66463ffe7345a27e91dc0d22d2f
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87888
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-17 03:57:49 +00:00
Subrata Banik
19d1604fd7 mb/google/bluey: Update flash layout
This patch updates flash layout for Bluey as below:

WP_RO:  4MB -> 12MB
 |
 |----> bootblock: 120KB -> 512KB
 |
 |----> FMAP: Start offset 0x3c0000 -> Start offset post bootblock
 |
 |----> CBFS: Start offset post bootblock -> Start offset post FMAP
 |
 |----> RO_VPD: Limit size to 16KB

RW_MISC: 128KB -> 120KB

RW_SECTION_A/B: 1536KB -> 1984KB

This patch allows COREBOOT CBFS to grow beyond 3.75MB as per
planned growth in CBFS (inside WP_RO) due to the addition of SoC
firmware binaries.

TEST=Able to build AP FW image for google/bluey.

Change-Id: I2f3b4b44960dfb24287cc62758323b18647bd621
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88069
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-17 03:57:41 +00:00
Simon Yang
b9aae6180b mb/google/nissa/var/meliks: Link touchscreen device with display panel
In some panels, the power supply for the display and the I2C touch
screen comes from the same source. As a result, if the display is not
powered on, the I2C bus will also be unpowered. This leads to a problem
: if the Intel DRM driver has not yet reached the stage where it powers
on the display, the I2C touch screen device integrated into the panel
will remain unpowered as well. A similar issue can also occur after
resuming from s0ix.

In Linux-like systems, the Intel DRM driver and the generic I2C driver
operate independently, so their execution order in the kernel cannot be
guaranteed.

Kernel patchsets link:
https://lore.kernel.org/all/cover.1749199013.git.jani.nikula@intel.com/

Due to the required kernel changes mentioned above, an ACPI device LCD0
needs to be declared under GFX0, and a _DSD declaration must be added
to the I2C touch screen device.

An example that clearly illustrates the required ACPI change:

    Scope (\_SB.PCI0.GFX0)
    {
        ...

        Device (LCD0)
        {
            Name (_STA, 0x0F)  // _STA: Status

            ...
        }
    }

    Scope (\_SB.PCI0.I2C1)
    {
        ....

        Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
        {
            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
            Package (0x02)
            {
                ...

                Package (0x02)
                {
                    "panel",
                    \_SB.PCI0.GFX0.LCD0
                }
            }
        })
    }

BUG=b:398703068
TEST=Extracted SSDT contains a required _DSD entry within the I2C1
touchscreen device scope

Cq-Depend: chromium:6626797
Change-Id: I73058851c35a7190d70a51a554cccf21253fc59b
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87762
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-17 01:57:59 +00:00
Julius Werner
6e58c0148b Reland "libpayload: arm64: Reduce DMA allocator space to 1MB"
This reverts commit 4199351c1b which
originally reverted aedc177f00.

Reason for revert: CB:88063 fixed the bug that this patch exposed.

Change-Id: Ic7a798b4b9236b8c0c7ad8568562d11071ae96a9
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88097
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-17 00:32:56 +00:00
Pranava Y N
f18420b6a9 mb/google/fatcat: Create new felino4es variant
This patch creates a new variant `felino4es`.

The new variant will support PTL ES1 samples. This existing `felino`
variant will support ES2 and QS samples.

BUG=b:424355826
TEST=Able to build google/felino4es

Change-Id: I9da7ad9fcdd4467d5b7ab5c31ffba6f3c8b3a943
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88096
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-16 15:19:21 +00:00
Pranava Y N
992ba78142 mb/google/fatcat: Create felino model for easier variant integration
This patch creates a felino model Kconfig `BOARD_GOOGLE_MODEL_FELINO`
so that different variants can easily select the configs without any
duplication.

This change is made to support `felino` and `felino4es` variants.

BUG=b:424355826
TEST=Able to build google/felino

Change-Id: I38d72eada28734ed26427dbd85ab603cddab258c
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88095
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-16 15:19:15 +00:00
Luca Lai
afbc9126f9 mb/trulo/var/pujjolo: Update GPIOs and probe SD card to fix S0ix suspend
Now we face the suspend could not enter s0ix issue.
So according to the schematics 627075_TWL PCH GPIO_Pujjolo_1th version
_20250527.xlsx to change gpio setting and hook up the SD card reader
via fwconfig to fix the issue.

Change :
1. gpio GPP_D8(SD_CLKREQ_ODL) to native function 1
2. add probe sd card.

BUG=b:422600523
BRANCH=none
TEST=Build and boot to OS. Verify powerd_dbus_suspend could enter S0ix

Change-Id: Iaa5a653608316ca8cb1e34429d30a2ebfdf7a1e9
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88050
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-16 15:18:40 +00:00
Matt DeVillier
b3b1809764 mb/google/octopus: Correct channel count for DMIC
These boards only have 2 DMIC physically connected, and attempting to
record from 4 channels vs 2 results in a large amount of background
noise which drowns out the recording. Selecting the 2 channel DMIC
shows audio on both channels and no noise.

TEST=build/boot octopus variants, test built-in mic under Windows
and Linux.

Change-Id: I70c4b3a8f1ece16cb1c134c6b4c786eb4a685bc5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88083
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-16 10:38:51 +00:00
Matt DeVillier
9accaa7238 mb/google/poppy: Correct channel count for DMIC
These boards only have 2 DMIC physically connected, and attempting to
record from 4 channels vs 2 results in a large amount of background
noise which drowns out the recording. Selecting the 2 channel DMIC
shows audio on both channels and no noise.

TEST=build/boot poppy variants, test built-in mic under Windows
and Linux.

Change-Id: I30d97fa1a25e8cefe05cedac5176bb74dad7f318
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88082
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-16 10:38:47 +00:00
Matt DeVillier
41e09a5c59 mb/google/fizz/var/karma: Correct channel count for DMIC
This board only has 2 DMIC physically connected, and attempting to
record from 4 channels vs 2 results in a large amount of background
noise which drowns out the recording. Selecting the 2 channel DMIC
shows audio on both channels and no noise.

TEST=build/boot fizz/karma, test built-in mic under Windows and Linux.

Change-Id: I48162ff25d8c7f413e651c07a7f8e9604bee224c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88081
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-16 10:38:43 +00:00
Matt DeVillier
fed7ad967a mb/google/reef: Correct channel count for DMIC
These boards only have 2 DMIC physically connected, and attempting to
record from 4 channels vs 2 results in a large amount of background
noise which drowns out the recording. Selecting the 2 channel DMIC
shows audio on both channels and no noise.

TEST=build/boot reef variants, test built-in mic under Windows
and Linux.

Change-Id: Ie7c422f4bd205b0388ee8efea7cf4f3cfa83ef05
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88080
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-16 10:38:39 +00:00
Matt DeVillier
686dea9883 mb/google/glados: Correct channel count for DMIC
These boards only have 2 DMIC physically connected, and attempting to
record from 4 channels vs 2 results in a large amount of background
noise which drowns out the recording. Selecting the 2 channel DMIC
shows audio on both channels and no noise.

TEST=build/boot glados variants, test built-in mic under Windows
and Linux.

Change-Id: I68b7d1425c18d070dd75bc42d40ee30701f9704a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88079
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-16 10:38:34 +00:00
Jeremy Compostella
ea6f150d9d soc/intel/cmd/blk/cnvi: Correct conditional logic for CNVI readiness
This commit fixes a bug in the conditional logic for determining
Connectivity Integrated (CNVi) readiness in the `cnvw_fill_ssdt()`
function. The comparison previously checked if `LOCAL3_OP` was equal to
`1`, but it should instead verify if `LOCAL3_OP` equals
`CNVI_READY`. This adjustment ensures the accurate assessment of CNVI's
readiness state.

TEST=Running the following "acpidbg -b 'set N \_SB.PCI0.CNVW.RSTT 1'",
     "acpidbg -b 'evaluate \_SB.PCI0.CNVW.CNVP._RST'" and "acpidbg -b
     'evaluate \_SB.PCI0.CNVW.PRRS'" commands result in PRRS being read
     as 2 (expected) instead of 1.

Change-Id: Ia6db833f3118e6975298aff4bd7c40657e4fcff7
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88088
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-16 10:37:53 +00:00
Jeremy Compostella
29dd511628 soc/intel: Move CNVI sideband definitions to SoC-specific files
The Connectivity Integrated (CNVi) sideband port ID or Platform-Level
Device Reset (PLDR) register are specific to each SoC platform,
necessitating its relocation to respective SoC codebases. This change
enhances maintainability and readability by ensuring the port IDs are
defined within the context of the SoC they pertain to, removing
redundancy and potential misconfigurations across different SoCs.

Change-Id: I6ef1e077b8ffc076b7dc33ea90cc6ea92e819438
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88087
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-16 10:37:49 +00:00
Jeremy Compostella
ea8a3e685f soc/intel/cmn/blk/cnvi: Add descriptive comments for PRRS and RSTT
Enhance the readability and maintainability of the code by adding
detailed comments for the ACPI names "PRRS" and "RSTT" in the
`cnvw_fill_ssdt` function. These comments clarify the possible status
values for "PRRS" and the reset types for "RSTT", aiding developers in
understanding the function's logic and expected behavior.

Change-Id: I94486476cf2f95b8e1744ee369a9d9d6c734bba8
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88086
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-16 10:37:44 +00:00
Jeremy Compostella
d17ace2c1b soc/intel/cmn/blk/cnvi: Remove hardcoded offset in OperationRegion
The commit leverages the \_SB.PCI0.BASE() ACPI method to remove the
hardcoded offset in the definition of the ACPI OperationRegion for CNVI
devices. Instead of using a fixed memory address addition, the code now
dynamically calculates the RegionOffset using the device's base address
(_ADR). This change enhances flexibility and adaptability for different
configurations and devices.

TEST=acpidbg -b 'evaluate \_SB.PCI0.CNVW.VDID' returns 0xE4408086 on a
     Fatcat device.

Change-Id: Ia329aef0291c31862d002cb9bfa35930dab83fe5
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88085
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-16 10:37:39 +00:00
Jeremy Compostella
bb3a484e36 soc/intel/*/acpi: Move the BASE ACPI method to northbridge
The BASE method, previously located within USB Type-C Subsystem (TCSS)
ASL (ACPI Source Language) scope across multiple Intel System on Chip
(SoC) files, has been moved to the northbridge module. This refactoring
allows the BASE method to be utilized beyond the USB Type-C Subsystem
use-case.

The BASE method calculates the PCIe device base address using function
and device numbers.

Note: the BASE method is now under the \SB.PCI0 scope. It used to be
under the \_SB scope while only consumed by devices under the \SB.PCI0
scope.

TEST=On a Fatcat board, we verified that the BASE method returns
     0xE00A3000 for the "./acpidbg -b 'evaluate \_SB.PCI0.BASE
     0x140003'" command. We performed a non-regression test as well on
     the TCSS DMA TDM0 device, which uses the BASE method, by verifying
     that "./acpidbg -b 'evaluate \_SB.PCI0.TDM0.DMAD'" and "./acpidbg
     -b 'evaluate \_SB.PCI0.TDM0.VDID'" return 0x22 and 0xE4338086,
     respectively.

Change-Id: I431206e9f38a2a5695c90d4ae6d823fb231814aa
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88084
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-16 10:37:30 +00:00
Zhongtian Wu
3c88e629d9 mb/google/brox/var/lotso: Generate RAM IDs for lotso
Generate RAM ID for H58G56CK8BX146 and K3KL8L80EM-MGCU

BUG=b:424306040
BRANCH=None
TEST=boot to kernel success

Change-Id: I4f2808a1258de674ec0b75f11409fd1c8dc4cb06
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87965
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jian Tong <tongjian@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-16 01:59:54 +00:00
NyeonWoo Kim
1bdf89d78c device/device_util.c: Complete function documentation
I've found some TODOs in comment in device_util.c,
so I replaced them with descriptions for readability.

Change-Id: I429ce0b2a1b56a60fdb4127591ec219768c2c044
Signed-off-by: NyeonWoo Kim <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87907
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-15 12:55:59 +00:00
Subrata Banik
bc84e1ba42 soc/intel/cmn/acpi: Refactor SPCO ASL method
This patch refactors `SPCO` ASL with helpers to remove macros.
1. Avoid inclusion of macros in ASL code.
2. Ensure runtime check can call appropriate clock routine either
for IOE die or PCH/SoC die.

This ensures runtime calls to correct clock routines for IOE,
PCH/SoC. Includes IOE PCR and IOE CLK ASL for compilation.
This inclusion increases the DSDT binary size by 250 bytes.

TEST=Able to build and boot google/fatcat.

w/ this patch:

```
fallback/dsdt.aml    0x94140    raw    25594 none
```

w/o this patch:

```
fallback/dsdt.aml    0x94140    raw    25350 none
```

Change-Id: Iee254e1766ca90662eb04548db26a408ce3c3d88
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87975
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-15 05:53:57 +00:00
Tongtong Pan
4bf0f4fab3 mb/google/fatcat/var/felino: Add PIXART touchpad to devicetree
Update device tree to support PIXART touchpad.

BUG=b:414734334
TEST=emerge-fatcat coreboot and PIXART touchpad can work well.

Change-Id: I0eaab274e870f45f3cad16805580a968fc4b4aae
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88089
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-14 04:34:14 +00:00
Tongtong Pan
8269a89d32 mb/google/fatcat/var/felino: Add Synaptics touchpad to devicetree
Update device tree to support Synaptics touchpad.

BUG=b:414734334
TEST=emerge-fatcat coreboot and Synaptics touchpad can work well.

Change-Id: I5decb88cc37923e80a619899df66d47ec1579914
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88074
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-14 04:34:05 +00:00
Raphaël Mélotte
4d9dfb63bd Documentation: fix broken flashrom.org link
The old wiki no longer exists (see the announcement at [1]), the
current URLs lead to an HTTP 404.

To fix it, replace the URLs with the main page URL, which contains
links to the current documentation, manual, etc.

[1]: https://mail.coreboot.org/hyperkitty/list/flashrom@flashrom.org/thread/GNT23GQEQ5I5JCJ6YKUSRXD7JORSG4RV/

Change-Id: Ifb430a033d12f8064893f75315d577b5e78ffc9e
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88072
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-14 00:11:36 +00:00
Nick Vaccaro
3696fea4e0 mb/google/ocelot: add BOARD_GOOGLE_OCELOTMCHP
Ocelotmchp is the same as the ocelot variant except that it uses the
Microchip EC.

BUG=b:419857124
BRANCH=none
TEST=`emerge-ocelot coreboot` and verify it builds without error.

Change-Id: I9088a57289d9ef489a7773a8d828d5f945440757
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88060
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 17:25:59 +00:00
Nick Vaccaro
6ebd30bf7d mb/google/ocelot: add BOARD_GOOGLE_OCELOTITE
Ocelotite is the same as the ocelot veriant except that it uses the
ITE EC.

BUG=b:419856369
BRANCH=None
TEST=`emerge-ocelot coreboot` and verify it builds without error.

Change-Id: I1871d5772ea1a73d55d49bdac5b00a17f524eeeb
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88059
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 17:25:48 +00:00
Sean Rhodes
da122fe8f5 mb/starlabs/*: Use PLTRST for PCH Strap GPIOs
Replace RSMRST with PLTRST, for the PCH Strap GPIOs. RSMRST introduced
programming errors in cbmem (gpio_pad_reset_config_override: logical
to chipset  mapping not found) and broke tablet mode rotation.

Change-Id: Ia2b655450558a9de98ce1a92c93820ab3da57ca0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88053
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 15:25:51 +00:00
Matt DeVillier
7f03e3bd6c drivers/efi/efivars: Change printk level from ERROR to DEBUG
This case doesn't reflect an error condition, so adjust the printk
level accordingly.

Change-Id: I3afa818447d3e7c9d08968ffc6b57a663af45c3e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88011
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-06-13 15:25:45 +00:00
Matt DeVillier
c740786f12 drivers/gfx/generic: Use 'noop_read_resources'
The generic device attached to this driver doesn't have resources
separate from the parent device to which it's attached, so
use 'noop_read_resources' to suppress a false-positive error in
the cbmem console log (GENERIC: 0.0 missing read_resources).

Change-Id: I985318dcc7cc32aaa3f6a599ade95e065900031e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88012
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 15:25:38 +00:00
Sean Rhodes
b1759c9bd6 mb/starlabs/starlite: Adjust the Flash Map to match the Twin Lake IFD
The ME region is 0x1000 smaller for Twin Lake, so adjust it
accordingly.

Change-Id: I8d4a279597b31f05c6181218c4a07acdfc676920
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88057
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-13 15:25:27 +00:00
Sean Rhodes
cc1f0e5c90 mb/starlabs/starbook: Disable TME_KEY_REGENERATION_ON_WARM_BOOT
This breaks S3 exit.

Change-Id: I3cb637a2c835b2ba6109f3806e3c27269ad111b3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88056
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 15:25:21 +00:00
Matt DeVillier
9381dd0cbf soc/intel/meteorlake: Make TME_KEY_REGENERATION_ON_WARM_BOOT selectable
Rather than always enabling TME_KEY_REGENERATION_ON_WARM_BOOT, allow it
to be deselected but default to Y. Enabling it causes issues on boards
which use S3 suspend (vs S0ix), so allow it to be deselected so those
boards don't have to disable TME entirely.

TEST=build/boot starlabs/starbook_mtl, verify S3 resume works properly
with TME_KEY_REGENERATION_ON_WARM_BOOT deselected.

Change-Id: I60de19eddf7c2d8bc390b718b7cb1bf7d0267d47
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88054
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-06-13 15:25:14 +00:00
Kilian Krause
9b91d50fc1 mb/siemens/mc_rpl1: Add GPIO configuration
Provide a valid GPIO configuration based on the mainboard wiring.

BUG=none
TEST=Checked output of verbose GPIO debug messages.

Change-Id: I75570acf2bb11a99b99fe70b9d639837daee125c
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87913
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 15:24:52 +00:00
Simon Yang
f44b19f2dc soc/intel/pantherlake: Fix ACPI can't tag data node error
On the Fatcat board, the following ACPI error message was observed.
After applying the modification, the issue no longer appears.

ACPI error message via dmesg:
[    0.209800] ACPI: Enabled 2 GPEs in block 00 to 7F
[    0.210654] ACPI: \: Can't tag data node
[    0.211039] ACPI: \: Can't tag data node
[    0.211430] ACPI: \: Can't tag data node
[    0.211672] ACPI: \: Can't tag data node
[    0.212052] ACPI: \: Can't tag data node

BUG:None
TEST:Run 'dmesg | grep -i "Can't tag data node" -A 10 -B 10' and cannot see the error messages anymore.

Change-Id: I3da251b3c1950611fa0b4c125823f89d91dcd804
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88065
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-13 15:24:43 +00:00
Appukuttan V K
fad0064377 soc/intel/ptl: Add UFS support for Wildcat Lake SOC
Key changes:
   - Updated ACPI southbridge configuration to include UFS support
     for Wildcat Lake.
   - Modified FSP parameters to enable UFS controllers for
     Wildcat Lake.

References:
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and Fatcat and verify it compiles  without any error.

Change-Id: I3878b4a54a7be2565b37b0f885af5d55a6778795
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87891
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Usha P <usha.p@intel.com>
2025-06-13 15:24:15 +00:00
Tony Huang
3a065dbbfc mb/google/nissa/var/yavilla: Add H58G56CK8BX146 to RAM ID table
DRAM Part Name                 ID to assign
H58G56CK8BX146                 7 (0111)

BUG=b:424334614
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I35aa833372eced9b7906b4c46b9e3389fcb364f5
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88067
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 15:24:01 +00:00
Tony Huang
98f1886c89 mb/google/nissa/var/yaviks: Add H58G56CK8BX146 to RAM ID table
DRAM Part Name                 ID to assign
H58G56CK8BX146                 7 (0111)

BUG=b:424334614
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot

Change-Id: I9ca77d07908502649f3bc5380071ca1edceba997
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88066
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 15:23:56 +00:00
Jincheng Li
3711be4e18 soc/intel/xeon_sp: Use Kconfig to define SPI_BASE_ADDRESS
SPI_BASE_ADDRESS is a fixed value to align with SoC and FSP usage.
Use Kconfig to define it so that SoC could override it per their needs.

Change-Id: If5e5338106deb18d108a70f5ffcd96dcb1e5e25a
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88047
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-06-13 15:23:42 +00:00
Jincheng Li
ad05c65d72 soc/intel/xeon_sp: Initialize SPI before using it
fast_spi_cache_bios_region() refers to the SPI BAR before it is
initialized. Therefore, move the initialization before this function
to obtain the correct value.

If SPI is not initialized before use, an incorrect MTRR item is observed:
[DEBUG]  0x00000000fffff005: PHYBASE2: Address = 0x00000000fffff000, WP
[DEBUG]  0x000ffffffffff800: PHYMASK2: Length  = 0x0000000000001000, Valid

TESTED=Build and boot on intel/avenuecity CRB, with below log:
[DEBUG]  0x00000000ff000005: PHYBASE2: Address = 0x00000000ff000000, WP
[DEBUG]  0x000fffffff000800: PHYMASK2: Length  = 0x0000000001000000, Valid

Change-Id: I8a755d2d18a567c09c5a66b03d4fdda5ba603133
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88046
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-06-13 15:23:23 +00:00
Yu-Ping Wu
b4f2a51533 libpayload/arch/arm64/mmu: Fix missing CBMEM in used ranges
We use mmu_ranges to track the list of memory ranges and their types for
MMU initialization. We also keep track of used memory ranges in
usedmem_ranges, to avoid them from being re-allocated in
mmu_alloc_range().

The problem is, the CBMEM range (CB_MEM_TABLE) is added to mmu_ranges,
but is never marked as "used" in usedmem_ranges. This potentially causes
any allocation (for example the framebuffer) to overlap with CBMEM. This
issue is observed when DMA_DEFAULT_SIZE is reduced from 32MB to 1MB [1].
Prior to that change, because there isn't enough space above the
coreboot table (with the 4GB upper limit) to fit the 32MB requested
region, the DMA heap is always allocated *below* the coreboot table. And
because the coreboot table is usually the lowest within CBMEM, the DMA
heap region is allocated *below* the whole CBMEM, which happens the
avoid the issue.

Fix the bug by adding CB_MEM_TABLE ranges to usedmem_ranges. The ranges
in usedmem_ranges don't need to be combined because they are not for MMU
initialization (and there's only one CB_MEM_TABLE range).

[1] commit aedc177f00 ("libpayload: arm64: Reduce DMA allocator space to 1MB")

BUG=b:424107889
TEST=emerge-skywalker libpayload
BRANCH=none

Change-Id: Ie9ecafc17546e524253c60ab684ec10ff3495998
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88063
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bartłomiej Grzesik <bgrzesik@google.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-06-13 15:23:09 +00:00
Jason Glenesk
6da913bd46 docs/security/vboot: Update supported board list
Generated by util/vboot_list/vboot_list.sh.

Change-Id: I8f706ac70a40dd83eca9701d99bec364f6d8e22c
Signed-off-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88070
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 15:22:57 +00:00
Jason Glenesk
a0e6fd9a95 Documentation: Add coreboot release 25.09 template
This adds the release notes template for the upcoming September release
of coreboot.

Change-Id: I9033b107f148b4b40bb1243d2d0eb0b7e7f7b6dc
Signed-off-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88071
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-13 15:22:51 +00:00
Luca Lai
d4a33638f5 mb/trulo/var/pujjolo: Change dram id table
Alter dram from H9JCNNNCP3MLYR-N6E to H9JCNNNBK3MLYR-N6E

BUG=b:395763555
BRANCH=none
TEST=Could boot to OS.

Change-Id: Id2b024286b3699015be3a25341389db353d1ab8f
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88061
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-13 12:13:19 +00:00
Subrata Banik
2ee72eaab1 soc/intel/pantherlake: Update CONSOLE_UART_BASE_ADDRESS Kconfig value
The console UART base address for Panther Lake is being updated from
0xfe02c000 to 0xfe036000 (as per FSP version 3182). This correction
ensures the console initializes with the correct UART base address.

Additionally, now the UART base address is in sync between coreboot,
FSP and GFX PEIM.

BUG=b:423878608
TEST=Able to get FSP debug log while building google/fatcat.

```
dw-apb-uart.3: ttyS0 at MMIO 0xfe036000
```
Change-Id: I0caae8b5ea34561d88f5a4aa0cb12481db6f9417
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88073
Reviewed-by: <srinivas.kulkarni@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-13 01:47:53 +00:00
Alok
25385df017 vc/intel/fsp/ptl: Update PTL header files to FSP 3182_01
Update header files for FSP for Panther Lake platform to version
3182.01, previous version being 3144.01.

Changes include:
- Update FspmUpd.h
- Add PprRetryLimit and Use1p5ReadPostamble variable

BUG=b:421287370
TEST=Able to build google/fatcat with the partial header changes

Change-Id: I14e8c3c8751ae6aa0718d0015a1611ced6a2cdd4
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87879
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-13 01:47:44 +00:00
Tongtong Pan
2286134002 mb/google/fatcat/var/felino: Configure CAM_VDD_EN_SOC GPIO to restore camera function
GPP_D07 was modified in CB:87806, which resulted in the dut having no camera function. Now we need to restore the configuration of GPP_D07.

BUG=NONE
TEST=emerge-fatcat coreboot and find that the camera function is good.

CB:87806: mb/google/fatcat/var/felino: Modify GPIOs config: I075efda3044ffe45d7db3d225b10e96e084483aa
Change-Id: I085c98753614a0b72f191a863b68990775832c98
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88025
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-13 01:46:34 +00:00
Nick Vaccaro
486604360c mb/google/ocelot: add BOARD_GOOGLE_MODEL_OCELOT
Create an ocelot model for the various ocelot variants to use.

BUG=b:419857124, b:419856369
BRANCH=none
TEST=`emerge-ocelot coreboot` and verify it compiles without error.

Change-Id: I61e636beb74c3b1ef36e1b9737aefe0b0ef104c5
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88058
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Avi Uday <aviuday@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-06-12 21:06:38 +00:00
Qinghong Zeng
f6926dc8a5 mb/google/nissa/var/pujjoniru: Update DTT settings for thermal control
update DTT settings for thermal control, according to
b:395802079#comment37.

BUG=b:395802079
TEST=emerge-nissa coreboot

Change-Id: Ia3d27baf31f2ba684d3bd8f84e19ce802c3b68d1
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87545
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-12 02:59:38 +00:00
Hualin Wei
bb022f18d5 mb/google/dedede/var/awasuki: Add 2 NANYA modules to RAM id table
Add NANYA NT6AP512T32BL-J1 as id 2, and add NANYA NT6AP1024T32BL-J1
as id 3, resulting in the list below:

DRAM Part Name                 ID to assign
K4U6E3S4AB-MGCL                0 (0000)
K4UBE3D4AB-MGCL                1 (0001)
MT53E1G32D2NP-046 WT:B         1 (0001)
NT6AP512T32BL-J1               2 (0010)
NT6AP1024F32BL-J1              3 (0011)

BUG=422906387
TEST=Use part_id_gen to generate related settings

Change-Id: Ifd60e629eb606c7ce06f478cf7cc8b8b3ec77f74
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88005
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-12 02:55:53 +00:00
Hualin Wei
4ef1258436 spd/lp4x: Add Nanya memory part
Add Nanya memory part NT6AP1024T32BL-J1 in lp4 list.

BUG=b:422906387
TEST=util/spd_tools/bin/spd_gen spd/lp4x/memory_parts.json lp4x

Change-Id: Ie40c591872fe5d6a0251ca53fb60f3bf8d5c4e84
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88004
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-06-12 02:55:43 +00:00
Ingo Reitz
99c138ec50 soc/mediatek: Don't attempt de-assert PERST# without pci_root_bus
Since CB:84118 / 3d5ff65b27 (mb/google/cherry: Complete PCIe reset in
romstage) google-cherry mainboards do an early PERST# de-assert in
romstage. Since cherry does not have a pci_domain, `pci_root_bus()` will
return null, causing an assertion failure later in `find_dev_path()`.

Return if `pci_root_bus()` is NULL.

TEST=Successful boot on google/tomato

Change-Id: Icc35a53e38eef0088371592d8216ac74f9542166
Signed-off-by: Ingo Reitz <9l@9lo.re>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88035
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-12 01:27:01 +00:00
P, Usha
b9754131a6 mb/google/ocelot/var/ocelot: Update initial overridetree settings
Update override devicetree based on schematic_1433518.

BUG=b:394208231
TEST=Build Ocelot and verify it compiles  without any error.

Change-Id: I88a3729ff2a61a383a4715a335062310cba01f24
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87910
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-06-11 22:56:33 +00:00
Jakub "Kuba" Czapiga
4199351c1b Revert "libpayload: arm64: Reduce DMA allocator space to 1MB"
This reverts commit aedc177f00.

Reason for revert: With this change depthchange clears parts of cbmem on Google/Corsola when display is cleared.

BUG=b:424107889

Change-Id: I6cc21693ddcaed59e41e333b773e0baeb29d3b40
Signed-off-by: Bartłomiej Grzesik <bgrzesik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88051
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-06-11 19:45:49 +00:00
Michał Żygowski
a11eacc204 mb/msi/{ms7d25,ms7e06}/devicetree.cb: Add fan control config
Add the default configuration for fans as seen in the OS with
superiotool.

Change-Id: Iba142c2ad683962ee2c007f387e87adc77352dad
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87478
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-06-11 13:31:42 +00:00
Michał Żygowski
a069c920f5 mb/msi/{ms7d25,ms7e06}: Mimic the vendor BIOS early SIO init
Add early EC space configuration as done in the vendor BIOS.

Change-Id: I058560733e3f5bb8c6df7d5401efad87911d3f4a
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87477
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-06-11 13:31:37 +00:00
Michał Żygowski
3c23d7b3a9 src/superio/nuvoton: Add HWM initialization code
Based on similar NCT6687D chip. Obtained the NCT6686D EC Space
Specification datasheet from Nuvoton via email request. Most of
the register definitions come from the EC Space Specification,
the rest has been figured out from MSI MS-7D25 BIOS.

Change-Id: I162f9d4067f0cba1d22d6cb5f98b68987719c038
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87476
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-06-11 13:31:25 +00:00
Schumi Chu
ace18dea15 mainboard: Add 2S Intel Birch Stream MiTAC Computing R520G6SB
The R520G6SB server represents the next generation of the M50FCP2UR
Intel Server System, delivering cutting-edge performance and
versatility tailored for demanding data center and enterprise
workloads. Designed as a 2U dual-socket (2S) Birch Stream SP server
system, it integrates advanced features to meet demanding computing,
networking, and AI-driven application requirements.

Tested:
 - USB: Front Panel 2 USB ports and 1 USB port on DCSCM
 - PCIe: J1_MXIO_SLOT1 ~ J1_MXIO_SLOT5 (with PCIe SATA controller)
 - M.2: M2_CN1, M2_CN2
 - Mini Display Port
 - Flash firmware from BMC's redfish interface (Out-of-band)

Build with Linux payload and Intel proprietary FSP.
Installed with dual Intel® Xeon® 6756E, one Micron 64GB DDR5
RDIMM 4800 and boots to Ubuntu 22.04.5 LTS (6.8.0-57-generic).

Change-Id: I0590c82c9763bd07348bd86b134007ea4ed71d7a
Signed-off-by: Schumi Chu <schumi.chu@mitaccomputing.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87574
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-11 13:30:57 +00:00
Schumi Chu
4569adeedc mainboard: Add 1S Intel Birch Stream MiTAC Computing SC513G6
The SC513G6 is a high-performance single-socket server motherboard
designed for AI, HPC, cloud, and data center applications. 
Featuring Intel® Xeon® 6 Processors(LGA4710) support with up to 
350W TDP, it delivers exceptional compute power, high-speed 
networking, and versatile storage options in a compact SSI CEB 
form factor.

Tested:
 - USB: 4 USB ports
 - PCIe: PCIE#1, PCIE#2, PCIE#3, PCIE#5 (with PCIe SATA controller, 
   and PCIE#4 is only available on CPU R1S SKU)
 - M.2: M.2#1 and M.2#2
 - LAN: 2 RJ45 GbE ports
 - Graphic VGA Port
 - - Flash firmware from BMC's redfish interface (Out-of-band)

Installed with Intel® Xeon® 6756E and boots to 
Ubuntu 22.04.5 LTS (6.8.0-57-generic).

Change-Id: I7b85e8548cfbdf9e52dc1956bd33e829020c052c
Signed-off-by: Schumi Chu <schumi.chu@mitaccomputing.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87571
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-11 13:26:23 +00:00
Angel Pons
ab29f52ee2 Haswell NRI: Measure per-task execution time
Add some simple execution time measurement code. It only logs execution
times if `DEBUG_RAM_SETUP` is selected. Note that this will fill things
like pre-RAM CBMEM console, but NRI's debug output is already extremely
verbose, and will become even more verbose as additional training steps
get added.

Future plans include measuring the time spent waiting for REUT hardware
to finish testing, as that is what takes most time for complex training
algorithms (which are yet to be published).

Tested on Asrock B85M Pro4, still boots to Arch Linux. Output example:

    +------------------+------------+
    | Task             |      msecs |
    +------------------+------------+
    | PROCSPD          |        503 |
    | INITMPLL         |         33 |
    | CONVTIM          |         43 |
    | CONFMC           |          1 |
    | MEMMAP           |         39 |
    | JEDECINIT        |          1 |
    | PRETRAIN         |         23 |
    | SOT              |        394 |
    | RCVET            |       1448 |
    | RDMPRT           |       1088 |
    | JWRL             |       1975 |
    | OPTCOMP          |          0 |
    | POSTTRAIN        |          0 |
    | ACTIVATE         |          0 |
    | SAVE_TRAIN       |          0 |
    | SAVE_NONT        |          0 |
    | RAMINITEND       |          4 |
    +------------------+------------+
    | Total            |       5558 |
    +------------------+------------+

Note: the board had 4x dual-rank DIMMs installed, which gives the worst
possible boot time (more ranks to train, and that means more log output
to push through 115200 baud serial). Without debug logging, training is
substantially faster.

Change-Id: Ie4b6f6246e54f23d03babdb6fa0271538f69984e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87830
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-11 13:25:59 +00:00
P, Usha
925845c38c mb/google/ocelot: Update Kconfig
Update TPM related default values for DRIVER_TPM_I2C_BUS and
TPM_TIS_ACPI_INTERRUPT based on schematic_1433518.

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: Ifbd99265a36602b7d820cc088317579496144c9d
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88003
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-06-11 13:25:46 +00:00
P, Usha
c796c68dec mb/google/ocelot: Update MAINBOARD_PART_NUMBER
BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I29070d871666f42615ba7afae9b9adb07e089fdc
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87966
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-06-11 13:25:29 +00:00
David Wu
b322d30944 mb/google/brya/var/moxie: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392 b:421064225
TEST=Run suspend_stress_test on moxie and verify that the device
suspends to S0ix.

Change-Id: I6b2c264fd7244ab84e82919354afb2b49a22177a
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88000
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-06-11 13:25:06 +00:00
Jincheng Li
f85f7d7aed mb/intel/beechnutcity_crb: Use host address for BiosRegionBase
FMAP_SECTION_SI_BIOS_START is used to pass host address for UPD
BiosRegionBase. It changes to flash address after:
commit 2efe4df522 ("treewide: Assume FMAP_SECTION_FLASH_START = 0")

Convert FMAP_SECTION_SI_BIOS_START to host address to set
BiosRegionBase.

TESTED=Build and boot on intel/beechnutcity CRB, check boot log with:
[INFO ]  BiosRegionBase is set to ff000000
[INFO ]  BiosRegionSize is set to 1000000

Change-Id: Ie115bd8e9044455185f82885a306849c509157bb
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87690
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-11 13:24:00 +00:00
Jincheng Li
4d3dc433f9 mb/intel/avenuecity_crb: Use host address for BiosRegionBase
FMAP_SECTION_SI_BIOS_START is used to pass host address for UPD
BiosRegionBase. It changes to flash address after:
commit 2efe4df522 ("treewide: Assume FMAP_SECTION_FLASH_START = 0")

Convert FMAP_SECTION_SI_BIOS_START to host address to set
BiosRegionBase.

TESTED=Build and boot on intel/avenuecity CRB, check boot log with:
[INFO ]  BiosRegionBase is set to ff000000
[INFO ]  BiosRegionSize is set to 1000000

Change-Id: I92589253915ad88bbb73736e10e7524b6be82499
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87689
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-11 13:23:55 +00:00
Matt DeVillier
881fe9cef6 soc/intel/alderlake: Add cpuid_to_adl mapping for Core 3 N350 SoC
Add a mapping for the Core 3 N350 SoC, which has a MCH with PCI DID
0x4617, 8 efficiency cores, and a 7W TDP. This eliminates an error when
setting power limits due to the missing entry:

[ERROR] unknown SA ID: 0x4617, skipped power limits configuration

TEST=build/boot starlabs/starlite_adl with ADL-N Core 3 N350 SoC.

Change-Id: Ibd701ec5589a9a023a5538f470ff234a23249b45
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88018
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-06-11 08:40:51 +00:00
Luca Lai
08c8a74170 mb/trulo/var/pujjolo: Add MB usb-a port3 function.
Add usb-a port3 setting to let funtion work fine.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to pujjolo. Verify functions work.

Change-Id: I132f34a5c341f64d829bb78be9d400a77889f291
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87998
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-06-10 17:07:13 +00:00
Luca Lai
317affb0ad mb/trulo/var/pujjolo: Enable Elan touchscreen function.
Add Elan touchscreen setting to let funtion work fine.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to pujjolo. Verify functions work.

Change-Id: I7a6f56d46347f680f80feb691fc5104f8acf3f29
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88021
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-06-10 17:06:30 +00:00
Luca Lai
de259ad970 mb/trulo/var/pujjolo: Enable s0ix function
Set s0ix_enable to true.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to pujjolo. Verify functions work.

Change-Id: I69eff7c54e3c46549cd47e7c9413a9c0b978783d
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88020
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-10 17:06:16 +00:00
Jon Murphy
712dfb3761 Revert "util/cbmem: Consolidate CBMEM and coreboot table access"
This reverts commit c24a12db86.

Reason for revert: can't assume uint64_t or uintptr_t is a long. use proper printf modifiers instead.

```
cbmem.c:417:28: error: format specifies type 'unsigned long' but the argument
      has type 'uint64_t' (aka 'unsigned long long') [-Werror,-Wformat]
  417 |                 debug("Found at %#lx\n", address + i);
      |                                 ~~~~     ^~~~~~~~~~~
      |                                 %#llx
cbmem.c:50:40: note: expanded from macro 'debug'
   50 | #define debug(x...) if(verbose) printf(x)
      |                                        ^
cbmem.c:1321:21: error: format specifies type 'unsigned long' but the argument
      has type 'uintptr_t' (aka 'unsigned int') [-Werror,-Wformat]
 1321 |                         printf("%08lx:", start_address + i);
      |                                 ~~~~~    ^~~~~~~~~~~~~~~~~
      |                                 %08x
2 errors generated.
make: *** [<builtin>: cbmem.o] Error 1
```

Signed-off-by: Jon Murphy <jpmurphy@google.com>
Change-Id: I6e074b0c6c8247f85cd69d64c0e8584c5826e35a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88016
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-09 19:16:53 +00:00
Patrick Rudolph
30865c2fb1 mb/amd/birman_plus: Skip i2c_early init
Early init is only required for I2C2 since the DDI1 connector type
must be probed in romstage. The other I2C busses aren't used at the
moment and there's no need for early init.

TEST=Display init on amd/birman_plus still works. I2C0, I2C1 and I2C3
     are initialized in ramstage after FSPS.

Change-Id: I0491d03464b675d18e42324580c91642aae4e727
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87963
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
2025-06-09 15:00:32 +00:00
Jeremy Compostella
f2e488cfbf mb/google/fatcat: Add power limit overrides for H204 and H404 SKUs
In the factory setting, when a type-C charger is connected and the
battery is disconnected, it guarantees that the power limits are reduced
to avoid any unexpected shutdown or reset.

Change-Id: Ibe37c303149bbc253c5734664e8f17ee7005aca1
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87959
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
2025-06-09 14:59:53 +00:00
Jeremy Compostella
1537c89e8d soc/intel/cmn/block/power_limit: Enforce variant PL4 for Fast VMode
Adds a new assignment in variant_update_cpu_power_limits() to enforce
the desired PL4 power limit regardless of whether Fast VMode is enabled
or not.

Change-Id: I8b376d283b2a28333c8efc932bc2f776dfb5584a
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87958
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-09 14:59:47 +00:00
Jeremy Compostella
d9c5cef7f0 soc/intel/pantherlake: Add Fast VMode PL4 Power Limit configuration
This commit introduces a new power limit configuration for Fast VMode in
Panther Lake SoC. The changes include the addition of a
`tdp_pl4_fastvmode` field to the `soc_power_limits_config` structure,
allowing distinct PL4 power limit values when Fast VMode is enabled.

The values come from document #813278 Panther Lake H Power Map Rev 1.6.

Change-Id: I971d1aa7dd22a8135272577712283b4565810799
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87954
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Vidya Gopalakrishnan <vidya.gopalakrishnan@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-09 14:59:42 +00:00
Jeremy Compostella
b879342fe6 soc/intel/pantherlake: Add support for the H204 SKU
The definitions added are based on the following reference documents:

1. Document #815002 Panther Lake H External Design Specification
   Rev. 1.52
2. Document #813278 Panther Lake H Power Map Rev 1.6

Change-Id: I4545e0d48e49ac9a1c7df9b74384bf063455845c
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87953
Reviewed-by: Vidya Gopalakrishnan <vidya.gopalakrishnan@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
2025-06-09 14:59:37 +00:00
Bob Moragues
b42842bbe5 mb/google/brox: Add brox_rtk_ec variant
This variant of coreboot pairs with the brtk EC target.
This target enables development of the RTK EC on a Brox device.

BUG=b:421434445
TEST=cros build-packages --board brox coreboot
BRANCH=none

Change-Id: Ieaa3de6c30d0a0978506f23d927a4e96de71b16d
Signed-off-by: Bob Moragues <moragues@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87957
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Keith Short <keithshort@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-06-09 14:59:25 +00:00
Angel Pons
73cc8a413a treewide: Work around GCC 15 Werror=unterminated-string-initialization
GCC 15 added a new `unterminated-string-initialization` warning. Even
though crossgcc is still using GCC 14, some Linux distributions (e.g.
Arch Linux) already started shipping GCC 15. Given that coreboot uses
`-Werror` (warnings are errors), this new warning causes build errors
for things built using the host toolchain, such as utilities. In this
case, cbfstool is affected, which prevents building coreboot images.

The nonstring attribute is used to tell the compiler whether or not a
string is intentionally not null terminated. Since the attribute is
only included in GCC 15 for multidimensional character arrays (and even
later for clang) we need to check the GCC version before using the
attribute.

On GCC version prior to GCC 15 the nonstring attribute will not be used,
but that is not a problem since the unterminated-string-initialization
warning only exists since GCC 15. So you can still build on all GCC
versions as before. This way it also works if your host toolchain is GCC
15 (which builds commonlib code for cbfstool) and your coreboot cross
toolchain is GCC 14 (which builds commonlib code for coreboot).
Clang is a diffent matter. According to the documentation, the nonstring
attribute only exists in version 21 which is not yet released by LLVM.

TEST=Build qemu/Q35 successfully

Change-Id: I919d71cb2811e91869ba1ff493a0719ddcc86c36
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87825
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-09 07:19:09 +00:00
Liu Liu
d00f5c2d8c mb/google/skywalker: Reset xsphy0 in mainboard_init
USB port 0 (P0) is force_suspended during the BootROM stage, and this
state won't be cleared in subsequent stages, causing P0 to become
unusable. Adding the P0 controller in coreboot ensures that the
force_suspended state is cleared, restoring P0 functionality.

BUG=b:417079837
BRANCH=None
TEST=Build passes and insert a USB device into USB port 0 can enumerate
     the USB device.

Signed-off-by: Liu Liu <ot_liu.liu@mediatek.corp-partner.google.com>
Change-Id: Ibe8649297d3236a8896d1045cdf23cb4b1313e43
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87978
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-09 07:02:04 +00:00
Liu Liu
40bf6c28f8 soc/mediatek/mt8189: Add support for USB port 0 reset
USB port 0 (P0) is force_suspended during the BootROM stage, and this
state won't be cleared in subsequent stages, causing P0 to become
unusable. Adding the P0 controller in coreboot ensures that the
force_suspended state is cleared, restoring P0 functionality. This
action requires setting the necessary register addresses, which is
handled by setup_usb_secondary_host().

BUG=b:417079837
BRANCH=None
TEST=Build passes and insert a USB device into USB port 0 can enumerate
     the USB device.

Signed-off-by: Liu Liu <ot_liu.liu@mediatek.corp-partner.google.com>
Change-Id: I98534a833b344156a0e76e76ad7be88f98b2a967
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87977
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-09 07:02:01 +00:00
Matt DeVillier
26fd33a92a mb/starlabs/starlite_adl/acpi: Fix _GPE callback type
The GPIO which is used to determine whether the keyboard is connected
or not is dual-edge triggered, not level triggered, so adjust the
method name to reflect that. This ensures that the keyboard status
is updated on both connection and disconnection.

TEST=build/boot starlite_adl, verify tablet mode is correctly detected
when the keyboard is detached under both Windows and Linux.

Change-Id: I6c539fa264a2910589846e58d851acbe7c00900e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87993
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-06-08 19:46:13 +00:00
Matt DeVillier
d14a3e23da mb/starlabs/starlite_adl: Clarify pmc_gpe0_dw0 mapping in devicetree
PMC_GPP_F and GPP_F resolve to the same thing, but use the latter for
consistency and clarity. Non-functional change.

Change-Id: I005221cf7289ad2090b4231755d2eb4766bf67fe
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87992
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-08 19:46:09 +00:00
Sean Rhodes
2c0417ea06 mb/starlabs/starlite_adl: Remove duplicate GPP_E12 entry
Was masking the correct value set previously.

Change-Id: Ibe88fe4ad0de68b1188ec6a526497d5c0d75e56f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87990
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-08 19:46:05 +00:00
Yidi Lin
7e711a5bef Reland "soc/mediatek/mt8196: Specify MTKLIB_PATH for building BL31"
This reverts commit 7814b8a6be.

Reason for revert: The dependent patches are landed.
CB:87976 da54093bb9  "Update arm-trusted-firmware submodule to upstream master"
CB:87882 5dc4b47 "soc/mediatek/mt8196: Update libbl31.a to version 16297.0.0"

BUG=b:412560091, b:414543140

Change-Id: Ie34683118f99940185f9d637f5e1953b5250cde0
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87994
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-08 04:15:53 +00:00
Matt DeVillier
47f2c17961 mb/starlabs/*: Add CFR option to enable/disable S0ix
The option hooks are already set up at the SoC level, so
just add a new CFR form to expose the configuration.

Change-Id: I423e6b617ba60d7e44064ad9f4c3fec7e3e3fe75
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87988
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-07 18:46:31 +00:00
Matt DeVillier
dc3d524d19 mb/starlabs/starlite_adl: Use SoC common CFR forms
Use SoC common CFR forms; select CSE_DEFAULT_OPTION_STATE_DISABLED
to keep existing behavior.

Change-Id: I63cea721e5678a979bdb51c935b36d3149e067c9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87987
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-07 18:46:12 +00:00
Matt DeVillier
808c982104 mb/starlabs/starfighter: Use SoC common CFR forms
Use SoC common CFR forms; select CSE_DEFAULT_OPTION_STATE_DISABLED
to keep existing behavior.

Change-Id: I66ce9a10fa4560949d196730f7adb2dc4d46cef5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87986
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-07 18:46:06 +00:00
Matt DeVillier
644fd7b7f5 mb/starlabs/starbook: Use SoC common CFR forms
Use SoC common CFR forms; select CSE_DEFAULT_OPTION_STATE_DISABLED
to keep existing behavior.

Change-Id: Iaf7d826ec17b7d0c4f17f6314f00537c5ca87d46
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87985
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-07 18:46:00 +00:00
Matt DeVillier
c7a1539d87 mb/starlabs/lite: Use SoC common CFR forms
Use SoC common CFR forms where available.

Change-Id: I05106aca4402ec977a4593a4523dd7f30156b96c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87984
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-07 18:45:55 +00:00
Matt DeVillier
3f16609ba2 mb/starlabs/byte: Use SoC common CFR forms
Use SoC common CFR forms; select CSE_DEFAULT_OPTION_STATE_DISABLED
to keep existing behavior.

Change-Id: I5aa0d6e5a59a1f4a1fdc379d2eaf13f7acb6fa91
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87983
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-07 18:45:48 +00:00
Matt DeVillier
c3be703b71 soc/intel/common/cfr: Add bool option for auto power on
The tri-state power-on-after-failure options don't make sense
for all boards, so add a CFR option which allows for a simple
toggle for powering on after power loss

Change-Id: I7624f16f74c46b7b487da00d0ff669ff4c187dd6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87982
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-07 18:45:43 +00:00
Matt DeVillier
b3ac5ecdac soc/intel/cmn/block/cfr: Add CFR form for pciexp_aspm_cpu
Add a new CFR form to configure ASPM on CPU-attached PCIe root ports,
with the correct default and range of values for the associated UPD.
Adjust the verbiage on the existing ASPM CFR form so that it is clear
that form is used to configure PCH-attached root ports.

Change-Id: I73dd98fc09bf095da15cf4beb2c282e4c91400cd
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87981
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-07 18:45:37 +00:00
Matt DeVillier
9f8e5ab661 soc/intel/cmn/block/aspm: Use separate option variable for CPU RP
Since the default ASPM UPD value (and valid values) differ between CPU
and PCH-attached root ports, add a new option variable for CPU-attached
RPs so that they are not inadvertently set to an invalid value, leading
ASPM to be disabled on those RPs.

Change-Id: I66ec77a3774a96cfe11f5827f5ba711ec826b236
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87980
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-06-07 18:45:28 +00:00
Matt DeVillier
4247128e39 soc/intel/cmn/block/aspm: Fix ASPM control for CPU root ports
ASPM_AUTO is not a valid value for the CpuPcieRpAspm[x] UPD; setting
it will result in the CPU root port having ASPM disabled by FSP.
Fix this by modifying aspm_control_to_upd() to take into account
whether it's being called for a PCH RP or a CPU RP, and setting
the default value appropriately.

TEST=build/boot starlabs/starfighter_rpl, verify CPU-attached RP
and downstream attached device have ASPM L1 enabled.

Change-Id: Ia89744fcae1294671061fb80be61b927a1578d4d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87979
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-07 18:45:21 +00:00
Benjamin Doron
b66b7f7860 commonlib/device_tree.c: Add a function that reads FDT ints
Follow the recommendation at
https://review.coreboot.org/c/coreboot/+/84796/comment/21f615a2_99a41147/
and implement support for reading integer properties generically, using
their size to determine how much to read. This will be used for reading
`load`, `entry` and perhaps others.

Change-Id: I02d27eb5e23dfbfc1404d209ee8d60968e22bb80
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85643
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-07 15:04:34 +00:00
Jhan Bo Chao
c776d2dbd6 ec/google: Add support for Realtek EC in ChromeOS EC
This commit adds the necessary infrastructure to support Realtek EC
controllers RTS5912/RTS5915 within the ChromeOS EC framework.

TEST=With this commit and 87702, flash to brox(rework realtek rts5915)
     Boot normally and got those message from ap console:

[DEBUG]  Google Chrome EC uptime: 698.137 seconds
[DEBUG]  Google Chrome AP resets since EC boot: 6
[DEBUG]  Google Chrome most recent AP reset causes:
[DEBUG]  	635.380: 8 reset: during EC initialization
[DEBUG]  	645.374: 32775 shutdown: entering G3
[DEBUG]  	680.284: 8 reset: during EC initialization
[DEBUG]  	684.586: 8 reset: during EC initialization
[DEBUG]  Google Chrome EC reset flags at last EC boot: soft
[DEBUG]  PNP: 0c09.0 init finished in 284 msecs

Change-Id: I44118c7b61a7efcee81acdd04be90b5022007a41
Signed-off-by: Jhan Bo Chao <jhan_bo_chao@realtek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87544
Reviewed-by: Keith Short <keithshort@chromium.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-07 15:03:35 +00:00
Zhongtian Wu
8b54428200 mb/google/nissa: Override GPIO_PCH_WP for pujjocento variant
According to the circuit schematic diagram, pujjocento uses GPP_E12
as a write-protected gpio,so it is necessary to add the GPIO_PCH_WP
definition for GPP_E12 in gpio.h.

BUG=b:422656149
BRANCH=none
TEST=wp status update verified by toggling it on and off.

Change-Id: I91081f1b0ce5cb2fb3a29b96c1dcc18774f70f09
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87967
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-07 15:02:53 +00:00
Jeremy Soller
2060f24d60 mb/system76/mtl: Add Darter Pro 11 variants
darp11 is an ArrowLake-H refresh of the previous model.

Change-Id: I1ac692a6591e0c7df89c5ba76a83764694145762
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87675
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-07 15:02:32 +00:00
Xin Ji
c2496bc62e drivers/analogix/anx7625: Add a retry mechanism to decode EDID
Anx7625 reads EDID through AUX channel with I2C Over Aux operation,
reading 16-byte chunk a time. Sometimes, panel(CSOT MNB601LS1-3)
does not returns EDID raw data in time or returns OK without providing
data.

Root cause:
The measured difference between two adjacent UI signals of the AUX
signal is 36ns (518 - 482ns), it meets the VESA DP1.2/1.3 spec < 0.08UI
(48ns) requirement. However, this value exceeds the VESA DP1.1a spec
supported by the panel: max < 0.04UI (24ns) requirement, which exceeds
the tolerance value of the panel and leads to EDID communication
failure.

To address this issue, determined by tests, so that the issue did not
reproduce in over 200 tests

Test result:
Verified on 12pcs panels(8pcs issue panels, 4pcs new panels), 10pcs
tested 300 cycles, 2pcs tested 400 cycles, issue cannot be reproduced.

BUG=b:415946451
TEST=Tested on corsola over 200 times
BRANCH=corsola

Change-Id: I2d4f6b65b8f663ea9b9459e0343897a1223d631a
Signed-off-by: Xin Ji <xji@analogix.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87961
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-07 09:50:32 +00:00
Irving-CH Lin
7b1eac4192 soc/mediatek/mt8189: Enable MUXes for improved peripheral stability
Enabling the mem_sub_sel and emi_n_sel MUXes in coreboot ensures proper
connectivity for multiple peripheral modules. Without these MUXes
enabled, some devices may experience communication failures or system
instability.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver init ok.

Signed-off-by: Irving-CH Lin <irving-ch.lin@mediatek.corp-partner.google.com>
Change-Id: I3ee0432ac1f102343e49a51008b3ea552b3f2857
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87974
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-07 09:50:11 +00:00
Yidi Lin
da54093bb9 Update arm-trusted-firmware submodule to upstream master
Updating from commit id b68861c7298d:
2025-05-15 14:26:57 +0000 - (Merge "docs(changelog): add missing scopes" into integration)

to commit id 9109143417b2:
2025-06-05 22:03:35 +0000 - (Merge "feat(cpus): update cpu_check_csv2 check" into integration)

This brings in 55 new commits:
9109143417b2 Merge "feat(cpus): update cpu_check_csv2 check" into integration
470404b8b02f Merge "fix(xlat): change MT_DEVICE to map to nGnRnE" into integration
08b11700e781 Merge "fix(fvp): avoid stack usage in check_cpupwrctrl_el1_is_available()" into integration
2b43216593f1 feat(cpus): update cpu_check_csv2 check
36ceead86b06 fix(fvp): avoid stack usage in check_cpupwrctrl_el1_is_available()
9526ad605872 Merge changes from topic "st_fixes" into integration
adbcd85eec11 Merge changes from topic "xlnx_versal_custom_sip" into integration
a0aec93934cf Merge "fix(qemu): fix variable may be used uninitialized error" into integration
8681f772fb53 Merge "feat(intel): update CPUECTLR_EL1 to boost ethernet performance" into integration
4902381ac01a Merge "feat(mt8189): add IOMMU enable control in SiP service" into integration
02309a84fbfb Merge changes Ia29fd72f,I31b359ce,I1296aaff,I30e1ee7f,Ib4a3593e, ... into integration
fbab861f7f73 Merge "feat(smcc): introduce a new vendor_el3 service for ACS SMC handler" into integration
db0d5350af03 fix(qemu): fix variable may be used uninitialized error
fe524532e345 Merge "docs(versal-net): update documentation for SDEI" into integration
0d003ff58d98 Merge "chore(fvp): remove unused macro definition" into integration
bc11248abbcd Merge changes from topic "xlnx_versal_misra_fixes_series_3" into integration
236422ad7a17 Merge "fix(xilinx): resolve violations generated with IPI_CRC_CHECK enabled" into integration
a335cd91179a fix(xilinx): resolve misra rule 16.3 violations
93db9e6161d5 fix(xilinx): resolve misra rule 2.5 violations
6df7184e5ae0 fix(xilinx): resolve misra rule 4.6 violations
f78c597041fc fix(xilinx): resolve misra rule 12.2 violations
7d0eb0e1e544 fix(xilinx): resolve violations generated with IPI_CRC_CHECK enabled
c314a0b3fe24 fix(xilinx): resolve misra rule 10.1 violations
cd60ab793e22 fix(xilinx): resolve misra rule 8.13 violations
2993166d498b fix(xilinx): resolve misra rule 4.5 violations
ea3ec86552d3 fix(xilinx): resolve misra rule 16.4 violations
00669dcd96b9 fix(xlat): change MT_DEVICE to map to nGnRnE
5be0e22591d7 feat(mt8196): add SMMU SID stub implementation
e86fb819834f feat(mt8196): add SLBC SiP handler
4488b229e573 feat(mt8196): add CPU QoS stub implementation
001058820482 refactor(mediatek): update EMI stub implementation
97881aacebc2 feat(mediatek): add APIs exposed to the static library
c33b98d7b84d feat(mt8196): add MMinfra support
31a69d9ae79c feat(mt8196): add UFS functions used by the static library
22c454d464cf Merge "docs: remove Chris from LTS maintainers" into integration
c17351450c8a Merge "docs(changelog): changelog for v2.13 release" into integration
a6f0886076d1 Merge "fix(fvp): increase EventLog size for OP-TEE with multiple SPs" into integration
9c1201887340 docs: remove Chris from LTS maintainers
97a6de9e9b62 docs(changelog): changelog for v2.13 release
d1a824ea0e88 fix(fvp): increase EventLog size for OP-TEE with multiple SPs
bb9e34f99ca7 feat(intel): update CPUECTLR_EL1 to boost ethernet performance
4c449fcad3c5 feat(mt8189): add IOMMU enable control in SiP service
f69f551269f1 feat(smcc): introduce a new vendor_el3 service for ACS SMC handler
9adc42705a63 fix(st-iwdg): remove num_irq
adeee68b8a08 fix(st-drivers): remove useless field in fixed regul
b43afb7fe16c fix(st-bsec): remove useless defines in BSEC3
6fede181224f fix(st-bsec): rename OTPSR field
6bc7c5b70eba fix(st-crypto): do not set IPRST if BUSY flag is present
6851fd9ecccd fix(st-ddr): bad refresh update level toggle sequence
fd5e5e7b7184 fix(st-ddr): remove TODO in STM32MP2 driver
f53f260f7b78 fix(stm32mp2): correct typo in definition header
72b9f52d373b feat(versal): add hooks for mmap and early setup
55f6ea4dadb2 refactor(zynqmp): refactor custom sip service
48afc8e5ecee chore(fvp): remove unused macro definition
da2c9e58d00c docs(versal-net): update documentation for SDEI

Change-Id: I8720c180141549a2c075455174ac475381a35997
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87976
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-07 04:17:09 +00:00
Sean Rhodes
40c84c2577 mb/starlabs/*: Tidy up the devicetree files
Nit-pick tidy up, for things like indentation and using true/false for bools.

Change-Id: Icae88494306b48695e69fd878e11e648327b443d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87951
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-06 14:33:06 +00:00
Sean Rhodes
cb7d2ebe5c mb/starlabs/starbook/{kbl,cml,tgl}: Remove generic.detect from the touchpad
These boards only ever used one trackpad, so there is no need for this
to be set.

Change-Id: Ibabb663a83eea5f06c683cf2854ceed0487baf51
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87949
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-06 14:32:59 +00:00
Yidi Lin
c4eb645a0b update_submodules: Fix submodule path handling
There are two regressions introduced by CB:87823.

1. If the specified repo path has a tailing slash, `submodule` becames a
   empty variable due to `${submodule##*/}`, e.g.,

   `./util/scripts/update_submodules -R 3rdparty/arm-trusted-firmware/`

2. CB:87823 uses `git submodule status | cut -d ' ' -f 3` to retrieve
   all submodule paths. The script gets the wrong path if the format is
   wrong, e.g.,

-26c572974bcf7255930b0e9a51da3144ed0104b5 3rdparty/amd_blobs
 57ac3f74b34a3303f03deee264a1f2247c68008d 3rdparty/arm-trusted-firmware (v2.12.0-908-g57ac3f74b)
+5b7492979fc139efdfdc7f97ae53a2349798f160 3rdparty/cmocka (cmocka-1.1.5-263-g5b74929)

   The script gets the empty path for 3rdparty/amd_blobs and get
   cmocka-1.1.5-263-g5b74929 for 3rdparty/cmocka.

This patch fixes 1 by removing the tailing slash for the input directory
and fixes 2 by the below command.
   `git submodule foreach 'echo ${sm_path}'|grep -v Entering`

Note that `smp_path` is an environment variable[1] set by
`git submodule` when travelling the submodule directory.

[1]: https://git-scm.com/docs/git-submodule

Change-Id: I0016f3a867e2b4594788d71a790ff9a938121da5
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87972
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-06 13:26:30 +00:00
Michał Kopeć
581af94115 ec/dasharo/ec: Add DTT power and battery participants
Add DTT Power and Battery participants. These are used by DTT drivers to
more efficiently split power between SoC and dGPU and determine their
power limits.

Change-Id: I1e215366a79c0dd0f8a5d54c33fc718ba6b1302b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86820
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Sumeet R.P. <sumeet4linux@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Krystian Hebel <krystian.hebel@3mdeb.com>
2025-06-06 13:13:59 +00:00
Dinesh Gehlot
f6dd8f534f MAINTAINERS: Add Dinesh as intel/pantherlake and google/fatcat maintainer
Change-Id: I175d2e193265d4e472c91a25a184e5852fee6c8a
Signed-off-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87946
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-06 13:13:30 +00:00
Felix Singer
f2310ab35e update_submodules: Prefix commit title with relative path
It's common for coreboot commits to prefix the commit title with a
topic, which is often the path to the files or directories. So adjust
this commit title accordingly.

Change-Id: Ice267719a08b289b0d996fd20c993d616c812d00
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87824
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-06 13:13:17 +00:00
Pranava Y N
5fcbc709ec mb/google/fatcat/fmap: Add 1 MB from SI_BIOS to SI_All
This patch updates the flash layout for the fatcat variants. The changes
are as follows,

SI_ALL:      8MB --> 9MB
SI_BIOS:     24MB --> 23MB
  FW_A/B:    7.5MB --> 8.5MB
  RW_UNUSED: 2MB --> 0MB

BUG=b:419831198
TEST=Able to build and boot google/fatcat

Change-Id: I615b26ccdbbf3cfcc18dfb5917e13f0700ba673c
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87860
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-06 07:55:16 +00:00
Luca Lai
24778a25de mb/trulo/var/pujjolo: Fix gtx functions.
Add gtx flag in Kconfig and delete the gtx property to fix build error in below
coreboot-0.0.1-r5710: /build/nissa/tmp/portage/sys-boot/coreboot-0.0.1-r5710/work/build/pujjolo/mainboard/google/brya/static.c:213:20: error: 'struct drivers_gfx_generic_device_config' has no member named 'type'
coreboot-0.0.1-r5710:   213 |         .device[0].type = panel,
coreboot-0.0.1-r5710:       |                    ^~~~
coreboot-0.0.1-r5710: /build/nissa/tmp/portage/sys-boot/coreboot-0.0.1-r5710/work/build/pujjolo/mainboard/google/brya/static.c:213:27: error: 'panel' undeclared here (not in a function)
coreboot-0.0.1-r5710:   213 |         .device[0].type = panel,
coreboot-0.0.1-r5710:       |                           ^~~~~

BUG=b:395763555
BRANCH=none
TEST=Build pujjolo

Change-Id: I4e85f3c9acbee66226d8dd195615d9c9dd212709
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87956
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-06 07:42:03 +00:00
Jeremy Compostella
619699648f soc/intel/pantherlake: Simplify P2SB and P2SB2 device operations
This commit refactors the Pantherlake SOC code by leveraging existing
P2SB device operations, thereby removing redundant definitions. The
change eliminates unnecessary device operation structures (pcd_p2sb_ops
and pcd_p2sb_2_ops) and replaces them with references to already defined
operations (p2sb_ops and p2sb2_ops). This is similar to how it is
handled in the Alder Lake codebase.

BUG=b:422284273
TEST=Boot on Fatcat with and without this commit, compare the logs, and
     verify that the I/O memory resources for P2SB and P2SB2 devices are
     accounted for and are identical.

Change-Id: I9304b6aa16f07fdc7d927cc2e27879db549ac774
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87955
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-06 04:46:51 +00:00
Jeremy Compostella
beafbfd29a soc/intel/pantherlake: Remove IOE support and references
Panther Lake H and U variants do not include any IOE die, making IOE
support unnecessary. This commit removes references to IOE support
across the Panther Lake SoC configuration and related files, simplifying
the codebase and avoiding potential misconfigurations.

These changes reduce unnecessary complexity and potential confusion
regarding IOE functionality in Panther Lake H and U SoCs, ensuring
configurations accurately reflect hardware capabilities.

BUG=b:422284273

Change-Id: I0ede4e1157c473763d53a9a3e6ab913ab470dc42
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87933
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-06 04:45:37 +00:00
Jeremy Compostella
5277bc4efc soc/intel/pantherlake: Resolve memory corruption by using P2SB2 driver
This commit fixes memory corruption observed during stress
suspend-resume tests on the Fatcat board using Panther Lake U and H
SoCs. The issue stemmed from incorrect routing in the SPCO ACPI method
due to the use of SOC_INTEL_COMMON_BLOCK_IOE_P2SB, which was not
suitable as these SoCs lack an IOE die.

To address this, the commit switches from the IOE driver to the P2SB2
driver, aligning with the appropriate SOC_INTEL_COMMON_BLOCK_P2SB2
selection. The related function calls in the Panther Lake codebase have
been updated to use P2SB2-specific operations.

Panther Lake H and U SoC identifiers have been moved from the IOE driver
to the P2SB2 driver.

BUG=b:422284273
TEST=Memory corruption does not reproduce on the Fatcat board.

Change-Id: If678846b6285aea8cd53b0f7aebe3e75812a9330
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87931
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-06 04:45:15 +00:00
Sowmya Aralguppe
61ac238bb5 soc/intel/common/block/p2sb: Add driver for second P2SB device
This commit introduces a driver for a second P2SB (Primary to SideBand)
device to support certain Intel SoC configurations. The new driver
offers new functions, such as p2sb2_enable_bar(), p2sb2_sbi_read(), and
p2sb2_sbi_write(), for accessing and managing the second P2SB
interface (P2SB2). This interface is essential for managing sideband
communications in some Intel SoCs, such as Panther Lake.

BUG=b:422284273
TEST=Successful communication with the P2SB2 device during Fatcat board
     boot.

Change-Id: I33941c85243e2529d1dd931b2afd7ab4814d9549
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87929
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-06 04:44:21 +00:00
Jeremy Compostella
8961f6681f soc/intel/common/acpi/pcie_clk: Fix ACPI conditional compilation error
This commit addresses a compilation error in the PCIe ClkReq SPCO method
due to incorrect conditional compilation logic. The previous
implementation lacked the necessary preprocessor directives to
differentiate between configurations when
SOC_INTEL_COMMON_BLOCK_IOE_P2SB is not defined.

BUG=b:422284273

Change-Id: Ie7b70babd279f7241f6e76113a6694a5bd0d782d
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87930
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-06 04:44:07 +00:00
Maximilian Brune
471df8ca5e util/crossgcc/buildgcc: Fix GMP build on GCC 15
Currently building GMP with GCC 15 causes this error:
"configure: error: could not find a working compiler, see config.log
for details"

GCC 15 by default uses std=gnu23 but that causes the build of GMP to
fail. So hardcode it to always build GMP using std=gnu17.

Once GMP is fixed in their next release, we can remove this again.

source:
https://gmplib.org/list-archives/gmp-bugs/2024-November/005550.html

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I7813ff18e8e486bece503652af69de1db93958b2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87650
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 22:53:36 +00:00
Jakub Czapiga
c24a12db86 util/cbmem: Consolidate CBMEM and coreboot table access
Provide common functions for accessing CBMEM and coreboot table entries
instead of mapping them manually in each function. New functions return
a copy of requested region as a heap-allocated buffer thus avoiding a
need for aligned memory access.
Remove global variables wherever possible to make code easier to read
and to isolate responsibilities of functions.
Use CBMEM entries instead of coreboot table records directly, but
provide fallback for old systems in case the correcponding CBMEM entry
does not exist.

BUG=b:391874512
TEST=cbmem -l; cbmem -x; cbmem -r 434f4e53; cbmem -t; cbmem -a 1200

Change-Id: I89b371e27ab3840cfbbd44880c32383b77f65e5c
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87417
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-06-05 13:44:27 +00:00
Patrick Rudolph
99e5a386c2 mb/amd/birman_plus/glinda: Add onboard devices
Add SD Express and GBE PCIe devices.

Change-Id: Ia589f115fc5c16540daa6210e2624572767ad12e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86496
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-06-05 13:39:15 +00:00
NyeonWoo Kim
033810a7db payloads/libpayload/Makefile.mk: Replace nm with $(NM)
I got 'nm' usage error when i built coreinfo payload.
	nm: unrecognized option '--no-weak'

it seems that this is occurred by using nm for host, not for coreboot.

So, I replace nm with $(NM)

Change-Id: I0a0a04b351c9131b1238e8cc7e63e396820494d9
Signed-off-by: NyeonWoo Kim <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87906
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-06-05 13:37:27 +00:00
Wonkyu Kim
a1738e87b5 soc/intel/panterlake: avoid SPI access delay
Enable POSTPONE_SPI_ACCESS to back up CMOS data and ELOG data in the
later boot phase to avoid flash access delay by another boot controller.

TEST=
1. Enable DEBUG_BOOT_STATE
2. Check time
BS: callback (0x7386f908) @ src/security/vboot/vbnv_cmos.c:120 (0 ms)
BS: callback (0x7386d3e8) @ src/soc/intel/pantherlake/elog.c:213 (0 ms)

Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Change-Id: I6b1b091dc60e6b20d39b90feebc8309306d6493e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87739
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-05 13:36:46 +00:00
Wonkyu Kim
359ae67668 elog: Handle elog in later boot phase
Use POSTPONE_SPI_ACCESS to handle elog data later boot phase to avoid
flash access delay by other boot controllers.

Intel has pre-CPU boot controllers (e.g. CSE) which load non-CPU
firmwares. Boot-critical firmwares are loaded before CPU reset and
non-boot-critical firmwares are loaded during CPU boot. If another
controller accesses SPI to load firmwares, reading SPI by CPU is ok,
but writing to SPI for saving elog data can take ~32ms sometimes.
Saving elog data usually takes less than 1ms.

There are three elog handling sequences that need to move together
under the Kconfig:
- Soc folder
- Elog driver folder
- ChromeOS folder

Before this change, sometimes it delays like below:
BS: callback (0x7386d428) @ src/soc/intel/pantherlake/elog.c:216 (32 ms)
After this change, the delay is less than 1 ms:
BS: callback (0x7386d3e8) @ src/soc/intel/pantherlake/elog.c:213 (0 ms)

TEST
1. Enable DEBUG_BOOT_STATE
2. Check time
BS: callback (0x7386d3e8) @ src/soc/intel/pantherlake/elog.c:213 (0 ms))

Change-Id: I3f5e7acf5204e213179664d0d77151d415d00896
Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87740
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-05 13:36:36 +00:00
Wonkyu Kim
bf330f2dd0 security/vboot: Back up CMOS data later boot phase
Introduce POSTPONE_SPI_ACCESS to save CMOS data in a later boot phase
to avoid flash access delay by other boot controllers.

Intel has pre-CPU boot controllers (e.g. CSE) which load non-CPU
firmwares. Boot-critical firmwares are loaded before CPU reset and
non-boot-critical firmwares are loaded during CPU boot. If another
controller accesses SPI to load firmwares, reading SPI by CPU is ok,
but writing to SPI for saving CMOS data can take ~30ms sometimes.
Saving CMOS data usually takes less than 1ms.


Before this change, sometimes it delays like below:
BS: callback (0x7386f908) @ src/security/vboot/vbnv_cmos.c:122 (32 ms)
After this change, the delay is less than 1 ms:
BS: callback (0x7386f908) @ src/security/vboot/vbnv_cmos.c:122 (0 ms)

TEST
1. Enable DEBUG_BOOT_STATE
2. Check time
BS: callback (0x7386f908) @ src/security/vboot/vbnv_cmos.c:120 (0 ms)

Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Change-Id: I8836c14601beb56c614605b9840c8506d6d8536c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87738
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 13:36:19 +00:00
Sean Rhodes
45febdec26 mb/starlabs/starfighter: Add reset GPIO for the USB Bluetooth
Change-Id: Ie68713f12830275b5e07efb230af74c277185f54
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87950
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 13:26:32 +00:00
Sean Rhodes
a9a51f9916 mb/starlabs/starfighter: Add missing ASPM config for the SSD
Change-Id: I66694cf0594a2e684fbdbc7c25cbeb984a553c43
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87948
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 13:26:00 +00:00
Sean Rhodes
644ebf5ebc mb/starlabs/starbook/{adl,rpl}: Add generic Graphics driver config
This provides entries in the SSDT for all display devices, which
allows the kernel to enumerate them.

Change-Id: Idfa688c3497aa91a9fa5c7923cff04a7ec4892ed
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87947
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 13:25:50 +00:00
Sean Rhodes
902df45eab mb/starlabs/starfighter: Remove the overcurrent config
This is not used, so remove it.

Change-Id: I5d576833c634cc4d2e9eb01627f9bdb61d764b13
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87944
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:25:41 +00:00
Sean Rhodes
b872c50f90 mb/starlabs/starfighter: Add generic Graphics driver config
This provides entries in the SSDT for all display devices, which
allows the kernel to enumerate them.

Change-Id: Ic6c5578d6995aacfff548d10083a712a0faca622
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87943
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 13:25:30 +00:00
Sean Rhodes
cfdf5906fd mb/starlabs/starfighter: Tidy comments for board ID GPIOs
Change-Id: I5c9af7dd35fd32d1c35fee40a853411af284acaa
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87942
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 13:25:21 +00:00
Sean Rhodes
9950825a2b mb/starlabs/starlite_adl: Remove extra lines
Change-Id: Iede45ea92ee669a5d1d45f65b3bf23b5fa6d996b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87941
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:25:15 +00:00
Sean Rhodes
6d079d45d1 mb/starlabs/byte_adl: Remove comments for disconnected GPIOs
Change-Id: I0ea02d7290533cf33d9b793bfbd18ec9915c975e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87940
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:21:45 +00:00
Sean Rhodes
f6a45f6856 mb/starlabs/byte_adl: Re-organise GPIOs
Put the GPIOs into groups with clear comments.

Change-Id: I7246fee8bdf111bc08c1335a90609e94356fc611
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87939
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:21:38 +00:00
Sean Rhodes
63f781b508 mb/starlabs/byte_adl: Disconnect unused GPIOs
GPIOs, like the USB overcurrent ones, are not used so configure them accordingly.

Change-Id: If5138ccd6048f006408d5335439e7a0143c9cc28
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87938
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:21:31 +00:00
Sean Rhodes
6aeebc4b4b mb/starlabs/byte_adl: Reconfigure PCH Strap GPIOs
Configure all strap GPIOs as outputs, rather than some being not
connected. This doesn't change anything, but is more explicit.

Set these all to sample on RSMRST.

Change-Id: I693cfecdb73a20b76fa040500eed5d904b857710
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87937
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:21:26 +00:00
Sean Rhodes
5f9046cbb4 mb/starlabs/byte_adl: Remove vGPIO configuration
Remove the configuration for the vGPIOs, as it is not needed because
FSP handles it.

Change-Id: I8831379ffd8c9df00736cb62512e023592d0d301
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87936
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:20:43 +00:00
Sean Rhodes
c589142c28 mb/starlabs/byte_adl: Add the Byte Mk III variant
The Byte Mk III is the same, apart from using the Twin Lane N355 instead
of the N200, which means 99.99% of the code is the same.

Change-Id: Ia31f905bea7a6efdad1ed4e36361059ceea2a1ed
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87896
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-05 13:20:31 +00:00
Sean Rhodes
2cb9c3ee46 mb/starlabs/byte_adl: Update the VBT to the Twin Lake version
This version of the VBT works for Alder Lake N and Twin Lake.

Change-Id: Ia2161a04018ec3e222a2751b42fe63637b05e6dd
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87895
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 13:20:25 +00:00
Yidi Lin
ad8ccf4822 Update arm-trusted-firmware submodule to upstream master
Updating from commit id 57ac3f74b34a:
2025-04-09 20:07:35 +0200 - (Merge "feat(stm32mp15-fdts): add Linux Automation GmbH TAC" into integration)

to commit id b68861c7298d:
2025-05-15 14:26:57 +0000 - (Merge "docs(changelog): add missing scopes" into integration)

This brings in 224 new commits.

Change-Id: I0fb2d05cd763ac1f36ffb5b8e485da931bd86aa8
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87926
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-05 01:17:02 +00:00
Patrick Rudolph
c615de7248 soc/amd/glinda: Don't let OS put debug UART into D3
When using CONFIG_CONSOLE_SERIAL prevent the OS from putting the
debug uart into D3 state. In the D3 state it's not operating any
more, and the user cannot read debug messages on early kernel boot
or on shutdown any more.

For release builds CONFIG_CONSOLE_SERIAL should not be set and the
device can be put into powersave mode.

Change-Id: Id6b6a4d0a053a5e14e54cf623974376992f0abd8
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87803
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-04 18:00:06 +00:00
Benjamin Doron
0251e98e9e util/amdfwtool: Do not attempt to continue processing --help
If the `--help` argument is passed, print the usage and immediately
return. This avoids printing errors about 'invalid config,' which
users don't specify when getting the usage information, and potentially
printing the usage a second time before exiting.

Change-Id: I18bf154ff5177fa0e0aa6a41f0d71980fed7ce55
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87869
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-06-04 17:33:46 +00:00
Jianeng Ceng
0af68855c0 mb/google/nissa/var/pujjoniru: Config AUX gpio to correct TCSS port
In TWL, Type-C0 corresponds to TCSS port1, and Type-C1 corresponds
to TCSS port0. In order for the DP functions of the two Type-C ports
to operate normally, the corresponding relationship needs to be
configured correctly.

BUG=b:418106736
TEST=DP function of Type-C0/C1 workable

Change-Id: I4aa406e72d1e5f0434866b105f20df6362f3d304
Signed-off-by: Jianeng Ceng <cengjianeng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87899
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: hualin wei <weihualin@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-06-04 17:22:45 +00:00
Avi Uday
bba9d27145 mb/google/ocelot: Remove power limit override functionality
This patch removes the power limit override code from google/ocelot until the power limits for WCL are known. It is left as a TODO till then.

Change-Id: I15bd1a1c8397957df96a97b4f9f3de0fd5f5c7f6
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87911
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-06-04 17:17:54 +00:00
Subrata Banik
b3776e23a7 ec/google/chromeec: Add SPI/I2C EC communication files to bootblock
This commit updates `ec/google/chromeec/Makefile.mk` to properly
include source files for SPI and I2C Embedded Controller (EC)
communication in the bootblock.

Previously, essential APIs (e.g., `google_chromeec_command` and
`crosec_command_proto`) were missing during EC code compilation
in the bootblock, leading to linker errors.

This patch resolves these compilation issues by ensuring:
* `ec_spi.c` is included when `CONFIG_EC_GOOGLE_CHROMEEC_SPI` is
  enabled.
* `ec_i2c.c` is included when `CONFIG_EC_GOOGLE_CHROMEEC_I2C` is
  enabled.
* `crosec_proto.c` is included if either
  `CONFIG_EC_GOOGLE_CHROMEEC_SPI` or `CONFIG_EC_GOOGLE_CHROMEEC_I2C`
  is enabled.

This ensures all required EC communication components are part of the
bootblock, allowing systems like `google/quenbi` that use the SPI EC
interface to build successfully.

Change-Id: I1d05f582a1685503118797e1788c9bc2ac191168
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87904
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-04 08:26:28 +00:00
xuxinxiong
be6787a55e mb/google/skywalker: Add storage types to fw_config
Use the storage type from fw_config to determine which types of storage
need to be set up in the payload.

BUG=b:379008996
BRANCH=none
TEST=input "cbi set 6 0x40000000 4" in ec console, and see the
following log:

fw_config match found: STORAGE=STORAGE_UFS2X
storage_setup: eMMC: no, UFS: yes

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ieada3c56b0f69cc1ea3dab4e64641bfc2ba2a0fe
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87923
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-04 06:07:11 +00:00
Vince Liu
0a41779e2e mb/google/skywalker: Add eMMC configuration
Skywalker reference design supports multiple storage types, such as UFS
and eMMC. We only need to configure eMMC if the board storage type is
eMMC.

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I7c3a2e3f7acf75d57d72cda3c9d2e83b77c72f0e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87922
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-04 06:07:01 +00:00
Vince Liu
3e6b47980a mb/google/skywalker: Add support for getting storage id
Add storage_id() to read the storage id from AUXADC.

BUG=b:379008996
BRANCH=none
TEST=check log on Skywalker SKU1
[DEBUG]  ADC[2]: Raw value=73782 ID=0

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I83cb52df1f25c5106fbe213e8a0185ae764fd7dc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87921
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-04 06:06:46 +00:00
Vince Liu
de251dd677 soc/mediatek/mt8189: Add support AUXADC
Add Auxiliary Analog-to-Digital Converter (AUXADC) driver for mt8189.

BUG=b:379008996
BRANCH=none
TEST=Check log on Skywalker SKU1
[DEBUG]  ADC[2]: Raw value=73782 ID=0

Change-Id: I7288003c1c90a93697b7c838cf4db0fd1de4d73a
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87920
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-04 06:06:35 +00:00
Yidi Lin
a283246ef7 soc/mediatek/common: Refactor auxadc driver to support new platform
The method for reading AUXDAC on mt8189 differs from previous methods.
To enhance code modularity and maintain compatibility, the differing
parts are moved to auxad_v1.h  to supports legacy platforms.

BUG=b:379008996
BRANCH=none
TEST=emerge-geralt coreboot -j

Change-Id: Ib4bf0f593cab0480b7c78df7916f721f2e0833c7
Signed-off-by: Yidi Lin <yidilin@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87919
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-04 06:06:25 +00:00
Hope Wang
94686e581a mb/google/skywalker: Add DVFS support in romstage
Add the initialization in romstage.

BUG=b:410763782
BRANCH=none
TEST=Check the CPU frequencies are changing and not fixed values by
using the following commands in kernel:
1) set policy*/scaling_governor as "ondemand"
"echo ondemand > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor"
"echo ondemand > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor"
2) Check the CPU frequencies by repeating the command
"grep . /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq"
The result is like
/sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq:650000
/sys/devices/system/cpu/cpufreq/policy6/scaling_cur_freq:2350000

Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Change-Id: Ie64ebd1b78096c38c4398572cbed3e2e9ac6b8b6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87917
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-06-04 06:05:59 +00:00
Hope Wang
8ede4bc67b soc/mediatek/mt8189: Add DVFS driver
Add the initialization code for CPU Dynamic Voltage and Frequency
Scaling (DVFS) for MCUPM.

BUG=b:410763782
BRANCH=none
TEST=Check the CPU frequencies are changing and not fixed values by
using the following commands in kernel:
1) set policy*/scaling_governor as "ondemand"
"echo ondemand > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor"
"echo ondemand > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor"
2) Check the CPU frequencies by repeating the command
"grep . /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq"
The result is like
/sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq:650000
/sys/devices/system/cpu/cpufreq/policy6/scaling_cur_freq:2350000

Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Change-Id: I001d7a02d86892478b456f1c5ab3a6433434a19b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87916
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-06-04 06:05:52 +00:00
Hope Wang
096ce4b244 soc/mediatek/mt8196: Move dvfs_init() declaration to dvfs_common.h
To promote code reuse and maintainability, move dvfs_init() declaration
to dvfs_common.h.

BUG=b:410763782
BRANCH=none
TEST=Build pass.

Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Change-Id: If9778a13a4664bdaf4cad65c8daa78c10748466d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87915
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-04 06:05:46 +00:00
lizheng
0b1bc3df2c mb/trulo/var/pujjocento: Support x32 memory configuration
Use the GPP_E13 level to determine whether x32 memory configuration
is supported.

BUG=b:422001335
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: If1dcffaeb358093f06c4c349a83152a2bdcc16f6
Signed-off-by: lizheng <lizheng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87925
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-04 02:27:58 +00:00
Sean Rhodes
7690442d88 mb/starlabs/byte_adl: Tidy the Kconfig selections
This are a bit illogical, so tidy them up.

Change-Id: Idd4f616181949780c042142344b3bbbccc4f15f6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87894
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-03 20:57:29 +00:00
Felix Singer
ab8339770e 3rdparty/fsp: Update submodule to upstream master
Updating from commit id 04728fbd192f:
2025-05-07 15:20:18 +0800 - (Edge Platforms ADL-S IPU 2025.3 (6073_02) FSP)

to commit id cc36ae2b5775:
2025-05-28 10:49:43 +0800 - (Edge Platforms RPL-S/RPL-S Refresh IPU 2025.3 (6073_04) FSP)

This brings in 1 new commits:
cc36ae2b5775 Edge Platforms RPL-S/RPL-S Refresh IPU 2025.3 (6073_04) FSP

Change-Id: Ia7d7de0db0669a52890442b3e54ebb1043880ef7
Signed-off-by: Felix Singer <felix.singer@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87914
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-06-03 16:43:12 +00:00
Yu-Ping Wu
8e3adf778b soc/mediatek: Add data_version to ddr_base_info struct
To sync with the dramc_param_common.h change [1] from MediaTek's DRAM
blob, change the u32 config_dvfs field to u16 and add a new field
data_version. As all MediaTek SoCs using the structure are little endian
and currently only bit 0 is used for the config_dvfs field, this change
is backward compatible. Therefore, each SoC's DRAMC_PARAM_HEADER_VERSION
doesn't need to be bumped.

[1] commit a39b473a0a7d ("common/cros: Support storing data version in
    full-k cached data")

FIXED=415715491
TEST=emerge-skywalker coreboot
BRANCH=none

Change-Id: Ifcda7d360aefe083fc08c974e6dc62d1c9c12b5e
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87912
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-03 11:10:16 +00:00
Luca Lai
0cdd4125be mb/trulo/var/pujjolo: Fix touchscreen function and boot up issue
1. Add serial_io_i2c_mode to fix can not boot up to OS issue.
2. Change level from low to high to fix parade touchscreen issue.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to pujjolo. Verify functions work.

Change-Id: Ic0a02daa39f4d1d0287115ecab12f45201704227
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87909
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-03 03:10:40 +00:00
Subrata Banik
99e0484000 mb/google/bluey: Increase bootblock size to 120KB
The bootblock size for the Google Bluey mainboard has been increased
from 96KB to 120KB.

This change is necessary to accommodate the growing size of the
bootblock image, which now exceeds the previous 96KB limit. This
expansion ensures that the complete bootblock code, including critical
initialization routines and potentially new features, fits within its
allocated flash region.

TEST=Able to build google/quenbi.

Change-Id: I7bf2c8c6c540327f1b4233ee5ba4e0703d1200f9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87903
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-06-03 01:44:48 +00:00
Kun Liu
1840fb49e0 mb/google/trulo/var/pujjocento: Update gpio setting for DDI-B
Modify according to the hardware schematic(MB-0529A) as follows:

GPP_A20 ---> GPP_A18
GPP_E20 ---> GPP_H15
GPP_E21 ---> GPP_H17

BUG=b:409254508
BRANCH=none
TEST=emerge-nissa coreboot chromeos-bootimage.

Change-Id: I61ef761df7936fb42d4fe68a2b5cd2fa649b7b33
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87900
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-06-03 01:44:32 +00:00
Rui Zhou
69a067a9d6 mb/google/skywalker: Add RT1019 support for beep sound
Derive the audio amplifier from FW_CONFIG, and set up I2C and I2S for
RT1019.RT1019 and RT9123 use the same GPIOs on the Skywalker reference
design, so the same function is used to improve code reusability. Also
pass the corresponding GPIO to the payload.

BUG=b:417083722
BRANCH=none
TEST=Build pass and test with Depthcharge change:
https://chromium-review.googlesource.com/c/chromiumos/platform/depthcharge/+/6437675
Check audio cmd in depthcharge with:
firmware-shell: AUDIO CMD=audio 500 100 1

Change-Id: I512cd5c8635d08c6b6c54f04d11bf87c64d1b843
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87887
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-31 13:30:52 +00:00
Cyril Chao
4caf5131b9 mb/google/skywalker: Add ALC5645 support for beep sound
Derive the audio amplifier from FW_CONFIG, and set up I2C and I2S
for ALC5645. Also pass the corresponding GPIO to the payload.

BUG=b:359705470
BRANCH=none
TEST=build ok and test audio cmd ok
AUDIO CMD=audio 500 100 1

Signed-off-by: Cyril Chao <cyril.chao@mediatek.corp-partner.google.com>
Change-Id: Ib53175f559eecb3d8b5104b12dabfd4793f65d08
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87886
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-31 13:30:42 +00:00
Cyril Chao
623caa537f mb/google/skywalker: Add RT9123 support for beep sound
Derive the audio amplifier from FW_CONFIG, and set up I2S for RT9123.
Also pass the corresponding GPIO to the payload.

BUG=b:359705470
BRANCH=none
TEST=Build pass and test with Depthcahrge change:
https://chromium-review.googlesource.com/c/chromiumos/platform/depthcharge/+/6437675
https://chromium-review.googlesource.com/c/chromiumos/platform/depthcharge/+/6437676
Check audio cmd in depthcharge with:
firmware-shell: AUDIO CMD=audio 500 100 1

Signed-off-by: Cyril Chao <cyril.chao@mediatek.corp-partner.google.com>
Change-Id: I3b9b347ad8b754cbc02d942da9a7b0886c4c3cc4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87885
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-31 13:30:34 +00:00
Mengqi Zhang
16ff3b33ce mb/google/skywalker: Add SD card configurations
Pass SD card detect GPIO to payloads for SD card detection and configure
SD card in ramstage. Currently, only Skywalker supports the SD card.

BUG=b:379008996
BRANCH=none
TEST=Build pass. Check storage in depthcharge.
firmware-shell: storage init
*  0: UFS LUN 0
   1: removable mtk_mmc

Signed-off-by: Mengqi Zhang <mengqi.zhang@mediatek.corp-partner.google.com>
Change-Id: I3b198d5e237006c299581ab4a5da8577dbcca7a6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87884
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-31 13:30:25 +00:00
Kun Liu
3b68408693 mb/google/trulo/var/pujjocento: Configure USB related settings
Modify USB related settings according to the proto schematic diagram.

BUG=b:409254508
BRANCH=none
TEST=emerge-nissa coreboot chromeos-bootimage,tested USBA and TYPEC function is ok.

Change-Id: I48ec269b612602578b35eeaedffd1a3d311bb97e
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87834
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-30 04:21:59 +00:00
Subrata Banik
6c87853a83 mb/google/bluey: Implement board and SKU ID retrieval
This commit populates the `board_id()` and `sku_id()` functions
for the Google Bluey mainboard, replacing the previous placeholder
implementations.

- The Board ID (`board_id()`) is now determined by reading a set of
  four GPIO pins (GPIO138 as MSB, GPIO137, GPIO136, GPIO135 as LSB)
  and interpreting their states as a base-3 encoded value using
  the `gpio_base3_value()` helper.

- The SKU ID (`sku_id()`) is retrieved from the Google ChromeEC
  by calling `google_chromeec_get_board_sku()` when a ChromeEC
  is configured (`CONFIG(EC_GOOGLE_CHROMEEC)`).

Both ID values are cached after their initial determination to
avoid redundant reads.

BUG=b:404985109
TEST=Able to build google/bluey

Change-Id: Ic5a084e35b33a82fef76f33c2663aba7a48c16a7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87861
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-05-30 04:21:40 +00:00
Subrata Banik
830a887ecb mb/google/bluey: Add WLAN and SSD PCI devices to devicetree
This commit updates the devicetree for the Google Bluey mainboard
to include entries for the WLAN and SSD PCI devices.

These devices are located on the x1p42100 SoC's PCI domain 0:
- WLAN: device pci 04.0
- SSD:  device pci 06.0

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: If0a9491f4178ee9a44c04aea1330b6522dfd9bf0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87859
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-30 04:21:34 +00:00
Subrata Banik
891c208835 soc/qualcomm/x1p42100: Enable basic PCIe support
This commit introduces initial support for PCI Express on the
Qualcomm x1p42100 SoC.

Key changes include:
- Selecting `CONFIG_PCI` in Kconfig to enable general PCI subsystem
  support for this SoC.
- Selecting `CONFIG_NO_ECAM_MMCONF_SUPPORT`, indicating that this
  platform will not use the standard MMCONFIG ECAM for PCI
  configuration space access. An alternative mechanism will be required.
- Adding `../common/pcie_common.c` to the ramstage build if `CONFIG_PCI`
  is enabled, incorporating common PCIe helper functions.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: I53e8bb3ce8551e8fa8c4b1cd39d89e12226c32f1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87858
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-30 04:21:29 +00:00
Subrata Banik
a5d99a814a soc/qc/x1p42100: Perform soc_mmu_init inside early bootblock init
This commit introduces `bootblock_soc_early_init` API for early SoC
initialization sequence in the bootblock.

- `bootblock_soc_early_init()`: This function now handles very early
  initialization steps (before console init), specifically
  `soc_mmu_init()` when the bootblock is not compressed.

- `bootblock_soc_init()`: This function retains the subsequent
  initialization tasks including `clock_init()`, `quadspi_init()`,
  and `qupv3_fw_init()`.

This change ensures MMU setup to occur before other peripheral and
clock initializations.

TEST=Able to get bootblock console log in proper.

Change-Id: I8bbcdb9c39e13fac81ef6a34647c4f343a619561
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87857
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-30 04:21:22 +00:00
Subrata Banik
481001e13b soc/qualcomm/x1p42100: Add placeholder for early clock initialization
This commit adds the `clock_init()` function for the Qualcomm x1p42100
SoC. This function is now called at the beginning of
`bootblock_soc_init()` to enable SoC-specific clock setup early in the
boot process.

The `clock_init()` function definition is currently a placeholder
and will be populated with the required clock configurations in
subsequent changes.

BUG=b:404985109
TEST=Able to build google/bluey

Change-Id: Ifb856ea4132def9cd3a36b081d24037a1a4efaba
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87850
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-30 04:21:18 +00:00
Momoko Hattori
77c6104645 Revert "mb/google/rex: Enable use_gpio_for_status for touchscreen"
This reverts commit 81f396ec2f.

Reason for revert: Reported to have broken touchscreen for screebo.

BUG=b:420550351
BUG=b:397355818
TEST=FW_NAME=screebo cros build-packages --board=rex chromeos-bootimage
TEST=FW_NAME=karis cros build-packages --board=rex chromeos-bootimage
TEST=karis boots successfully and touchscreen remains to work.

Change-Id: I75dad8cd07c900f963888b0a34bf18d893f20d71
Signed-off-by: Momoko Hattori <momohatt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87893
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-29 15:32:21 +00:00
Mac Chiang
715e7e51c5 mb/google/fatcat/var/francka: Add support for DMIC0
This patch enables DMIC_CLK0 and DMIC_DATA0 for
internal board DMIC recording.

BUG=b:392007428
TEST=emerge-fatcat coreboot

Change-Id: Idcc18a6a605694bc5c1a2994453717887814e897
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86699
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-29 14:20:30 +00:00
Jeremy Compostella
c16891ecbd soc/intel/meteorlake: Use CACHE_TMP_RAMTOP for TME exclusion range
This commit updates the fill_tme_params() function to utilize the
CACHE_TMP_RAMTOP constant instead of hardcoded values for calculating
the TME exclusion range.

Change-Id: I199182de8b8b219b0c45b27746b7415527cb9976
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87868
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-29 14:20:11 +00:00
Bora Guvendik
394dfcaa7b mb/intel/ptlrvp: Handle GPIO support for DDR5 configuration
This commit addresses the GPIO configuration for DDR5 on Intel's
PTLRVP mainboard. Specifically, it extends support for the DDR5
configuration by adding a case for PTLP_DDR5_RVP in the GPIO
differential table function. This modification ensures proper handling
of GPIO settings when DDR5 memory is configured, thereby improving
system stability and compatibility.

BUG=none
TEST=Boot with DDR5 configuration.

Change-Id: I3745c0a25e84a0f41dced44613cfd638c12fb1d3
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87872
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
2025-05-29 14:19:15 +00:00
Matt DeVillier
58165618da mb/google/byra/var/craask: Add VBT for HDMI variant
Extracted from coreboot-Google_Craask.15217-841-0.bin

Change-Id: I07d4e7fe63ff6ad43806d73d9e31ffe0aa8807c5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87867
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-29 14:18:58 +00:00
Matt DeVillier
ab160ca301 mb/google/byra/var/teliks: Add default VBT
Extracted from coreboot-Google_Teliks.15217.734.0.bin

Change-Id: Ib9f077cdd0536e6315b05775337bf30555562cc8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87866
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-05-29 14:18:54 +00:00
Nick Vaccaro
4d5b32f7f7 mb/google/ocelot/var/ocelot: remove unused gpios
Remove GPP_D16, GPP_D17, and GPP_B25 as they aren't used in ocelot.

Change GPP_A08 polarity in gpio_table and rom_gpio_table.

BUG=b:412736286
BRANCH=None
TEST=`emerge-ocelot coreboot` and verify it compiles without error.

Change-Id: Ife444cef816ca2b69db466661c63935f72836554
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87870
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Avi Uday <aviuday@google.com>
2025-05-29 14:18:40 +00:00
Kun Liu
0e5757bfa7 mb/google/trulo/var/pujjocento: Update DTT settings for thermal control
The DPTF parameters were defined by the thermal team.
Based on thermal table in b:419161631#comment1

BUG=b:419161631
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: If79e58fa52ecb4626fdd6a25e8e3bf6e3c556c6b
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87878
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-29 14:18:19 +00:00
Vince Liu
c34baacc72 soc/mediatek/common: Add UFS2.2 and eMMC definitions to storage.h
Add support for projects with UFS2.2 and eMMC storage.

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ie8d76920417c7708117e3492152d3d4e87dd87ca
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87864
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-29 12:12:46 +00:00
Mengqi Zhang
f325409784 soc/mediatek/mt8189: Add SD card support
Add GPIO configuration of SD card.

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Mengqi Zhang <mengqi.zhang@mediatek.corp-partner.google.com>
Change-Id: If34841dddeb93a8622dda8e011cd1f29ec9c541d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87863
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-29 12:12:39 +00:00
Mengqi Zhang
ae435c014c soc/mediatek/mt8189: Configure and early initialize eMMC
Some eMMCs need 80+ms for CMD1 to complete. And the payload may need to
access eMMC in the very early stage (for example, depthcharge needs it
20ms after started) so we have to start initialization in coreboot.

BUG=b:379008996
BRANCH=none
TEST=build pass and run "storage init" in depthcharge shell on MTK EVB
firmware-shell: storage init
*  0: mtk_mmc
1 devices total

Signed-off-by: Mengqi Zhang <mengqi.zhang@mediatek.corp-partner.google.com>
Change-Id: I82f2a155b810a8b9608d70fe0c015e6054d0be00
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87862
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-29 12:12:32 +00:00
Luca Lai
91ebbb8d35 mb/trulo/var/pujjolo: Modify pujjolo variant
Modify pujjolo vairant codes for type-c port1 display, parade
touch screen, especially for gpio to fit Trulo. Follow the setting of pujjocento.

BUG=b:395763555
BRANCH=none
TEST=Build and boot to pujjolo. Verify functions work.

Change-Id: I285cd33de6e18a2ffb30eb6401c03f6a4b20dc4a
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87843
Reviewed-by: Talal Sadak <tsadak@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-29 06:59:53 +00:00
Zhaoxiong Lv
aea05e51a7 mb/google/trulo/var/pujjocento: Enable WWAN function
WWAN_FCPO == GPP_D6
WWAN_RST == GPP_E17
spec reuqest: 0 < toff <10ms

LTE is controlled by bits 14 and 15 in fw_config, and P sensor
and LTE modules exist at the same time, so we use the same bit
to control whether to load the driver.

BUG=b:419325064,b:417105553
TEST=Confirm the measured WWAN power sequence

Change-Id: Ia978aef2cc721b65618ac78c13930447d1557797
Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87841
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-28 14:32:54 +00:00
Zhaoxiong Lv
47133a716d mb/google/trulo/var/pujjocento: Add P-sensor support
Apply DRIVERS_I2C_SX9324
Apply DRIVERS_I2C_SX9324_SUPPORT_LEGACY_LINUX_DRIVER

GPIO changes:
GPP_B7	==>	I2C_P_SENSOR_SDA
GPP_B8	==>	I2C_P_SENSOR_SCL
GPP_H19	==>	P_SENSOR_INT_L

BUG=b:417176908
TEST=Build and verify on pujjocento

Device list:
cat /sys/bus/iio/devices/iio\:device0/name
sx9324

The value of register 01 when away:
i2cget -f -y 13 0x28 01
0x00

The value of register 01 when approaching:
i2cget -f -y 13 0x28 01
0x01

Change-Id: Ie5543f592876c1ebfbb39049f00fe7fe171c8e2f
Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87743
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-05-28 14:32:18 +00:00
Zhigang Qin
04c0527aba soc/mediatek/mt8189: Support different PMIC soluitons for MT8189(G/H)
The MT8189 chipset comes in two variants: MT8189G and MT8189H. The
MT8189G variant uses a single PMIC IC (MT6315), whereas the MT8189H
variant uses two PMIC ICs. To ensure driver compatibility, we utilize
the CPU ID and segment ID to accurately determine the required number
of SPMIF instances.

BUG=b:379008996
BRANCH=none
TEST=build pass and boot up normally.

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I07bc21a2026803e76861b27a178d229deca2090a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87854
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-28 08:37:24 +00:00
Vince Liu
80149f55f7 soc/mediatek/common: Convert spmi_dev_cnt to a function
In some SoCs, such as MT8189G/H, different numbers of PMICs are
required. To ensure code reusability and compatibility, it is
necessary to dynamically set this variable. Therefore, spmi_dev_cnt
is changed to a function.

BUG=b:379008996
BRANCH=none
TEST=build passed

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Ib8d6306a81c276dceb021ddadec40803fd85019b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87853
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-28 08:37:12 +00:00
Wen Zhang
dcf403e43a mb/google/skywalker: Configure fingerprint pins
There is no powering-on control in the fingerprint kernel driver.
Follow Rauru to power-on FP MCU in the FW.

BUG=b:401396071
BRANCH=none
TEST=ectool --name=cros_fp version can get the FP FW version.

Signed-off-by: Haikun Zhou <zhouhaikun5@huaqin.corp-partner.google.com>
Change-Id: I20ff175ee4874c4188b7d07ee57330a9275dcb3d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87852
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-28 08:37:01 +00:00
Yu-Ping Wu
508d910ed4 libpayload/arch/mock: Select ARCH_HAS_NDELAY for ARCH_MOCK
Unit tests should always use a mock ndelay() defined within each test.
Therefore, select ARCH_HAS_NDELAY for ARCH_MOCK.

Change-Id: I2680e37034d4d13058b3e778d72e63fc6ed18313
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87855
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-05-28 00:15:29 +00:00
Stephen Douthit
96ac0224ab pci: Add support for assigning resources to SR-IOV VF BARs
This ensures that bridge windows allocate enough space to cover
SR-IOV BARs. Without this Linux will print messages, these messages
may differ depending on the kernel version used.

Debian GNU/Linux 12 (kernel 6.1.0-28-amd64):
pci 0000:06:00.0: BAR 7: no space for [mem size 0x00200000 64bit pref]
pci 0000:06:00.0: BAR 7: failed to assign [mem size 0x00200000 64bit
pref]

Ubuntu 22.04.5 LTS (kernel 6.8.0-52-generic):
pci 0000:06:00.0: VF BAR 0 [mem size 0x00200000 64bit pref]: can't
assign; no space
pci 0000:06:00.0: VF BAR 0 [mem size 0x00200000 64bit pref]: failed to
assign

TEST=Raptorlake-P

Change-Id: Ib169efe5a6b998a8342a895f1456a280669c719d
Signed-off-by: Stephen Douthit <stephend@silicom-usa.com>
Signed-off-by: Harrie Paijmans <hpaijmans@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34620
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-27 15:10:48 +00:00
Zhixing Ma
ba8be19122 mb/intel/ptlrvp: Update Kconfig for PTLRVP_CHROMEEC
Update the MAINBOARD_PART_NUMBER config to support PTLRVP_CHROMEEC
variant.

BUG=NONE
TEST=boot ptlrvp_chromeec variant and verify correct mainboard name
in depthcharge.

Change-Id: Ic8208b4ee2c9055671d426cb4b4fdc2a494ad2d8
Signed-off-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87688
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
2025-05-27 15:10:12 +00:00
Felix Singer
7cbbf786cc update_submodules: Use relative paths to submodules
There doesn't seem to be much reason to use absolute paths to the
submodules, other than that it's not needed to change to the original
directory.

In preparation for CB:87824, make use of relative paths and change to
the original directory at the start of each iteration.

Change-Id: Ic74b589d933e6acd882fb9a09461bf7c01952a6f
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87823
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-27 15:09:51 +00:00
Tongtong Pan
dcc8400e27 mb/google/fatcat/var/felino: Modify GPIOs config
Make some GPIOs corrections, refer to the schematic revision
 NB7501A_WSCH_MB_V4P_0427.

disable MIPI config
disable ISH
modify HW_ID config
nc some strap pin to default
modify sx related pins

BUG=NONE
TEST=emerge-fatcat coreboot

Change-Id: I075efda3044ffe45d7db3d225b10e96e084483aa
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87806
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-27 15:09:40 +00:00
Matt DeVillier
99af85ad36 mb/google/puff: Add VBTs for Moonbuggy and Scout variants
These variants were missing VBTs necessary for display init, so add
them. VBT files taken from the stock firmware images:
coreboot-Google_Moonbuggy.13324.803.0.bin
coreboot-Google_Scout.13324.645.0.bin

Since all variants now have VBTs, move the selection of
INTEL_GMA_HAVE_VBT to the baseboard.

TEST=build/boot various puff variants, including scout.

Change-Id: I2bb06894fc4df358cc38a4627de9f95289c2c5e0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87779
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-05-27 15:09:25 +00:00
Angel Pons
4ae9a79d8d Haswell NRI: Remove unused SPD_LEN define
This was kept around to avoid build issues back when the NRI patches
were awaiting review. It is no longer used and to-be-upstreamed code
does not use this define either, so now is a good time to get rid of
it.

Change-Id: Id10d81774b0d679b54d5dc4a15dab5996e3a68c5
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87832
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-27 15:09:11 +00:00
Angel Pons
0c5286ba34 Haswell NRI: Tidy up REUT subsequence programming
The REUT subsequence control register had a different layout in the
Haswell A0 stepping, so it was initially programmed using bitmasks.
However, NRI does not implement support for the A0 stepping because
it is early pre-production silicon that no one should be using, but
the code kept using the bitmasks approach. But we can do better.

Introduce a bitfield for the REUT subsequence control register, and
use it instead of bitmasks. Put the enum for subsequence types next
to the code using it (no reason to have it in the common header, it
is not used anywhere else). And make a helper function that encodes
the number of cachelines in the format expected by the REUT (7 bits
of value, 1 bit for exponential/linear).

Change-Id: I1609ad010e714b0fc47403df7a71e5fc5ae0f5ac
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87829
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-27 15:08:30 +00:00
Angel Pons
7766228798 Haswell NRI: Deduplicate PCODE mailbox functions
Now that the CPU code exports these PCODE mailbox functions, there is no
reason to retain a copy of them in NRI.

Change-Id: Ic9853cfd6793ecdadf8d2bd15b268f9cf95ba32d
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87828
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-27 15:07:40 +00:00
Angel Pons
ae68ef3684 cpu/intel/haswell: Export PCODE mailbox functions
The PCODE mailbox is primarily used by CPU code in ramstage. However,
it is also used as part of enabling DDR 2x refresh rate, which is now
implemented in coreboot as part of NRI (native RAM init).

The PCODE mailbox functions in CPU code were not exported at the time
NRI was being developed, so I chose to temporarily copy the functions
into NRI code to make it easier to rebase NRI patches since it avoids
potential merge conflicts. After a few years of rebasing patches, NRI
finally got submitted, so there's no reason to keep duplicate code in
the tree anymore.

Put the relevant PCODE functions into a new file, which gets compiled
for both ramstage (CPU init) and romstage (NRI). The BCLK calibration
function is only used in ramstage so there's no need to move it.

Change-Id: I340625fabc072139b8def254f1ce6b19f360adcd
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87827
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-05-27 15:07:25 +00:00
Angel Pons
ddce240d34 cpu/intel/haswell: Clean up Makefile
Group entries by stage and sort groups by stage execution order.

Change-Id: I6e2a53d6555700b48fd3aececdfdb8983554a75a
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87826
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-05-27 15:07:04 +00:00
Avi Uday
2117ed850f mb/google/ocelot/var/ocelot: fix storage configs for ocelot
Ocelot does not support GEN5 NVME Storage. However since ocelot code
was forked from fatcat, these configs exist in coreboot.

Furthermore, the GEN4 NVME GPIOs have changed for ocelot -
1. GPP_B10 to GPP_H18 - GEN4_SSD_PWREN renamed to EN_PP3300_SSD
2. GPP_B09 to GPP_A08 - M2_GEN4_SSD_RESET_N renamed to SSD_PERST_L

BUG=b:419731962

Change-Id: I005d1188138ac7b4bbffa1437bba9aea39aff117
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87804
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-05-27 15:06:31 +00:00
Nick Vaccaro
c5488c0d6d mb/google/ocelot/var/ocelot: update gpios
Update gpio configuration for GPP_A08, GPP_E17, and GPP_F18 to
match ocelot schematic.

Change GPP_H16 (WWAN_PWR_EN) to GPP_E01 (EN_WWAN_PWR) in fw_config.c.

Change GPP_V06 and GPP_V11 to "No Connect" as they are test points.

Change trace names from "SNDW3_" to "SDW3_" to match names on ocelot
schematic.

BUG=b:412736286
BRANCH=None
TEST=`emerge-ocelot coreboot` and verify it compiles without error.

Change-Id: I8996dc1b2b0f85490d55a86dc2ca6a90c1604638
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87750
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-27 15:05:41 +00:00
Nick Vaccaro
6602a4462b mb/google/ocelot/var/ocelot: Enable hda device for AUDIO_ALC721_SNDW.
BUG=b:412736286
BRANCH=None
TEST=`emerge-ocelot coreboot` and verify it compiles without error.

Change-Id: I0c3d2c30af8839540a7c6d53dc11c83782b92d25
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87751
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-27 15:05:32 +00:00
Vince Liu
99b6ff25d4 soc/mediatek/mt8189: Add MTK FSP loader in ramstage
To support the MTK firmware support package (FSP), reserve a 2MB region
in DRAM for loading `mtk_fsp_ramstage.elf` during ramstage.

BUG=b:379008996
BRANCH=none
TEST=build passed

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: If153d9746bea8c7faa8f9787029b44192c18899d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87813
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-27 05:22:26 +00:00
Vince Liu
c4fe5e2483 mb/google/skywalker: Pass reset GPIO parameter to BL31
Pass the reset GPIO parameter to BL31 to support SoC reset.

BUG=b:395795640
BRANCH=none
TEST=run reboot command in depthcharge

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I87063d58d04ea6437195a59abab9c54f2da7eac0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87814
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-27 02:23:06 +00:00
Frank Wu
f59ced2c7c mb/google/fatcat/var/francka: boot up by pressing power button in S5
Currently Francka cannot boot up immediately by pressing power button
when its power state is S5.
This patch fixes the power on process for this scenario.

BUG=b:419406610
BRANCH=none
TEST=Francka boots up immediately by pressing power button in S5.

Change-Id: I52fba7f58faa890955cd07728a6790520df29321
Signed-off-by: Frank Wu <frank_wu@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87807
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-26 18:41:19 +00:00
Julius Werner
df0221e62a libpayload: Protect against trying to use weak symbols in the wrong way
Weak symbols don't work as expected when you try to override them from
within the same static library. Static libraries are just archives of
individual objects, and when the linker tries to resolve a symbol
against it it simply uses the implementation from the first object that
has one, weak or not. It does not search through all remaining objects
to see if there's also a strong implementation.

We've had multiple cases in libpayload where builds were incorrectly
using the default implementation rather than an optimized arch-specific
implementation for years due to this issue. To prevent it from
recurring, this patch adds some postprocessing script to the Makefile
that checks for this situation and makes the build fail if it creeps in
again.

Change-Id: I9fcbc9b873901d126322b12954c349c08300369f
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87777
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-26 18:40:51 +00:00
Felix Singer
d27e8ef460 update_submodules: Add an empty log line between each iteration
For better readability of the log output, add an empty line between each
iteration of the submodules.

Change-Id: I626b609e9833bffde0f7a5eb101877c6cd83a173
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87822
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-26 18:40:09 +00:00
Ian Feng
d9bd7ce89f mb/google/fatcat/var/francka: Enable audio codec ALC721
Enable Realtek ALC721 soundwire codec for francka.

BUG=b:417133565
TEST=Build and boot to OS in francka and SoundWire driver
probe successfully.

Output Devices:
	ID	MaxCha	LastOpen	Name
	13	0	UNK		sof-soundwire: :0,7
	12	0	UNK		sof-soundwire: :0,6
	11	0	UNK		sof-soundwire: :0,5
	8	2	UNK		sof-soundwire: :0,0
	7	2	UNK		sof-soundwire: :0,2
Output Nodes:
Stable Id	ID	Type		MaxCha Name
(8c7788a4)	13:0	HDMI            0 sof-soundwire HDMI/DP,pcm=7
(40acdf7f)	12:0	HDMI            0 sof-soundwire HDMI/DP,pcm=6
(742af104)	11:0	HDMI            0 sof-soundwire HDMI/DP,pcm=5
(db5babbe)	8:0	HEADPHONE       2 Headphone
(5c5b2998)	7:0    INTERNAL_SPEAKER 2*Speaker

Change-Id: I52890fb331f54c48a280a0e3210762a5c66c8bba
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87811
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-26 18:39:52 +00:00
Ian Feng
48fbd99223 mb/google/fatcat/var/francka: Set the default HDA GPIO pin to an NC pin
This modification sets the HDA GPIO pin to NC by default.
Different audio configurations can be enabled via fw_config.

BUG=b:417133565
TEST=emerge-fatcat coreboot, HDA sound cards can be detected.

Change-Id: I0090a68d86de1067697d7efbb64c4638476c64ca
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87810
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-26 18:39:18 +00:00
Subrata Banik
3b975f92c7 soc/intel/pantherlake: Select TME support for the SoC
Enables CPU_SUPPORTS_INTEL_TME and TME_KEY_REGENERATION_ON_WARM_BOOT
for Panther Lake, providing hardware memory encryption capabilities.

TEST=Able to build and boot google/francka. Verified TME related
settings inside FSP are now enabled with this patch.

Change-Id: Iedc0d72d00e7e3c5b85916e2de4f020efd5ef024
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87801
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-05-26 16:51:50 +00:00
Subrata Banik
8408bd4863 soc/intel/pantherlake: Add TME configuration
This commit moves the TME configuration into its own static function,
`fill_tme_params`, which is then called from
`fill_fspm_security_params`.

The `TME_KEY_REGENERATION_ON_WARM_BOOT` option is now supported,
allowing a new TME key to be generated on warm reboots.

This feature leverages the `SOC_INTEL_COMMON_BASECODE_RAMTOP`
configuration to determine a memory exclusion range for the new key.

Additionally, disable the `BIOS Guard` UPD as part of security FSP
UPD configuration.

TEST=Able to build and boot google/fatcat. S0ix also works with this
patch.

Change-Id: I1030a25262f1c3c24cf9f4886718689ee2c8155e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87808
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-26 16:51:44 +00:00
Felix Singer
dc36a725d6 3rdparty/fsp: Update submodule to upstream master
Updating from commit id 86c9111639d3:
2025-03-03 16:14:02 +0800 - (Edge Platforms RPL-P IPU 2025.2 (5402_02) FSP)

to commit id 04728fbd192f:
2025-05-07 15:20:18 +0800 - (Edge Platforms ADL-S IPU 2025.3 (6073_02) FSP)

This brings in 8 new commits:
04728fbd192f Edge Platforms ADL-S IPU 2025.3 (6073_02) FSP
d4e342ac36b9 Edge Platforms ADL-PS IPU 2025.3 (6073_02) FSP
b5b65158d01b Edge Platforms ADL-P IPU 2025.3 (6073_02) FSP
54792daf4384 Edge Platforms RPL-P IPU 2025.3 (6073_03) FSP
ce3297e53c2c IoT ADL-N MR7 (6023_00)
d965fe778e7b IoT ADL-N MR7 (6023_00)
dd1c93bf0af4 ECG BTL-S Hybrid PV (5401_04) FSP
98a458e77195 ECG BTL-S Hybrid PV (5401_04) FSP

Change-Id: Ib1b78ccc26d19749494a131d537ee41aa0ff5544
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87818
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-26 12:25:41 +00:00
Felix Singer
1f47b0e018 3rdparty/intel-microcode: Update submodule to upstream main
Updating from commit id 8a62de41c011:
2025-02-11 11:03:17 -0600 - (microcode-20250211 Release)

to commit id eeb93b7a818b:
2025-05-12 11:40:14 -0600 - (microcode-20250512 Release)

This brings in 1 new commits:
eeb93b7a818b microcode-20250512 Release

Change-Id: I472ec5b516b17be05f10847bd873076f5e9c9805
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87817
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-26 12:25:36 +00:00
Subrata Banik
4c446751c6 {commonlib, drivers}: Track firmware splash screen rendering completion
This commit adds a new timestamp, `TS_FIRMWARE_SPLASH_RENDERED`
(ID 557), to precisely mark the moment the firmware splash screen has
finished displaying.

The timestamp is recorded in `src/drivers/intel/fsp2_0/silicon_init.c`
within the `do_silicon_init` function. It's conditionally added based on
the platform's configuration:

- For platforms using FSP's native BMP rendering (prior to FSP 2.2, with
  `CONFIG(BMP_LOGO)` and without
  `CONFIG(USE_COREBOOT_FOR_BMP_RENDERING)`).
- For platforms where coreboot handles BMP rendering (`CONFIG(BMP_LOGO)`
  and `CONFIG(USE_COREBOOT_FOR_BMP_RENDERING)`).

This enhancement provides better visibility into the boot process and
allows for more accurate performance analysis related to splash screen
display time.

BUG=b:418935715
TEST=Able to build and boot google/fatcat. Verified below details in
`cbmem -t`.

```
557:Firmware splash screen rendering finished    47,193,590 (2,235)
```

Change-Id: Ibef967dbc6e224741438e9708b42486ba03d0104
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87812
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-25 14:35:09 +00:00
Kapil Porwal
ccb8b34194 Revert "mb/var/uldrenite: Use VBT with limited resolution for 4GBx32 memory"
This reverts commit 3ecaf04dad.

Reason for revert: Build failure

```
make[2]: *** No rule to make target 'src/mainboard/google/brya/variants/uldrenite/data.vbt', needed by '/cb-build/coreboot-gerrit.0/gcc-chromeos/GOOGLE_ULDRENITE/coreboot.pre'.  Stop.
```

Change-Id: Ibc1c887c38950d22c91b0ecc76167c2ab7e6ae33
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87816
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-25 03:49:48 +00:00
Haikun Zhou
1a00629ae2 mb/google/skywalker: Set up open-drain ChromeOS pins
Set open-drain GPIOs for ChromeOS as input and bias-disable mode. Also
set AP_HDMI_RST_ODL to low, which is the only open-drain output pin.

BUG=b:397102113
BRANCH=none
TEST=build pass

Change-Id: I4375c25768de8f1462c491b2c84b9cf31f118126
Signed-off-by: Haikun Zhou <zhouhaikun5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87796
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-24 17:08:15 +00:00
Zhigang Qin
0f2942b513 mb/google/skywalker: Raise little core CPU frequency to 2.0 GHz
Increase the CPU little core frequency from 1.6 GHz to 2.0 GHz to
speed up the boot process.

BUG=b:379008996
BRANCH=none
TEST=check little core cpu frequency is 2GHz in kernel by commands
clkdbg() { echo $@ > /proc/clkdbg ; cat /proc/clkdbg ; }
clkdbg fmeter

See the little core CPU frequency:
fm_armpll_ll_ck          	: 1999968

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I979f44e9340ea5bd733dc7f0fe47af47a4f403b7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87795
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-24 17:08:08 +00:00
Vince Liu
0ba0d03140 mb/google/skywalker: Implement regulator interface
Control regulator more easily with regulator interface.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: Ie7bfc9c3fb4e5f50cdf1ed8174366bdafaf3c49a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87794
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-24 17:08:01 +00:00
Vince Liu
090bce1042 soc/mediatek/common: Add VMODEM and VSRAM_MD bucks support for MT6359
Add support for VMODEM and VSRAM_MD buck converters in MT6359. These
buck converters are required for MT8189 to adjust voltage and CPU
frequency.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: Ifdf43748a139050ec9fba50f918e071dc622a670
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87799
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-24 17:07:54 +00:00
Wentao Qin
c74610afae soc/mediatek/mt8189: Shut down PMIC on power key long press
Currently on power key long press, PMIC will be reset. It would cause
an unwanted reset pulse in the power-off sequence. To match expected
sequence, change PMIC behavior to "force shutdown".

BUG=b:395848137
BRANCH=none
TEST=long-pressing power key doesn't trigger PMIC_AP_RST_L pulse

Change-Id: Ia8fb9f4a1ffe05955fca51a58468ba338ef8e12d
Signed-off-by: Haikun Zhou <zhouhaikun5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87798
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-24 17:07:47 +00:00
Cong Yang
d1f7565403 mb/google/skywalker: Notify EC that AP is in S0
GPIO_AP_SUSPEND_L is supposed to be high in S0, and low in S3. EC uses
this pin to determine the AP power state. This pin should be set as
early as possible in bootblock.

BUG=b:396030112
BRANCH=none
TEST=reboot pass. `powerinfo` shows S0 in EC console.

Change-Id: Ib7e9eaa19d232a37b3793bcbe268ba021e456ac7
Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87793
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-24 17:07:40 +00:00
Yu-Ping Wu
da45a88dd3 util/abuild: Fix checking of missing_arches
The commit f66c7c1037 ("util/abuild: Update echo to printf for
consistency") accidentally added whitespaces to the missing_arches
variable, causing the [[ -n "${missing_arches}" ]] check to fail.

The commit c81b08c4ba ("util/abuild: Fix building ChromeOS boards")
intended to fix it, but did it the wrong way.

Now, really fix the problem from the Makefile snippet that is causing
the whitespace issue.

Change-Id: I5e417e851840bad000492bf737fc8e25063fe0c4
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87809
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-23 19:54:29 +00:00
Kyösti Mälkki
cdcbb71936 mb/google/link: Use chromeec_smi_sleep()
SMI handler previously did not evaluate input slp_typ parameter and
apparently always acted as S3 was requested.

With the change keyboard is no longer a wakeup source from S4/S5, it is assumed MAINBOARD_EC_S5_WAKE attribute defined in ec.h is correct.

Change-Id: I54c7d7455a6737f731c65e57c91b6457643c7cb2
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74603
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Boris Mittelberg <bmbm@google.com>
2025-05-23 17:20:01 +00:00
Matt DeVillier
885aacf004 mb/google/byra/var/teliks: Add VBT for 11" panel option
Extracted from coreboot-Google_Teliks.15217.734.0.bin

Change-Id: I2c6b00ab0fc67b651256ec32d4d983b987435010
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87557
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 16:53:43 +00:00
Matt DeVillier
2ce777f178 mb/google/byra/var/yaviks: Add VBT for yavilla
Extracted from coreboot-Google_Yaviks.15217.552.0.bin

TEST=build/boot yaviks/yavilla variant with working display.

Change-Id: I775baf4216eef2a60bc1ac034cef3c5c7c38ea69
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87556
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-05-23 16:53:37 +00:00
Matt DeVillier
0db4444446 mb/google/byra/var/pujjo: Add VBT for pujjo1e
Extracted from coreboot-Google_Pujjo.15217.460.0.bin.

TEST=build/boot pujjo1e variant with working display.

Change-Id: I82425bdbbba93197fb7b6f7a866412dc49066cdf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87555
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-05-23 16:53:32 +00:00
Zhongtian Wu
8c3e6ea319 mb/google/nissa/var/pujjocento: Enable touchpad
Enable touchpad FTCS1000/GXTP5100/ELAN06FA for pujjocento.

BUG=b:417106542
BRANCH=none
TEST=Build and boot to pujjocento. Verify touchpad works.

Change-Id: I4c8cfdf9931282f366809b79198ec69c753b9814
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87711
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
2025-05-23 16:53:07 +00:00
Zhongtian Wu
643bba345c mb/google/trulo/var/pujjocento: Enable touchscreen
Enable ELAN901C\PARA3406\PARA3408 touchscreen for pujjocento.

BUG=b:417106542
BRANCH=none
TEST=Build and boot to pujjocento. Verify touchscreen works.

Change-Id: I10b3234fc1656150c24750837f115e227221e039
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87710
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 16:53:01 +00:00
John Su
3ecaf04dad mb/var/uldrenite: Use VBT with limited resolution for 4GBx32 memory
To have the best usage case on 4GBx32 memory sku, the external display
resolution must not exceed 2560x1700. So use the GPP_E13 signal level
to determine x32 memory configuration and apply the corresponding VBT
accordingly.

BUG=b:415850768
TEST=Check the log for the string "Use vbt-uldrenite_x32mem.bin"

Cq-Depend: chrome-internal:8258325
Change-Id: I82a7415b4c99de9278e04f07a9efb0dfa0bf753d
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87654
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 16:52:26 +00:00
Matt DeVillier
71ae2c7366 mb/google/octopus: Add VBTs for DOOD and FOOB variants
These variants were missing VBTs necessary for display init, so add
them. VBT files taken from the stock firmware images:
coreboot-Google_Dood.11297.368.0.bin
coreboot-Google_Foob.11297-169.0.bin

Since all variants other than the baseboard have VBTs, move the
selection of INTEL_GMA_HAVE_VBT to the baseboard and exclude the
octopus board.

TEST=build/boot various ocotpus variants, including dood/foob.

Change-Id: I67655b149de40e3e7f83971780f62cd7fce820c8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87774
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 16:52:13 +00:00
Matt DeVillier
7a703fc1fb mb/google/rex: Select IOM_ACPI_DEVICE_VISIBLE
Needed for coolstar's IOM/TCSS drivers under Windows.

TEST=build/boot Win11 on google/screebo

Change-Id: Ib5a288d9b5d259c27f3b3b2b1b7b86e9c0e1f491
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86822
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-05-23 16:52:05 +00:00
Matt DeVillier
0121d0e3e0 ec/google/chromeec/smi: Clear events before enabling wake mask
On some older platforms (eg, google/link), setting the wake mask
before clearing the pending events will result in an immediate
wake from S3 sleep, so swap the ordering to ensure that doesn't
happen.

TEST=build/boot google/link, verify S3 sleep works properly.

Change-Id: I483dcfabd37a1f55fd0e56eed895f5b813f018d7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87576
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2025-05-23 16:51:27 +00:00
Matt DeVillier
5a947da94e mb/google/sarien: Update VBT from v221 to v228
Update VBTs for both sarien and arcada variants from v221 to v228.
The current public CFL FSP uses/expects v228, and the older v221
causes a 180* rotation of the display at boot. Updating the VBT
to v228 fixes the issue. Also disable the fixed mode at boot
setting, so that the native panel resolution can be used by
the payload.

Settings were exported from the v221 VBTs using the Intel BMP tool,
and imported/applied to the sample VBT provided in the FSP repo.

TEST=build/boot google sarien w/edk2 payload, verify screen orientation
correct and native panel resolution used.

Change-Id: Ib6669fc535a197f961abdfcd10616c97a0573df2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87619
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 16:51:15 +00:00
Dinesh Gehlot
0fba735482 soc/intel/cmn/blk: Refactor CSE status flag and optimize forced sync
This patch enhances the forced CSE sync mechanism by eliminating the
boot partition check for RO. It uses the persistent CMOS flags to
preserve the forced CSE update status across boots.

This patch also replaces the CSE status boolean variable with a bit
field to optimize CMOS memory utilization. Consequently, the remaining
bits can potentially be utilized for additional CSE states in future.

BUG=b:380220737
TEST=Verified forced CSE sync on google/rex0.

Change-Id: If1e4180cb5fec3990fdee2b0e412173b1c8c6ded
Signed-off-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86153
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 16:51:07 +00:00
Bartłomiej Grzesik
bb8d069dd3 vc/google/chromeos: Move pvmfw cbmem and enable
This change moves pvmfw cbmem implementation to chromeos directory and
under CHROMEOS kconfig. The kconfigs have been renamed accordingly and
with this change CHROMEOS_PVMFW_CBMEM is enabled by default for
CHROMEOS.

BUG=b:410735713
TEST=The build with CONFIG_CHROMEOS=y allocates buffer for pvmfw, the
depthcharge adds the location and size of the buffer to the kernel
command line

Change-Id: I024f21ceee1334ebd7ae9bf1b897ad670ddc9ef9
Signed-off-by: Bartłomiej Grzesik <bgrzesik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87763
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 15:41:02 +00:00
Kun Liu
f562992da1 mb/google/trulo/var/pujjocento: Enable EC keyboard backlight
Enable EC keyboard backlight for pujjocento.

BUG=b:417141058
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Ibaffd70fc04cb7a42543684d2edaf1d3a5c2f4f6
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87770
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-23 14:01:13 +00:00
Kun Liu
d281a3c559 mb/google/trulo/var/pujjocento: Configure tcss_aux_ori
Resolve the issue that DP can only display on one side.

BUG=b:416842915
BRANCH=none
TEST=Build and boot to pujjocento. Verify typec works.

Change-Id: I55f2f28a0bdb052cafa05a98f51c8483fb343b8c
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87757
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-23 14:01:03 +00:00
Wentao Qin
7150c5e2fe mb/google/skywalker: Create variant Anakin
Create the variant Anakin.

BUG=b:419419679
TEST=emerge-skywalker coreboot
BRANCH=None

Change-Id: I1f53b6a307934e6a1c58ee21dd0275c6a632e726
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87797
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-23 05:06:11 +00:00
Julius Werner
aedc177f00 libpayload: arm64: Reduce DMA allocator space to 1MB
On arm64 device libpayload reserves 32MB of space for the DMA allocator.
DMA allocators are usually just used for small bounce buffers or DMA
descriptors for SPI, I2C or USB transfers, nothing that should get
anywhere near the size of megabytes.

Presumably the original number was just made arbitrarily large because
it didn't matter. But more recently we have had security applications
(guarding secrets that get received over SPI/I2C from firmware and must
not be visible to the OS after handoff) that made us want to erase the
entire DMA heap just to be sure no driver left a copy of any secret
lying around there. This means the size is no longer fully harmless
because erasing a larger heap takes more time.

Change the default to 1MB which should still be more than more than
enough for any real applications, but should bring the time required to
erase it back into negligible territory.

BUG=b:418942992
TEST=Booted Trogdor from USB.

Change-Id: Id56486203c512d7ff08909cac1a016adc44d8e68
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87780
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-22 20:56:14 +00:00
Julius Werner
4ccb4a78c4 libpayload: Use Kconfig instead of weak symbol for arch_ndelay()
Weak symbols don't work as expected when you want to override them from
within the same static library. This patch changes the arch_ndelay()
function so that instead of having a weak generic implementation, the
choice between generic implementation and an arch-specific override is
explicitly made by Kconfig. Let's also drop the "arch_" prefix and just
call this ndelay().

Change-Id: Ie4fe2734e0683fa3537e2ebcabfe067e7499463a
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87776
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-05-22 19:27:30 +00:00
Julius Werner
37513297d3 libpayload: Use Kconfig for architecture memcpy, not weak symbols
Our mechanism to override the default (pure C) memory function
implementations (memset, memcpy, memmove) with architecture-specific
optimized assembly versions doesn't actually work: it turns out that
weak functions don't work as you'd naively expect when you pack them
together with a strong definition from a different object into a static
library. When a linker tries to resolve a symbol from a static library,
it just picks the first one it finds, even if it is weak. It doesn't
evaluate all objects in the library to see if there are other strong
definitions.

To fix this, this patch gets rid of the weak symbols and uses Kconfigs
instead. It adds an optimized memmove() implementation for x86 because
that makes things easier (then all architectures either override all
three functions or none of them). Also remove memcmp() from the
functions that can be overridden for now because nobody ever needed that
anyway.

Change-Id: Iedf9898247f1999e56fde3233fad8b7cb36b1269
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87766
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-22 19:27:24 +00:00
Wentao Qin
bcbe17dea3 mb/google/skywalker: Configure TPM
Initialize I2C bus 3 for TPM control and enable vboot secdata.

BUG=b:395723580
BRANCH=none
TEST=check boot log

Change-Id: I34da1a494e71bdaac0223d1db918fffe12f68df4
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87772
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-22 15:20:19 +00:00
Wentao Qin
3d40b7d018 soc/mediatek/mt8189: Increase bootblock size from 60KB to 70KB
Increase the bootblock size to support TPM.

BUG=b:395784036
BRANCH=none
TEST=Build pass

Change-Id: Ieabb30b0458f6275bda14602126e0ccabbd7a714
Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87771
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-22 15:20:13 +00:00
hailong.fan
8d25cf3ae7 soc/mediatek/mt8189: Add SSPM loader
Secure System Power Manager (SSPM) provides power control in secure
domain. The initialization flow is to load SSPM firmware to its SRAM
space and then enable it. It takes 19 ms to load sspm.bin.

coreboot logs:
CBFS: Found 'sspm.bin' @0x26740 size 0x645b in mcache @0xfffdd1ec
mtk_init_mcu: Loaded (and reset) sspm.bin in 19 msecs (59392 bytes)

BUG=b:379008996
BRANCH=none
TEST=build pass and see SSPM firmware loading log

Signed-off-by: Hailong Fan <hailong.fan@mediatek.corp-partner.google.com>
Change-Id: I9be0e7ee3d003b5ee9e07e4f136795755a11c5bc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87761
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-22 15:19:35 +00:00
Zeroway Lin
8ab9f56470 mb/google/skywalker: Set up SPM in mainboard
Enable SPM booting process in mainboard.

BUG=b:379008996
BRANCH=none
TEST=build pass, spm init log:
[INFO ]  CBFS: Found 'spm_firmware.pm' @0x197c0 size
0x2e56 in mcache @0xffffeb20
[DEBUG]  read SPI 0x41b7f8 0x2e56: 1793 us, 6615 KB/s,
52.920 Mbps
[DEBUG]  SPM: binary array size = 0xdd3
[DEBUG]  spm_kick_im_to_fetch: ptr = 0x4900001e
[DEBUG]  mtk_init_mcu: Loaded (and reset) spm_firmware.pm
in 39 msecs (14224 bytes)

Signed-off-by: Zeroway Lin <zeroway.lin@mediatek.corp-partner.google.com>
Change-Id: Ie49cf0aea8bfaf507fff3cb8a8fc550634f83cbd
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87760
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-22 15:19:19 +00:00
Justin Yeh
368eeb7da4 soc/mediatek/mt8189: Add MCUPM loader
Add MCUPM loader for mt8189.

It takes 36 ms to load mcupm.bin.

coreboot logs:
CBFS: Found 'mcupm.bin' @0x10d00 size 0x7fd6 in mcache @0xffffeb20
mtk_init_mcu: Loaded (and reset) mcupm.bin in 36 msecs (84124 bytes)

BUG=b:379008996
BRANCH=none
TEST=build pass and we can see the mcupm logs after reset releases.

Signed-off-by: Justin Yeh <justin.yeh@mediatek.corp-partner.google.com>
Change-Id: I4f3a4eb63d801df123e45f46fc715c39d858c377
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87758
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-22 15:19:11 +00:00
Zeroway Lin
bc3af56fdd soc/mediatek/mt8189: Add SPM loader
Add support for loading SPM firmware from CBFS to SPM SRAM. SPM needs
its own firmware to enable SPM suspend/resume function which turns off
several resources such as DRAM/mainpll/26M clk when linux system
suspend.

coreboot log:
[INFO ]  CBFS: Found 'spm_firmware.pm' @0x197c0
size 0x2e56 in mcache @0xffffeb20
[DEBUG]  read SPI 0x41b7f8 0x2e56: 1793 us, 6615 KB/s,
52.920 Mbps
[DEBUG]  SPM: binary array size = 0xdd3
[DEBUG]  spm_kick_im_to_fetch: ptr = 0x4900001e
[DEBUG]  mtk_init_mcu: Loaded (and reset) spm_firmware.pm
 in 39 msecs (14224 bytes)

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Zeroway Lin <zeroway.lin@mediatek.corp-partner.google.com>
Change-Id: Ia6731efbdf161353af537f3266edb578516fa92d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87759
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-22 15:18:58 +00:00
Ivy Jian
98782a59e9 mb/google/fatcat/var/kinmen: Add overridetree
Add override devicetree per schematic_20250520_v25.

BUG=b:409148565
TEST=emerge-fatcat coreboot

Change-Id: I05a89047331731321eae386076c6e4c2473d1a82
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87768
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-22 14:16:36 +00:00
Ivy Jian
bbcb222f0b mb/google/fatcat/var/kinmen: Update GPIO table
Configure GPIOs and related settings per schematic_20250520_v25.

BUG=b:409148565
TEST=emerge-fatcat coreboot

Change-Id: Ib18560de601b98f3b8f45adab5d81686ea236ac9
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87767
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-22 14:16:29 +00:00
Simon Yang
743e3a07f5 mb/google/brya/var/nissa: Remove duplicate ACPI device GFX0
Per discussion in CB:87660, this is another approach to fix duplicate
ACPI device GFX0.

The following GFX ACPI device is already declared in nissa/devicetree
by CB:83071, it declare a ACPI gfx device as below:

	device ref igpu on
		register "panel_cfg" = "{
		    .up_delay_ms = 200,
		    .down_delay_ms = 50,
		    .cycle_delay_ms = 500,
		    .backlight_on_delay_ms = 1,
		    .backlight_off_delay_ms = 200,
		    .backlight_pwm_hz = 200,
		}"
		register "gfx" = "GMA_DEFAULT_PANEL(0)"
	end

It will generate an ACPI \_SB.PCI0.GFX0 device.

However, some Nissa projects re-select DRIVERS_GFX_GENERIC in their
overridetree, which results in the generation of a second
\_SB.PCI0.GFX0. This duplication causes iasl to fail when disassembling
the SSDT table.

Error message from iasl:

	File appears to be binary: found 7485 non-ASCII characters, disassembling
	Binary file appears to be a valid ACPI table, disassembling
	Input file SSDT, Length 0x4A03 (18947) bytes
	ACPI: SSDT 0x0000000000000000 004A03 (v02 COREv4 COREBOOT 00000000 CORE 20230628)
	Pass 1 parse of [SSDT]
	Firmware Error (ACPI): Failure creating named object [\_SB.PCI0.GFX0._DOD], AE_ALREADY_EXISTS (20200925/dswload-387)
	ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200925/psobject-264)
	Could not parse ACPI tables, AE_ALREADY_EXISTS

BUG=none
TEST=disassembling SSDT on pujjoniru successfully

Change-Id: I16e9875c12b4e8e42214da5972bed6a02c5567f4
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87745
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-05-22 14:16:21 +00:00
Yidi Lin
87110309d4 mt8196: Remove mcupm_plat.h header from mcupm_plat.h
A header file should not include itself.

BUG=none
TEST=none

Change-Id: I093396c9f848b3e82842d048e8e0d718971df11f
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87775
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-22 07:54:20 +00:00
P, Usha
d6fe379e9c mb/google/ocelot: Enable LP5 and DDR5 memory configuration
This commit introduces support for LP5 and DDR5 memory configurations
on ocelot. It adds board IDs for ocelot and integrates new memory
settings within the variant parameters. The new memory configuration
includes settings related to early command training and LP5/DDR5
specific training parameters.

LP5 memory configuration includes detailed DQ and DQS mapping for
different DDR channels. This facilitates accurate routing of signals
and initialization of memory. Additionally, SPD information retrieval
is adapted to accommodate DDR5-specific settings, such as DIMM module
topology and SMBus addresses.

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I828b1944d5a0d7f58aa8f545d567b1bb1b0da5ae
Signed-off-by: P, Usha <usha.p@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87684
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-22 02:22:56 +00:00
lizheng
2985af84c3 mb/google/trulo/var/pujjocento: Add Fn key scancode
The Fn key on pujjocento emits a scancode of 94 (0x5e).

BUG=b:417141058
TEST=Flash Pujjocento, boot to Linux kernel, and verify that KEY_FN is
generated when pressed using `evtest`.

Change-Id: If8ad29fccbd7c088ee793f3261df0b0999f25765
Signed-off-by: lizheng <lizheng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87752
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-22 02:06:32 +00:00
Ivy Jian
dafd7d6eb9 mb/google/nissa/var/dirks: Deassert RTL8111H's ISOLATE_ODL earlier
RTL8111 was occasionally not detected after reboot. This change
moves the configuration of the ISOLATE_ODL pin to high earlier
in the sequence to ensure the device is properly visible during
PCIe bus enumeration.

BUG=b:407469351
TEST=Verified that the Ethernet NIC is enumerated after reboot.

before:
[DEBUG]  PCI: 00:1c.0 scanning...
[SPEW ]  do_pci_scan_bridge for PCI: 00:1c.0
[DEBUG]  PCI: pci_scan_bus for bus 01
[INFO ]  PCI: Static device PCI: 01:00.0 not found, disabling it.
[DEBUG]  GENERIC: 0.0 enabled
[WARN ]  PCI: Leftover static devices:
[WARN ]  PCI: 01:00.0
[WARN ]  PCI: Check your devicetree.cb.
[DEBUG]  scan_bus: bus PCI: 00:1c.0 finished in 34 msecs

after:
[DEBUG]  PCI: 00:1c.0 scanning...
[SPEW ]  do_pci_scan_bridge for PCI: 00:1c.0
[DEBUG]  PCI: pci_scan_bus for bus 01
[SPEW ]  PCI: 01:00.0 [10ec/0000] ops
[DEBUG]  PCI: 01:00.0 [10ec/8168] enabled
[DEBUG]  GENERIC: 0.0 enabled
[INFO ]  Enabling Common Clock Configuration
[INFO ]  L1 Sub-State supported from root port 28
[INFO ]  L1 Sub-State Support = 0xf
[INFO ]  CommonModeRestoreTime = 0x96
[INFO ]  Power On Value = 0xf, Power On Scale = 0x1
[INFO ]  ASPM: Enabled L1
[INFO ]  PCIe: Max_Payload_Size adjusted to 128
[INFO ]  PCI: 01:00.0: Enabled LTR
[INFO ]  PCI: 01:00.0: Programmed LTR max latencies
[DEBUG]  scan_bus: bus PCI: 00:1c.0 finished in 68 msecs

Change-Id: Idc0eb453c342828e0e8886ca5cacea8d7efcc437
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87734
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
2025-05-21 17:19:43 +00:00
Werner Zeh
c1df30db18 mb/siemens/mc_rpl: Delete fw_config since it is not used
The FW_CONFIG feature is not used on mc_rpl. Delete the related source
file and the reference to it in Makefile.

Change-Id: Ifec1efc239801205f1aec2095082c8f744f84a55
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87672
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-21 17:19:25 +00:00
Werner Zeh
7fbea3175d mb/siemens/mc_rpl: Remove unused gpio and devicetree files
Since this board comes with a fixed SoC (Raptor Lake with ADL-P PCH),
there is no need to have multiple different gpio configuration files and
devicetree files. This patch deletes the unneeded files and adopts
Makefile.mk to not use them.

Change-Id: Iced9d695e3f21dec260795bb651109ff9b2beb59
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87671
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-21 17:19:19 +00:00
Werner Zeh
8fdf8694e3 mb/siemens/mc_rpl: Remove Chrome OS and EC as they are not used
This mainboard neither uses Chrome OS nor has any embedded controller
available. This patch removes all references from the build in this
regard. This also requires some refactoring in board_id.c.

Change-Id: If834480fbdac4b4843c265a257d3a77678f56aab
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87666
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-21 17:19:14 +00:00
Werner Zeh
e020979993 mb/siemens/mc_rpl: Adjust the flash map file
Rename chromeos.fmd to mc_rpl.fmd and adjust the flash layout settings
to match the needs of this board. There is e.g. no A/B scheme used and
CSME stitching is done externally, therefore no detailed CSME partitions
are required at all.

Change-Id: I6389960d816c5f1a4690a965961301d3797305ff
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87665
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-21 17:19:09 +00:00
Werner Zeh
71fb8f63e0 mb/siemens/mc_rpl: Add new mainboard based on Intel's Alder Lake RVP
This patch adds a new mainboard called 'mc_rpl' which is based on the
Intel Alder Lake RVP. Only the needed changes are made in this patch in
order to make it compile with proper names. Follow-up patches will
tailor it more towards the real mainboard hardware.

Change-Id: Ic0caa621350848d459def6044ca0a6dfd88f873f
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87664
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-21 17:19:04 +00:00
Keith Hui
918f21b72d drivers/spi/winbond.c: Add W25Q64JV signature
I am using a pair of Winbond W25Q64JVSSIM SPI flash chips for
coreboot development. While working on Asus P8x7x Series
autonomous soft strap update support, aka CB:85413 and CB:87334,
I found that without its signature (mfgr 0xef, dev 0x7017) added,
rdev_writeat() would fail to get anything into the flash chip
even though it reports success. Its other parameters are copied
from W25Q64_V as the two are almost the same.

Change-Id: I4af6268a2a1bde4d2ff9c76879c3bc59b91a916d
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87363
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-21 17:18:29 +00:00
Lei Cao
278a6d2682 mb/google/trulo/var/pujjocento: update hda_verb table for ALC257
update hda_verb table for pujjocento, provided by Realtek on 20250515.

BUG=b:409752486
TEST=emerge-nissa sys-boot/coreboot sys-boot/chromeos-bootimage

Device list:
cat /sys/bus/hdaudio/devices/ehdaudio0D0/chip_name
ALC257
cat /sys/bus/hdaudio/devices/ehdaudio0D0/vendor_name
Realtek

Headphone detection:
Event: type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0
Event: -------------- SYN_REPORT ------------
Event: type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1
Event: -------------- SYN_REPORT ------------
Event: type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1
Event: type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1

Change-Id: Ib0a22acdbcbe6643665f9f07469fba41e8027d7c
Signed-off-by: Lei Cao <caolei6@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87693
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-21 17:16:50 +00:00
Lei Cao
43f7c537f8 mb/google/trulo/var/pujjocento: update GPP_R4/GPP_R5 setting
update GPP_R4/GPP_R5 setting based on pujjocento proto schematic.

BUG=b:409752486
TEST=emerge-nissa sys-boot/coreboot sys-boot/chromeos-bootimage

Change-Id: I5a2926a074e801162972d950c62002352fb5cf6e
Signed-off-by: Lei Cao <caolei6@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87756
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-21 17:16:42 +00:00
Patrick Rudolph
e4fc00adbe soc/amd/common/block: Enable MMCONF first
Enabling MMCONF is simple and should be done first to allow bootblock
code to access the PCI config space. Required to cache ROM3 in
early_cache_setup() that is now called directly after enabling MMCONF.

Change-Id: I5d5f533258985211afafd9bf748f8e26f6128bd4
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86619
Reviewed-by: Naresh <naresh.solanki.2011@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-21 17:14:41 +00:00
Patrick Rudolph
cbbf380fa4 soc/amd/common/block/lpc: Use ROM3 window if possible
On x86_64 use the ROM3 window to access the SPI flash. Use the
same mechanism as on Intel, where the lower 16Mbyte are mapped
using ROM2 window and the upper pages are mapped using the ROM3
window. By default the ROM3 window resides in high MMIO and thus
needs 1024GiB of the address space to be identity mapped in the
page tables.

This allows legacy 32-bit code to work on mappings in the lower
16MiB of the flash chip.

Introduces new messages in coreboot log:
[INFO ]  ROM2 Decode Window: SPI flash base=0x0, Host base=0xff000000, Size=0x1000000
[INFO ]  ROM3 Decode Window: SPI flash base=0x1000000, Host base=0xfd01000000, Size=0x3000000

TEST: Disabled ROM2 mapping and booted from ROM3 mapping in x86_64
      on amd/birman+.

Change-Id: I8976273cfb31765d7f893b3fc137f117c63b6553
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86584
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Naresh <naresh.solanki.2011@gmail.com>
2025-05-21 17:14:28 +00:00
Felix Zimmer
9d878fc6c0 soc/intel/xeon_sp: Add support for Emerald Rapids (5th Gen Xeon-SP) CPUs
TEST=build/boot ASRock SPC741D8-2L2T/BCM with Intel Xeon Silver 4514Y to
edk2 and Linux 6.12

Change-Id: Iefe3228dcf3626aa9a72d16a288751af47d526f6
Signed-off-by: Felix Zimmer <felix.zimmer@student.kit.edu>
Co-authored-by: Yussuf Khalil <yussuf.khalil@kit.edu>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87746
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-05-21 17:10:46 +00:00
Pranava Y N
bd66b8cdd2 mb/google/nissa/var/rull: Enable VBOOT_EC_SYNC_ESOL for rull device
Enable `VBOOT_EC_SYNC_ESOL` config option to display early sign-of-life
(eSOL) during EC firmware updates for rull devices.

BUG=b:386920751
TEST=Verify that eSOL is displayed during EC firmware update.

Change-Id: Ibf6f88d7cf63b48c39300f4db981fe1a8efcefe9
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87773
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-21 16:46:13 +00:00
Nicholas Chin
3155b2f64c mb/dell/haswell_latitude: Correct BOARD_ROMSIZE_KB_* for E7240
The E7240 actually has a 8MiB + 4MiB flash configuration, not 8MiB.

Change-Id: I14f0c8f6f0c0dfebf41294812b1f4e131eaa18d0
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87635
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-21 11:59:42 +00:00
Avi Uday
4d30d06637 mainboard/google/ocelot: Configure middle logo vertical alignment
This commit overrides the `logo_valignment` setting in the
`common_soc_config` for the Ocelot board variant, similar to
https://review.coreboot.org/c/coreboot/+/87453.

The vertical alignment for the firmware splash screen logo is now set to
`FW_SPLASH_VALIGNMENT_MIDDLE`, which places the top edge of the logo at
the vertical midpoint of the screen.

Change-Id: I29f08d31d325304f7532ed37f9cf3d5ef0bb88ff
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87754
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-05-21 10:10:35 +00:00
Avi Uday
583bf972c5 mb/google/ocelot: Remove NPK device
This commit removes the `device ref npk on end` from the
`overridetree.cb` files for ocelot, similar to -
commit 85c65b0c20 (mb/google/fatcat: Remove NPK device from fatcat and francka variants)

This effectively disables the NPK device for these configurations
(because `npk` is default set to disable).

Change-Id: Iee1509f44f6543c23f9633ccd8d35d4a7e37b89e
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87753
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-21 10:10:24 +00:00
Zexin Wang
2bec5a9d9a soc/mediatek/mt8189: Check eFuse ECC in WDT init
When the number of eFuse reads exceeds a certain limit (with a maximum
of 20 million), a bit flip from 1 to 0 may happen. When that happens,
the bit flip will be automatically corrected by the eFuse hardware via
ECC (Error Correction Code), and the EFUSE_ECC_ERR register bit will be
set for the software to decide how to handle that.

Therefore, this patch adds a check for the EFUSE_ECC_ERR register bit.
If it's set due to a bit flip instead of a real error, we simply clear
it to avoid triggering a WDT reset.

BUG=b:379008996
BRANCH=none
TEST=build passed and check the WDT status debug log. This log is added
in local for test only.
[INFO ]  mtk_wdt_clear_efuse_ecc: wdt_sta = 0x0

Signed-off-by: Zexin Wang <ot_zexin.wang@mediatek.corp-partner.google.com>
Change-Id: Idd2763688c7ab6992a7c185e9e52b60bda88c94c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87744
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-21 03:43:51 +00:00
Seunghwan Kim
a89406790a mb/google/nissa/var/meliks: Set vccin_aux_imon_iccmax to 25A
crrev/c/5828162 introduced vccin_aux_imon_iccmax parameter for each variant to override the VccInAuxImonIccImax FSP parameter to follow its VCCANA power rail design.

Since meliks adopts external VR design for VCCANA power rail, set it to 25A to follow the guidance in RDC#646929 Power Map.

BUG=b:409205469
TEST=Built and boot
     Verified maximum 5% of 3D mark score improvement on N250 SKU

Change-Id: I58786493098c787d402c85ce7167319285af7488
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87704
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-21 02:42:06 +00:00
John Su
ccd4d1d1db mb/var/uldrenite: Make two pins NC to reduce S0ix power consumption
Currently, it was found that the GPP_D2 and GPP_D18 pins affect power
consumption during S0ix. After discussion with the hardware team,
since the motherboard is shared across different platforms and these
two pins are unused on the Chrome platform, they will be set to NC.
Measurements have shown that this change effectively improves power
consumption.

Due to some pins changes for next phase, the modifications are listed
below for reference.

Follow the GPIO table updated on 05/19.

GPP_D2         : GPO -> NC
GPP_D14:
  Current phase: GPO -> NC
  Next phase   : FUNC1 (UART0_ISH)
GPP_D18:
  Current phase: FUNC2 (UART1_ISH)
  Next phase   : GPO -> NC

BUG=b:411554553
TEST=improve 375mW-->143mW

Change-Id: I3c788ed4e2ff3e5d49008c03a895d13549d5c79b
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87709
Reviewed-by: Ben Kao <ben.kao@intel.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-21 01:45:43 +00:00
Kapil Porwal
e2baa9c7ed mb/google/bluey: Create Quenbi variant
BUG=b:417843479
TEST=Build AP firmware image.

Change-Id: Ibc727593f3b849904dd4f7d791f764d5ac8b2572
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87697
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-05-21 01:45:12 +00:00
Kapil Porwal
a98511fd23 mb/google/bluey: Only select EC_GOOGLE_CHROMEEC_SWITCHES with VBOOT
EC_GOOGLE_CHROMEEC_SWITCHES depends on VBOOT, so only select it, if
VBOOT is selected.

BUG=b:417843479
TEST=Run `make menuconfig` for google/quenbi.
TEST=Able to build google/quenbi.

Change-Id: I449fe09fbc512e07635da819791834e8f4f674f8
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87755
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-05-21 01:45:02 +00:00
Subrata Banik
756d02f779 mb/google/fatcat: Remove extraneous space in Felino Kconfig name
This commit removes an unnecessary space in the Kconfig name
for BOARD_GOOGLE_FELINO.

Change-Id: I49044a49fcef914b2e11d3c2eeefe6b6b082d8c1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87749
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-20 09:28:48 +00:00
Subrata Banik
8de02842d5 soc/intel/common/block/cpu: Execute post_cpus_init at BS_DEV_ENABLE
Move `post_cpus_init` to execute at the entry of the `BS_DEV_ENABLE`
boot state. This function is responsible for synchronizing
and finalizing MTRR (Memory Type Range Registers) settings across all threads.

This change ensures that MTRR configuration occurs at the correct
point in the boot sequence:
-   After main DRAM resources are determined and finalized (typically
    by the `BS_DEV_RESERVE_RESOURCES` state). MTRRs define
    attributes for these physical memory ranges.

Previously, `post_cpus_init` was hooked at `BS_WRITE_TABLES` (on exit)
or `BS_OS_RESUME` (on entry). Relocating to `BS_DEV_ENABLE` (on entry)
provides a more robust and correctly sequenced execution point for this
essential multi-processor (MP) MTRR setup.

BUG=b:413638298
TEST=Successfully built and booted google/fatcat. Verified that
     MTRR programming, which depends on DRAM resource determination
     (finalized by BS_DEV_RESERVE_RESOURCES), now correctly
     executes at BS_DEV_ENABLE, prior to full device initialization.

Change-Id: I1d2b3f11e4ac268c5b35bf9a8062a77a48a0601a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87703
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-05-20 09:28:40 +00:00
alokagarwal
0baf47e03b vc/intel/fsp/ptl: Update header files from FSP 3071_00 to FSP 3144_01
Update header files for FSP for Panther Lake platform to version
3144_01, with the previous version being 3071_00.

Changes include:
- Update UPD Offset in FspmUpd.h and FspsUpd.h.
- Update MemInfoHob.h:
  - Update MEMORY_INFO_DATA_HOB, child structures and their data for
    SMBIOS type 16/17 design change.
  - Add new variable PprFailingChannelBitMask to
    MEMORY_INFO_DATA_HOB.
- Update soc/intel/pantherlake/romstage/romstage.c: Refactor coreboot
  to match MEMORY_INFO_DATA_HOB data structure.

BUG=b:414734316
TEST=Able to build google/fatcat. Verify that the updates to
MEMORY_INFO_DATA_HOB and its child structures for SMBIOS type 16/17
design changes are correctly integrated from FSP 3144_01 onwards.

Change-Id: I054e419ef23ada67347750e7a68014c2bb112199
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87000
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: <srinivas.kulkarni@intel.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-20 09:28:31 +00:00
Vince Liu
61f043de4a mb/google/skywalker: Initialize DPM in ramstage
Add initialization of DPM driver for DRAM low power mode.

BUG=b:379008996
BRANCH=none
TEST=Boot up pass and see log
3200 LPDDR5 chan0(x16) rank0: memory test pass
3200 LPDDR5 chan0(x16) rank1: memory test pass
3200 LPDDR5 chan1(x16) rank0: memory test pass
3200 LPDDR5 chan1(x16) rank1: memory test pass

Signed-off-by: Mike Lin <mike.lin@mediatek.corp-partner.google.com>
Change-Id: I3b72b892d56623e7f3ec2dccfad073a908b51119
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87663
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-20 05:12:23 +00:00
Vince Liu
3f8702a0d6 soc/mediatek/mt8189: Add DPM v2 driver configuration
MT8189 equips DPM hardware which is similar to MT8196.
Therefore, we use the same DPM v2 loader to run the blob.

BUG=b:379008996
BRANCH=none
TEST=Make & Boot up pass and see log
mtk_init_mcu: Loaded (and reset) dpm.dm in 19 msecs (1004 bytes)
mtk_init_mcu: Loaded (and reset) dpm.pm in 19 msecs (36588 bytes)
mtk_init_mcu: Loaded (and reset) dpm.dm in 7 msecs (1004 bytes)
mtk_init_mcu: Loaded (and reset) dpm.pm in 19 msecs (36588 bytes)

Signed-off-by: Mike.Lin <mike.lin@mediatek.corp-partner.google.com>
Change-Id: I616cc0880d2db3f94b2a960b11d04974af1e94ef
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87662
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-20 05:12:16 +00:00
Mike Lin
d5bfa1c697 soc/mediatek/common: Add DPM V2 non-broadcast mode support
MT8196 DPM uses broadcast mode for loading DPM bin files. This means
that both dpm.dm and dpm.pm files only need to be loaded once, and
all channels will apply them.

In contrast, MT8189 DPM uses non-broadcast mode, which requires
loading the dpm.dm and dpm.pm files for each channel individually.

The original dpm_v2.c only supports broadcast mode. In this commit,
add support for non-broadcast mode to increase code reusability.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Mike Lin <mike.lin@mediatek.corp-partner.google.com>
Change-Id: I599f06c5669f5fd8623966a1c03767ea02b6bd15
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87736
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-20 05:12:04 +00:00
Shunxi Zhang
24ab31f477 mb/google/skywalker: Enable RTC boot init
Enable RTC to get correct timestamp.

BUG=b:379008996
BRANCH=none
TEST=build passed and check RTC time is increasing by command 'cat
/proc/driver/rtc'

skywalker-rev1 ~ # cat /proc/driver/rtc
rtc_time        : 12:36:25
skywalker-rev1 ~ # cat /proc/driver/rtc
rtc_time        : 12:36:28

Change-Id: Idfe6185b9e2ad8d116da454c8d95ddeb32a5998d
Signed-off-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87707
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-19 13:22:20 +00:00
Shunxi Zhang
b288aaee85 soc/mediatek/mt8189: Use common RTC driver MT6359
Use common RTC driver MT6359.

BUG=b:379008996
BRANCH=none
TEST=build pass

Change-Id: I8a9f94dcbdc32eb242d51327703dad91eb9a88ab
Signed-off-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87706
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-19 13:22:12 +00:00
Zhigang Qin
12d6d0606c mb/google/skywalker: Initialize PMIC in romstage
Add PMIC function support.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver log is normal:
[DEBUG]  [pmif_ulposc_check] calibration done: cur=260M, CAL_RATE=40, target=260
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[DEBUG]  pmic_efuse_setting: Set efuses in 10 msecs

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I4f2601bbb15807a70348bd2aa9246630adf6e0aa
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87700
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-19 13:22:00 +00:00
Zhigang Qin
2a3fd0659d soc/mediatek/mt8189: Add PMIC MT6315 driver
Add PMIC MT6315 initial settings.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver log is normal
[DEBUG]  [pmif_ulposc_check] calibration done: cur=260M, CAL_RATE=40, target=260
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[DEBUG]  pmic_efuse_setting: Set efuses in 10 msecs

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: Id57f782e1b7fb20fd1e93d36caa03cbb89ecd4ef
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87699
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-19 13:21:47 +00:00
Zhigang Qin
42ac3ccff4 soc/mediatek/mt8189: Add PMIC MT6359 driver
Add PMIC MT6359 initial settings and APIs.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver log is normal
[DEBUG]  [pmif_ulposc_check] calibration done: cur=260M, CAL_RATE=40, target=260
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[DEBUG]  pmic_efuse_setting: Set efuses in 10 msecs

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I71bf853075e7ff8419796988ebf17f3cd1b8e803
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87698
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-19 13:21:15 +00:00
Michał Kopeć
a2010cf5ee mb/novacustom/mtl-h/Makefile.mk: include tas5825m.c in the build
The file was mistakenly left out in the version that got merged, so
internal speakers wouldn't work.

TEST=Boot to Windows 11 and verify internal speakers work

Change-Id: I5529030bb91a41236772ac410096dc6bff00dd32
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87306
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-18 18:51:11 +00:00
Pranava Y N
2033075753 intel/alderlake/romstage: Implement eSOL during EC software sync
Move EC software sync to the SoC code when `VBOOT_EC_SYNC_ESOL` config
is selected. This allows the early Sign-Of-Life (eSOL) to be
displayed during EC firmware update.

`VBOOT_EC_SYNC_SOL` is not coupled with `VBOOT_EARLY_EC_SYNC`,
therefore it can be enabled only for variants whose EC firmware
takes a long time (15-20s) to update.

This change also implements `vboot_show_ec_sync_esol()` function
that displays the eSOL during the update for Alder Lake devices.

AP log during EC firmware update with `VBOOT_EC_SYNC_ESOL` enabled:
```
[INFO ]  VB2:check_ec_hash() Heff != Hexp. Schedule update
[0.216229] DP PHY mode status not complete
[0.217189] DP PHY mode status not complete
[INFO ]  Informing user on-display of EC software sync.
[DEBUG]  FMAP: area COREBOOT found @ c0a000 (4153344 bytes)
[WARN ]  CBFS: 'preram_locales' not found.
[INFO ]  ux_locales_get_text: preram_locales not found.
[INFO ]  VB2:sync_ec() select_rw=RW(active)
[INFO ]  VB2:update_ec() Updating RW(active)...
[INFO ]  CBFS: Found 'ecrw' @0x1a9f80 size 0x40000 in mcache @0xfef97a9c
[INFO ]  VB2:vb2_digest_init() 262144 bytes, hash algo 2, HW acceleration enabled
[INFO ]  CBFS: Found 'ecrw.hash' @0x7f8c0 size 0x20 in mcache @0xfef97708
[INFO ]  VB2:vb2_digest_init() 32 bytes, hash algo 2, HW acceleration enabled
[INFO ]  VB2:check_ec_hash() Hexp RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:check_ec_hash()            Hmir: 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[WARN ]  ec_hash_image: No valid hash (status=0 size=0). Computing...
[INFO ]  EC took 482169us to calculate image hash
[INFO ]  VB2:check_ec_hash() Heff RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:update_ec() Updated RW(active) successfully
[INFO ]  VB2:sync_ec() Rebooting to jump to new EC-RW
[INFO ]  VB2:vb2api_ec_sync() ec_sync_phase2(ctx) returned 0x1004
[INFO ]  EC Reboot requested. Doing cold reboot
```

BUG=b:412210635
TEST=Verify successful EC sync in romstage. Verify eSOL is displayed
during EC update on a nissa (Alder Lake) board by enabling
`VBOOT_EC_SYNC_ESOL` config.

Change-Id: I351d464f2ca64a3e60c52f88c8633e05556c5324
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87670
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-18 18:50:50 +00:00
Pranava Y N
e6a7666bcd cpu/intel/car: Skip EC software sync in common code
When `VBOOT_EC_SYNC_ESOL` config is enabled, the EC sync must be
performed later from the SoC code (mainboard_romstage_entry() function)
in order to display the eSOL screen.

AP log during EC firmware update in romstage without eSOL enabled:

```
[DEBUG]  Google Chrome EC: version:
[DEBUG]  	ro: pujjo-15217.861.0
[DEBUG]  	rw: pujjo-15217.861.0
[DEBUG]    running image: 1
[DEBUG]  FMAP: area FW_MAIN_A found @ 3a2000 (2312128 bytes)
[INFO ]  MMAP window: SPI flash base=0x3a0000, Host base=0xff3a0000, Size=0xc60000
[INFO ]  CBFS: Found 'ecrw.hash' @0x7f8c0 size 0x20 in mcache @0xfef97708
[INFO ]  VB2:vb2_digest_init() 32 bytes, hash algo 2, HW acceleration enabled
[INFO ]  VB2:check_ec_hash() Hexp RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:check_ec_hash()            Hmir: 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  EC took 1124us to calculate image hash
[INFO ]  VB2:check_ec_hash() Heff RW(active): 8d111297eb53ba2289d256a769409bcbba4cf5b488fea97e40edcc9342a0f77f
[INFO ]  VB2:check_ec_hash() Heff != Hexp. Schedule update
[INFO ]  VB2:sync_ec() select_rw=RW(active)
[INFO ]  VB2:update_ec() Updating RW(active)...
[INFO ]  CBFS: Found 'ecrw' @0x1a9f80 size 0x40000 in mcache @0xfef97a9c
[INFO ]  VB2:vb2_digest_init() 262144 bytes, hash algo 2, HW acceleration enabled
[INFO ]  CBFS: Found 'ecrw.hash' @0x7f8c0 size 0x20 in mcache @0xfef97708
[INFO ]  VB2:vb2_digest_init() 32 bytes, hash algo 2, HW acceleration enabled
[INFO ]  VB2:check_ec_hash() Hexp RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:check_ec_hash()            Hmir: 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[WARN ]  ec_hash_image: No valid hash (status=0 size=0). Computing...
[INFO ]  EC took 482169us to calculate image hash
[INFO ]  VB2:check_ec_hash() Heff RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:update_ec() Updated RW(active) successfully
[INFO ]  VB2:sync_ec() Rebooting to jump to new EC-RW
[INFO ]  VB2:vb2api_ec_sync() ec_sync_phase2(ctx) returned 0x1004
[INFO ]  EC Reboot requested. Doing cold reboot
```

BUG=b:412210635
TEST=Verify successful EC sync when `VBOOT_EARLY_EC_SYNC` is enabled
and `VBOOT_EC_SYNC_ESOL` is disabled.

Change-Id: Ib8958710bfbf01fb80405121af1c8dd43b4ed893
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87669
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-18 18:44:28 +00:00
Pranava Y N
ac4503d0dd security/vboot: Introduce VBOOT_EC_SYNC_ESOL Kconfig option
This change introduces a new Kconfig option `VBOOT_EC_SYNC_ESOL`.
This config can be used to enable the display of early sign-of-life
(eSOL) during EC software sync whenever supported. When this config
is enabled, the EC sync must be performed later from the SoC code
(mainboard_romstage_entry() function) in order to display the eSOL
screen.

This change also adds a hook function vboot_show_ec_sync_esol()
to be run before performing the EC firmware image update during the EC
sync when `VBOOT_EARLY_EC_SYNC` is enabled. This function needs to be
implemented in SoC code when `VBOOT_EC_SYNC_ESOL` is enabled to display
the eSOL and notify the users about the firmware update.

AP log during EC firmware update in romstage:

```
[DEBUG]  Google Chrome EC: version:
[DEBUG]  	ro: pujjo-15217.861.0
[DEBUG]  	rw: pujjo-15217.861.0
[DEBUG]    running image: 1
[DEBUG]  FMAP: area FW_MAIN_A found @ 3a2000 (2312128 bytes)
[INFO ]  MMAP window: SPI flash base=0x3a0000, Host base=0xff3a0000, Size=0xc60000
[INFO ]  CBFS: Found 'ecrw.hash' @0x7f8c0 size 0x20 in mcache @0xfef97708
[INFO ]  VB2:vb2_digest_init() 32 bytes, hash algo 2, HW acceleration enabled
[INFO ]  VB2:check_ec_hash() Hexp RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:check_ec_hash()            Hmir: 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  EC took 1124us to calculate image hash
[INFO ]  VB2:check_ec_hash() Heff RW(active): 8d111297eb53ba2289d256a769409bcbba4cf5b488fea97e40edcc9342a0f77f
[INFO ]  VB2:check_ec_hash() Heff != Hexp. Schedule update
[INFO ]  VB2:sync_ec() select_rw=RW(active)
[INFO ]  VB2:update_ec() Updating RW(active)...
[INFO ]  CBFS: Found 'ecrw' @0x1a9f80 size 0x40000 in mcache @0xfef97a9c
[INFO ]  VB2:vb2_digest_init() 262144 bytes, hash algo 2, HW acceleration enabled
[INFO ]  CBFS: Found 'ecrw.hash' @0x7f8c0 size 0x20 in mcache @0xfef97708
[INFO ]  VB2:vb2_digest_init() 32 bytes, hash algo 2, HW acceleration enabled
[INFO ]  VB2:check_ec_hash() Hexp RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:check_ec_hash()            Hmir: 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[WARN ]  ec_hash_image: No valid hash (status=0 size=0). Computing...
[INFO ]  EC took 482169us to calculate image hash
[INFO ]  VB2:check_ec_hash() Heff RW(active): 62d1d55d26f33bd01a3676656148bedacf44189c81b195ec5488499074fe9bb0
[INFO ]  VB2:update_ec() Updated RW(active) successfully
[INFO ]  VB2:sync_ec() Rebooting to jump to new EC-RW
[INFO ]  VB2:vb2api_ec_sync() ec_sync_phase2(ctx) returned 0x1004
[INFO ]  EC Reboot requested. Doing cold reboot
```

BUG=b:412210635
TEST=Able to perform successful EC sync when `VBOOT_EARLY_EC_SYNC` is
selected.

Change-Id: Id853c73b54942ab35d4e3f019c1eddf4449c8d3c
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87668
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-18 18:44:09 +00:00
Simon Yang
8a4b3e1346 cpu/intel/microcode: Add error handling if microcode directory is empty
If the directory specified by CONFIG_CPU_INTEL_UCODE_SPLIT_BINARIES does
not contain any files, no build error will occur, and resulting coreboot
image will not include any microcode.

BUG=None
TEST="src/cpu/intel/microcode/Makefile.mk:16: *** "microcode-params is
empty. Ensure CONFIG_CPU_INTEL_UCODE_SPLIT_BINARIES is set correctly and
contains valid files.".  Stop."

Change-Id: I095d9a24cb473b528d85bf8325c06fd3dc055b74
Signed-off-by: Simon Yang <simon1.yang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87636
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-18 18:42:22 +00:00
Zhigang Qin
cb77cafbb4 soc/mediatek/mt8189: Add SPMI and PWRAP driver
Add System Power Management Interface(SPMI) and PMIC Wrapper(PWRAP)
driver for PMIC.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver log is normal:
[DEBUG]  [pmif_ulposc_check] calibration done:
cur=260M, CAL_RATE=40, target=260
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[DEBUG]  pmic_efuse_setting: Set efuses in 10 msecs

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I7d0783ccaebd79db69a5a8ef18d7feb6cd4b14f3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87694
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-17 08:51:00 +00:00
Shunxi Zhang
b9a4d6ede1 soc/mediatek/common: Correct MT6359 RTC EOSC setting
According to the MT6359 datasheet, set the RTC EOSC calibration period
to 8 seconds to ensure that the power source VXO22 in the MT6359 meets
the expected power sequence in AP power-off mode.

BUG=b:397292746
BRANCH=none
TEST=build pass & boot pass

Change-Id: I4043f4e82baeb8e0358e74dd6d088895e4deb0f4
Signed-off-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87705
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-17 08:50:27 +00:00
Tim Crawford
ae2f3ab153 mb/system76: Add SMBIOS slot descriptions
Change-Id: Ie68207dcdaab7e8de6e1c4099fc07f5c37720edb
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87651
Reviewed-by: Jeremy Soller <jeremy@system76.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-05-16 20:43:26 +00:00
Felix Held
c0113106fa nb/amd/pi/00730F01/northbridge: skip IVRS when IOMMU is disabled
Don't generate the IVRS ACPI table if the IOMMU PCI device isn't enabled
in the devicetree.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I5e7f976011da92c0ca69decdca7aa77de24b6a2a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79677
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-16 20:42:08 +00:00
Vince Liu
5e2aee4474 soc/mediatek/mt8196: Move sspm_enable_sram() to common code
To promote code reuse and maintainability, move mt8196/sspm_sram.c to
common folder. The macro for the register SSPM_SRAM_CON is replaced by
'mtk_spm->sspm_sram_con' since it is already defined in spm.h.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I71912a23537a8bb26ed431d06123a875b80b8e4f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87661
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-16 09:18:13 +00:00
Yu-Ping Wu
c81b08c4ba util/abuild: Fix building ChromeOS boards
The commit 49ae935b37 ("util/abuild: Change [...] to [[...]] for
consistency") [1] accidentally replaced "\>" with ">" in a grep pattern,
causing all boards to be considered not supporting ChromeOS.

The commit f66c7c1037 ("util/abuild: Update echo to printf for
consistency") [2] replaced

 @echo $(foreach arch,$(REQUIRED_ARCHES),\
   $(if $(filter $(arch),$(SUBARCH_SUPPORTED)),,$(arch)))

with

 @printf "%s\n" "$(foreach arch,$(REQUIRED_ARCHES),\
   $(if $(filter $(arch),$(SUBARCH_SUPPORTED)),,$(arch)))"

and caused an additional whitespace character to be printed when all
required archs are supported. The result of the `missing_arches` shell
variable would be " ", and hence the `[[ -n "$missing_arches" ]]` check
would be wrong. Fix this by using `-z`.

[1] CB:87367
[2] CB:87368

Change-Id: Ib77566e70ac8b3717f3b29433ce9ae0a1fc69cce
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87708
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-16 07:18:52 +00:00
Subrata Banik
62b823f69e mb/google/bluey: Increase flash size to 64MB for W25Q512NWEIM
This commit updates the flash configuration for the Bluey mainboard
to support the 64MB W25Q512NWEIM SPI flash part.

Key changes:
- Kconfig: The `BOARD_ROMSIZE_KB` selection is changed
  from 8192 (8MB) to 65536 (64MB).

These changes ensure the firmware is built correctly for the larger
SPI flash and the flash map accurately reflects the hardware.

BUG=b:404985109
TEST=Able to build google/bluey. Running `ls -l` shows that `coreboot.rom` is 64 MB.

Change-Id: I5acd476989e94fba4022eeb4e96fa50b459b5766
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87680
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-05-16 04:20:01 +00:00
Subrata Banik
276eb20b04 mb/google/bluey: Limit SPI flash support to Winbond
Removed Kconfig selections for `SPI_FLASH_GIGADEVICE` and
`SPI_FLASH_MACRONIX` from `BOARD_GOOGLE_BLUEY_COMMON`.

This change aligns the configuration with hardware plans, as Bluey
is only intended to support Winbond SPI flash parts. Consequently,
support for GigaDevice and Macronix flash chips is removed.

The `SPI_FLASH_WINBOND` selection remains.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: Ib5f0d40e45f40e694e36cceade75f1f1ac0349c6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87679
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-16 04:19:55 +00:00
Subrata Banik
47c171a157 mb/google/bluey: Make Chrome EC optional
Bluey does not have a Chrome EC. This commit adjusts Kconfig settings
and related code to correctly reflect this hardware characteristic,
ensuring Bluey builds and operates appropriately without an EC.

Key changes:

1. Chrome EC Kconfig Optionalized:
   - Unconditional selections for `EC_GOOGLE_CHROMEEC`,
     `EC_GOOGLE_CHROMEEC_RTC`, `EC_GOOGLE_CHROMEEC_SPI`,
     `EC_GOOGLE_CHROMEEC_SWITCHES` (previously selected via `VBOOT`),
     and `RTC` have been removed from `BOARD_GOOGLE_BLUEY_COMMON`.
   - These are now grouped under a new Kconfig option
     `MAINBOARD_HAS_CHROME_EC` (default 'n'). This ensures
     EC-related features/APIs are off by default for Bluey.

2. VBoot Adaptation for no-EC:
   - `BOARD_GOOGLE_BLUEY` now selects `VBOOT_NO_BOARD_SUPPORT`.
   - VBoot relies on board functions (e.g. WP/recovery switches)
     often via an EC. `VBOOT_NO_BOARD_SUPPORT` provides stubs
     when an EC is absent, allowing vboot to link.

3. Conditional EC Reset Logic:
   - `reset.c`: `do_board_reset()` now calls `google_chromeec_reboot()`
     only if `CONFIG(EC_GOOGLE_CHROMEEC)` is enabled. This prevents
     errors if called when the EC is not configured.
   - (Note: Bluey typically selects `MISSING_BOARD_RESET`, so
     `reset.c` may not compile. This change makes `reset.c` safer if
     used in a no-EC setup without `MISSING_BOARD_RESET`.)

These modifications ensure that Bluey's firmware configuration aligns
with its actual hardware capabilities, specifically its lack of a
Chrome EC.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: Ibee39d76845ce6d9242ade9eacfdb9a8a655c05f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87678
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-16 04:19:48 +00:00
Subrata Banik
139a5b6fe0 mb/google/bluey: Select MISSING_BOARD_RESET due to lack of Chrome EC
The Bluey board configuration (`BOARD_GOOGLE_BLUEY`) now selects
`MISSING_BOARD_RESET`.

This change is necessary because Bluey does not have a Chrome EC.
Without a Chrome EC, a board-specific `do_board_reset()`
implementation, which often handles system shutdown or reset sequences
by interacting with an EC, is not feasible for Bluey.

As a result of selecting `MISSING_BOARD_RESET`:
- Bluey's `reset.c` is no longer compiled.
- If a board reset is triggered, the system will use the stub
  `do_board_reset()` provided when `CONFIG_MISSING_BOARD_RESET`
  is enabled.

This aligns Bluey's configuration with its hardware capabilities
regarding system reset.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: I2f770ce9e96544b7e1891a3d8ec84a1313210891
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87677
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-16 04:19:34 +00:00
Subrata Banik
f9d933db36 mb/google/bluey: Introduce MAINBOARD_HAS_GOOGLE_TPM Kconfig
This commit introduces a new Kconfig option `MAINBOARD_HAS_GOOGLE_TPM`
for the Bluey mainboard.

Previously, `I2C_TPM`, `MAINBOARD_HAS_TPM2`, and `TPM_GOOGLE_TI50`
were unconditionally selected within `BOARD_GOOGLE_BLUEY_COMMON`.
These selections are now moved under the new `MAINBOARD_HAS_GOOGLE_TPM`
boolean option, which defaults to disabled.

This change allows for more granular control over enabling Google TPM
(aka GSC) support, making it optional for Bluey configurations.

As Bluey (Qualcomm CRD) lacks a Google TPM (GSC), the new
`MAINBOARD_HAS_GOOGLE_TPM` option defaults to 'n'. This ensures
GSC-related features (including `I2C_TPM`, `MAINBOARD_HAS_TPM2`,
and `TPM_GOOGLE_TI50`) are not selected by default for Bluey,
aligning the Kconfig with the hardware capabilities.

BUG=b:404985109
TEST=Able to build google/bluey. Ensure `VBOOT_MOCK_SECDATA` Kconfig
is default enabled for Bluey.

Change-Id: Idc3d998bfc5a747a3068e87fd2f503190a0c1f3f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87676
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-05-16 04:19:28 +00:00
Subrata Banik
e8450f78a0 mb/google/bluey: Make GPIO setups conditional on Kconfig options
The `EC_GOOGLE_CHROMEEC_SPI_BUS` Kconfig and the `GPIO_AP_EC_INT`
setup in `chromeos.c` are now dependent on `EC_GOOGLE_CHROMEEC`.

Similarly, the `MAINBOARD_GPIO_PIN_FOR_GSC_AP_INTERRUPT` Kconfig
and the `GPIO_GSC_AP_INT` setup are now dependent on `TPM_GOOGLE_TI50`.

This ensures that GPIOs are only configured if their respective
features are enabled, preventing potential issues when they are
disabled.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: I44525dd008c42c42aa7e5c4a4f290b09312ed269
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87674
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-16 04:19:22 +00:00
Tongtong Pan
4e8ea210bb mb/google/fatcat/var/felino: Add pull high setting on GPP_C03/GPP_C04 in gpio.c
SMBUS_CLK0/DAT0 need to be pulled high on SOC Side according to schematics revision 20241120.
otherwise board cannot enter s0ix due to SMBUS blocking.

BUG=b:403383143
TEST=emerge-fatcat coreboot and machine can enter the s0ix state.

Change-Id: Iac4ca81601331ac35705a73c13ede8efb89ab370
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87659
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-16 04:17:55 +00:00
Yu-Ping Wu
65523e98a6 soc/mediatek: Extract DPM common code
Move function declarations to dpm_common.h, which is shared for both
dpm_v1 and dpm_v2. Add a new function dpm_init_mcu() to the header to
reduce duplicate code in dpm_v1.c, dpm_v2.c and dpm_4ch.c.

BUG=none
TEST=emerge-skywalker coreboot
BRANCH=none

Change-Id: I8d6318e9c3c4570cb8f3ff64242fc414770db653
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87667
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-15 12:55:36 +00:00
Wentao Qin
aaf373c253 mb/google/skywalker: Implement sku_id()
Retrieve the SKU ID for Skywalker via CBI interface.

BUG=b:395551181
BRANCH=none
TEST=check boot log

Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Change-Id: I6f1343f127537f97bfa4e1f2cfef7db5d46fab67
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87359
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-15 07:26:38 +00:00
Vince Liu
be675e5369 mb/google/skywalker: Configure GPIO XHCI_INIT_DONE as output
Configure GPIO XHCI_INIT_DONE as output, so that payloads (for example
depthcharge) can assert it to notify EC to enable USB VBUS.

BUG=b:379008996
BRANCH=none
TEST=build passed

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I054dad3783b7fd3c9b00003de9c3333759b8e44a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87657
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-15 07:26:31 +00:00
Wentao Qin
9a60da5297 mb/google/skywalker: Enable ChromeOS EC
1. Configure ChromeOS EC.
2. Pass GPIO_EC_AP_INT_ODL to the payload.
3. Initialize SPI bus 0 for ChromeOS EC control.

BUG=b:391957745
BRANCH=none
TEST=check boot log

Signed-off-by: Wentao Qin <qinwentao@huaqin.corp-partner.google.com>
Change-Id: Id3d53dfa8e1fdee5f04f01197592d31fee146299
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87358
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-15 07:26:24 +00:00
Luca Lai
c443478509 mb/trulo/var/pujjolo: Create pujjolo variant
Create the pujjolo variant of nissa reference board by copying the
template files to a new directory named for the variant.

Due to new_variant.py limitation that repo can no longer be used in
inside, created this CL manually following google suggestion.

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

Change-Id: Ica959c0e22797ab75606af130fa1adff2b158b1d
Signed-off-by: Luca Lai <luca.lai@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87470
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-15 06:36:47 +00:00
Martin Roth
24757047e5 util/abuild: Fix merge error
In CB:87370 (util/abuild: Use ${} around variable names),
commit id: a2baaec067, some lines were unintentionally reordered.

This led to abuild not working as intended.

Change-Id: I0aced8dde475f7338e4670c11a9cd1ec4502d743
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87681
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-15 00:06:47 +00:00
Alicja Michalska
d93f7f01a6 mb/topton/adl: Use CFR setup menu to manage options
Much like ongoing CFR work, this patch adds support for configuring
certain options (such as iGPU memory allocation, ASPM, S3/s0ix, VT-d) at
runtime, using EDK2 payload.

TEST=Build/boot/toggle coreboot+edk2 on the firewall, test results by
booting Linux.

Change-Id: Id51e704750fd9aa4a8df72804d9205974747d708
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87652
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-14 18:14:29 +00:00
Matt DeVillier
b59fef9678 soc/intel/cmn/cse: Add Kconfig to set ME default CFR option state
When using the CFR option backend, a mainboard may want to set the ME
default state to disabled, so add a Kconfig which can be selected to do
so.

Change-Id: I53d88af5e5cc9b7300b847e4aaf8e4cd2ce5bb75
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87649
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:14:23 +00:00
Matt DeVillier
50a5fe77de soc/intel/meteorlake: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

Change-Id: I572f119c86ea0e2a16d4bb543bc61afab423d092
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87633
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:14:05 +00:00
Matt DeVillier
d53f00fbd9 soc/intel/meteorlake: Hook up the VT-d setting to option API
Hook up the VT-d setting to the option API, so it can be changed at
runtime without recompilation.

Change-Id: I2d02184c82ef4874518a3f8e1fe0f5a195188f2a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87632
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:14:00 +00:00
Matt DeVillier
e356483eb6 soc/intel/jasperlake: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

Change-Id: I083cd4dfc5d4ee7807345c423872d27b66c4edc1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87631
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:13:53 +00:00
Matt DeVillier
87663d1c0a soc/intel/jasperlake: Hook up the VT-d setting to option API
Hook up the VT-d setting to the option API, so it can be changed at
runtime without recompilation.

Change-Id: Ib964e4c2779fe467086681f55136237a69a8f736
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87630
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:13:47 +00:00
Matt DeVillier
2c0c2f46d7 soc/intel/tigerlake: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

Change-Id: I08d7c39ba9be92d6a267d20068f41980a5042755
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87629
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:13:41 +00:00
Matt DeVillier
d06c8dde58 soc/intel/tigerlake: Hook up the VT-d setting to option API
Hook up the VT-d setting to the option API, so it can be changed at
runtime without recompilation.

Change-Id: Ifa0b567c05e48c4f0f5dc2fc385cf5f82eb083a0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87628
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:13:35 +00:00
Matt DeVillier
3cfb24a326 soc/intel/alderlake: Hook up the VT-d setting to option API
Hook up the VT-d setting to the option API, so it can be changed at
runtime without recompilation.

Change-Id: I728b71826798eb94c13e54aeadd3ca69c2bf5e8f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87626
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:13:29 +00:00
Matt DeVillier
6f9df7ace4 soc/intel/cannonlake: Add/use enums for IGD config
Add enums for the IGD aperture size and DVMT/stolen memory size, as is
done for newer SoCs. Use these enums rather than their int values
when configuring the IGD.

Change-Id: I369f9c73a00b41b056c89975d4c7e643f1e900c1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87625
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-14 18:13:20 +00:00
Matt DeVillier
c8199f26e0 soc/intel/skylake: Add/use enums for IGD config
Add enums for the IGD aperture size and DVMT/stolen memory size, as is
done for newer SoCs. Use these enums rather than their int values
when configuring the IGD.

Change-Id: I16dbfcd1862ea0c43c62eef59e35ca144a1b2715
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87624
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:13:12 +00:00
Matt DeVillier
947dd07823 soc/intel/jasperlake: Hook up IGD config to option API
Hook up the IGD UPDs for configuring the DVMT allocated memory and
the aperture size to the option API, so they can be configured via
CMOS/CFR. Default values are set to existing values if option API
is not used.

Add enums to map the DVMT and aperture size UPD values to user-
friendly ones, as was previously done for other SoCs.

Change-Id: Id85e698263b0193d0a83cd4d6ee6c10c89a1d2fa
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87623
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:13:03 +00:00
Matt DeVillier
09adda95b9 soc/intel/meteorlake: Hook up IGD config to option API
Hook up the IGD UPD for configuring the DVMT allocated memory to the
option API, so it can be configured via CMOS/CFR. Default value is set
to the existing fixed value of 128MB if option API is not used.

Change-Id: I413e958e3c02632c3920b39dd370b89ecc99613f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87622
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:12:58 +00:00
Matt DeVillier
dcbb5771c9 soc/intel/tigerlake: Hook up IGD config to option API
Hook up the IGD UPDs for configuring the DVMT allocated memory and
the aperture size to the option API, so they can be configured via
CMOS/CFR. Default values are set to existing values if option API
is not used.

Add enums to map the DVMT and aperture size UPD values to user-
friendly ones, as was previously done for Alder Lake SoC.

Change-Id: I1c9596d12864bf60449c4e54797a8761e07e2ee4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87621
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:12:51 +00:00
Matt DeVillier
d930a3542c soc/intel/alderlake: Hook up IGD config to option API
Hook up the IGD UPDs for configuring the DVMT allocated memory and
the aperture size to the option API, so they can be configured via
CMOS/CFR. Default values are set to existing values if option API
is not used.

Add an enum to map the aperture size UPD values to user-friendly ones,
as was already done for the DVMT size.

Change-Id: I03f100dff2d8a7f6bb87b9860c0be848e8aec61e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87620
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:12:40 +00:00
Matt DeVillier
9faf7ce4f4 soc/intel/alderlake: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

Change-Id: Iec0b3b10b8cb78014ca1429be73ad2a6646f7de1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87627
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-14 18:12:29 +00:00
Patrick Rudolph
011baca89d cpu/x86/smm/smm_module_loader: Install bigger page tables
In order to give SMM access to more than 4GiB on x86_64, update the
page table generation in the SMM loader.
Honor CONFIG_CPU_PT_ROM_MAP_GB and map the same amount of the address
space as done in other stages. This is required for SMM trying to access
the SPI BAR in high MMIO on AMD platforms.

TEST=Could access ROM3 BAR at 0xfd00000000 in SMM on AMD/birman+

Change-Id: Iae3dac8d39d3f5e55cc08aa96c8924f6364c5140
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87573
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-05-14 18:09:28 +00:00
Maximilian Brune
aa121a9bbe payloads/external/edk2/Makefile: Set OemId Pcd
Set the EDK2 PCD to COREv4 so that ACPI tables that are created by EDK2
always use the coreboot OEM ID instead of the default one ("INTEL").

The name is taken from: include/acpi/acpi.h (OEM_ID)

tested:
build and see that BGRT table contains COREv4 instead of INTEL as OEM
ID.

Change-Id: I5e3a7d0f133e5b790f59ea522a71647f72ffc79c
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87647
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:08:54 +00:00
Tim Crawford
ca9616b984 ec/system76/ec: Add config for 2nd fan without GPU
The darp10 has a second fan but no dGPU. The NFAN Method must exist, so
use the default hwmon names of "fan1" and "fan2" for labels.

Change-Id: I553deefea374b9dd916be6611850fca61afd490d
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87068
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jeremy Soller <jeremy@system76.com>
2025-05-14 18:08:44 +00:00
Alex Gan
f1f58b20b9 soc/mediatek/mt8189: Add SPI driver support
Add SPI controller driver code with support for 6 buses (SPI0 to SPI5).

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Alex Gan <ot_alex.gan@mediatek.corp-partner.google.com>
Change-Id: I313eddefed466a5182b6e48ac1900674cc06b0b6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87424
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-14 18:07:45 +00:00
Tim Crawford
d4a759a068 mb/system76/mtl: darp10: Add TCSS configs
Fixes using USB3 devices at USB3 speeds in all ports.

This fix requires `EnableTcssCovTypeA`, which is not available in the
coreboot FSP headers and not available upstream as Intel will not make a
Client FSP release.

Change-Id: I9bc6c5fc4c13bfa2e31ee1ce334b91e151373b6e
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83696
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jeremy Soller <jeremy@system76.com>
2025-05-14 18:07:34 +00:00
Yu-Ping Wu
85972101e6 commonlib/device_tree: Make *path const in dt_find_node()
dt_find_node() looks up nodes specified by the `const char **path`
array, without modifying the strings in the array. Therefore, the char
pointers in the array could be changed to const.

Change-Id: I8d330e78d0977bae54996bb622190f6546fcb59f
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87653
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-05-14 18:05:48 +00:00
Sean Rhodes
de9d76c761 mb/starlabs/starbook/tgl: Configure the eSPI GPIOs
Let coreboot configure the eSPI GPIOs, to ensure they are correct
rather than letting FSP do it.

Change-Id: I14dc740be9a770b662dd61bfdc4f4ace8973d998
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87648
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-14 18:05:26 +00:00
Matt DeVillier
af7fb83ed0 soc/intel/apollolake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: Icec6dd7d3c80fba5235f9aff5bef8e165302bf2a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87646
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 18:05:12 +00:00
Jeremy Compostella
9979be7482 drivers/intel/fsp2_0: Remove redundant NULL checks and simplify code
This commit refactors the code by eliminating unnecessary NULL pointer
checks for the `efi_bmp_image_header header` parameter in several
functions. The calling function `fsp_convert_bmp_to_gop_blt` already
verifies that the `header` pointer is not NULL before invoking these
functions, rendering these checks redundant. Similarly, checks for
`adjusted_x` and `adjusted_y` in `calculate_adj_height_width` have been
removed. This streamlines the code and reduces unnecessary operations.

Additionally, the `is_bmp_image_compressed` function has been simplified
for improved readability by directly returning the result of the
compression type comparison.

Change-Id: Ia8afcac0fb21633e379f5d8b9713ba6f8b92c1c8
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87616
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-14 18:04:53 +00:00
Felix Held
6f9de346ae Revert "soc/amd/glinda/Makefile.mk: Use relative address for APOB_NV"
This reverts commit d263e0bd92.

Commit a7eb390796 ("mb/*/*/*.fmd: Start flash at 0") changed the FMAP
to always begin at 0 and not at the x86 MMIO address where it gets
mapped, so the commit reverted by this patch isn't needed any more after
the FMAP change has landed.

Change-Id: I6d866ce3a3395f9fe70c47892a224e89ff89b20e
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87673
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-05-14 13:58:18 +00:00
Maximilian Brune
d263e0bd92 soc/amd/glinda/Makefile.mk: Use relative address for APOB_NV
amdfwtool is always setting BIOS relative as address_mode for the APOB
NV binary. So instead of giving amdfwtool a memory address we should
give it a flash relative address.

Change-Id: I4596902ca6c9880217247ce6fe96fcb516aec54d
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86597
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-05-14 10:50:34 +00:00
Kenneth Chan
4f7ea3667c mb/google/rex/var/kanix: Tune camera I2C timing
1. frequency changes to 366 kHz from 457 kHz
2. tHIGH changes to 0.8 us from 0.514 us
3. tSU:STA changes to 0.68 us from 0.56 us

BUG=b:417375114
BRANCH=firmware-rex-15709.B
TEST=1.emerge-rex coreboot chromeos-bootimage
     2.EA is measured and verified by HW
Change-Id: I996885a9acf2eea7f49ecf2fcd4f7d3fda842c8e
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87580
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-14 08:51:08 +00:00
John Su
f0ad05b57e mb/google/brya/var/uldrenite: Fix USB_OC1 for USB3 A0 port
According to the HW schematics, GPP_A14 should be set as USB_OC1
for the A0 port, but it was found that the USB3_A0 port did not
match the configuration, so this has been corrected.

BUG=b:410481989
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I2fcf15ca008eca6c74f4020c3fa7af8863a56a00
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87637
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-14 02:39:46 +00:00
Subrata Banik
1140891211 mb/google/bluey: Initialize I2C, SPI, and GPIOs in bootblock
Perform early initialization of essential ChromeOS-specific
peripherals and GPIOs within the `bootblock_mainboard_init()`
function. This ensures critical communication paths and
hardware states are configured early in the boot process.

Specifically, this commit:
- Calls `setup_chromeos_gpios()` to configure general AP/EC
  interrupts, and conditionally sets up GPIOs for the FPMCU
  (reset, boot mode, power rails) and Soundwire amplifiers
  (enable pins).
- Initializes the I2C bus for the H1/TPM via `i2c_init()`
  when `CONFIG_I2C_TPM` is enabled.
- Initializes the SPI bus for the ChromeEC via `qup_spi_init()`
  when `CONFIG_EC_GOOGLE_CHROMEEC` is enabled.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: Ic29de4c1f48f33bd1ce6a4385bfc22fdef7ab911
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87642
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-14 02:38:00 +00:00
Jeremy Soller
ba8407f0c1 soc/intel: Add Arrow Lake-H/U IDs
Add IDs from the EDS, with a couple extras:

- eSPI: EDS says 0x7202, but our boards show 0x7702
- GT: Value changes between 0x7d51 and 0x7dd1 based on DIMMs installed

Change-Id: I8430914edd02954cbb38592bff896733b01c735d
Ref: Intel Arrow Lake-H/U EDS, Volume 1 (#777369, rev 2.0)
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87131
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-13 23:14:11 +00:00
Jeremy Soller
3e1f96a0f4 mb/system76/mtl: Add Lemur Pro 13
The Lemur Pro 13 (lemp13) is an Intel Meteor Lake-U based board.

There are 2 variants to differentiate which keyboard design the unit
uses, as they require different EC firmware.

Change-Id: Icac8c7dafd6371881622d797f399f8ddbe13cbce
Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82788
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-05-13 23:11:20 +00:00
Benjamin Doron
3008b8de53 soc/intel/skylake: Show that SMRAM is unconditionally locked
Align with Cannon Lake SoCs and make it clear that SMRAM is
and should always be locked. This is cleanup, since Skylake's
Kconfig selects HAVE_SMI_HANDLER.

Change-Id: I136c69ad831d9e16d5034d6e488ee061c9b887f5
Signed-off-by: Benjamin Doron <benjamin.doron@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87618
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-13 14:53:24 +00:00
Keith Hui
e6dc71fe9f util/superiotool: Dump one more NCT6779D register
Nuvoton NCT6779D has an undocumented GPIOE# functionality similar
to that found in NCT6791D. Its latched status can be read from
LDN B register 0xfb. Add it to the roster of dumped registers to
help development.

Change-Id: Id050b8efde855dec8099f1ac35307f7d372ae499
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87364
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-13 14:51:45 +00:00
Patrick Rudolph
b50ceba64a mb/amd: Increase ROM size on boards, incorrectly limited to 16 MB
Since commit bb66d07d41
"soc/amd/common: Always use genoa SPI MMAP driver" the ROM size can be
actually be greater than 16MiB on all AMD platforms without seeing a
boot failure. Since still only 16MiB of the SPI flash are MMAPed,
the FMAP should not be extended, and if so should only contain non x86
firmwares in the upper 16MiB of flash.

Now that common code supports ROM_SIZE greater than 16MiB select the
correct BOARD_ROMSIZE_KB for each mainboard.

Change-Id: Icdce01bddbc4873ba42ceddcda6d9075f5a42914
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86701
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-05-13 13:49:38 +00:00
Subrata Banik
850703b32b mb/google/bluey: Configure FPMCU power, reset, and QUPv3 peripherals
Perform comprehensive peripheral initialization across romstage
and ramstage for the Bluey mainboard. This brings up essential
ChromeOS components and manages their power/reset sequences.

Key changes include:
- FPMCU Power & Reset:
  - Enable `GPIO_EN_FP_RAILS` in romstage for power rail
    stabilization (conditional on SPI fingerprint).
  - Deassert `GPIO_FP_RST_L` in ramstage once FPMCU power is stable.

- QUPv3/GPI Peripherals:
  - Load GSI (Generic Software Interface) firmware for
    QUP_0/1/2_GSI_BASE.
  - Initialize various QUPv3 Serial Engines (SE) in ramstage:
    - UART for console (if not `CONFIG_CONSOLE_SERIAL`).
    - I2C for Touch and Trackpad controllers.
    - UART for Bluetooth module.
    - SPI for the Fingerprint module (conditional on Kconfig).

- Display Initialization: Add a placeholder function `display_startup()`
  in ramstage.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: Iaa800e89eb521dc9d7b0a01984ca07b46a2a29d6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87643
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-13 10:19:40 +00:00
Subrata Banik
b4c6984a40 soc/qualcomm/x1p42100: Initialize QSPI and QUPv3 in bootblock
The bootblock requires early initialization of the Quad-SPI (QSPI)
controller to enable reading firmware from flash memory.

This commit adds calls to `quadspi_init()` with a 50 MHz bus clock
and `qupv3_fw_init()` within `bootblock_soc_init()`. This ensures
that the essential hardware for flash access and related QUPv3
functions are properly configured during the boot process.

BUG=b:404985109
TEST=Able to build google/bluey.

Change-Id: Ia32114527f4b7cbabef1c1f8b7ad6d2d4b71c1f8
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87641
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: mukesh.savaliya
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-05-13 10:15:43 +00:00
Vince Liu
fe34206442 soc/mediatek/mt8189: Add audio/display bus protection release functions
Add audio and display bus protection release functions to enable audio
and display subsystems. These functions should be called after
mtcmos_audio_power_on() and mtcmos_display_power_on() respectively.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver init ok.

Signed-off-by: Irving-CH.lin <irving-ch.lin@mediatek.corp-partner.google.com>
Change-Id: Idb9d6e7b3adac275ccbcb71e22126eed88149d0d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87640
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-13 09:06:01 +00:00
Vince Liu
c2b17a083d soc/mediatek/mt8189: Add PLL and clock init support
Add PLL and clock drivers.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver init ok.

Change-Id: I1fd6a09e80e5f681af3034b0f703a0d2bc7bb786
Signed-off-by: Irving-CH.lin <irving-ch.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87639
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-13 09:05:52 +00:00
Irving-CH.lin
e4cbd9ea9f soc/mediatek/mt8189: Add MTCMOS init support
Add MTCMOS init code and APIs for controlling power domain.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver init ok.

Change-Id: I39ab203da4d17b72fc5ccdbce664100d671f5e29
Signed-off-by: Irving-CH.lin <irving-ch.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87634
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-13 09:05:45 +00:00
Shunxi Zhang
5cf460dce9 soc/mediatek/mt8196: Fix RTC protection register unlock failure
Add flow of checking RTC unlock protection state after RTC protection
unlock sequence. On failure, retry this flow several times.
Additionally, change the time of CBUSY maximum timeout to 1 second.

BRANCH=rauru
BUG=b:392197855
TEST=emerge-rauru coreboot chromeos-bootimage, when suspend/warmboot/
coldboot, RTC boots and works normally.
After 15 tests, the boot time will increase by approximately 1.3ms from
890.508ms to 891.832ms

Signed-off-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.com>
Change-Id: Id4d537d9c60dc7520c446f1816ef95f9f1e0ff80
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87638
Reviewed-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.corp-partner.google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-13 09:05:34 +00:00
Subrata Banik
2c986d016e MAINTAINERS: Add Google Bluey and Qualcomm SOC maintainers
This commit updates the MAINTAINERS file to reflect active
maintenance for the Google Bluey mainboard and Qualcomm SOCs.

Specifically:
- A new section `GOOGLE BLUEY MAINBOARDS` is added, assigning
  Subrata Banik and Kapil Porwal as maintainers for
  `src/mainboard/google/bluey/`. This is for the newly
  supported Bluey platform.

- A new section `QUALCOMM SOCS` is added, assigning Subrata
  Banik and Kapil Porwal as maintainers for `src/soc/qualcomm/`.
  Consequently, `src/soc/qualcomm/` is removed from the
  `ORPHANED ARM SOCS` section. This establishes active support
  for Qualcomm SOCs within coreboot.

Change-Id: I355fcf7a7c6c865a1cc3c405d5f8d03747b2d9fc
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87645
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-05-13 02:16:10 +00:00
Martin Roth
64fe6fd94a util/abuild: fix TODO and update targets variable to an array
Use an array instead of a variable as suggested by the TODO, so we can
remove the shellcheck disable and fix the warning.

Change-Id: I5e872ebe350f339b932a711fe7f6a68743f002ed
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87379
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-12 13:25:03 +00:00
Martin Roth
902288db22 util/abuild: Update version and date string
Increment the version number for the current changes.

Change-Id: Iec94067e34292df3b85744a820ace4aa198a6322
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87378
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-12 13:24:55 +00:00
Martin Roth
8504c796fc util/abuild: Remove obsolete FIXME
Change-Id: I51ca0acc18d052f464debaec96154ed07f639355
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87377
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-12 13:24:50 +00:00
Martin Roth
a8e1113e3b util/abuild: Check functions directly instead of with $?
Change-Id: I5d28e8f9533602a2ffbacd858c7380af08b56788
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87376
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:24:43 +00:00
Martin Roth
b128abcdad util/abuild: Add quotes around variables
Change-Id: I8822c8a5004b9b37cd3a7c4a981b52e8fbeba0e1
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87375
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:24:36 +00:00
Martin Roth
52b932df3b util/abuild: Group printfs to timestamps file together
This fixes the abuild warning/suggestion.

Change-Id: I3a28811becfde69c3e539406bde5938445f16c29
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87374
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:24:28 +00:00
Martin Roth
ad19c94d87 util/abuild: Fix shellcheck warnings about local vars
This fixes the shellcheck warnings about declaring and using local
variables at the same time.

Change-Id: Ia16911c9ea0a1b32c3480a93ca0e53a409e80d22
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87373
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:24:21 +00:00
Martin Roth
d88ea14e8d util/abuild: Remove unused debug() function
Change-Id: I30951f232da5dd0eeea536945fcc85d0748a019b
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87372
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:24:12 +00:00
Martin Roth
82dea9d6d1 util/abuild: Disable shellcheck warning on interrupt()
Shellcheck warns that the interrupt() function is unreachable, but it's
set to run on CTL-C. Disable the warning.

Change-Id: I0b850573964c732b1a3875dfdc7c1f0d406bac1a
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87371
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:24:05 +00:00
Martin Roth
a2baaec067 util/abuild: Use ${} around variable names
While not always necessary, for consistency, use the ${} around all
variables.

Change-Id: I53fdddfd41e8aaa062bee73f441c5a816282c8ed
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87370
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-12 13:23:57 +00:00
Martin Roth
9ddb54e6ad util/abuild: Update syntax from 'function func' to 'func()'
Abuild used a mix of 'function funcname' and 'funcname()`. This
standardizes them all to use the 'funcname()' format. While they do
the same thing, we should be consistent across the file, and the
'funcname()' syntax is generally preferred.

Change-Id: I7530aa41b6413f0d5febe3d8a0db4a98113e1448
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87369
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-12 13:23:49 +00:00
Martin Roth
f66c7c1037 util/abuild: Update echo to printf for consistency.
Abuild used a mix of echo and printf. This updates them all to printf,
which is generally safer, especially when printing variable content
that might contain special characters or start with '-'.

Change-Id: Ib7f35fbaaffe8a85e2b9a1d7c0b8e04ffe0e9901
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87368
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-12 13:23:38 +00:00
Martin Roth
49ae935b37 util/abuild: Change [...] to [[...]] for consistency
The [[...]] form is generally recommended as it's more robust and
handles edge cases better (e.g., word splitting, pathname expansion).

Change-Id: I74189c25f0e602a4359272033c6725494a0f487f
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87367
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:23:27 +00:00
Matt DeVillier
ea32e30a18 mb/starlabs/*/cfr: Remove reboot_counter CFR option
This option isn't hooked up to anything currently, so remove it.

Change-Id: I01cddc6dbffa5a0cf914ef3c529366ee6ceaaf02
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87560
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-12 13:21:54 +00:00
Matt DeVillier
d4cb553986 mb/starlabs/*/cfr: Remove boot_option CFR option
This option isn't hooked up to anything currently, so remove it.

Change-Id: I1777ee1910bb635181a348c55642aca1ff711b02
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87559
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-12 13:21:48 +00:00
Matt DeVillier
452e179727 mb/starlabs/*/cfr: Use global console CFR object
Now that a global CFR object exists to set the console output level,
use it instead of duplicating the object for each mainboard.

TEST=build lite_adl_sb

Change-Id: Ie39e77e8345381a018e3df80aebe3126616fc556
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87558
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-12 13:21:43 +00:00
Elyes Haouas
aebef78622 xcompile: Use Walloc-size GCC option
Warn about allocation function calls with insufficient size for the
target type of the pointer.
commit 6ab188ee6c ("Makefile.mk: Use Walloc-size GCC option")
introduced this GCC option, then commit d05fe9fd3c ("Revert
"Makefile.mk:Use Localiser GCC option"") reverted it because older GCC
versions did not support it.
This change re-enables it for GCC version equal or greater than 14.1.0.

Change-Id: If5d36b073bb5b4cccb0cf2b67b43edb3f97f168c
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84074
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-05-11 20:24:09 +00:00
Subrata Banik
074dd4f6f5 mb/google/fatcat: Set logo vertical alignment to middle for variants
This commit configures the firmware splash logo's vertical alignment to
be centered (middle) for the Fatcat variants: Felino, Francka, and
Kinmen.

This is achieved by setting the 'logo_valignment' field to
'FW_SPLASH_VALIGNMENT_MIDDLE' within the 'common_soc_config' register.

BUG=b:409718202
TEST=Able to see FW splash screen at the middle of the screen while
booting google/fatcat.

Change-Id: Idf7f06cac89c14f58e5a3bcab5fe61d72171352b
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87617
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-05-11 15:04:16 +00:00
Sean Rhodes
02ca72b2d4 soc/intel/meteorlake: Hook up Pch Sleep Assertion widths
Hook up devicetree to the assertion width UPDs, in the same way
that Tiger Lake does - specifically, only setting the UPDs if a
non-default value is set via devicetree; otherwise, use the
FSP default value.

Change-Id: Ifd92ef8217055eb7b558bc494a6586b35403c368
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86754
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-10 22:51:58 +00:00
Martin Roth
166f0ea146 util/abuild: Identify abuild builds with an env variable
This environment variable can be used to identify when the build is
running from abuild. This can control things like whether or not the
payloads will pull down a new version from git.
This is important on the builders because the network can't be accessed,
but also it'd be unexpected to change the state of the tree when running
abuild locally.

Change-Id: I03a29aeff655ba7067b505b4e26d5b0f4157c67f
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87366
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-10 22:51:04 +00:00
Nicholas Chin
511872dae3 mb/dell: Convert Latitude E7240 into a variant
In preparation for adding additional Haswell based Dell Latitude
laptops, rework the E7240 port to use a variant scheme.

TEST=Timeless build with CONFIG_INCLUDE_CONFIG_FILE=n for the E7240 did
not change between main and this commit

Change-Id: I3031910db6d817824320320f137b0f99cdfe1d9a
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86096
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-10 22:50:51 +00:00
Ivan Kuzneczov
b5581d556b drivers/mrc_cache: Measure MRC cache as runtime data
MRC cache used to be measured as runtime data when it was resided in
CBFS before commit 82aa8338c7 ("drivers/mrc_cache: Always generate an
FMAP region"). This patch will restore this behavior for MRC cache
stored in FMAP region outside of CBFS.

Now, MRC cache will be measured at the end of
mrc_cache_load_current(), mrc_cache_current_mmap_leak() and
update_mrc_cache_by_type(), to guarantee that a tamper with the memory
(like https://badram.eu/ ) will be detected, controlled by Kconfig
option TPM_MEASURE_MRC_CACHE.

TEST=On Ivy Bridge platforms, Empty MRC cache is not measured.
     Changing DIMM causes both the old cache and new cache being
     measured, thus the runtime data measurement is changed, which
     could be used as an alarm for memory tampering. Starting from the
     second boot after changing DIMM, the runtime data measurement
     becomes stable.

Signed-off-by: Ivan Kuzneczov <ivan.kuzneczov@hardenedvault.net>
Change-Id: I0d82642c24de1b317851d0afd44985195e92c104
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85605
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-10 22:50:41 +00:00
mikelee
05eb3e3716 mb/google/skywalker: Create variant Yoda
Create the variant Yoda.

BUG=b:416360178
TEST=emerge-skywalker coreboot
BRANCH=None

Change-Id: I26be90010a92c05f68c274898de0cf5676d1147d
Signed-off-by: mikelee <mike.lee@lcfc.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87583
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-10 22:50:24 +00:00
Matt DeVillier
c8ddae9ebe mb/google/puff: Use CFR setup menu to manage options
Enable support for managing system options via CFR, and select it by
default when using edk2 with SMMSTORE.

TEST=build/boot wyvern w/edk2 payload

Change-Id: I6ccf0c9c50babb3134669c977eb27b7b3f567546
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87566
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-10 22:49:59 +00:00
Matt DeVillier
dc19824e56 mb/google/fizz: Use CFR setup menu to manage options
Enable support for managing system options via CFR, and select it by
default when using edk2 with SMMSTORE.

TEST=build/boot fizz w/edk2 payload

Change-Id: I211a91f16622b048d15ebe373106b0f70b429312
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87565
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-10 22:49:54 +00:00
Matt DeVillier
1d62a1e857 mb/google/jecht: Clean up makefile
Organize according to stage and alphabetize makefile entries.

TEST=build/boot guado

Change-Id: I9ee30ab4ff22eb5919ccf9832e813d2c45dea62d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87564
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-10 22:49:49 +00:00
Matt DeVillier
4112c77919 mb/google/jecht: Use CFR setup menu to manage options
Enable support for managing system options via CFR, and select it by
default when using edk2 with SMMSTORE.

TEST=build/boot guado w/edk2 payload

Change-Id: I1d407a702513bcffde6b1578469b6e307e5db662
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87563
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-10 22:49:43 +00:00
Matt DeVillier
6eddde31bb mb/google/beltino: Clean up makefile
Organize according to stage and alphabetize makefile entries.

TEST=build/boot panther

Change-Id: I03dd4a522124eb15e68c720fe44a6ef477667672
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87562
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-10 22:49:37 +00:00
Matt DeVillier
445575525c mb/google/beltino: Use CFR setup menu to manage options
Enable support for managing system options via CFR, and select it by
default when using edk2 with SMMSTORE.

TEST=build/boot panther w/edk2 payload

Change-Id: Ic5dff1f046de2b477361822772dd1add64d608af
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87561
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-10 22:49:33 +00:00
Maximilian Brune
376a5acc24 util/lint: Add lint file for gofmt
Add a linter file to check the formatting of our go files.
For now only intelp2m utiliy is checked.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I9c75fc0bf20a2625ddae43b0472a6586ae78f213
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87211
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-05-10 22:49:22 +00:00
Zhigang Qin
4456c125f6 soc/mediatek/common: Move PMIF SPI macros to per-SoC's header
Different SoCs may require distinct PMIF SPI settings. This commit moves
the common PMIF SPI macros to SoC-specific headers to enhance code
reusability and maintainability.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver log is normal

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: Ifcdf555df4256d7de08b66c3a630a8eb7afb4a35
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87577
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-05-10 22:49:08 +00:00
Seunghwan Kim
8efdbf0c34 mb/google/nissa/var/meliks: Use default domain_vr_config[] settings
Meliks' domain_vr_config[] parameters were from pirrha at the
beginning, remove this configuration overrides to use the default
configufation of SoC to avoid potential side effect from it.

BUG=b:409205469
TEST=Built and boot
     The score gap of 3D mark and Geekbench was within 1 percent in
     our internal test

Change-Id: I6a34b6a3c3694b4e7084a515b6f0d2aeaeadbd36
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87572
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-05-10 22:48:53 +00:00
Matt DeVillier
f07a1a76f3 mb/google/brya: Enable GNA scoring accelerator
Enable the GNA PCI device, and include the ACPI stub so the OS driver
can attach.

TEST=build/boot Win10 on google/brya (banshee)

Change-Id: Ib97278820d93a8fae52a74f36a5f60d9a9b2b363
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: CoolStar <coolstarorganization@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77577
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-10 22:48:26 +00:00
Zhongtian Wu
6c830088da mb/google/rex/var/screebo: Generate RAM IDs
Generate RAM IDs for K3KL9L90EM-MGCU

BUG=b:416632273
BRANCH=None
TEST=Run part_id_gen tool without any errors

Change-Id: I8b19e768ad81b0ef46bf1f5f6ec83952d784c3f2
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87579
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-05-10 22:48:04 +00:00
Zhongtian Wu
ac2bd75817 spd/lp5: Add SPD for K3KL9L90EM-MGCU
Add K3KL9L90EM-MGCU in the memory_parts.json and re-generate the SPD

Samsung:K3KL9L90EM-MGCU

BUG=b:416632273
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I693d52714a3d1846dec1f990ba7d9f23ec5f219f
Signed-off-by: Zhongtian Wu <wuzhongtian@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87578
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
2025-05-10 22:47:56 +00:00
Maximilian Brune
66873a3812 vc/amd/fsp/glinda: Update SMBIOS Type 17 information
Update values for glinda SOC.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I02110647db86d7ff23f3ea3640dd531c7954ca42
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87585
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-05-10 22:47:41 +00:00
Maximilian Brune
b23db384a9 vc/amd/fsp: Update SMBIOS Type 17 PartNumber size
The size is different depending on the SOC in question.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Iecd3d8b41c530c1c71f659facaa5a75659930ea9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87584
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-10 22:47:35 +00:00
Matt DeVillier
0b120de7c0 Documentation: Update documentation for Topton X2F-N100
- Clean up section on flashrom vs flashprog
- Clarify flash regions and command used to flash `bios` region only
- Specify command used for external flashing

Change-Id: Icf464f4532b956731040fed97da0726856524c16
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87507
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-05-10 22:47:23 +00:00
Matt DeVillier
d50019d432 mb/starlabs/starbook_mtl: Select SKIP_SEND_CONNECT_TOPOLOGY_CMD
Not needed for this is board, and using the default timeout value
causes boot delays when the public IOT FSP is used.

TEST=build/boot starbook MTL.

Change-Id: Ia87e4239dbff57894af4c7b4b2857f809007843d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87569
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-10 22:46:32 +00:00
Sean Rhodes
4aa1861fbb mb/starlabs/starbook/mtl: Configure sleep assertion times
Configure these to match the other Star Labs boards.

Change-Id: Icb57f58902cc6cf2e1faf40194a6a500c6280882
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87017
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-10 22:44:37 +00:00
Sean Rhodes
183c414577 soc/intel/meteorlake: Add Kconfig to skip FSP TBT connect topology
Add a Kconfig to direct FSP to skip sending the TBT Connect Topology
(CNTP) command, which is not needed when using software connection
manager (as opposed to firmware connection manager). There are also
situations where boards using FW CM may wish to skip sending the
command.

When selected, the FSP UPD ITbtConnectTopologyTimeoutInMs will be set
to zero, which tells FSP to skip sending the command.

Previous SoCs always set this UPD to zero, but upon discussion it was
determined that this is not universally desirable, so guard it with a
Kconfig.

Change-Id: I634dfb9969410b57e8415ac659fa3e8d6943d52c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86989
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-05-10 22:44:27 +00:00
Subrata Banik
aa1eba2f25 drivers/intel/fsp2_0: Enable firmware splash using 24-bit BMP logo
The get_color_map_num function previously returned 0 for both error
conditions (e.g., NULL header, invalid image offset) and for BMPs
that legitimately lack a color map, such as 24-bit BMP logo. This
ambiguity prevented the correct processing of 24-bit BMPs for
firmware splash screens, as the caller could not distinguish them
from malformed images.

This commit addresses this by refining error handling:
1. Modifying `get_color_map_num` to return -1 for actual errors.
2. Ensuring a return value of 0 from `get_color_map_num` now
   unambiguously signifies that the BMP has no color map. This
   is relevant for formats like 24-bit or 32-bit, where the
   default switch case now explicitly sets the color map count to 0.
3. Changing the function's return type and its internal color map
   count variable (`col_map_number`) to `int` to accommodate the
   negative error code.
4. Updating the caller, `fsp_convert_bmp_to_gop_blt`, to check for
   a return value `< 0` to identify errors, separating these from
   the valid no-colormap case (return 0).

These changes enable the successful rendering of 24-bit BMP images
as firmware splash screens. This also provides more robust BMP
parsing and clearer error distinction overall.

BUG=b:410318591
TEST=Able to build and boot google/fatcat. Verified 24-bit
BMP logo is able to render successful.

Change-Id: I7006e823e10b9892da17ff904095ef5892bb690d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87581
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-09 19:15:07 +00:00
Subrata Banik
da29107572 mb/google/fatcat/var/francka: Reduce generic reset delay to 10ms
The existing 200ms `generic.reset_delay_ms` for the Francka variant
is unnecessarily long. This commit reduces the delay to 10ms.

A 10ms delay has been verified as adequate for the hardware to reset
correctly, maintaining touchscreen operation post-boot. This change
contributes to a slightly faster resume sequence (optimized by ~190ms)
by removing a superfluous wait time.

BUG=b:411164455
TEST=Able to boot google/francka with touchscreen functional.

Change-Id: I8984617669c804b7d4ad32b3c67d87f3027fa1c1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87568
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-05-09 19:14:59 +00:00
John Su
60916d0f10 mb/trulo/var/uldrenite: Support different ISH UART mappings
Due to the ISH UART configuration change and the need to support
different phases of the motherboard, we use the board ID to
distinguish which configuration to apply.

BUG=b:415605630, b:411249861
TEST=emerge-nissa coreboot

Change-Id: Id6e0e67595d3b4a44382ce82d160fe865cda275c
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87567
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-05-09 14:16:19 +00:00
John Su
3fe4b00966 mb/trulo/var/uldrenite: Swap ISH UART from UART1 to UART0
As per the requirement, the ISH UART needs to be the same as Trulo, so
swap ISH UART from UART1 to UART0. And configure ISH_UART0 GPIO;
if not used, the pins will be set to NC. Additionally, the LCD_CBL_DET#
pin has been changed from GPP_D14 to GPP_D18.

BUG=b:415605630, b:411249861
TEST=emerge-nissa coreboot

Change-Id: I88bca9a56fa96ad0a52c29fec12b8d4dbee23be4
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87535
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-05-09 14:16:02 +00:00
Martin Roth
407c7d0da3 Documentation: Add Device Operations
Change-Id: I3ed78f8ce50bb3914f55b2cbb7f5eb668706949a
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87202
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-09 14:15:15 +00:00
Martin Roth
20d7eaeb0f Documentation: Add chip operations
Change-Id: I5373eab2de2e255f9e3576794b9ad02d9711a6c2
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87201
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-09 14:15:08 +00:00
Felix Singer
bf38f8eddc vc/intel/fsp2: Drop superfluous header for Raptor Lake S
The missing header was added to the Intel FSP repo (commit 43f7092a6156
("IoT RPL-S MR2 (4415_02) FSP"), so remove it from vendorcode as it is
no longer needed.

This reverts commit c651a27b53 ("vc/intel/fsp2_0: Add a copy of
ADL-S IOT FSP MemInfoHob.h for RPL-S IOT") which was only meant to
be a temporary fix.

Change-Id: I1e7a35f62677e39fda47f61c6c49bec0b415c2a5
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81120
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-05-09 09:03:24 +00:00
Felix Singer
eec228987e mb/intel/coffelake_rvp: Make use of chipset devicetree
Make use of the alias names defined in the chipset devicetree. Remove
devices which are equal to the ones from the chipset devicetree.

Change-Id: I79de952d95798aa3c241e7864223c63c0a72ce31
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83524
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-05-09 09:01:18 +00:00
Martin Roth
c9f4cfa463 AUTHORS: Update list to 25.03
This adds the contributor names from the 24.05 release to the 25.03
release.

Anyone who is making contributions on behalf of a company, please
add the company name to the list.

Change-Id: I23f38bd125a8369e0a636c4d1602c783f6730a0a
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87381
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-08 22:32:29 +00:00
Patrick Rudolph
da5101fde4 cpu/x86/smm: Drop unused label
To avoid confusion drop the label smm_handler_start, since it's unused
and the same name is also used in the permanent handler as C entry point
(see smm_module_handler.c).

Change-Id: I22bb5d378e8848d526f897cb2de70c0221827d0d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87554
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-05-08 22:32:18 +00:00
Angel Pons
9154070320 mb/asus/h61-series: Add H61M-A/USB3
Add support for yet another of these LGA1155 boards. Nothing too fancy,
just another slightly different combination of the same chips.

Working:
- Booting to Arch Linux using SeaBIOS (current version)
- Native RAM init
- Realtek Ethernet NIC
- Some rear USB 2.0 and 3.0 (ASM1042) ports (did not test all)
- At least one SATA port (did not test all)
- libgfxinit to initialise a DVI-D display
- VBT (extracted from `/sys/kernel/debug/dri/0/i915_vbt`)
- PCIe x16 slot
- Both PCIe x1 slots
- EHCI debug (one of the rear USB 2.0 ports)

Not working:
- Automatic fan speed control (known limitation of Super I/O code)

Untested:
- HDMI, VGA
- Internal flashing (board was ported using an EM100Pro)
- Audio
- Front USB ports
- PS/2 ports

Change-Id: I18b116d265e0b7105e13a317b552aab0e4bbc762
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86726
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-08 22:31:44 +00:00
Michał Kopeć
e8c724fe1a mb/lenovo/m900_tiny: Update VBT to build 1037 with Kaby Lake gfx support
Update VBT to one extracted from newer Lenovo UEFI, version FWKTBFA.

The newer VBT has build number 1037 and supports Kaby Lake graphics,
while the old VBT with build number 1000 only supports Skylake.

The old VBT starts with $VBT_SKYLAKE while the new one starts with
$VBT_KABYLAKE.

TEST=Insert CPU with integrated HD 630 graphics (i3-7100) and check if
all video outputs work in firmware.

Change-Id: I5e108d4ad8bf0663f3e1fa32145e40ea9babeac5
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84873
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-05-08 22:30:09 +00:00
Matt DeVillier
21ca6701ff mb/google/{drallion,hatch,sarien}: Skip adding DTT/TCPU to SSDT
These three boards use <soc/intel/common/acpi/dptf/dptf.asl> and should skip generating the TCPU device via SSDT, so select
SOC_INTEL_COMMON_BLOCK_DTT_STATIC_ASL to make that happen.

TEST=build/boot drallion, hatch, and sarien. Dump ACPI and verify no
duplicate TCPU ACPI device, verify no ACPI errors in dmesg.

Change-Id: I6070e5291ce2476fc1c24d39583fcca94bed1395
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87482
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-05-08 22:28:25 +00:00
Patrick Rudolph
5bf88a44e9 drivers/smmstore: Support 64-bit MMIO addresses
Currently the SMMSTOREv2 only supports MMIO ROM below 4GiB. As the
space below 4GiB is typically limited on x86, add support for extended
MMIO ROM windows as found on recent hardware.

Allow the SMMSTOREv2 to be memory mapped above 4GiB by adding a new
field to the coreboot table called 'mmap_addr'. The users outside
of coreboot must check the size field of the coreboot struct to
determine if mmap_addr is supported. When it is it holds the
64-bit physical address to the MMIO ROM window.
The old 'mmap_addr' was renamed to 'mmap_addr_deprecated' to indicate
that it should not be used any more.

Change-Id: I1131cfa5cdbf92bbd33de3e5b22a305136eec9f7
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87114
Reviewed-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-05-08 22:28:16 +00:00
Cliff Huang
2706ce0266 mb/intel/ptlrvp: Add GPIO support for T4 LP5 board
This commit introduces the GPIO configuration support for the T4 LP5
Reference Validation Platform (RVP). It includes a table that outlines
the differences in GPIO configuration between the T3 LP5 RVP and T4 LP5
RVP. The GPIO differences are applied when the board ID is recognized as
T4.

BUG=none
TEST=Ensure the T4 RVP boots to the OS, then verify the GPIO pad
configurations by inspecting the output from /sys/kernel/debug/pinctrl.
Check that the GPIO PADs match the expected configuration for the T4
board.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: Ica870752bed2ba47c73d8fcd5f2f41b9cc6db65a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87447
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-08 17:21:24 +00:00
Bora Guvendik
40b62ff6c4 mb/intel/ptlrvp: Add memory configuration support for T4 LP5 board
This commit introduces support for the T4 LP5 board memory
configuration within the ptlrvp mainboard. The addition includes
defining the specific memory configurations such as data and strobe
signal mappings, early command training, and memory part ID
assignments. By implementing these changes, compatibility and
functionality are ensured for systems using the T4 LP5 board.

The memory configuration is specified for LP5 type memory with
detailed DQ and DQS mapping for different DDR channels. This
facilitates accurate signal routing and memory initialization.
Additionally, updates to associated Makefiles and documentation files
reflect these new memory parts (Hynix H58G56BK8BX068) and their IDs,
ensuring proper recognition and usage during system builds.

BUG=none
TEST=Build and verify system initialization on the T4 LP5 board with
the updated memory configuration. Confirm that memory training and
setup proceed correctly with the newly supported memory part.

Change-Id: Ia6e862af8c322fe4467465557c416d4171796e83
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87422
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-08 17:21:10 +00:00
Bora Guvendik
7f826fddc5 mb/intel/ptlrvp: Compile variant.c in ramstage for ptlrvp
In the mainboard directory for Intel's ptlrvp variant, ensure that the
`variant.c` file is compiled during the ramstage build process. This
adjustment enables the execution of variant_update_soc_chip_config()
for ptlrvp in ramstage, addressing CNVi Wi-Fi-related issues.

BUG=None
TEST=Verify that variant.c is compiled correctly in ramstage for
ptlrvp.

Change-Id: Iec9591aac536abfdd36dfba8a8fea689830ee41a
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87570
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
2025-05-08 17:20:46 +00:00
Subrata Banik
0ca46ac0d2 soc/intel/pantherlake: Enable coreboot native logo rendering
This commit enables the `USE_COREBOOT_FOR_BMP_RENDERING` Kconfig option for
Panther Lake.

This allows the platform to utilize coreboot's native logo rendering
capabilities after the FSP initializes the display.

Additionally, this commit adds temporary MMIO definitions for the
Panther Lake I/O map: GMADR_BASE (0xB0000000) and GMADR_SIZE
(0x10000000). These definitions are necessary to program the IGD LMEM
BAR for accessible framebuffer and to enable Write Combine (WC) MTRR
caching for the LMEM BAR.

BUG=b:409718202
TEST=Built and booted google/fatcat. Verified boot splash was rendered
by coreboot as `USE_COREBOOT_FOR_BMP_RENDERING` was set to `y`.

Observed a slight delay (~10-30ms) in displaying BMP image with native
coreboot implementation compared to FSP-based rendering.

Change-Id: I658db63906e051fa82f3297f039f9e3c814df43f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87542
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-05-08 16:52:25 +00:00
Subrata Banik
210371e25b mainboard/google/fatcat: Configure middle logo vertical alignment
This commit overrides the `logo_valignment` setting in the
`common_soc_config` for the Fatcat board variant.

The vertical alignment for the firmware splash screen logo is now set to
`FW_SPLASH_VALIGNMENT_MIDDLE`, which places the top edge of the logo at
the vertical midpoint of the screen.

BUG=b:409718202
TEST=Built and booted google/fatcat.

Change-Id: I82cb0f9e06f23fb441011b9714284ac52a76d818
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87543
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-05-08 16:52:12 +00:00
Subrata Banik
e446c1f917 drivers/intel/fsp2_0: Introduce coreboot native logo rendering
This commit implements coreboot native logo rendering when
`USE_COREBOOT_FOR_BMP_RENDERING` Kconfig is enabled.

When enabled, this option allows coreboot to perform the boot logo
rendering directly after the FSP initializes the display. A new API
`soc_load_logo_by_coreboot` is introduced for this purpose.

This approach offers greater flexibility for platform-specific logo
customizations (e.g., alignment) that might be impractical to
implement within the FSP.

Note that enabling this option might introduce a slight delay (~10-30ms)
in displaying BMP images compared to FSP-based rendering.

BUG=b:409718202
TEST=Built and booted google/fatcat. Verified boot splash was rendered
by coreboot as `USE_COREBOOT_FOR_BMP_RENDERING` was set to `y`.

Change-Id: I9454d0941458e29a5533a92170831f360765b413
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87541
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-05-08 16:51:59 +00:00
Subrata Banik
2f23896299 soc/intel/intelblocks/cfg: Add splash screen vertical alignment options
This commit introduces an enum `fw_splash_vertical_alignment` to
configure the vertical placement of the splash screen image.

The enum provides options for aligning the logo to the top, bottom,
center (geometrical center), or middle (top edge at midpoint) of the
display.

BUG=b:409718202
TEST=Able to build and boot google/fatcat.

Change-Id: Id70fb56a038fba93d51dc1a7906724dbed6edf94
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87540
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-08 16:51:33 +00:00
Subrata Banik
78d15d9a12 drivers/intel/fsp2_0: Add Kconfig to select FSP for BMP rendering
This patch introduces `USE_COREBOOT_FOR_BMP_RENDERING`, a Kconfig option
allowing platforms to choose coreboot to use its native bitmap (BMP)
logo image rendering and skip using the FSP for this purpose during
the boot process.

By default this option is disabled (default 'n'), therefore, the FSP
is utilized for displaying the BMP logo by populating the necessary
FSP UPD parameters.

Select this option for platforms that will use a coreboot native
implementation for BMP rendering (note: the native coreboot rendering
path is still under development/to be implemented).

This Kconfig provides the switch for such future integration.

Key changes:
- A new boolean Kconfig `USE_COREBOOT_FOR_BMP_RENDERING` is added under
  `drivers/intel/fsp2_0/Kconfig`. It depends on `BMP_LOGO` and
  defaults to 'n'.
- The help text clarifies that selecting this option will skip FSP-based
  BMP rendering. Deselection implies a fallback to the FSP based
  implementation.
- The function `soc_load_logo`, previously responsible for populating
  FSP UPD parameters for the logo, is renamed to `soc_load_logo_by_fsp`.
  This clarifies its role is specific to FSP-driven logo display.
- The call to `soc_load_logo_by_fsp` in `fsp2_0/silicon_init.c` is
  now conditional on `CONFIG(BMP_LOGO)` being enabled but the new
  `CONFIG(USE_COREBOOT_FOR_BMP_RENDERING)` remains disabled.
- Implementations and calls to the renamed function are updated across
  relevant SoC directories (AMD Mendocino, Intel Alder Lake, Apollolake,
  Cannon Lake, Meteor Lake, Panther Lake, Skylake).

This change offers platforms greater flexibility in managing BMP logo
display, allowing them to either leverage FSP capabilities or integrate
with coreboot's native methods as they become available.

BUG=b:409718202
TEST=Built and booted google/fatcat. Verified boot splash was rendered
by FSP as `USE_COREBOOT_FOR_BMP_RENDERING` was set to `n`.

Change-Id: Ieda085df02263b9bf4bdd8f5d0e2137bef75def9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87513
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-08 16:51:25 +00:00
Subrata Banik
5f941893ef cpu/x86/mtrr: Introduce mtrrlib with common MTRR helper functions
This change refactors MTRR handling by consolidating helper functions
from `earlymtrr.c` and `mtrr.c` into a new MTRR library (`mtrrlib`).
This approach improves code modularity and reusability, making these
utilities consistently available across different coreboot boot phases.

The following functions are now part of `mtrrlib`:

- `get_free_var_mtrr`: Retrieves the index of the first available
  variable MTRR.
- `set_var_mtrr`: Configures the variable MTRR, specified by an `index`,
  for a memory region defined by `base`, `size`, and `type`.
- `clear_var_mtrr`: Disables the variable MTRR at a given index.
- `acquire_and_configure_mtrr`: Acquires a free variable MTRR, configures
   it with the given `base`, `size`, and `type`.

BUG=b:409718202
TEST=Built and booted google/fatcat successfully.

Change-Id: Iba332b7088221fd930e973fad9410833bff184b9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87539
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2025-05-08 16:51:17 +00:00
Subrata Banik
e180971560 drivers/intel/fsp2_0: Move graphics info struct/GUID to FSP header
This patch moves `struct hob_graphics_info` and `fsp_graphics_info_guid`
into the FSP header file.

This change allows other coreboot APIs to utilize this information for
locating FSP graphics-related data to know the display resolutions and
other useful information (required for coreboot native implementation
of rendering splash screen).

BUG=b:409718202
TEST=Able to build and boot google/fatcat.

Change-Id: I445a4efa59769f25c93fc61ad1d15857716f5247
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87538
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-08 16:51:03 +00:00
John Su
18b4349422 mb/var/uldrenite: Fix fw_config_gpio_padbased_override not being called
Found that certain pins did not change according to the fw_config
settings. After tracing the code, discovered that
fw_config_gpio_padbased_override() was not being called, so this change
fixes the issue.

BUG=b:410481989
TEST=emerge-nissa coreboot

Change-Id: I07fb7860b32bae4922783fe437baafdd1c86482e
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87546
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-05-08 13:23:11 +00:00
Patrick Rudolph
a6be271e63 arch/x86: Unify GDT entries
Currently there are 3 GDTs (Global Descriptor Tables) being used on x86:
- preRAM (gdt_init.S)
- SMM (smm_stub.S)
- RAM (c_start.S)

They have different layouts and thus different offsets for the segments
being used in assembly code. Stop using different GDT segments and
ensure that for ROM (preRAM + SMM) and RAM (ramstage) the segments
match. RAM will have additional entries, not found in pre RAM GDT,
but the segments for protected mode and 64-bit mode now match in
all stages.

This allows to use the same defines in all stages. It also drops the
need to know in which stage the code is compiled and it's no longer
necessary to switch the code segment between stages.

While at it fix the comments in the ramstage GDT and drop unused
declarations from header files, always set the accessed bit and drop
GDT_CODE_ACPI_SEG.

Change-Id: I208496e6e4cc82833636f4f42503b44b0d702b9e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87255
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-05-08 12:29:24 +00:00
Matt DeVillier
1e7e4e943f soc/intel/tigerlake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: I6c05212eaf004ea74b7fd3fa92cbaa314474b7e9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87503
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-08 12:27:37 +00:00
Matt DeVillier
ba4b26c4fc soc/intel/meteorlake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: Id9e75020ab359bf94c75ffc1aaaef7af83d4c9c6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87501
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-08 12:27:32 +00:00
Matt DeVillier
514ad949e3 soc/intel/jasperlake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: Id35705304e872395ce88617c83d9edecb03b02a1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87500
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-08 12:27:12 +00:00
Matt DeVillier
55afbe250d soc/intel/elkhartlake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: I2d2f5c1587bd86c8fee634a49e1ec989c2bef783
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87499
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-08 12:27:06 +00:00
Matt DeVillier
3cc728110d soc/intel/alderlake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: I8f55bb7b31936c098da64f65b76965a09981ff73
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87498
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-08 12:26:57 +00:00
Patrick Rudolph
245cba6795 cpu/x86/smm: Add support for exception handling
Add an exception handler to SMM to debug crashes when a serial
console is enabled and DEBUG_SMI is set. This allows for narrowing
down issues faster than letting the machine triple fault.

Change-Id: I2ccaf8d23d508d773ce56912983884ad6832ede6
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87208
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-05-08 12:26:19 +00:00
Jon Murphy
2e27ceed67 mb/google/volteer/var/elemi: Check FP presence against SKU ID
Add/update FP enable/disable based on SKU ID. This is meant
to resolve a UMA issue with devices that had the FPMCU populated on
non-fp devices.  Since the FPMCU is present, and the firmware enables
the power GPIO's based on variant, not SKU, the devices were reporting
data on fingerprint errantly.  Specify the SKUs which should not have a
FP sensor and default to true to maintain the legacy behavior for
undefined devices and limit risk.  Variants which do not have FP SKUs
will be unaffected.

BUG=b:354769653
TEST=Flash on device, test FP.
Disable test SKU, flash on device, test FP.

To test, run `ectool --name=cros_fp version` in the shell
When enabled, the fpmcu fw version should be displayed.
When disabled, an error should be displayed because the fpmcu
is inaccessible.

Change-Id: I9811721d0b345614e10ac27946ad45b6ec6f7494
Signed-off-by: Jon Murphy <jpmurphy@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86826
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-07 16:37:15 +00:00
Nicolas Kochlowski
663dbd462a soc/amd/phoenix: Remove outdated TODO comments
Delete the "TODO: Update for Phoenix" comment from files that have
already been updated in the previous chained patches (CB:85631,
CB:85632, CB:85633).

Change-Id: I137dbba5094ae8cbf842b45d6137c5b0528e5413
Signed-off-by: Nicolas Kochlowski <nickkochlowski@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85719
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
2025-05-07 16:35:47 +00:00
Sean Rhodes
b1b8b0e8e1 mb/starlabs/starbook/tgl: Reconfigure PCH Strap GPIOs
Configure all strap GPIOs as outputs, rather than some being not
connected. This doesn't change anything, but is more explicit.

Set these all to sample on RSMRST.

Change-Id: I557bfc1339bad169753640c9404813305a16024e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87172
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-05-07 14:54:15 +00:00
Nicholas Chin
36ac6226ff util/autoport: Add function to create empty files
As per commit cf4722d317 ("src/mb: Update unlicensable files with the
CC-PDDC SPDX ID") effectively empty files should use the Creative
Commons Public Domain Dedication and Certification (CC-PDDC) license
header. Add a function to create an empty file and add the CC-PDDC SPDX
header and a comment to change the license if content is added.

The only empty files that autoport currently generates are ec.asl and
superio.asl on non-laptop systems, where NoEC() is used.

Change-Id: I409a6d90d671258e318c26e34a35c238d6fd28c1
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84329
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
2025-05-07 14:50:02 +00:00
Appukuttan V K
f8071719e7 soc/intel/ptl: Add Wildcat Lake platform reporting
This commit updates the platform reporting logic to include support
for Wildcat Lake SoC.

Key changes:
  - Add Wildcat Lake-specific entries for MCH, PCH, and IGD device
    IDs.

References:
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: Ia4efb173f3ff9247d50bcfa496ed92b211729a3a
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87515
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-07 14:49:26 +00:00
Appukuttan V K
db4162adce soc/intel/ptl: Add Wildcat Lake PCIe Device details
This commit introduces PCI device details specific to the Wildcat
Lake to Panther Lake code with conditional compilation.

Key changes:
  - Add Wildcat Lake-specific PCI device definitions and
    configurations, including adjustments to device function
    numbers and slot assignments.
       - Remove following
         - PCIe RP : 00:1c.4 to 00:1c.7
                   : 00:06.2 & 00:06.3
       - Change following
         - PCIe RP5 : 00:1c.4 to 00:06.0
         - PCIe RP6 : 00:1c.5 to 00:06.1
  - Following devices are not present in Wildcat Lake, but their
    device definitions are retained as they do not impact
    functionality.
       - IPU  : 00.05.0
       - TBT2 : 00.07.2
       - TBT3 : 00.07.3
       - TCSS_XDCI : 00.0d.1
       - TCSS_DMA1 : 00.0d.3
  - Update Kconfig to conditionally select COMMON_BLOCK_IPU
    only when SOC_INTEL_PANTHERLAKE is selected.
  - Modify existing code to utilize the guards, ensuring that
    Panther Lake-specific devices and configurations are only
    included when appropriate.
  - Add configuration options for MAX_TBT_ROOT_PORTS, MAX_ROOT_PORTS,
    and MAX_PCIE_CLOCK_SRC with Wildcat Lake values.
         MAX_TBT_ROOT_PORTS = 2
         MAX_ROOT_PORTS     = 6
         MAX_PCIE_CLOCK_SRC = 6

References:
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and verify it compiles without any error.

Change-Id: I89f9d9f043d3ff04c0c65dc9d92a76566e901da9
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87514
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Usha P <usha.p@intel.com>
2025-05-07 14:49:12 +00:00
Appukuttan V K
1baf0baf58 soc/intel/ptl: Add Wildcat Lake SoC device tree
This patch introduces a new chipset device tree file for Wildcat
Lake SoC.

Key changes:
 - Copy the Panther Lake chipset.cb to chipset_wcl.cb and update
   it with device information specific to the Wildcat Lake SoC.
   1) Remove following devices:
        - Ipu         - 00:05.0
        - Tbt Rp      - 00:07.2 & 00:07.3
        - Type-C xDCI - 00:0d.1
        - Tcss Dma    - 00:0d.3
        - Pci Rp      - 00:1c.4 to 00:1c.7
                      - 00:06.2 & 00:06.3
        - Two TCSS USB ports
   2) Remove Panther Lake Power limits config and add placeholder
      for WCL config.
 - Guard removed TCSS port references in the shared SoC code with
   Kconfig.
 - Rename Panther Lake chipset device tree to chipset_ptl.cb to
   align with the new device tree naming.
 - Update Kconfig to select the newly added chipset device tree
   file when the Wildcat Lake SoC is in use.

References:
- Wildcat Lake Processor EDS, Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and Fatcat and verify it compiles without any error.

Change-Id: Ieafb9856daaa48e3ecc6fc9068ae2b2d4019ff80
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87490
Reviewed-by: Usha P <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-07 14:49:00 +00:00
Appukuttan V K
2fc246cd2d mb/google/ocelot: Remove unused devices from devicetree
This patch removes device entries from the Ocelot mainboard
devicetree that do not exist in the Wildcat Lake SoC. This ensures
that the Ocelot firmware compiles without any errors when device
tree changes of Wildcat Lake SoC are added in the subsequent patches.

Key changes:
  - Remove the following devices, which are not present in the
    Wildcat Lake SoC, from Ocelot:
        ipu
        tbt_pcie_rp2
        tbt_pcie_rp3
        tcss_dma1
        pcie_rp9
        tcss USB port 2 & 3

References:
- Wildcat Lake Processor EDS Volume 1 (#842271)
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)

BUG=b:394208231
TEST=Build Ocelot and verify it compiles  without any error.

Change-Id: Ib09f66f2e567f3f42810215bca8956c7cee7b646
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87479
Reviewed-by: Usha P <usha.p@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-07 14:48:29 +00:00
Subrata Banik
3278551f8c drivers/intel/fsp2_0: Include coreboot_tables.h in fsp_gop_blt.h
The fsp_gop_blt.h header includes `enum lb_fb_orientation`. This enum
is defined within `<boot/coreboot_tables.h>`.

This commit adds the necessary include directive to ensure that
`enum lb_fb_orientation` is available.

BUG=b:409718202
TEST=Able to build and boot google/fatcat.

Change-Id: I0e432bef13ab1425c29e9ca4a82b06ff264a8613
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87537
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-07 02:37:57 +00:00
Subrata Banik
18172b6009 mb/google/bluey: Add SoundWire amp and SD card GPIOs to lb_gpios
This commit updates the `fill_lb_gpios` function in
`src/mainboard/google/bluey/chromeos.c` to include additional
GPIO states for Chrome OS diagnostics.

The following GPIOs are now reported:
- GPIO_SNDW_AMP_0_ENABLE: "Speaker 0 enable" (active high)
- GPIO_SNDW_AMP_1_ENABLE: "Speaker 1 enable" (active high)
- GPIO_SD_CD_L: "SD card detect" (active low), reported
  conditionally if CONFIG_MAINBOARD_HAS_SD_CONTROLLER is enabled.

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: I0063e8190571241edda64165b9ade9c4331a3499
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87451
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-05-07 02:37:03 +00:00
Subrata Banik
80901a4494 mb/google/bluey: Add GPIOs for Soundwire, Display, and SD Card
This commit introduces several new GPIO definitions and a Kconfig
option for the Bluey mainboard to support additional hardware features.

Kconfig changes:

 - MAINBOARD_HAS_SD_CONTROLLER: To indicate the presence of an SD card
   controller. It defaults to 'n'.

GPIO changes (in board.h):

 - Soundwire Amplifier GPIOs:
     - GPIO_SNDW_AMP_0_ENABLE (GPIO 204)
     - GPIO_SNDW_AMP_1_ENABLE (GPIO 205)

 - Display specific GPIOs:
     - GPIO_PANEL_POWER_ON (GPIO 70)
     - GPIO_PANEL_HPD (GPIO 119)

 - SD Card specific GPIO:
     - GPIO_SD_CD_L (GPIO 71): This GPIO is conditionally defined based
       on the new CONFIG_MAINBOARD_HAS_SD_CONTROLLER option.

Source: Bluey schematics (dated 04/15).

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: I556b06bff73805c6451a5f8cf291c83cd0431465
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87449
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-05-07 02:36:37 +00:00
Subrata Banik
1015d4332f mainboard/google/bluey: Add fingerprint sensor GPIO entries
This commit introduces Kconfig options and GPIO definitions to support
onboard fingerprint sensors for the Bluey mainboard.

Source: Bluey schematics (dated 04/15).

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: Ia8f1a7b2dab3bef1a9332d8c0020489c06bd4f99
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87448
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-05-07 02:28:41 +00:00
Bora Guvendik
a85b9a21b2 mb/intel/ptlrvp: Add support for DDR5 configuration
This commit introduces support for DDR5 memory configuration on the
PTL RVP DDR5 board. It adds the necessary board ID for PTLP_DDR5_RVP
and integrates a new DDR5 memory configuration within the variant
parameters. The memory configuration includes settings such as
resistor values, sagv values, early command training, and
DDR5-specific training parameters.

Additionally, SPD information retrieval is adapted to accommodate
DDR5-specific settings, such as DIMM module topology and SMBus
addresses.

BUG=none
TEST=Boot to OS with PTL RVP DDR5 board and verify memory
initialization.

Change-Id: I7e3bbb66edcbf4d4a10fcf6899156f125dc3d529
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87179
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-07 00:39:45 +00:00
Julius Werner
c1bcb43f7c cbgfx: Prevent divide-by-zero edge case in Lanczos kernel
The existing lanczos_weight() implementation naively follows the purely
mathematical definition for the `x == 0` special case. However, the
point of defining that special case is obviously to prevent division by
zero in the general case formula. Unfortunately we are still doing some
multiplications with `x` before we get to the division step, and our
fpmath library loses precision during multiplication. This can lead to
edge cases where `x` is not zero but `x_times_pi` later ends up being 0,
which causes the division to throw an exception after all. (I guess
we've just been lucky to not see this case in practice for now... it
requires the output pixel coordinate to be extremely close to but not
quite on the next input pixel coordinate, which may be rare in practice
with our scaling algorithms.)

This patch fixes the issue by implementing the special case later and
checking if `x_times_pi` is zero instead. Note that as long as we pass
this check, we can be confident that the division cannot fail even
though fpdiv() also truncates the divisor: this is because `x_times_pi`
was calculated from an fpmul() call with the constant fppi(), which has
34 significant bits. Even if x is the smallest possible non-zero value
after scaling for multiplication, the result `x_times_pi` must still
have 18 significant bits. That means it can be scaled down a further 16
bits for division without becoming zero.

Also add a simple unit test forcing exactly this condition to ensure the
code will not regress.

Change-Id: I2f212ee5df38252e97ec55aba3d2d25320c4b102
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87532
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-05-06 21:04:04 +00:00
Harrie Paijmans
565c768c20 soc/intel/alderlake: only add wifi Mitigation if DRIVERS_WIFI_GENERIC
If DRIVERS_WIFI_GENERIC is disabled
`wifi_generic_cnvi_ddr_rfim_enabled` can't be found by the linker.
Additionally if there is no WIFI driver the CNVi DDR RFI Mitigation is
redundant.

Add DRIVERS_WIFI_GENERIC check around `CNVi DDR RFI Mitigation`.

TEST=Boot Intel Alder Lake-P RVP with DRIVERS_WIFI_GENERIC=N and
cnvi_wifi disabled

Change-Id: I4f89ef41a730e38e08886828db0d14f1277ccaf0
Signed-off-by: Harrie Paijmans <hpaijmans@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87418
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-06 16:01:53 +00:00
Matt DeVillier
ac948173ad mb/starlabs/starfighter/rpl: Add ramstage.c to makefile
Was inadvertently left out when this board was created.

TEST=build, verify ramstage.o created in variant subdir of build dir.

Change-Id: I3c728ba2abe94be4115a60d3a532cf0a19bec33c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87496
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-06 15:40:20 +00:00
Matt DeVillier
f1509a467c mb/starlabs/starfighter: Add CFR option to use native panel resolution
Add a CFR option to boot using the native panel resolution, rather than
a fixed/scaled video mode. This option selects between two VBT files:
one with the 'fixed mode' flag enabled, and one with it disabled.

This feature is mainly a workaround to a GNOME-related bug which
causes the creation of a 2nd display at the boot resolution. This
2nd display being a lower/different resolution than the native
panel resolution causes severe flickering/artifacting rendering
the display unusable unless this 2nd phantom display is disabled
on every boot.

Change-Id: I9e39258ce0171aab425150679d1ce30d69b2b1ef
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87495
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-05-06 15:40:12 +00:00
Matt DeVillier
3593314cf5 mb/starlabs/starlite_adl: Add CFR option to use native panel resolution
Add a CFR option to boot using the native panel resolution, rather than
a fixed/scaled video mode. This option selects between two VBT files:
one with the 'fixed mode' flag enabled, and one with it disabled.

This feature is mainly a workaround to a GNOME-related bug which
causes the creation of a 2nd display at the boot resolution. This
2nd display being a lower/different resolution than the native
panel resolution causes severe flickering/artifacting rendering
the display unusable unless this 2nd phantom display is disabled
on every boot.

Change-Id: I275b5f8455fed58c0167e3a69db27bbc21577db0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87494
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-06 15:40:05 +00:00
Matt DeVillier
d13afbbbca mb/starlabs/starbook: Add CFR option to use native panel resolution
For boards for which set the 'Fixed Mode at boot' flag in the VBT, add
a CFR option to boot using the native panel resolution, rather than
a fixed/scaled video mode. This option selects between two VBT files:
one with the 'fixed mode' flag enabled, and one with it disabled.

This feature is mainly a workaround to a GNOME-related bug which
causes the creation of a 2nd display at the boot resolution. This
2nd display being a lower/different resolution than the native
panel resolution causes severe flickering/artifacting rendering
the display unusable unless this 2nd phantom display is disabled
on every boot

Change-Id: Ia75727f393744caf9062763e6118c1e2601512fa
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87493
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-05-06 15:27:55 +00:00
Matt DeVillier
8fa84d9111 mb/starlabs/*: Add CFR entry for Bluetooth RTD3
Allows the Bluetooth RTD3 feature to be toggled on/off.

On some devices, enabling Bluetooth RTD3 causes the BT device to
continually disconnect/reconnect under Windows, so having the ability
to disable it in those cases is useful.

Change-Id: I1730dc35d56919fcf03acdf577288caf1e1a4ee3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87492
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-06 15:27:51 +00:00
Matt DeVillier
d2b0220a38 allocator_v4: Re-enable top-down allocation for edk2
Commit a959f0ad76 ("allocator_v4: Disable top-down allocation for
EDK2") disabled top-down allocation for edk2 due to a bug which broke
display init with Intel IGD. A workaround has been implemented in
MrChromebox's fork (and others) while the issue is being resolved
upstream, so re-enable top-down allocation unless upstream edk2
is being used.

TEST=build/boot various Google mainboards with edk2 payload selected.

Change-Id: I0e9b0d02bbf30878aef37a97d6a743a402700fc7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87504
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-06 15:06:57 +00:00
Matt DeVillier
4d7b56cdaa soc/intel/cmn/cse_lite: Fix handling of soft disable state
When soft-disabled, boards selecting SOC_INTEL_CSE_LITE_SKU boot up
with a working state of M3_NO_UMA vs NORMAL, so handle this condition.
Without this, when vboot is not used, the board will simply fail to
boot as vboot_recovery_mode does not exist:

[ERROR]  cse_lite: CSE does not meet prerequisites
[ERROR]  cse_lite: Failed to get CSE boot partition info
[DEBUG]  cse: CSE status registers: HFSTS1: 0x80032044,
              HFSTS2: 0x32280126 HFSTS3: 0x50
[EMERG]  cse: Failed to trigger recovery mode(recovery subcode:6)

This commit addresses the first error (does not meet prerequisites),
which allows CSE sync to continue and boot the RW partition in
the soft-disabled state. It also allows the CSE to properly transition
back into the normal working state (when that option is selected via
CMOS or CFR).

TEST=build/boot google/wyvern, verify able to disable/enable the ME
properly via CFR option.

Change-Id: I46da5ac248e267acee958d66ebbd97d945e722b9
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87517
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-06 15:06:35 +00:00
Matt DeVillier
33b3269d91 soc/intel/cmn/cse: Add function to check if ME state is M3_NO_UMA
When soft-disabled, boards which select SOC_INTEL_CSE_LITE_SKU boot
with their working state having a value of M3_NO_UMA (0x4), as
opposed to the "normal" value of M0_NO_UMA (0x5). Add a define for
this value (taken from older ME code in coreboot) and add a function
to check if the CSE is in that state, which will be used in a
subsequent commit.

TEST=tested with rest of patch train

Change-Id: I405987ece00b3849a9fcdf1bfc8b377fd8d010dc
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87516
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-06 15:06:27 +00:00
Ivy Jian
30a4fec86e mb/google/fatcat/var/kinmen: Generate SPD ID for Micron modules
Add 2 Micron memory parts in mem_parts_used.txt, and generate
SPD id for these parts.

1. MT62F1G32D2DS-023 WT:C (Micron)
2. MT62F2G32D4DS-020 WT:F (Micron)

BUG=b:409148565
TEST=Run part_id_gen tool and check the generated files.

Change-Id: Ib975e31734369a8f8bd410063cc2d236a6d4cc66
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87534
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-06 05:16:50 +00:00
Appukuttan V K
cf5696834b soc/intel/ptl: Refactor Panther Lake SoC configuration
This commit refactors the configuration options for Intel
Panther Lake SoC variants to improve clarity and maintainability.

Key changes:
  - Introduce a new SOC_INTEL_PANTHERLAKE configuration option to
    serve as a base selection for all Panther Lake SoC variants.
  - Update SOC_INTEL_PANTHERLAKE_U_H and SOC_INTEL_PANTHERLAKE_H to
    select SOC_INTEL_PANTHERLAKE instead of
    SOC_INTEL_PANTHERLAKE_BASE.
  - Update existing code to utilize the new SOC_INTEL_PANTHERLAKE
    guard where Panther Lake variant guards are applied.

BUG=b:394208231
TEST=Build Ocelot and Fatcat and verify it compiles without any error.

Change-Id: I656006dab6f08c9a16996ad194fa0b5b751f91aa
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87511
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-06 05:16:23 +00:00
Zhigang Qin
e99532d99b soc/mediatek/common: Update SPMI calibration process
The original SPMI calibration process is only suitable for pre-MT8189
SoCs. Update the flow to also support MT8189.

BUG=b:379008996
BRANCH=none
TEST=build pass and driver log is normal:
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2
[INFO ]  [Pass] dly:1, pol:0, sampl:0x2

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I636b3062fc25fc1d7d39e3426602e6434be4c26a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87508
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-03 10:10:25 +00:00
Vince Liu
f83fb11e5f soc/mediatek/mt8189: Add CPU segment ID support
Some of MTK's ICs (such as the MT8189) use two eFuse registers to
record CPU ID information.

Users can use get_cpu_id and get_cpu_segment_id to obtain the SoC
version. For example, the CPU ID of the MT8189H is 0x81890000, and
the CPU segment ID is 0x21.

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I535874025cde7f6f975246105e32e165083601e0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87509
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-03 04:43:16 +00:00
Cathy Xu
7b27b1ca99 soc/mediatek/mt8189: Fix incorrect GPIO register address
The previous commit incorrectly set GPIO register address due to a lack
of checking. This commit fixes the register address to ensure GPIO
function can work well.

BUG=b:379008996
BRANCH=none
TEST=build passed, and check SD card can be identified in depthcharge
firmware-shell: storage init
Man 000002 Snr 1759900928 Product SA02 Revision 9.12
*  0: UFS LUN 0
   1: removable mtk_mmc
2 devices total

Signed-off-by: Cathy Xu <ot_cathy.xu@mediatek.com>
Change-Id: I14125ff331f965ce8cbb83cb25d8a2feff0359f2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87510
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-03 04:42:36 +00:00
Julius Werner
f2cf732997 libpayload: usbmsc: Correctly deal with disks larger than 2TB
Disks larger than 2TB (technically disks with more than 2^32 blocks, but
for the common block size of 512 that comes out to 2TB) cannot represent
their full amount of blocks in the SCSI READ_CAPACITY(10) command used
by libpayload's USB mass storage driver. The entire driver isn't written
to support block addresses larger than 32 bits anyway.

The SCSI command has been designed in a clever way so that devices are
supposed to return the maximum value (0xffffffff) if the actual value
doesn't fit. However, our code adds one to the value (because it is
actually the address of the last block, but we want to know the number
of blocks). This makes it overflow back to 0 which is not great.

This patch caps the result before incrementing it so that the overflow
cannot occur, allowing us to at least access the first 2TB of super
large USB sticks.

Change-Id: Ic445923b7d588c4f523c4ed95a06291bc1969261
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87506
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-05-02 23:24:25 +00:00
NyeonWoo Kim
173c5d0aad src/arch/x86/c_start: Delete duplicated code masking stack pointer
I found duplicated code masking stack pointer.

So, i'd like to remove the duplicate for refactoring :-).

This is my build output of c_start.o, before vs after modifying.
  before modifying
	...
	44:   f3 ab                   rep stos %eax,%es:(%edi)
	46:   bc 00 00 00 00          mov    $0x0,%esp
	4b:   83 e4 f0                and    $0xfffffff0,%esp
	4e:   b0 6e                   mov    $0x6e,%al
	50:   e6 80                   out    %al,$0x80
	52:   83 e4 f0                and    $0xfffffff0,%esp  // deleted.
	55:   e8 fc ff ff ff          call   56 <_start+0x56>
	...
  after modifying
	...
	44:   f3 ab                   rep stos %eax,%es:(%edi)
	46:   bc 00 00 00 00          mov    $0x0,%esp
	4b:   83 e4 f0                and    $0xfffffff0,%esp
	4e:   b0 6e                   mov    $0x6e,%al
	50:   e6 80                   out    %al,$0x80
	52:   e8 fc ff ff ff          call   53 <_start+0x53>
	...

P.S. it is commits which introduced duplication.
  32bit : 4d75dbd1c1
  64bit : 1c4c7ad1e5

Change-Id: I417ce90279fea4b00432e6a209f77a6dd0c0fee6
Signed-off-by: NyeonWoo Kim <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87181
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-05-02 13:59:26 +00:00
Matt DeVillier
1166f9be0d include/console: Add CFR object for setting the logging level
Add a header with a CFR object for setting the coreboot console log
level, so that all mainboards can make use of it without duplication.

Change-Id: I473421e0e6b2031eb9846f5a798b427104dc3af3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87487
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-05-02 13:59:14 +00:00
Matt DeVillier
0f0d5fc725 soc/intel/apollolake/acpi: Add function to get PCIe BAR
Commit 12abfb43dc ("soc/intel/cnvi: Add CNVW OpRegion") added an
ACPI function call to \_SB_.PCI0.GPCB(), which is present in the SoC
common northbridge.asl, but not in the ApolloLake northbridge.asl.

Add the missing GPCB function to the APL northbridge. Per Intel doc
336561, the PCIEXBAR starts at bit 28 vs 26 on other platforms.

TEST=build/boot google/ampton, verify no ACPI errors in dmesg related
to missing function/object, Windows boots without ACPI_BIOS_ERROR BSOD.

Change-Id: Ib45d655a30bf68e9b3d24a444c505e515c4950a6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87486
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-02 13:47:13 +00:00
Matt DeVillier
5d3664ce3b mb/starlabs/starbook/adl_n: Update VBT to fix HDMI output
The HDMI output was not enabled and therefore not functional; enable
it on port DDI-B as per the schematics.

TEST=build/boot Ubuntu 24.10 on starlabs/starbook adl-n, verify
HDMI output functional when connected at boot and when hotplugging.

Change-Id: I746eb1c2284778d46ee5d5a85dae41f284254cb0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87491
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-02 13:46:48 +00:00
Jeremy Compostella
4b765fdd98 mb/google/fatcat: Disable EnableFastVmode on Panther Lake H SoC
This commit addresses a performance issue on the Panther Lake H SoC by
disabling the EnableFastVmode setting in addition to the CepEnable
setting. It was discovered that merely disabling CepEnable was
insufficient, as the FSP continued to program Panther Lake U IccLimit on
FastVMode capable boards, causing performance degradation under
high-stress conditions. By also disabling EnableFastVmode, the I_TRIP
value is prevented from being set lower than the device's actual
capability.

TEST=Verify that IccLimit is programmed with FSP default values.

Change-Id: I2974f1311b69f283d7fa4982c28a9037a8ab23f7
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87505
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
2025-05-02 02:52:42 +00:00
Matt DeVillier
f63c3bb297 soc/intel/cannonlake: Hook up DPTF device to devicetree
Hook up `Device4Enable` FSP setting to devicetree state and drop its
redundant devicetree setting `Device4Enable`. For boards where the
register setting and PCI device status are not in agreement, use
the register setting to determine the PCI device status, since that
is what FSP uses.

Modeled after similar patches for other SoCs.

Change-Id: If17e6e86f6933b334e13f2c05ca513cef0998996
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87483
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-01 22:17:20 +00:00
Matt DeVillier
b7d59185ab soc/intel/common/dtt: Add Kconfig to skip SSDT generation
Some mainboards use the common DPTF ASL rather than the DPTF chip
driver, and those boards need to skip generation of the TCPU ACPI
device in order to avoid a duplicate being created and causing
issues with ACPI table parsing. Create a Kconfig that affected
boards will select to skip generating the TCPU in the SSDT.

Change-Id: Iec58d480821a273cdb4ff086f4995d21fd4bdb2e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87481
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-01 22:17:06 +00:00
Patrick Rudolph
094f75162f cpu/x86/64bit/pt: Fix integer arithmethic in assembly
The GNU assembler allows to use arithmetics on constant expression,
except for division using the '/' character. By default the '/'
introduces a line comment, see [1]. This behaviour can be changed when
the command line argument --divide is being used. However that's not
the case for coreboot.

Since the divide doesn't work as expected the assembler generates 512
times as much instructions on the .rept evaluation than it should. This
didn't cause any problem since it only filled PML4E, but the additional
entries pointed to non existing PDPTs. As long as the memory above 512GB
wasn't accessed it worked just fine.

Use shifts to fix the arithmetic and thus generate only the expected
number of page table entries. Required for the following patch, which
walks page tables and expects to find sane directories.

1: https://sourceware.org/binutils/docs-2.26/as/i386_002dChars.html#i386_002dChars

TEST=GAS generates 512 times less entries on .rept evaluation
Change-Id: I480142df010bf4e7d6fb84c9891e93b6ee21e908
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87356
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-01 22:14:51 +00:00
Sowmya Aralguppe
bbd8f0aef8 soc/intel/ptl: Refactoring NUM_COMx_GRP_PADS calculation
NUM_COMx_GRP_PADS value is calculated based on COMx_GRP_PAD_END
and COMx_GRP_PAD_START values instead of using GPIO pin names.

TEST=Compiled and Verified on Wildcat Lake Simulation Platform.

Change-Id: I0c5b2ebc00f328bd4b9df4653d5339781e38fcba
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87484
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-05-01 22:14:39 +00:00
CoolStar
cf47edb173 ec/google/wilco/acpi: Add UCSI port data
Add UCSI port data/port location data which is required for Windows to
use UCSI.

Adjustments taken from EC ACPI on Dell 5400/7410 Windows devices.

TEST=build/boot google/drallion, verify type-C ports functional under
Windows 11.

Change-Id: I04aa87ec10f320d1740cd3897864d154f2aea507
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87489
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-01 22:14:05 +00:00
CoolStar
89e915e981 ec/google/wilco/acpi: Fix S3/S4 support
- Only run _REG on attach
- Reinitialize on WAK to support S3 / Hibernate

Adjustments taken from EC ACPI on Dell 5400/7410 Windows devices.

TEST=build/boot google/drallion, verify S3 sleep works properly as
well as S0ix.

Change-Id: I162d02c7d3c81f1106ddc65a3804f7112dda66b2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87488
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Boris Mittelberg <bmbm@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-05-01 22:13:58 +00:00
Appukuttan V K
4a89d1b77d soc/intel/ptl: Add GPIO ACPI support for Wildcat Lake SoC
Key changes:
 - Relocate the package corresponding to CPUJTAG group from GPI3
   device to the GPI4 device in the ACPI table, utilizing a Kconfig
   guard for conditional compilation.
 - Add ACPI IDs specific to Wildcat Lake GPIO communities.
 - Select SOC_INTEL_PANTHERLAKE_BASE for SOC_INTEL_WILDCATLAKE to
   clearly differentiate between Panther Lake and Wildcat Lake
   changes.

References:
- Wildcat Lake EDS Volume 2 (#829345)
- Wildcat Lake GPIO Implementation Summary (#836031)

BUG=b:394208231
TEST=Both Ocelot and Fatcat variants are built

Change-Id: I934c193c75e459c72cc8b01a575cc0bbd65dc273
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87474
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-05-01 13:27:41 +00:00
Appukuttan V K
a4a2cdeb17 soc/intel/ptl: Add GPIOs for Wildcat Lake SoC
This patch introduces GPIO changes for the Wildcat Lake SoC.
These changes coexist with the Panther Lake SoC GPIO files.

Key Changes:
  - The CPUJTAG group is moved from community 3 to community 4.
  - A new pin is added to Group H.
  - Wildcat Lake-specific register definitions are included.
  - Kconfig is utilized to segregate Wildcat Lake GPIO changes.

References:
- Wildcat Lake External Design Specification (EDS) Volume 2 (#829345)
- Wildcat Lake GPIO Implementation Summary (#836031)

BUG=b:394208231
TEST=Both Ocelot and Fatcat variants are built

Change-Id: Ib364d41097c53cd085c6cf89b0461ce38117b21e
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87452
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-05-01 13:27:32 +00:00
Jeremy Soller
2ce567f1d0 soc/intel/common/block/cse: Prevent HECI commands when flash descriptor override is set
Sending the disable and EOP commands will not work if flash descriptor
override is set on Meteor Lake.

Change-Id: I3b5a56229434c9cc326141d48359faa7759541ee
Signed-off-by: Jeremy Soller <Jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82728
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
2025-04-30 16:01:07 +00:00
Sean Rhodes
9660279966 drivers/usb/intel_bluetooth: Hook RTD3 up to the option API
This makes Bluetooth RTD3 runtime configurable.

Change-Id: I467634e013a140e0a39802d2a1767583ba33a76e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87326
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-30 16:00:11 +00:00
Subrata Banik
e2705d93d8 soc/intel/pantherlake: Reduce IGD stolen memory size from 128MB to 64MB
This commit updates the pre-allocated IGD stolen memory size for Intel
Panther Lake SoCs from 128MB to 64MB within the FSP-M configuration
parameters.

Reducing the IGD stolen memory allocation from 128MB to 64MB
significantly optimizes system memory resource utilization (by 64MB).

Furthermore, this reduction frees one MTRR. Previously, the 128MB IGD
allocation consumed all 10 available BIOS MTRRs; the new 64MB allocation
now leaves MTRR index 9 available.

BUG=b:413638298
TEST=Able to boot google/fatcat to OS w/ internal and/or external
display attached.

Change-Id: Ifd60973bc5d37cbbc4ea6c8eaf5d851069d53083
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87460
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-30 02:54:18 +00:00
Keith Hui
9f98a2a78a mb/asus/p8z77-v_le_plus: Use additional rt8168 MAC programming
Use an additional Realtek NIC MAC programming sequence recently
added to drivers/net/r8168.c.

BUG=https://ticket.coreboot.org/issues/579
TEST=Specified MAC address now recognized and retained by Linux r8169
driver without further work.

Change-Id: Ia1409874920b2e598e8b8b3c186fc46bd0cef296
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87437
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-29 22:17:53 +00:00
Keith Hui
2b598a9472 drivers/net/r8168.c: Add option to program MAC address to ERI registers
On mainboard/asus/p8z77-v_le_plus, programmed MAC address is being
reverted with controller resets done at loading and unloading of Linux
r8169 kernel module.

Ghidra examination of vendor BIOS reveals an additional sequence to
program the MAC address into its ERI register block. This patch
adds code to replicate that sequence, gated by a Kconfig so it's
only included where necessary.

BUG=https://ticket.coreboot.org/issues/579
TEST=When applied with mainboard level changes in CB:87437, specified
MAC address now recognized and retained by Linux r8169 driver without
further work.

Change-Id: Iae33e24e564f9fba52acb16138fe89085d9eeb03
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87436
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-29 22:17:48 +00:00
Wonkyu Kim
4b871c6314 ec/intel: read board ID one time from EC per stage
Use a static variable to cache the board ID. It optimizes boot time by
reading the ID once per stage and retaining it for subsequent use.
Rewrite the function to avoid the unnecessary ChromeEC wrapper function.

Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Change-Id: I166ca1abdf7838f91319d0bcf11354055ed93eef
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87247
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-29 18:53:04 +00:00
Yunlong Jia
08722cd9f9 mb/google/dedede/var/beadrix: Add Ziliatech part to RAM ID table
Add Ziliatech SDVB8D8A34XGCL3N3T as id 2, resulting in the list below:

DRAM Part Name                 ID to assign
MT53E512M32D1NP-046 WT:B       0 (0000)
K4U6E3S4AA-MGCR                0 (0000)
H54G46CYRBX267                 0 (0000)
CXDB4CBAM-ML-A                 1 (0001)
SDVB8D8A34XGCL3N3T             2 (0010)

BUG=b:398700043
BRANCH=None
TEST=Use part_id_gen to generate related settings

Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Change-Id: If85ea78828ab520d10dcbe4ccbba685ac1746c51
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87440
Reviewed-by: Derek Huang <derekhuang@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-29 14:36:03 +00:00
Subrata Banik
c0920396d0 mb/google/bluey: Make GSC_AP_INT GPIO configurable via Kconfig
This commit introduces a Kconfig option to define the GPIO pin used
for the Google Security Chip (GSC) to Application Processor (AP)
interrupt on the Bluey mainboard.

Previously, the GPIO_GSC_AP_INT was hardcoded to GPIO 34 in
board.h. This change makes it configurable for any future variants
using Qualcomm X1P-42-100 SoC.

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: I5759667158082a80124bf3faa3c56aee50c1be34
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87450
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-29 02:29:37 +00:00
Subrata Banik
2e387e13f5 mb/google/fatcat/var/francka: Conditionally init HDA
This commit implements `mainboard_is_hda_codec_enabled` for the Google
Francka mainboard variant. This overrides the default weak HDA common
initialization.

Initialization of the High Definition Audio (HDA) controller, managed by
`azalia_audio_init()` (which handles HDA verb table loading), is now
conditional. It proceeds only if the firmware config
`FW_CONFIG(AUDIO, AUDIO_ALC256M_CG_HDA)` is set. This targets the
ALC256M-CG HDA codec.

This change ensures that HDA verb tables are loaded only when the
ALC256M-CG HDA codec is actively configured for the Francka variant.
Crucially, this prevents attempts to incorrectly load HDA verbs for
other audio interfaces, like SoundWire (SNDW), which might be present
in different Francka hardware configurations.

The header `intelblocks/hda.h` added to support this HDA initialization
logic.

BUG=b:ENTER_FRANCKA_BUG_ID_HERE
TEST=Verified HDA verb table loading is skipped on Francka platforms
     when configured with non-HDA audio codecs (e.g., SNDW),
     and proceeds as expected when ALC256M-CG HDA is configured

Change-Id: Idbc506c1ad180c7e8ecdec51c3491e6f0518204c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87463
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-29 02:11:15 +00:00
Subrata Banik
e545494f6d mb/google/fatcat/var/fatcat: Conditionally init ALC256 HDA
This commit implements `mainboard_is_hda_codec_enabled()` for the
Google Fatcat mainboard variant. This overrides the default weak HDA
common initialization.

Initialization of the High Definition Audio (HDA) controller,
managed by `azalia_audio_init()` (which handles HDA verb table
loading), is now conditional. It proceeds only if the firmware
config `FW_CONFIG(AUDIO, AUDIO_ALC256_HDA)` is set. This value
(3) specifically targets the ALC256 HDA codec.

This change ensures that HDA verb tables are loaded only when the
ALC256 HDA codec is actively configured for the Fatcat variant.
Crucially, this prevents attempts to incorrectly load HDA verbs
for other audio interfaces, like SoundWire (SNDW) or I2S, which might
be present in different Fatcat hardware configurations.

The header file `intelblocks/hda.h` added for this. As a minor stylistic
update, header inclusions in this file are also alphabetized.

BUG=b:413638298
TEST=Verified HDA verb table loading is skipped on Fatcat platforms
     when configured with non-HDA audio codecs (e.g., SNDW, I2S),
     and proceeds as expected when ALC256 HDA is configured.

Change-Id: Ifc158b7d15c763cc07d28154259b7e64709bea16
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87462
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-04-29 02:11:09 +00:00
Subrata Banik
03d2ef67d7 soc/intel/cmn/hda: Introduce mainboard hook for HDA initialization
This commit refactors the HDA initialization within the common Intel
SoC block to provide mainboard-level customization.

A new weak function, mainboard_is_hda_codec_enabled(), is
introduced. The `hda_init()` function invokes `azalia_audio_init()` when
`CONFIG(SOC_INTEL_COMMON_BLOCK_HDA_VERB)` is enabled and
`mainboard_is_hda_codec_enabled()` is also true.

The default (weak) implementation of `mainboard_is_hda_codec_enabled()`
simply returns `true`, ensuring that the original behavior is maintained
for mainboards that do not provide an override.

This change allows specific mainboards to implement their own
`mainboard_is_hda_codec_enabled()` to specify if hardware design has
support for HDA codec depending upon the firmware config (FW_CONFIG) for
the audio subsystem.

BUG=b:413638298
TEST=Able to build and boot google/fatcat.

Change-Id: Ided1413e828f6bc3421e538a969c38e15b5f3116
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87461
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-29 02:11:00 +00:00
Subrata Banik
85c65b0c20 mb/google/fatcat: Remove NPK device from fatcat and francka variants
This commit removes the `device ref npk on end` from the
`overridetree.cb` files for the `fatcat` and `francka` variants
of the `google/fatcat` mainboard. This effectively disables
the NPK device for these configurations (because `npk` is default
set to disable).

BUG=b:328770565
TEST=Able to build google/fatcat.

Change-Id: I9dda20552781af6b29a2156cbc1e3bea352c5836
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87453
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-29 02:10:25 +00:00
John Su
92955fbfa6 mb/google/trulo/var/uldrenite: Configure GPP_E9 as NF2
GPP_E9 was wrongly configured to NF1 instead of NF2 i.e. ISH_GP4.
Reference: Intel doc#648094

BUG=b:410645679
TEST=Check GPIO config in the OS.

Change-Id: I43e3ec2e29138d59ed82e5ff4b264ab8dc3a39fb
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87471
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yuval Peress <peress@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-04-28 15:59:45 +00:00
Jeremy Compostella
aafcb01ec4 mb/intel/ptlrvp: Synchronize codebase with fatcat
This commit imports changes from mb/google/fatcat to mb/intel/ptlrvp as
of coreboot codebase commit 010cfa2842
("doc/internals/devicetree_language: multiple segment groups
supported").

Here is the list of imported commits:
- commit 9495063993 ("mainboard/google/fatcat: Fix SMBIOS Processor
  upgrade info")
- commit 27f3427f4a ("mb/google/fatcat/var/fatcat: Update GSPI0 CS pin
  for FPS")
- commit c41af2d43c ("mb/google/fatcat/var/fatcat: Update THC
  Interrupt for Touchpad Development")
- commit b5dea9fa99 ("mb/google/fatcat/var/francka: Add Write Protect
  GPIO to cros_gpios")
- commit ef80ccbc43 ("mb/google/fatcat: Disable EC software sync for
  Microchip EC")
- commit 9f39d6ec5e ("mb/google/fatcat: Enable HAVE_SLP_S0_GATE for
  felino and francka")
- commit eb85dfae1f ("mb/google/fatcat: Configure GPIO_SLP_S0_GATE for
  francka and felino")
- commit 0fc2422e88 ("mb/google/fatcat: Implement S0ix hooks aka
  `MS0X` method")
- commit 1fa5ab805b ("mb/google/fatcat: Remove unnecessary CNVi core
  variables settings")
- commit 5c0340349e ("mb/google/fatcat: Rationalize Wi-Fi and
  Bluetooth combinations")
- commit 275beb93db ("mb/google/fatcat: Conditionally check for barrel
  charger")
- commit e9b020f02e ("mb/google/fatcat: Allow board-specific FSP-M UPD
  override")
- commit 3a88eb8cb6 ("mb/google/fatcat: Enable HDA SDI based on FW
  config")
- commit 0ac2058dbe ("mb/google/fatcat: Increase sagv_freq_mhz for
  work point #1 to #3")
- commit 6e529e7c06 ("mb/google/fatcat: Add Intel Touch support for
  touchscreen and touchpad")

Overall, these commits aim to improve the configuration, performance,
and compatibility of the Intel Panther Lake Reference Validation
Platform (PTLRVP) mainboard across various aspects, including processor
upgrade support, peripheral integration, power management, and audio
functionality.

TEST=Successful boot with a ptlrvp image on a Fatcat board.

Change-Id: Ie27763a367d8d53c64ad78d26909f1068af3c819
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87223
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-28 15:51:03 +00:00
Avi Uday
effd1ffdad mb/google/ocelot: Update Ocelot board
Syncing ocelot code to fatcat so that it has the recent changes made to fatcat. This is done by manually copying the fatcat code, similar to https://review.coreboot.org/c/coreboot/+/86692

List of commits -
86702: mb/google/fatcat/var/fatcat: Update GSPI0 CS pin for FPS | https://review.coreboot.org/c/coreboot/+/86702
86479: mb/google/fatcat/var/fatcat: Update THC Interrupt for Touchpad Development | https://review.coreboot.org/c/coreboot/+/86479
86938: mb/google/fatcat/var/fatcat: Add Write Protect GPIO to cros_gpios | https://review.coreboot.org/c/coreboot/+/86938
86981: mb/google/fatcat: Implement S0ix hooks aka `MS0X` method | https://review.coreboot.org/c/coreboot/+/86981
85662: mb/google/fatcat: Rationalize Wi-Fi and Bluetooth combinations | https://review.coreboot.org/c/coreboot/+/85662
87089: mb/google/fatcat: Allow board-specific FSP-M UPD override | https://review.coreboot.org/c/coreboot/+/87089
87090: mb/google/fatcat: Enable HDA SDI based on FW config | https://review.coreboot.org/c/coreboot/+/87090
85200: mb/google/fatcat: Add Intel Touch support for touchscreen and touchpad | https://review.coreboot.org/c/coreboot/+/85200
87154: mb/google/fatcat/variants/fatcat: Refactor X1 PCIe power enable GPIO | https://review.coreboot.org/c/coreboot/+/87154
87191: mb/google/fatcat: Perform early post-memory GPIO configuration | https://review.coreboot.org/c/coreboot/+/87191
87183: mb/google/fatcat: Introduce variant-specific barrel jack presence check | https://review.coreboot.org/c/coreboot/+/87183
87207: mb/google/fatcat/var/fatcat: Implement barrel jack presence check | https://review.coreboot.org/c/coreboot/+/87207
87236: mb/google/fatcat: Enable FSP_UGOP_EARLY_SIGN_OF_LIFE | https://review.coreboot.org/c/coreboot/+/87236

BUG=b:412736286
BRANCH=None
TEST=Build AP firmware image.

Change-Id: Icb8ec9ff26abd71931e0689f94ea6af260f7618c
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87351
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-28 05:44:45 +00:00
Patrick Rudolph
1044f03878 payloads/external/edk2: Set StatusD register to work around failing AMD boot
On recent AMD platforms the VRT bit in the StatusD register is
read-writeable and set every 1024msec when RTC power is good.
This leads to a timeout in RtcWaitToUpdate() waiting for the bit
to be set and the gEfiRealTimeClockArchProtocolGuid won't be installed.
The protocol is critical to boot.

Adjust the code to not clear the VRT bit, as RtcWaitToUpdate() will
return an error, as it assumes the VRT bit is read-only and hardwired
to one as on Intel ICHs. While the timeout could be increased it
would also increase boot time by up to a second.

On platforms where the VRT bit is read-only the introduced code
does the same as before.

Change-Id: I8bc432114c83fa5f5fb35a144e3a35c38ee8a3de
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87415
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-27 21:32:00 +00:00
Martin Roth
2170ad0c60 Documentation/lib/timestamp.md: Reformat to 72 characters per line
Change-Id: Ifecd528dc5ee3d728104632b84a505c70ac2077b
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87291
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-04-27 21:31:49 +00:00
Ivy Jian
22118a137b mb/google/fatcat/var/kinmen: Add memory settings
Update memory settings based on the schematics.

BUG=b:406040704
TEST=emerge-fatcat coreboot

Change-Id: I8651cc15696764cf76b3ce2edee735003908b244
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87439
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-27 21:31:22 +00:00
John Su
54c87dbed0 mb/google/trulo/var/uldrenite: Update DPTF parameters
Update the DPTF parameters as provided by thermal team.

1. Tcc_offset: 5 -> 3
2. Modify critical policy and passive policy setting

BUG=b:411866724
BRANCH=firmware-trulo-15217.771.B
TEST=build test firmware and verified by thermal team

Change-Id: Id5fda2e8c4985d41d0871454bb808a9cdfedc3e6
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87425
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-04-26 13:44:08 +00:00
Bora Guvendik
9ef62ad64c mb/intel/ptlrvp: Introduce PTL RVP External and Internal EC Configurations
This commit adds configurations for both external and internal EC
versions of the PTL RVP board. The changes involve updates to the
Kconfig files to select appropriate EC configurations based on the
specific PTL RVP variant. By organizing these options, it ensures
that the build system selects the right EC components and
configurations, aligning with the specific needs of the board version
in use.

The new configuration for external EC (`BOARD_INTEL_PTLRVP_CHROMEEC`)
enables Chrome EC related config options and enables TPM, whereas
Intel EC (`BOARD_INTEL_PTLRVP`) disables Chrome EC related config
options and uses MOCK TPM.

BUG=none
TEST=Build the firmware for PTL RVP with both external and internal EC
settings, verifying that the correct components are included based on
the chosen configuration. Ensure that the board operates correctly
with the selected EC setup.

Change-Id: Ic3e40f2a19d7ed4f7a16e6e516a284a9a778b9fd
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86991
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-26 13:43:48 +00:00
Pranava Y N
7c965f9df0 MAINTAINERS: Add Nick, Avi, and Pranava for new google/ocelot entry
Add GOOGLE OCELOT MAINBOARDS section for src/mb/google/ocelot and
update the maintainers list to add Nick Vaccaro, Pranava Y N, and
Avi Uday as maintainers.

Change-Id: Ia5fc7fcdd5ea2f3588343834dccd86ee2b17f9a8
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87438
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-26 13:42:00 +00:00
Subrata Banik
d2e698056e mb/google/bluey: Set correct Kconfig defaults for peripherals
Update the default Kconfig values for the google/bluey mainboard
to specify the correct hardware instances/buses used for various
peripherals as per bluey schematics (dated 04/15).

Changes:
- TPM I2C bus set to 0x10.
- ChromeEC SPI bus set to 0xb.

Removes previous TODO placeholders.

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: I48283e9f5b9dc1d2f203dadbdf6d4e27566f0a83
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87094
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-26 03:59:16 +00:00
Subrata Banik
34d6bc8784 soc/qualcomm/x1p42100: Set correct Kconfig defaults for peripherals
Update the default Kconfig values for the `soc/qualcomm/x1p42100`
to specify the correct hardware instances/buses used for various
peripherals as per datasheet for bluey (dated 04/15).

Changes:
- Boot SPI flash bus set to 24.
- Console UART instance set to 21.
- Select FIXED_UART_FOR_CONSOLE Kconfig as UART is not really
  selectable due to GPIO Function 0 (bit-bang mode) default
  configuration.

Additionally, remove previous used TODO placeholders.

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: Ia053edb731f7e08c98ffa3fe273ddd1c97b651bb
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87272
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-26 03:58:57 +00:00
Subrata Banik
2201f57493 soc/qualcomm/x1p42100: Add QUP Serial Engine (SE) entries
This patch adds QUP-SE entries as applicable for the Qualcomm X1P-42-100
SoC.

This includes:
- Add new entries for QUPV3_2 SEs.
- Update base addresses for all QUP-SEs.
- Base GPIO pin function assignments.
- Definition and GPIO mapping for relevant QUP Serial Engines (SEs).
- GPIO mapping for the QSPI interface.

Additionally, update GPIO PINS for QSPI and UART.

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: Ib0535aa5dfadef8c412c5e9dd51859068539821f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87093
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-26 03:58:50 +00:00
Kapil Porwal
6a503fe5a4 mb/google/var/uldrenite: Configure GPP_A16 as NF4
GPP_A16 was wrongly configured to NF2 instead of NF4 i.e. ISH_GP5.
Reference: Intel doc#648094

BUG=b:410645679
TEST=Check GPIO config in the OS.

Change-Id: Ic91ac116513e27992679b0d301afed3bc057bf71
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87444
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yuval Peress <peress@google.com>
2025-04-25 17:06:06 +00:00
Matt DeVillier
c2c95fbd24 sb/intel/lynxpoint: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

TEST=build/boot google/panther with CFR options enabled.

Change-Id: I5067e7a69f1f53f0f93d337198d3c349facec086
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87385
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-25 14:24:47 +00:00
Matt DeVillier
96fd20c5e0 soc/intel/broadwell: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

TEST=build/boot google/guado with CFR options enabled.

Change-Id: Iaf9950a3b446b1b55d836e54e8b231d047571768
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87387
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-25 14:24:27 +00:00
Pranava Y N
ce6f7820f4 ec/google/chromeec: Increase EC status timeout to 30 seconds
Some ITE ECs take long time (15-20s) to complete flash erase operation
during EC software sync. Increasing the timeout value to 30s avoids
EC_CMD_FLASH_ERASE command from timing out. As this is just a timeout
value, it should not have any effect on the boot time.

BUGS=b:386920751, b:412210635
TEST= Verify that the EC_CMD_FLASH_ERASE(0x13) is not timing out while
performing EC sync. Below error is avoided,

```
[ERROR]  Timeout waiting for EC process command 19!
[INFO ]  VB2:update_ec() vb2ex_ec_update_image(select) returned 0x10000001
[INFO ]  VB2:vb2api_fail() Need recovery, reason: 0x26 / 0x1
[INFO ]  VB2:sync_ec() update_ec(ctx, select_rw) returned 0x10000001
[INFO ]  VB2:vb2api_fail() Need recovery, reason: 0x26 / 0x1
[INFO ]  VB2:vb2api_ec_sync() ec_sync_phase2(ctx) returned 0x10000001
[INFO ]  Saving nvdata
[ERROR]  EC software sync failed (0x10000001), rebooting
[INFO ]  board_reset() called!
[INFO ]  full_reset() called!
```

Change-Id: Id7bfa620e8c19d5b162b60e5cc37003ff339b589
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87427
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-25 14:24:16 +00:00
Matt DeVillier
17347eedc3 soc/intel/cannonlake: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

Change-Id: I925002958b5de93e833f06fddf772e5334a7bdb8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87401
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-04-25 14:18:18 +00:00
Matt DeVillier
ad704e0500 soc/intel/cannonlake: Hook up the VT-d setting to option API
Hook up the VT-d setting to the option API, so it can be changed at
runtime without recompilation.

Change-Id: Iaddaf56563bd5916bc27d99171af48bf46127052
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87399
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-04-25 14:18:12 +00:00
Qinghong Zeng
7f8d1f2086 mb/google/nissa/var/pujjoniru: Support x32 memory configuration
Use GPP_E19 level to determine whether x32 memory configuration is
supported.

BUG=b:409144310
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I7c1f48f89186c3803e8e6a1bf163b824f2f06731
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87250
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-04-25 08:44:35 +00:00
Kun Liu
fe881c990c mb/google/brya: Create pujjocento variant
Create the pujjocento variant of the nissa 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:409254508
BRANCH=None
TEST=util/abuild/abuild -p none -t google/brya -x -a
make sure the build includes GOOGLE_PUJJOCENTO

Change-Id: I33b0642624ba67f53126e92976096ba53750ae89
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87419
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-25 03:31:24 +00:00
Subrata Banik
7da36ad79a mb/google/bluey: Add initial support for Bluey
This commit introduces basic support for the google/bluey mainboard,
based on the Qualcomm X1P-42-100 SoC.

Changes:

- Add placeholder mainboard callbacks to enable control flow from /lib
  and Qualcomm SoC code.
- Populate the bluey mainboard directory with a copy of the herobrine
  codebase, removing SoC/mainboard-specific implementations.

This provides a minimal working build for google/bluey, allowing
upstream builders to compile the mainboard. This facilitates easier
verification of subsequent changes.

BUG=b:404985109
TEST=Successfully built google/bluey with Qualcomm X1P-42-100 SoC.

Change-Id: Id0da1846b8aef6f4ef4345be9cd803aa60406cdf
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86973
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-25 01:59:33 +00:00
Subrata Banik
57d7957e3c soc/qualcomm/x1p42100: Add initial SoC skeleton for X1P-42-100
This commit introduces a basic SoC framework for the Qualcomm
X1P-42-100, enabling initial build integration.

Key changes:

- Add placeholder SoC callbacks to facilitate control flow from /lib
  and Qualcomm common code.
- Populate the x1p42100 SoC directory with a copy of the SC7280
  codebase, with SoC-specific implementations removed.

This provides a foundational structure for X1P-42-100 development
within the `soc/qualcomm/x1p42100` directory, ensuring the upstream
builder can successfully compile the SoC code.

This allows for incremental development and integration.

Reference Document: X1P42100 Hardware Register Description

BUG=b:404985109
TEST=Successfully built google/bluey with the Qualcomm x1p42100 SoC.

Change-Id: I6358177b9c6dc26967d364a2056a62d8ca77f89b
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86972
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-25 01:59:27 +00:00
Naresh Solanki
c82f5fe133 soc/amd/glinda: Select SOC_FILL_CPU_CACHE_INFO
Use soc_fill_cpu_cache_info implementation to for computing L3 cache
size accurately for Glinda SoC.

Change-Id: I2827508ec0ae5f16d609e1bc76c00eb376a7b71b
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87222
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-24 19:09:10 +00:00
Matt DeVillier
ee76692571 payload/external/edk2: Add Kconfig to support use of PCIe OpROMs
Add a Kconfig to support passing `LOAD_OPTION_ROMS=TRUE` as a build
parameter in order to enable edk2 support for dGPUs.

Change-Id: I05444425d1cb98b023681639389949bf3f3b8e9c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87407
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-04-24 14:34:24 +00:00
Naresh Solanki
fb3f025ea6 soc/amd/common/cpu/noncar: Add SMBIOS helper
Some SoC like Glinda,
1. It has multiple L3 caches block, each identified by a unique cache
UID. Each core is associated with a specific L3 cache, which can be
determined based on the CPU core ID.
2. Each CPU core have slightly different CPU boost frequency.

For L3 cache info in DMI table type 7, the default implementation
(x86_get_cpu_cache_info) retrieves cache information only for the
current core and assumes that the same L3 cache is shared across all
cores.

To accurately determine the total L3 cache size:
1. Retrieves L3 cache information for each CPU core.
2. Identifies the unique cache ID associated with each core.
3. Aggregates cache sizes for all unique cache IDs to compute the
   total L3 cache size, ensuring correct summation even when L3 cache
   blocks have different sizes.

Additionally to get core max boost frequency,
1. Determine max boost frequency among all cores & update
   smbios_cpu_get_max_speed_mhz such that it return max of all cores.

TEST=Build for Glinda SoC & check output of `dmidecode -t 7` &
`dmidecode -t 4`. Verify DMI Type7 table to report L3 cache size as 24MB
(16 + 8) & Also verify DMI Type4 'Max Speed: 5408 MHz' which is maximum
boost clock frequency.

Change-Id: I2569a9c744f7f41e4df692626e77a178184b7e0e
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87123
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-04-24 14:27:21 +00:00
Tongtong Pan
36f01c3481 mb/google/fatcat/var/felino: Add Write Protect GPIO to cros_gpios
This enables the utility crossystem to access WP GPIO,
`GPIO_PCH_WP` aka GPP_C08 is part of PTL GPIO community 0
therefore add `CROS_GPIO_DEVICE0_NAME` into the `cros_gpios` lists.

BUG=b:409472563
TEST= wpsw_cur in crossystem reads the correct gpio

Change-Id: Ia21b95d220d8df30fb3aa73b4c71047b135a52e6
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87426
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-24 13:51:45 +00:00
ot_ryanw.wang
934fcfb6a0 soc/mediatek/mt8189: Add I2C driver support
Add I2C controller driver.

BUG=b:379008996
BRANCH=none
TEST=build passed

Signed-off-by: ot_ryanw.wang <ot_ryanw.wang@mediatek.com>
Change-Id: I4baa291a83ecce60eb2d41e329c2182f3ea273b7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87338
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-04-24 06:45:07 +00:00
Vince Liu
b3bdffa475 soc/mediatek/common: Move I2C functions to common code
To promote code reuse and maintainability, move i2c functions to common
folder. The function prototype "mtk_i2c_bus_init(uint8_t bus)" used by
some legacy platforms are changed to "mtk_i2c_bus_init(uint8_t bus,
uint32_t speed)" for better API integration.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: I6ac7009f5af4e6379d3f73aec61d0f4abd28471c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87352
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-24 06:44:59 +00:00
Sowmya Aralguppe
1e0941c295 mb/google/ocelot: Select Wildcat Lake(WCL) SoC config
TEST=Compiled and Verified on Wildcat Lake Simulation Platform.

Change-Id: I0eed357931dfdc74509e6ed8c536fecba5a019f9
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87421
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-24 01:51:04 +00:00
Ana Carolina Cabral
b249275e3d mb/amd/crater: Fix some ec defines
Fix some ec bits name and indentation.

Change-Id: I23407e4e7be661980c16ef96dd0efabb3898e3da
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87304
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 21:03:23 +00:00
Ana Carolina Cabral
443f514365 mb/amd/crater: Add touchscreen support
Add edp I2C touch panel suport.

Change-Id: I33f13fc4c76dfe7cb9abf114d31e83e7ad24bdb9
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87219
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-04-23 21:02:50 +00:00
Ana Carolina Cabral
4e55225f2c mb/amd/crater: Add missing dxio descriptors
Add DT, WLAN, WWLAN, TB and XGBE port descriptors
according to PI source package #67683 (NDA).

Change-Id: Iccc74fd03f6833112b370ba503d9d33033609c5b
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87319
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-23 21:02:45 +00:00
Patrick Rudolph
608db150f1 smmrelocate: Drop unused parameter
The parameter CPU isn't used, thus drop it.

Change-Id: Ie7f6179f0545f905463752e94243b438143d8234
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87257
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-04-23 21:02:27 +00:00
Matt DeVillier
157b7ae778 payloads/edk2: Update default branch for MrChromebox repo to 2025-02
Update the default branch used for MrChromebox's edk2 fork from 2024-08
to 2025-02. This updated branch has been rebased on the latest upstream
stable tag (edk2-stable202502), and updates the EFI revocation database
used for SecureBoot. It also adds support for the CFR-based setup menu
and configuration management, and support for running OpROMs on
external dGPUs.

TEST=build/boot google boards link, panther, lulu, reef, ampton, akemi,
banshee, zork, dewatt, frostflow with edk2 payload selected.

Change-Id: I1f900d0e33e88d747547a1f5218445bb0cce4e4b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87406
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-04-23 21:00:31 +00:00
Sean Rhodes
76a1e81b10 mb/starlabs/*: Unify Sleep S3 and S4 GPIO configurations
Ensure all boards configure these two GPIOs to NF1.

Change-Id: Ie8a222bff349a427083adb1c4d7ca73a41de3095
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87360
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-23 21:00:18 +00:00
Appukuttan V K
fed584e100 soc/intel: Add Wildcat Lake CPU and PCIe device IDs
This patch adds Wildcat Lake-specific CPU and PCIe device IDs to the
header files and driver-specific code.

Reference:
Wildcat Lake Processor Prelim External Device IDs (820363)

BUG=b:394208231
TEST=Verified on Wildcat Lake Simulation Platform

Change-Id: I4bc7a8ea898ee30d565a95b9f85d6f19886bcffb
Signed-off-by: Appukuttan V K <appukuttan.vk@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87262
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 20:59:41 +00:00
Jeremy Compostella
5d7e2b4c0c mb/google/fatcat: Disable VR settings on Panther Lake H SoC
Introduce a new static function `disable_vr_settings_on_pantherlake_h()`
to disable Voltage Regulator (VR) settings when a Panther Lake H System
on Chip (SoC) is detected.

The existing VR configurations, introduced by commit d19dd192db
("mb/google/fatcat: Add PTL-U Fast VMode Voltage Regulator settings"),
are optimized for Panther Lake U SoC, which can cause performance issues
on Panther Lake H boards under stress due to the I_TRIP value being
lower than what the device could actually use. By disabling these
settings, the Firmware Support Package (FSP) falls back to default
values for the SoC, which are more suitable.

TEST=Observe the "Disabling VR settings on PTL-H" log during a boot test
     on a Panther Lake H variant.

Change-Id: Ifc371212259fa724425158ad9ebadebd30c81705
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87403
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-23 20:59:06 +00:00
Nick Vaccaro
8be95806a6 mb/google/ocelot/var/ocelot: update gpios
Update gpio configuration to match ocelot schematic.

BUG=b:412736286
BRANCH=None
TEST=`emerge-ocelot coreboot` and verify it compiles without error.

Change-Id: Id2e2eb9fdf008445124e99393fe4b192ccb27f5d
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87423
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eran Mitrani <mitrani@google.com>
2025-04-23 19:42:44 +00:00
Nick Vaccaro
92f9c8a985 mb/google/ocelot: update FW_CONFIG
Update the FW_CONFIG to correspond to the Google Ocelot hardware SKUs
and remove code that is no longer needed due to the FW_CONFIG changes.

Removed support for AUDIO_ALC722_SNDW, AUDIO_MAX98360_ALC56821_I2S,
AUDIO_MAX98373_ALC5682_SNDW, TOUCHSCREEN_LPSS_I2C, UFC_MIPI, UFC_USB,
WFC_MIPI and WFC_USB.

Added support for AUDIO_ALC721_SNDW, DISPLAY_TOUCH_PRESENT, and
DISPLAY_NO_TOUCH_PRESENT.

BUG=b:412736286
BRANCH=None
TEST=`emerge-ocelot coreboot` and verify it compiles without error.

Change-Id: I5fd7010230a3f17005f5ca395ffaca0724a615e9
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87310
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-23 18:42:02 +00:00
Matt DeVillier
49bf8f94a0 soc/intel/common: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

Change-Id: I97d5d8b78cc9e5516dbfc64f81a925b1715b941b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87390
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-23 14:19:42 +00:00
Matt DeVillier
509b01c3b6 soc/intel/cannonlake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: I1c51e653a9e34bb7f5ac07bcae8481be269f83cf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87400
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-04-23 14:19:30 +00:00
Matt DeVillier
b830fdc2d7 soc/intel/cannonlake: Hook up IGD config to option API
Hook up the IGD config options IgdDvmt50PreAlloc and ApertureSize to the
option API, so they can be configured at runtime without recompilation.

The Aperture size falls back to the FSP default value, so no change if
unconfigured.

Change-Id: Idad22ca79c10d575320b4360ec24c2019a837446
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87398
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-04-23 14:19:18 +00:00
Matt DeVillier
5efb54d371 soc/intel/broadwell: Allow ME enable/disable to be set via option
Add an option variable 'me_disable' to control the visibility of the
HECI PCI device at runtime. Default to the Kconfig selection if not set.

Change-Id: I6e7c018115780c74f1662948ed8dad3e0559051a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87386
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-23 14:19:03 +00:00
Matt DeVillier
42379e7f76 sb/intel/lynxpoint: Allow ME enable/disable via option
Add an option variable 'me_disable' to control the visibility of the
HECI PCI device at runtime. Default to the Kconfig selection if not set.

Change-Id: I12c4c9f062cb5904c2f9c05b333bf0ed81aba632
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87384
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:18:40 +00:00
Matt DeVillier
204aae207d mb/samsung/stumpy: Clean up makefile
Organize according to stage, alphabetize, and guard inclusion of
ChromeOS-specific code.

TEST=build/boot stumpy

Change-Id: Id6ea4e685ff3e098f6c619e1cab48a5a9320c29b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87405
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:18:16 +00:00
Matt DeVillier
e3d3fc5b4a mb/samsung/stumpy: Use CFR setup menu to manage options
Enable support for managing system options via CFR, and select it by
default when using edk2 with SMMSTORE.

TEST=build/boot stumpy w/edk2 payload

Change-Id: I91166a3932931c04eae78065fec6b856aebc6f0b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87404
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-23 14:18:08 +00:00
Matt DeVillier
936ca8404a drivers/option/cfr: Select EFI variable store when edk2 payload used
Since CFR options require a backend to store the keys/values, select
DRIVERS_EFI_VARIABLE_STORE when edk2 is used as the payload and
SMMSTORE is enabled, so that boards only need to select
DRIVERS_OPTION_CFR in order to have a fully-functioning configuration
setup.

TEST=build samsung/stumpy with DRIVERS_OPTION_CFR selected and edk2
payload used.

Change-Id: Ib8565e4fefb1b3f05e58ab039be8ab0d1bc046f1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87410
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-23 14:17:59 +00:00
Matt DeVillier
20ceed1929 drivers/efi/fw_info: Select necessary UDK binding as needed
DRIVERS_EFI_FW_INFO requires some Intel vendorcode headers which are
selected by default on FSP 2.x platforms, but not by earlier ones.
Select the oldest UDK binding for non-FSP 2.x boards, so that the
required headers are available, rather than depending on UDK_BASE
and requiring those boards to manually select the binding

Change-Id: I27ab64ab0c9d4d45cc09061f6f8c3725c24df706
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87409
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-23 14:17:53 +00:00
Matt DeVillier
c0e3f6d1d2 drivers/efi/variable_store: Select necessary UDK binding as needed
DRIVERS_EFI_VARIABLE_STORE requires some Intel vendorcode headers which
are selected by default on FSP 2.x platforms, but not by earlier ones.
Select the oldest UDK binding for non-FSP 2.x boards, so that the
required headers are available, rather than depending on UDK_BASE
and requiring those boards to manually select the binding.

TEST=build samsung/stumpy with EFI variable store support, without
manually selecting UDK_2017_BINDING at the mainboard level.

Change-Id: I099d3cc7690a0faecfe32a8bc814766c67c63fbb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87408
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:17:48 +00:00
Matt DeVillier
a899359720 sb/intel/bd82x6x: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

TEST=build/boot samsung/stumpy with CFR options enabled.

Change-Id: Ia6906992deb948869ecfd8a5f6fc3883220811ec
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87389
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-23 14:17:42 +00:00
Matt DeVillier
ada6b98766 nb/intel/sandybridge: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them.

Currently only one option for IGD UMA size, but others can be added
as needed.

Change-Id: I892ffcc74d36a266697cbc7ea3c8880db6b67f44
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87388
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-23 14:17:36 +00:00
Matt DeVillier
f14aa06606 soc/intel/skylake: Add CFR objects for existing options
Add a header with CFR objects for existing configuration options,
so that supported boards can make use of them without duplication.

Change-Id: Id69295ae1708164b1afbafe5724e19bf13fc3963
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87393
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:17:17 +00:00
Matt DeVillier
f51c0bb090 soc/intel/skylake: Hook up IGD config to option API
Hook up the IGD config options IgdDvmt50PreAlloc and ApertureSize to the
option API, so they can be configured at runtime without recompilation.

The Aperture size falls back to the FSP default value, so no change if
unconfigured.

Change-Id: Ic900cb7bdc6dc532aef0c0b51b32bf8308a8ae36
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87392
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:17:06 +00:00
Matt DeVillier
32c78b7e22 soc/intel/skylake: Hook up S0ix setting to option API
Hook up the s0ix_enable setting to the option API, so it can be changed
at runtime without recompilation. Default to the value set by the
mainboard.

Change-Id: I1684439755db9d8194ac5533513e65c9ba8f0768
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87391
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-23 14:17:01 +00:00
Matt DeVillier
73b095d5ea mb/starlabs/*: Select DRIVERS_OPTION_CFR_ENABLED
Per the documentation, mainboards should select
`DRIVERS_OPTION_CFR_ENABLED` vs `DRIVERS_OPTION_CFR`, since the latter
is meant to be user selectable.

Change-Id: Ica2980fb9a8c69cae48e235ebbd72e824c24e010
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87411
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-04-23 14:16:32 +00:00
Matt DeVillier
4eba4e3f26 superio/ite/it8772f: Program power state after failure
Allow the power state after failure to be set using an option backend
if used, otherwise fall back to the Kconfig selection. This is a
noop for all it8772f boards unless they enable an option backend, in
which case that option setting is now functional, whereas before it
would have been ignored for the Kconfig selection.

TEST=build/boot google/panther with various power state after fail
Kconfig selections.

Change-Id: I1988d70fe27a287cd2cc91dbb905c243c24c816d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87383
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:16:09 +00:00
Matt DeVillier
fbca3e6806 superio/ite/*: Move setting of power state to common code
Move the programming of the power state after power failure to the ITE
EC common code, in order to unify and extend to other ITE SIO chips.
The implementations in the it8720f and it8728f are functionally
identical, so take the "best" style elements of both, using clear
variable names and defines for registers rather than magic values.

Change-Id: I4b7e9455e964320f35997fdf04a515b942e030c7
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87382
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-04-23 14:16:03 +00:00
Nico Huber
60b414fc13 soc/intel/cannonlake: Drop redundant PcieRpEnable
The PcieRpEnable option is redundant to our on/off setting in the
devicetrees. Let's use the common coreboot infrastructure instead.

Thanks to Nicholas for doing all the mainboard legwork!

Change-Id: I734262c8191bc217c721c0174d0f844755bc73a9
Signed-off-by: Nico Huber <nico.h@gmx.de>
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79918
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-04-23 14:15:39 +00:00
Nico Huber
ee30558c49 soc/intel/skylake: Drop redundant PcieRpEnable
The PcieRpEnable option is redundant to our on/off setting in the
devicetrees. Let's use the common coreboot infrastructure instead.

Thanks to Nicholas for doing all the mainboard legwork!

Change-Id: I2f7e3e1dc6b3d8d6159bd4701e6fd90f4b0f67f4
Signed-off-by: Nico Huber <nico.h@gmx.de>
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79917
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:15:29 +00:00
Yunlong Jia
439d7fb7d0 mb/google/brya: Create epic variant
Create the epic variant of the nissa reference board by copying
the template files to a new directory named for the variant.

This variant is a Nirul project,support TWL devices and select
BOARD_GOOGLE_BASEBOARD_NISSA.

DRAM Part Name                 ID to assign
MT62F512M32D2DR-031 WT:B       0 (0000)
H58G56AK6BX069                 1 (0001)
K3LKBKB0BM-MGCP                2 (0010)
H9JCNNNBK3MLYR-N6E             0 (0000)
H9JCNNNCP3MLYR-N6E             3 (0011)

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

Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Change-Id: I09e5f3c28b95ae8ef318b7af1dd8634279345ce0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87041
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-23 14:14:15 +00:00
Cong Yang
c4e6050146 mb/google/skywalker: Create variant Obiwan
Create the variant Obiwan.

BUG=b:406115783
TEST=emerge-skywalker coreboot
BRANCH=None

Change-Id: Ic3478653cee2906117b69aa7335864a0c7b95b29
Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87397
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:13:49 +00:00
Krystian Hebel
0cc0e6996c drivers/smmstore: allow full flash access for capsule updates
With DRIVERS_EFI_UPDATE_CAPSULES enabled and when at least one capsule
was found, SMMSTORE SMI handler can use commands with the highest
bit (0x80) set to access the whole flash instead of just the SMMSTORE
region. The rest of the interface is identical to regular SMMSTORE v2
except for a new call to control full flash access.

The added call saves information about the availability of capsules in
SMM memory. The call is ignored when run more than once, meaning there
should be no way of enabling full flash handling after it was disabled
and vice versa. The call should always be made by the firmware to lock
further calls, so that an OS could not gain full flash access. This is
done on entry to BS_POST_DEVICE after capsules are obtained in
BS_DEV_INIT.

Change-Id: I7f3dbfa965b9dcbade8b2f06a5bd2ac1345c7972
Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83424
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2025-04-23 14:13:14 +00:00
Yidi Lin
7814b8a6be Revert "soc/mediatek/mt8196: Specify MTKLIB_PATH for building BL31"
This reverts commit 2fdfa50437.

Reason for revert: libbl31.a is under refactoring. Stop linking to this
library before finalizing the binary. This patch will be re-landed when
the binary is ready.

BUG=b:412560091

Change-Id: Ie2c315141a51f30027414cfe59552cb50f2b52f6
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87414
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-23 14:11:48 +00:00
Sowmya Aralguppe
14b66cb01b soc/intel/pantherlake: Add new SoC config for Intel Wildcat Lake(WCL)
TEST=Compiled and Verified on Wildcat Lake Simulation Platform.

Change-Id: Ifd5bb19dd41c9e44b5399f570d4e21f03d5fce18
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87402
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-23 04:44:48 +00:00
Tongtong Pan
d14ebe3957 mb/google/fatcat/var/felino: Use GPP_C08 for GPIO_PCH_WP
Use GPP_C08 as the GPIO_PCH_WP.

BUG=b:409472563
Test=TEST=wp status update verified by toggling it on and off.

Change-Id: I0f6c7c051b2d38a787fe3bb21266a6ef6ebc487b
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87413
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-23 04:36:52 +00:00
Keith Hui
6322be7992 sb/intel/bd82x6x/me.h: Add missing definitions
Two ME current working state definitions are missing. They are
needed for CB:85413. Get them from intelmetool.

Change-Id: Ie163c4b29155e3fd44f0cb3096f825c84da37559
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87394
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-22 22:31:47 +00:00
Kapil Porwal
2f62dd8a6b mb/google/brya/var/uldrenite: Configure ISH_GP5 GPIO
BUG=b:410645679

Change-Id: I25285e7a7ae92a19f8750d30661930c4d6c2e1d2
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87345
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Yuval Peress <peress@google.com>
2025-04-22 13:34:04 +00:00
Rui Zhou
3ce612194c mb/google/rex: Generate RAM IDs
Generate RAM IDs for K3KL8L80DM-MGCU

BUG=b:412237636
BRANCH=None
TEST=Run part_id_gen tool without any errors

Change-Id: Ie3f87f5920942060e8e9f8fcf34c3124ba79f3da
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87396
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-22 01:47:47 +00:00
Rui Zhou
430ab9257b spd/lp5: Add SPD for K3KL8L80EM-MGCU
Add K3KL8L80DM-MGCU in the memory_parts.json
and re-generate the SPD

Samsung:K3KL8L80EM-MGCU

BUG=b:412237636
TEST=util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5

Change-Id: I34c8d8e1fc7b8aa107bc181f51b5dc2ff287aa4c
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87395
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-22 01:47:40 +00:00
Maxim Polyakov
c7a450ba7d Documentation/mainboard/asrock/imb-1222.md: Update information
- some formatting fixes;
- add information about proprietary blobs;
- update information about the tested hardware and operating systems.

Change-Id: I85a8f1df2ffc6e0e1674c4b82888a3964aa8d672
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87295
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-21 17:02:18 +00:00
Maxim Polyakov
ac7717a7b0 mainboard/asrock/imb-1222: Enable USB3 port in WWAN slot
TEST=connect Sandisk USB 3.1 flash via converter (M.2 Key-B to USB3.0);
boot ubuntu 24.04 and run "Benchmark Partition" in the Disks utility;
average read rate = 161.1 MB/s (20 samples/10 MiB).

Change-Id: Iba5d1d7c4f8180e3d37348c1c4dafce6f6c68cb4
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87293
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-21 17:02:14 +00:00
Maxim Polyakov
eb68ff66eb mb/asrock/imb-1222: Update GPIO config using new intelp2m
- use intelp2m, 2.5-a48e94c74b version;
- add missing VGPIO groups.

Change-Id: I351a32962561947296b115af96674a4cd1cb192d
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85919
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-21 17:02:08 +00:00
Maxim Polyakov
a1210875e9 mb/imb-1222: Update some GPIOs according to new vendor config
The memory dump was done for the 1.80 (2023-04-07) version of the
vendor's UEFI.

Change-Id: I649e2c3ae715651b5f0eadc9b52e61e4deae77a1
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85928
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-21 17:02:03 +00:00
Matt DeVillier
fc8e88da9b drivers/intel/mipi_camera: Rework info print output
Fix the INFO print for a mipi camera device:

- fix device path type for generic devices
- print parent device path and PCI devfn for generic devices
- reformat the output for both device types to improve readability

before:
[INFO ]  \_SB.PCI0.IPU0.IPU0: Intel MIPI Camera Device I2C address 00h
[INFO ]  \_SB.PCI0.I2C3.CAM0: Intel MIPI Camera Device I2C address 010h
[INFO ]  \_SB.PCI0.I2C3.VCM0: Intel MIPI Camera Device I2C address 0ch
[INFO ]  \_SB.PCI0.I2C3.NVM0: Intel MIPI Camera Device I2C address 050h

after:
[INFO ]  \_SB.PCI0.IPU0: Intel MIPI Camera Device at PCI 05.0
[INFO ]  \_SB.PCI0.I2C3.CAM0: Intel MIPI Camera Device at I2C 0x10
[INFO ]  \_SB.PCI0.I2C3.VCM0: Intel MIPI Camera Device at I2C 0x0c
[INFO ]  \_SB.PCI0.I2C3.NVM0: Intel MIPI Camera Device at I2C 0x50

Change-Id: I5c4a072e35c4e0a14b6df0d5f199c5ffb3d61d32
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87249
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-04-21 17:01:15 +00:00
Matt DeVillier
d04d7d80b0 drivers/intel/mipi_camera: Only generate ADR if no HID supplied
It's an ACPI spec violation for a device to have both an _ADR and
a _HID method, so prefer the latter if a HID value is specified
via the chip registers.

Change-Id: I5d84dbea52595e61df56a5ff779d5e0ee0d84bdf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87248
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-21 17:01:11 +00:00
Alicja Michalska
36c89598a7 mb/erying/tgl: fsp_params: Replace half_populated with statement
It looks neater, but does the same exact thing.

Change-Id: Id02ba24ec0295cd4621c69079d719d3df36e6499
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87362
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-21 16:19:21 +00:00
mtk17664
0307f52cd9 soc/mediatek/mt8196: Move SPM loader functions to common part
To promote code reuse and maintainability, move SPM loader functions to
common/spm_v2.c.

BUG=b:379008996
BRANCH=none
TEST=build passed

Signed-off-by: Kun Lu <kun.lu@mediatek.corp-partner.google.com>
Change-Id: I20de8662d17e3dbedd84f267f2be7d5d62356ecd
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87340
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-21 03:41:30 +00:00
Elyes Haouas
c247f62749 tree: remove duplicated includes
Change-Id: Iaf10e1b9fb8ce51605a75ec0a92ee33924c42aa6
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86330
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-04-20 05:13:57 +00:00
Maxim Polyakov
77fed6f508 configs: Add config for Asrock IMB-1222
Change-Id: I5238b90f3d86a106ce28ea395eccad347c9de193
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85984
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 15:01:55 +00:00
Naresh Solanki
fb2d62dbd0 soc/amd/common/cpu/noncar: Compute core info boost freq & L3 cache
On SoCs like Glinda, CPU cores may exhibit slight variations in
maximum boost frequency, and the L3 cache can be composed of
multiple blocks with different sizes and unique IDs.

Add helper functions,
1. get_max_boost_frequency() to compute max boost frequenncy.
2. ap_stash_core_info() to update core_info struct with max boost
   frequency & all L3 cache block uniq ID & its size.

To accurately determine the total L3 cache size:
1. Retrieve L3 cache information for each CPU core.
2. Identify the unique cache ID associated with each core.
3. Aggregate cache sizes for all unique cache IDs to compute the
   total L3 cache size, ensuring correct summation when L3 cache
   blocks have different sizes.

TEST=Build for Glinda SoC, with L3 cache = 16MB + 8MB. Ran command
'dmidecode -t 7' & verified L3 cache is 24MB(Previously it was
wrongly reported as 32MB).

Change-Id: I46947e8ac62c903036a81642e03201e353c3dac6
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85640
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 15:01:37 +00:00
Yuval Peress
051fdff0e8 mb/google/brya/var/uldrenite/gpio: Enable ISH sensor interrupts
Enable the interrupts coming from the sensors into the ISH.

BUG=b:410645679

Change-Id: I2acaed1900e248cfe7fcc81201c6991a9741f26c
Signed-off-by: Yuval Peress <peress@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87333
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 15:01:19 +00:00
David Wu
ee5256bfe5 mb/google/fatcat: Create kinmen variant
Create the kinmen variant of the fatcat reference board by copying
the fatcat files to a new directory named for the variant.

BUG=b:409148565
TEST=1. util/abuild/abuild -p none -t google/fatcat -x -a
        make sure the build includes GOOGLE_KINMEN
     2. Run part_id_gen tool without any errors

Change-Id: I51e388e61f102216f6ce9233c87c1915596602be
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87317
Reviewed-by: Bob Moragues <moragues@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-18 15:01:07 +00:00
Kapil Porwal
d71a969758 mb/google/brya/var/uldrenite: Use FW_CONFIG for ISH
Control ISH device and corresponding GPIOs using a FW_CONFIG field.

BUG=b:410645679
TEST=Enable/Disable ISH using the new FW_CONFIG field.

Change-Id: I69805116722535d77c7fd7701df261e0faa9138f
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87344
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Yuval Peress <peress@google.com>
2025-04-18 15:00:50 +00:00
Maxim Polyakov
b6871ab330 mb/asrock/imb-1222: Remove comments for non-functional pads
Change-Id: I00a9ab77a9b4ea9b42a50fceffdde382241b6950
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85927
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-18 15:00:23 +00:00
Sean Rhodes
b81b7a2014 soc/intel/cnvi: Add HotPlugSupportInD3 Property
Add a DSD with the HotPlugSupportInD3, as when it RTD3, the device
will appear as not-present. This will cause Windows to constantly
try to enable it, causing an endless loop of the device becoming
visible.

Test=build and boot `starlabs/starlite_adl`, check CNVi is always
visible in device manager.

Change-Id: I598ab173074522e9d5af002782c5d3ec7691a815
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87325
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 15:00:01 +00:00
Sean Rhodes
8800dc7798 drivers/usb/intel_bluetooth: Add HotPlugSupportInD3 DSD Property
Add a DSD with the HotPlugSupportInD3, as when it RTD3, the device
will appear as not-present. This will cause Windows to constantly
try to enable it, causing an endless loop of the device becoming
visible.

Test=build and boot `starlabs/starlite_adl`, check Bluetooth is
always visible in device manager.

Change-Id: I51a2c764ebe8b98b137eb0c98cfdcf2de6f4b86c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87324
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 14:59:54 +00:00
Sean Rhodes
ffe19bb7ad soc/intel/cnvi: Replace _PRx methods with _S0W object
The previous implementation used _PS0 and _PS3 methods to control the
device power states. These are now replaced by a _S0W object to better
align with both coreboot's existing RTD3 driver, and the examples in
the ACPI specification.

This ensures that the Bluetooth device is recognized as capable of
reaching D3Hot when the system is in S0.

Test=build and boot starlite_adl with Windows and Linux, check Bluetooth
is functional and power draw decreases ~0.4W with no devices connected.

Change-Id: I6762b4a2a2454d4e4de2b25e3e5db17df5a8fc63
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87242
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-18 14:59:45 +00:00
Sean Rhodes
ea17ba0cf2 drivers/usb/intel_bluetooth: Replace _PRx methods with _S0W object
The previous implementation used _PS0 and _PS3 methods to control the
device power states. These are now replaced by a _S0W object to better
align with both coreboot's existing RTD3 driver, and the examples in
the ACPI specification.

This ensures that the Bluetooth device is recognized as capable of
reaching D3Hot when the system is in S0.

Test=build and boot starlite_adl with Windows and Linux, check Bluetooth
is functional and power draw decreases ~0.4W with no devices connected.

Change-Id: I8aa49ee2220ba2ea39b343ea9a9486fca9f5f3d5
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87241
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 14:59:38 +00:00
Sean Rhodes
ba7ed69583 soc/intel/cnvi: Skip calling _ON when device is already enabled
Add a check in the _ON method, similar to coreboot's ONSK handling
in its RTD3 driver, to determine whether the enable GPIO is already
asserted.

This prevents the OS from repeatedly invoking _ON, which can happen
because CNVi takes around 300ms to initialize after the GPIO is
enabled.

Change-Id: I53986aa11714666c12056460aa47396266a00a1c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87240
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-18 14:59:30 +00:00
Sean Rhodes
9b80b36c4a drivers/usb/bluetooth: Skip calling _ON when device is already enabled
Add a check in the _ON method, similar to coreboot's ONSK handling
in its RTD3 driver, to determine whether the enable GPIO is already
asserted.

This prevents the OS from repeatedly invoking _ON, which can happen
because USB Bluetooth takes around 200ms to initialize after the
GPIO is enabled.

Change-Id: I424bc5f4c5b990fd5cb54daa3d6207828386c6f2
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87239
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 14:59:19 +00:00
Matt DeVillier
c731ef0e47 drv/wifi/generic: Drop guard for cnvi_gpio_enable register
Guarding the existence of this register isn't necessary since we
guard its usage as well, and it complicates some subsequent changes,
so drop it.

Change-Id: I557c400e6dffeb9dc5b4b67a6cc6f15ba0ef27d0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87343
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-18 14:59:11 +00:00
Sean Rhodes
360678f79a soc/intel/cnvi: Correct value of CNVI_ABORT_PLDR
The definitions were reversed, as PCH_S should use 0x44, and all others
0x80.

These values can be seen in SlimBootloader, and most UEFI firmwares.

Change-Id: Ia2e3866ef7d0756220f15a8d2bdf639ac6667738
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87323
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-18 14:59:06 +00:00
Felix Held
69a1a05580 soc/amd: add functions to retrieve I3C controller info
Similarly to how things are done for the I2C controller configuration,
implement the 'soc_get_i3c_ctrlr_info' function in all SoCs that have
I3C controllers. This function returns the contents of the SoC's
'i3c_ctrlr' array containing the base addresses and ACPI names of the
I3C controllers. This function will eventually be called by the common
I3C code which will be implemented in future patches.

Change-Id: Ib23fd896925770f49e567324bc8d12ac4c0944bd
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87280
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 14:58:46 +00:00
Sean Rhodes
dd4ccb6044 mb/starlabs/starfighter: Remove comments for disconnected GPIOs
Change-Id: Ia609053b61937a2da01e99b13adb4b964f3ae2ad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87165
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 14:58:31 +00:00
Sean Rhodes
1bfad8c22c mb/starlabs/starfighter: Disconnect unused GPIOs
These GPIOs are not used, so configure them accordingly.

Change-Id: I4e58a0e7545167db2c4034499bb99d3bfffc2277
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87164
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 14:57:32 +00:00
Sean Rhodes
08d15e1ea1 mb/starlabs/starfighter: Reconfigure PCH Strap GPIOs
Configure all strap GPIOs as outputs, rather than some being not
connected. This doesn't change anything, but is more explicit.

Set these all to sample on RSMRST.

Change-Id: I3f7133666743b8aa0dc39df54ffe3483a1ddd605
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87162
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 14:57:20 +00:00
Maximilian Brune
2efe4df522 treewide: Assume FMAP_SECTION_FLASH_START = 0
Now that we require the FMAP to start at offset 0 in the flash, we can
assume this across the entire codebase and therefore simplify it on
several ends.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ieb1a23f9c0ae8c0e1c91287d7eb6f7f0abbf0c2c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86771
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-04-18 14:57:05 +00:00
Maximilian Brune
6f2a01f743 include/fmap.h: Require FMAP_SECTION_FLASH_START == 0
For simplicity we are going to impose this restriction to coreboot.
Note however that this is only a restriction for coreboot itself. The
FMAP tool itself is still a generic tool that does not require the FMAP
to start at offset 0.

Add an defacto empty fmap_config.h to our test cases, since fmap.h now
includes fmap_config.h.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Iba04ebdcd5557664a865d2854028dd811f052249
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86770
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
2025-04-18 14:56:59 +00:00
Jarried Lin
4c22c3d83e soc/mediatek/mt8196: Add DCC driver support in ramstage
Duty Cycle Correlation (DCC) analyzes and optimizes the relationship
between the duty cycles of multiple signals. This commit implements DCC
driver support to improve clock signals, power management, and
communication systems, enhancing system stability and performance.
These improvements will become more significant as the SoC ages.

BUG=b:389784352
BRANCH=rauru
TEST=Build pass, check dcc log:
[DEBUG]  [DCC] DSU=0x0, LCPU=0x0, MCPU=0x17, BCPU=0x1b

Change-Id: I77e5cd951f45dad7a6e2e77c135b821e4179e019
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87320
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-18 07:18:57 +00:00
Zhigang Qin
b76f2dc355 soc/mediatek/common: Convert mt6359p_read_field() to a general API
Make mt6359p_read_field() a general API usable by multiple drivers,
instead of a static function limited to the original driver.

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I2d9c3de9ad08f918a84fa63c1e9b3af7adc5974a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87336
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-18 07:18:36 +00:00
Cong Yang
cf7460f6ea mb/google/skywalker: Enable USB3_HUB_RST
We have to reset the USB hub as early as possible. Otherwise the USB3
hub may not be usable in the payload. This design has been introduced
since Cherry.

BUG=b:390357201
BRANCH=none
TEST=detect USB devices in depthcharge, and the log is like "Added USB
disk 2."

Change-Id: I4ee24aef2a887c8a30738912a8bf90f830a72bed
Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87348
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-18 07:03:26 +00:00
Cong Yang
56d60167ff mb/google/skywalker: Pass XHCI_INIT_DONE to the payload
Configure GPIO (XHCI_INIT_DONE) as output, so that payloads (for example
depthcharge) can assert it to notify EC to enable USB VBUS.

BUG=b:390357201
BRANCH=none
TEST=detect USB devices in depthcharge, and the log is like "Added USB
disk 2."

Change-Id: I99760ace3e87626f55c52dc4f8a30bab27cba345
Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87347
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-18 07:03:14 +00:00
ot_chhao.chang
644dea4a47 soc/mediatek/mt8189: Add EINT support
Add support for configuring GPIO pull settings for external
interrupts (EINT).

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: ot_chhao.chang <ot_chhao.chang@mediatek.com>
Change-Id: I0a8e0a45eb4466d893405684f560b84e7a992630
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87337
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-18 06:50:48 +00:00
Vince Liu
7dc9e62f40 soc/mediatek/mt8189: Enable ARM Trusted Firmware integration
Enable configuration to build with MT8189 arm-trusted-firmware drivers.

BUG=b:379008996
BRANCH=none
TEST=build passed. Output coreboot log:
[INFO ]  CBFS: Found 'fallback/bl31' @0x4e880 size 0x42e9 in mcache
@0xffffeb90

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: If5c311bea10ad8cb0b8b7a5e48d9e36d0d569a7e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87003
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-18 06:50:38 +00:00
Zhigang Qin
e183dc8037 soc/mediatek/common: Remove infracfg.h in pmif_spi
Since infracfg.h is not used in pmif_spi.c, remove its inclusion to
prevent build errors in projects that don't have infracfg.h.

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Zhigang Qin <zhigang.qin@mediatek.corp-partner.google.com>
Change-Id: I09229ff370a53407b3f0c290704887de367ed80b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87339
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 06:50:12 +00:00
Yidi Lin
ee16627a6d mb/google/rauru: Add FORCE_MAX_SWING quirk for ATNA40HQ01-0
The flickering issue on ATNA40HQ01-0 panel can be resolved by setting
the swing level to the maximum (500mV). Therefore, add FORCE_MAX_SWING
quirk for ATNA40HQ01-0 panel where the fw config's OLED_WQXGA_PLUS field
is set to PRESENT. As OLED_WQXGA_PLUS is currently only available on
Navi, add an overridetree.cb for Navi.

BRANCH=rauru
BUG=b:392040003
TEST=check edp training pass and show log:
[INFO ]  fw_config match found: OLED_WQXGA_PLUS=PRESENT
...
[INFO ]  update_swing_preemphasis: Force swing setting to 3 (500 mV)

Change-Id: I4797ef8fe2257a9b578a969794d624d6e0f97d07
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87028
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-18 06:49:04 +00:00
Kenneth Chan
5ef9259d76 mb/google/rex/var/kanix: Configure Acoustic noise mitigation
Enable Acoustic noise mitigation for google/kanix and set slew rate
to 1/8 for IA and GT domains.

BUG=b:409934780
BRANCH=firmware-rex-15709.B
TEST=Able to build and boot to google/kanix
Change-Id: I73460715ac71428843cf505a21de15a6e4d15bea
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87349
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-18 03:19:52 +00:00
Subrata Banik
eabe395778 soc/intel/fatcat: Override FSP-M UART MMIO for GFX PEIM debug
This patch overrides the FSP-M UART MMIO base address to ensure the FSP
GFX PEIM can output debug console messages when required.

Currently, the default UART MMIO base used by FSP-M/S might not be the
intended console UART for debug output in boot stages, particularly for
the GFX PEIM. By overriding it with the value derived from
`CONFIG_UART_FOR_CONSOLE` when either `PcdSerialDebugLevel` or
`SerialDebugMrcLevel` is non-zero, we ensure that debug logs are
directed to the configured console.

This change is crucial for debugging issues within the GFX PEIM
initialization process.

BUG=b:380375181
TEST=Verified that enabling FSP debug tokens after this change allows
viewing debug output from the GFX PEIM during display initialization.

Steps to reproduce:

1. Flash an AP FW image (`image.fatcat.serial.bin`).
2. Observe the absence of debug output from the GFX PEIM during display
   initialization.
3. Dynamically enable the FSP debug token using

```
sudo cbfstool image-fatcat.serial.bin add-int -i 3 -n option/fsp_pcd_debug_level
```
4. Flash the modified AP FW image.
5. Observe debug output from the GFX PEIM during display initialization

```
[INFO]:[IsGraphicsDeviceSupported()]...
[INFO]:[GetVbtStartAddress()]
```

Change-Id: I835ef75cb3046217127823c92f708bfe4f3ff741
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87318
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-17 17:09:07 +00:00
Harrie Paijmans
432625d907 soc/intel/alderlake/vr_config: Add Amston Lake X7433RE
Add the Amston Lake (9W) with MCH_ID 0x4674 to the vr_config table.

Based on Intel docs 721616 rev 2.3.

BUG=NA
TEST=Boots on Intel Alder Lake CRB with X7433RE processor

Change-Id: I7249d3223ccbb1671a0b84da1c2347737e1aec89
Signed-off-by: Harrie Paijmans <hpaijmans@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87246
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-17 14:51:37 +00:00
Ivy Jian
b375a5bbba mb/google/nissa/var/dirks: correct usb2_ports setting
When re-purposing the TCSS port to USB Type-A, PortResetMessageEnable
must be enabled for USB2 ports that are paired with the CPU XHCI port.
Set to USB2_PORT_TYPE_C to enable PortResetMessageEnable.

Also remove the workaround. (workaround CL:87053)

BUG=b:400809281
TEST=Connecting a USB3 speed device,using lsusb -t to check enumerated status.
with change:
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 20000M/x2
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

without change:
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 2: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 480M

Change-Id: I7c4743d1d3bcf2567fdca9c0e07ed02c240d4baf
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87301
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-17 14:51:04 +00:00
Patrick Rudolph
816d956dfd arch/x86: Use defines for GDT segments
Stop using magic values and use defines for Global Descriptor Table
(GDT) offsets. Use the existing defines from the corresponding headers.

Change-Id: I40c15f6341bdef9cd457619ec81e7ac624ec2d63
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87254
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-17 14:50:11 +00:00
Yidi Lin
4ae6fd792a soc/mediatek/common/display: Add force max swing quirk
A 'quirks' variable is added for panels that require special handling
in the display driver due to sensitivity to the eDP signal quality. The
display driver can then handle the special requests accordingly.

On Navi, the swing level needs to be increased to 3 (500mV) for the
ATNA40HQ01-0 panel to resolve a flickering issue.

BRANCH=rauru
BUG=b:392040003
TEST=check edp training pass and show log:
[INFO ]  fw_config match found: OLED_WQXGA_PLUS=PRESENT
...
[INFO ]  update_swing_preemphasis: Force swing setting to 3 (500 mV)

Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Change-Id: Ifa8c45050f61d3dff1fa7aed8fa8e435391a6f3a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86999
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-17 14:34:20 +00:00
Felix Held
321f30d89e soc/amd: select RESET_VECTOR_IN_RAM from common non-CAR Kconfig
Select RESET_VECTOR_IN_RAM from the common SOC_AMD_COMMON_BLOCK_NONCAR
Kconfig option instead of selecting it in each AMD SoC's Kconfig which
selects SOC_AMD_COMMON_BLOCK_NONCAR.

From family 17h on, the AMD SoCs don't use cache as RAM (CAR) any more.
In most cases, including the coreboot case, the PSP puts coreboot's
bootblock into DRAM, thus RESET_VECTOR_IN_RAM needs to be selected.
There might be a case where the RESET_VECTOR_IN_RAM part isn't true, but
that isn't specific to a SoC generation, so even this unlikely case
doesn't prevent us from moving the selection of the Kconfig option to
the common non-CAR Kconfig option.

Change-Id: I87d7908f94505647f504f9d214e3c52f9c3a3715
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87322
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-17 12:50:08 +00:00
Yuval Peress
deda4ee304 mb/google/brya/var/uldrenite: Enable ISH
Re-enable the ISH for uldrenite and set the correct firmware name. ISH
was disabled on uldrenite due to a suspend issue that's no longer
there. Uldrenite PoR is to use the ISH. The issue was caused by a bug
in Intel's Zephyr HAL which included power management logic that
incorrectly handled one of the interrupts.

BUG=b:410645679
TEST=ISH device under lscpi.

# lspci -s 00:12.0 -knn
00:12.0 Serial controller [0700]: Intel Corporation Device [8086:54fc]
        Subsystem: Intel Corporation Device [8086:7270]
        Kernel driver in use: intel_ish_ipc
        Kernel modules: intel_ish_ipc


Change-Id: I567fd43857da0023d063c0bb1b70c206dbee47f4
Signed-off-by: Yuval Peress <peress@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87313
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-17 08:19:43 +00:00
Matt DeVillier
aa9f0881b3 mb/starlabs/starbook: Simplify CFR options
Move declaration of all CFR objects to a header file, so they don't
need to be guarded. Simplify the enablement of CFR options by creating
board-level Kconfig options as needed.

TEST=build/boot starbook MTL, TGL, ADL-N.

Change-Id: I43dfa6795708e9975b938ce1359629f6b9c4f1cf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87088
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-04-16 14:34:52 +00:00
Ana Carolina Cabral
7e706dc027 mb/amb/crater: Clean up port descriptors
Use defines to create dxio descriptors as other mainboards.

Change-Id: I09e8a9fc37a7b775b76a3d8e5faaee7828f99000
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87220
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-16 14:03:14 +00:00
Ana Carolina Cabral
7fd815dffe soc/amd/cezanne: Add DPTC support
Add support for DPTC by calling SB.DPTC() as part of PNOT().

Change-Id: I29d7177c96217bf03eaea818cfc1f944f4e640a6
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87218
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-16 14:02:55 +00:00
Ana Carolina Cabral
24ff10d76e mb/amd/crater: Enable CPPC support
Enable CPPC configuration in mainboard devicetree.

Change-Id: Ifbe65db23aff932ceb92861426fda9358cd655be
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87217
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-16 14:02:31 +00:00
Brian Hsu
717a795f7b mb/google/nissa/var/guren: Add SPD ID for H58G56CK8BX146
Support memory of SK-hynix H58G56CK8BX146 in mem_parts_used list,
and generate SPD ID for this part.

DRAM Part Name      Vendor     Model Spec         ID to assign
H58G56CK8BX146      SK hynix   LPDDR5X 8533 32Gb  6 (0110)

BUG=b:409971450
BRANCH=firmware-nissa-15217.B
TEST=Run command "go run ./util/spd_tools/src/part_id_gen/\
     part_id_gen.go ADL lp5 \
     src/mainboard/google/brya/variants/guren/memory/ \
     src/mainboard/google/brya/variants/guren/memory/\
     mem_parts_used.txt"

Change-Id: I4616b44a164391d7a14cc97efb059e731d35c308
Signed-off-by: Brian Hsu <Brian_Hsu@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87275
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Brian Hsu <brian_hsu@pegatron.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-16 05:42:45 +00:00
Maximilian Brune
4e0e59e244 soc/amd/mendocino/Makefile.mk: Fix syntax with trailing "/"
It doesn't cause any problems, because the next line is empty. But it
is wrong nonetheless.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I8f1e99e06575e769f5698e4cd86e44f0b4df8a07
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87289
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-15 13:21:08 +00:00
Seunghwan Kim
eecddf1b46 mb/google/nissa/var/meliks: Get wifi sar name
Add get_wifi_sar_cbfs_file_name() to return to wifi SAR file name.

BUG=b:404374545
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: I2d7a08059c0ed7588311a421faf59146ac43001d
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87253
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-04-15 13:20:39 +00:00
Tongtong Pan
49a257a7db mb/google/fatcat/var/felino: Use GPP_E03 for EC_SYNC_IRQ
Use GPP_E03 as the EC sync interrupt and provide this value
to the embedded controller to be exported to the OS.

BUG=b:403383143
Test=emerge-fatcat coreboot and Confirm the log:
cros_ec_lpcs GOOG0004:00: Chrome EC device registered

Change-Id: If7d120fcf2de8dbbbc399d2ead4e294d11ea8a14
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87210
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-04-15 13:20:18 +00:00
David Wu
3ea8f42255 mb/google/nissa/var/dirks: Enable ASPM of RTL8111H
Because the NIC does not enter ASPM L1.2.
Here we add "enable_aspm_l1_2" in overridetree for RTL8111H.

BUG=b:407469351
TEST=emerge and test with command powerd_dbus_suspend.
Check firmware log output
[INFO ]  rtl: Enable ASPM L1.2

Change-Id: I0e4f0a4aba736811f3b803f4a1245a635ec59407
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87232
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-15 13:19:56 +00:00
Mac Chiang
9a3eae088c mb/google/fatcat/var/felino: fix DMIC1 recording
According to the PTL GPIO implementation summary document,
NF2 is a null function pin. Correct to NF3 for DMIC_CLK_A1 and
DMIC_DAT_A1 function pins.

BUG=b:378629979
Test=emerge-fatcat coreboot
Verify DMIC recording functionality.
Command: arecord -D hw:0,10 -r 48000 -c 4 -f s32 dmic.wav

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Change-Id: Ic73b43e6d58376e0c592ef4a1a9c9d9fc7e66928
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87237
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-15 13:19:34 +00:00
Avi Uday
62aaef76f1 MAINTAINERS: Add Avi for intel/pantherlake and google/fatcat
Change-Id: I295df41b6754dc3ef33f4979e325fbba7d0b8e82
Signed-off-by: Avi Uday <aviuday@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87303
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-15 10:39:53 +00:00
Subrata Banik
df3935ed87 soc/qualcomm/common: Avoid hardcoding SPI bus from QUP range
The `spi_ctrlr_bus_map` defines the range of SPI bus numbers managed
by different controllers. Previously, the generic `spi_qup_ctrlr`
was hardcoded to manage buses 0 through 15.

Modify the `.bus_end` value for the `spi_qup_ctrlr` entry to be
`QUPV3_SE_MAX - 1`.

TEST=Able to build google/herobrine.

Change-Id: I7e9ec555a6d72d93bc23285e48eab52030978e1a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87270
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-15 03:45:34 +00:00
Felix Held
6a082679cd soc/amd/*/i2c: add missing iomap.h include
APU_I2C*_BASE are defined in the SoC's iomap.h, so include it.

Change-Id: Id7b1674914a045699d6df53b20e35028c3936f67
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87281
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 21:14:47 +00:00
Michał Żygowski
c4a46b7340 soc/intel/elkhartlake/pmc,gpio: Fix PMC GPE GPIO routes
Based on the description of PMC GPIO_CONF register from
EHL EDS Vol 2 Book 2 rev 2.3 #614109.

Some of the groups had incorrect values or even defined
non-existent GPIO groups.

TEST=Boot Protectli VP2420 to Ubuntu 24.04.

Change-Id: I910f3c4c0d31b8d24b83cd2c3a28688b898b5d9f
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87050
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-14 16:46:06 +00:00
Nicholas Chin
4186587fe0 docs/getting-started: Update guide for writing docs
- Update the instructions for building the documentation to account for
  the switch from Recommonmark to MyST Parser
- Update outdated URLs
- Update various details to account for the current behavior and
  features resulting from previous changes

Change-Id: I569862e30fb88a421ad2338aafabeaf3ea76836a
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85857
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-04-14 13:56:11 +00:00
Maximilian Brune
aec4a9b2e5 Revert "src/cpu,soc/amd/common/block/cpu: Add preload_microcode"
This reverts commit 4b5a490b6f.

Reason for revert: This effort was apparently given up on since 4 years.
So remove the function, since it is not used at the moment. If someone
wants to bring that effort back to live, said person can feel free to do
so.

Change-Id: I26d5c9fbfd6eae24f876d857a6e952ca0d1a64ae
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87066
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-14 13:55:47 +00:00
Maximilian Brune
d696fa6987 Revert "acpi,Makefile: Add preload_acpi_dsdt"
This reverts commit 6b446b991b.

Reason for revert: This effort was apparently given up on since 4 years.
So remove the function, since it is not used at the moment. If someone
wants to bring that effort back to live, said person can feel free to do
so.

Change-Id: Ifa1ca58c8bf6aabb5b291d3244b1a1a0a7aec6c7
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87065
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 13:55:42 +00:00
Harrie Paijmans
2f28ec300e device/pci_ids: Add Raptor Lake P root port ID
Add Raptor Lake P specific PCIe root port ID.
Based on intel document 640552 rev 2.81.

BUG=NA
TEST=Customer platform with Raptorlake-P

Change-Id: Ifa7c131b5ae47294c055b9e68dad2764607c032b
Signed-off-by: Harrie Paijmans <hpaijmans@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87244
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-14 13:54:31 +00:00
Sean Rhodes
b46c6ec181 mb/starlabs/starbook/tgl: Correct GPIO configs
Several pads were not configured or configured incorrectly. FSP was
correcting them, but adjust the config in coreboot so this is not
necassary.

The config aligns with all other Star Labs boards.

Change-Id: Id41ea5d2f4f4321526d25b27411dad02fbde90b6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87261
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 13:54:07 +00:00
Sean Rhodes
75bbdaac39 mb/starlabs/starbook/tgl: Disconnect unused GPIOs
Configure pads that aren't connected to anything to PAD_NC.

Also, remove comments for these pads.

Change-Id: Iaee9f3fc5639d5147f5bdf45fb5311a0121e2c78
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87260
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 13:54:02 +00:00
Sean Rhodes
be79c86f9e mb/starlabs/starbook/tgl: Move webcam GPIO to it's own group
Change-Id: I88fa42782e4f262f6595bb6394f21f65bb3c1b21
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87259
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-14 13:53:57 +00:00
Sean Rhodes
8a132f3a51 mb/starlabs/starbook/tgl: Reconfigure PCH Strap GPIOs
Configure all strap GPIOs as outputs, rather than some being not
connected. This doesn't change anything, but is more explicit.

Set these all to sample on RSMRST.

Change-Id: I944744f103aa2d1c347856a059d3dd6231b219c4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87258
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-14 13:53:52 +00:00
Jamie Ryu
3e0cfc6222 mb/intel/ptlrvp: Update flashmap to allocate 14MB to BIOS
This updates the Flashmap (FMAP) descriptor to allocate 18MB to
Silicon Management Engine (SI_ME) and 14MB for BIOS. Panther Lake
(PTL) Reference Validation Platform (RVP) coreboot is used with
several types of RVP boards, and this layout with a 14MB BIOS is
very convenient for debugging and creating coreboot for certain
use cases and testing purposes.

TEST=Build the ptlrvp variant (ES) and check if the flashmap of
the coreboot is updated correctly.

Change-Id: Ie85b79ae8f7d4e30cf48eb6301224b0cf01b8dff
Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87035
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
2025-04-14 13:53:34 +00:00
Harrie Paijmans
c8f7f67745 soc/intel/alderlake/vr_config: Add i7-1370PE
Add the Raptorlake-P/H/H Refresh (6+8)(28W) with MCH_ID 0xa706
to the vr_config table.

BUG=NA
TEST=Customer platform with Raptorlake-P

Change-Id: Iabc668e81596b136470cbe2a1c84f8f53403448f
Signed-off-by: Harrie Paijmans <hpaijmans@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87245
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-14 13:52:57 +00:00
Harrie Paijmans
22ee635d0f device/pci_ids: Add Amston Lake CPU IDs
Intel processor number X7433RE.
Based on docs 721616 rev 2.3.

BUG=NA
TEST=Boots on Intel Alder Lake CRB with X7433RE processor

Change-Id: Ia43945887e7d536b5b7387a4dda4e245973c27ee
Signed-off-by: Harrie Paijmans <hpaijmans@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87243
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
2025-04-14 13:52:42 +00:00
Maxim Polyakov
0b22edb1fd Documentation/util/intelp2m: Add info for developers
Change-Id: I9cc886e607c1aba92b94e06419d45d9581371065
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85791
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 13:52:13 +00:00
Harrie Paijmans
2057751509 superio/fintek: Add support for f81966d
This patch adds support for the Fintek f81966d SuperIO,
which is very similar to the fintek/f81866d.

Datasheet:
	- Name: F81966D/A, Release Date: Oct 2023, Version: V0.21P

BUG=NA
TEST=Customer platform with F81966D, verified with 'superiotool -de'

Change-Id: Ibe3987b6e15eb07b92d7f5a7de2bd511de85e2f7
Signed-off-by: Harrie Paijmans <hpaijmans@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87198
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
2025-04-14 13:52:01 +00:00
Maxim Polyakov
ace8bb45f7 superio/fintek/f81866d: Undo set config mode for HWM
The hardware monitor provides access to its address space via the base
address stored in LDN 0x4 at index 0x60/0x61. There is no need to set
the configuration mode here, since the registers in the LDN are not
programmed.

Change-Id: Ic27c9eee5a58727a70fc0ebe60a643f45a418d36
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87274
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-14 13:51:42 +00:00
Maxim Polyakov
36805eedca superio/fintek/f81866d: Fix HWM port address
The HWM port is +5 to the base address stored in LDN 0x4 at index
0x60/0x61. Take this rule into account when configuring the monitor,
as it was done for Fintek SIO chips in the superiotool utility [1].

[1] commit d92745b

TEST=Run coreboot on the motherboard with the Fintek F81966 chip (which
is architecturally compatible) with pnp_write_hwm5_index() in the HWM
initialization code:
- the fans are regulated correctly;
- superiotool prints the values of the configuration registers updated
  during initialization.

Change-Id: If39400e56a7d0792a5bc8f312c29dd5e98a0b2d3
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87273
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Harrie Paijmans <hpaijmans@eltan.com>
2025-04-14 13:51:29 +00:00
Maximilian Brune
d65bb0b9fc treewide: Remove remainders of ROM_BASE
commit a7eb390796 ("mb/*/*/*.fmd: Start flash at 0")
caused a build failure for all mainboards that generate their FMAP
from the IFD (so intel only) instead of providing one themselves.
Jenkins didn't catch that, because apparently all mainboards that have
the IFD in the 3rdparty/blobs repository provide a custom FMAP.
So there was no defconfig that jenkins tested that would come across
this issue.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ia9852e8ef48148264d2d3f73eb667f3eb8b85005
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87288
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-by: Erik van den Bogaert <ebogaert@eltan.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-14 13:50:50 +00:00
Felix Held
5441f57830 soc/amd/*/include/aoac_defs.h: add I3C controller AOAC IDs
Add the AOAC IDs of the I3C controllers. The following documentation was
used to verify this:

Genoa: #55901 Rev 0.40
Mendocino: #57243 Rev 3.08
Rembrandt: #56558 Rev 3.09 (in Mendocino directory)
Phoenix: #57019 Rev 3.09
Glinda: #57254 Rev 3.00
Faegan: #57928 Rev 1.51 (in Glinda directory)

Change-Id: I54d049c58756251506f94d220e1970ccec170918
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87279
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 09:32:31 +00:00
Felix Held
a527d13080 soc/amd: report I3C controller MMIO to resource allocator
Add minimal common AMD I3C controller code that reports the MMIO region
used by the different I3C controllers to the resource allocator. For
this to work, select the introduced SOC_AMD_COMMON_BLOCK_I3C Kconfig
option and add the 'soc_amd_i3c_mmio_ops' device operations to the I3C
device devicetree entries on all SoCs that include I3C controllers.

Change-Id: Iebf709d2548f2535b2a2a03a4f6da9531559c238
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87277
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-04-14 09:32:15 +00:00
Felix Held
caf9677423 soc/amd: add I3C controller base addresses and devicetree entries
Add the base addresses of the I3C controllers and the mmio devices to
the devicetree for the SoCs that have I3C controllers. The following
documentation was used to verify this:

Mendocino: #57243 Rev 3.08
Rembrandt: #56558 Rev 3.09 (in Mendocino directory)
Phoenix: #57019 Rev 3.09
Glinda: #57254 Rev 3.00
Faegan: #57928 Rev 1.51 (in Glinda directory)

For Genoa, those entries already existed in both its iomap.h and its
devicetree. Cezanne and Picasso don't have I3C controllers.

Change-Id: I6e8073e6498266b909b6cc5f589353f2ed23a62f
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87276
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 09:31:47 +00:00
Anand Vaikar
bdbf345eb8 soc/amd/cezanne: Enable system wake up from ACPI S3 using USB keyboard
TEST: Tested by entering ACPI S3 sleep state and pressing any key
on USB keyboard wakes up the system.

Change-Id: Ieed635a7199f53c2e7c69c8f17b3ef50b76b8d91
Signed-off-by: Anand Vaikar <a.vaikar2021@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87287
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 09:31:34 +00:00
Patrick Rudolph
fdb0701336 soc/amd/common/block/spi: Enforce default ROM mapping
Make sure that the ROM2 MMIO area starts at flash address 0.

Document 56780

Change-Id: I1fc06517ea496441147375579800f7349e39facc
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87176
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-04-14 09:30:54 +00:00
Patrick Rudolph
e6358d98c4 soc/amd/common/block: Read SPI rom remapping
When a SPI ROM greater than 16MByte is being used it will be split
into 16MByte chunks that can be remapped in HW as an automatic recovery
mechanism. As an example when the EFS in the first 16MByte is corrupted
and the second 16MByte EFS is valid the HW will switch pages. The automatic
address translation of the MMIO ROM needs to be accounted when accessing
the ROM2/ROM3 BAR.

Add a function to retrieve the current address remapping and print it in
show_spi_speeds_and_modes() for debugging purposes.

Document 56780

Change-Id: I046e029e6135ab57f79b675c62b233203f00d705
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87175
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 09:30:48 +00:00
Yu-Ping Wu
a479f11ecc soc/mediatek/mt8196: Add validity check for PI_IMG
Call check-pi-img.py to perform validity check for the PI_IMG firmware
file.

BUG=none
TEST=emerge-rauru coreboot
TEST=cbfstool coreboot.rom print | grep pi_img
BRANCH=rauru

Change-Id: I7b8085c1229c1a7a8cad904e166471ff8bda5cfb
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86352
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 07:35:06 +00:00
Yu-Ping Wu
f762708822 util/mediatek: Add check-pi-img.py
According to MediaTek's proprietary PI_IMG parser, two cookies (one
header and one footer) are expected. Therefore, add a script to perform
validity check of the PI_IMG firmware, so that format errors could be
caught in build time.

Change-Id: I27011492c7fab747aa3ee12d514d20a6a52d0a4d
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87226
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 07:35:00 +00:00
Qinghong Zeng
402419c3b3 mb/google/nissa/var/anraggar: Support x32 memory configuration
Use GPP_E19 level to determine whether x32 memory configuration is
supported.

BUG=b:409212348
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Ic401d3db57659c6ced13c123591c1fd82fa9a721
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87234
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-04-14 06:03:56 +00:00
Qinghong Zeng
695976f65f mb/google/nissa/var/teliks: Support x32 memory configuration
Use GPP_E19 level to determine whether x32 memory configuration is
supported.

BUG=b:409212347
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I152501858069b5164e8ea602373ed27a5288acb1
Signed-off-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87233
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-14 06:03:50 +00:00
Yidi Lin
b1cad55512 Update arm-trusted-firmware submodule to upstream master
Updating from commit id e5a1f4abeec3:
2025-03-03 16:21:54 +0100 - (Merge "feat(mt8196): fix MT8196 gpio driver" into integration)

to commit id 57ac3f74b34a:
2025-04-09 20:07:35 +0200 - (Merge "feat(stm32mp15-fdts): add Linux Automation GmbH TAC" into integration)

This brings in 244 new commits.

Change-Id: I22ec128c99e84fd80fbc7de06f2791c627ae790a
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87269
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-14 02:32:18 +00:00
Yidi Lin
7a58cfff89 util/scripts/update_submodules: Fix "branch: unbound variable" error
After CB:86803, ${branch} variable is no longer valid. Use
${branch_name} instead ${branch} for generating the commit message.

TEST=./util/scripts/update_submodules -R 3rdparty/arm-trusted-firmware/
     The script generates the new commit successfully.

Change-Id: Ia528379b8721e6d419984bab28de7cf427e42423
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87268
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 02:32:12 +00:00
Kun Liu
ef61d4d925 mb/google/nissa/var/telith: Support x32 memory configuration
Use GPP_E19 level to determine whether x32 memory configuration is
supported.

BUG=b:405303038
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I969fea2aba858f76870c1a31ad4bd884ec9b6ff3
Signed-off-by: Kun Liu <liukun11@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87212
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-04-14 01:40:14 +00:00
Daniel Peng
ff9e06911c mb/google/nissa/var/glassway: Support Memory Hynix H58G56CK8BX146
Add the new memory support: Hynix H58G56CK8BX146

BUG=b:404452285
BRANCH=firmware-nissa-15217.B
TEST=Run command "go run ./util/spd_tools/src/part_id_gen/\
     part_id_gen.go ADL lp5 \
     src/mainboard/google/brya/variants/glassway/memory/ \
     src/mainboard/google/brya/variants/glassway/memory/\
     mem_parts_used.txt"

Change-Id: I1d6bbb778e75f6f32012e0cf6f427101d3616246
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87252
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Daniel Peng <daniel_peng@pegatron.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-14 01:39:45 +00:00
Daniel Peng
cdfd2104bd mb/google/brya/var/guren: Add Stylus Pen Function
New Stylus Pen for MAXEYE/0585501490 module for Guren360 project.
1. Add STYLUS fw_config setting
2. Enable stylus device settings
3. Disable the stylus GPIO pins based on fw_config

BUG=b:406168542
BRANCH=firmware-nissa-15217.B
TEST=1. emerge-nissa coreboot
     2. Confirm command evtest for stylus PRP0001:00 and workable.

Change-Id: I46d679d29b35d0f4fc70d63b74975d3bdfc40b7b
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87235
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Daniel Peng <daniel_peng@pegatron.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 01:39:26 +00:00
Brian Hsu
1b27f39025 mb/google/nissa/var/guren: Add touch screen FTSC1000 support
New Touchscreen function for Guren project.
Touchscreen panel: HKO RB116AS01-2,
and set TOUCHSCREEN_FTSC1000 to value "3".

BUG=b:391281767
BRANCH=firmware-nissa-15217.B
TEST=1. emerge-nissa coreboot chromeos-bootimage
     2. Confirm command evtest and touchscreen function is workable.

Change-Id: Icfe5f57c69d1bd98e0852a1aa3baed8c1444e4d9
Signed-off-by: Brian Hsu <Brian_Hsu@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87238
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Daniel Peng <daniel_peng@pegatron.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-14 01:39:19 +00:00
Subrata Banik
e5af2c6585 soc/intel/pantherlake: Remove implicit VBOOT_MUST_REQUEST_DISPLAY selection
The explicit selection of `CONFIG_VBOOT_MUST_REQUEST_DISPLAY` for
Panther Lake SoC has been removed.

Panther Lake platforms inherently enable display across all boot
modes (normal, developer, recovery) when vboot is active.
Therefore, explicitly selecting `VBOOT_MUST_REQUEST_DISPLAY`
becomes redundant, especially when `VBOOT_ALWAYS_ENABLE_DISPLAY`
is enabled due to the selection of `BMP_LOGO` for ChromeOS
devices.

TEST=Able to perform ec sync without any additional reboots.

Change-Id: Ifa222d6910664a22eacdb6fea54e73b099ca96d1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87284
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-12 17:34:16 +00:00
Subrata Banik
9dd96f58f3 lib/bootmode: Enforce display init requirement for vboot
The `display_init_required` function for vboot now mandates that either
`CONFIG_VBOOT_MUST_REQUEST_DISPLAY` or
`CONFIG_VBOOT_ALWAYS_ENABLE_DISPLAY` must be enabled.

If neither of these Kconfig options is set when `CONFIG_VBOOT` is
enabled, the code will now trigger `dead_code()`. This enforces the
requirement that display initialization is explicitly requested or
always enabled when vboot is active, aligning with the intended usage
of `VB2_CONTEXT_DISPLAY_INIT`.

TEST=Able to build google/fatcat.

Change-Id: I371c0533057fb088ea15a5da6bd76173cea525aa
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87283
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-12 17:34:09 +00:00
Subrata Banik
78f95fc12c soc/qualcomm: Use runtime check for QUP wrapper 2 init
Refactor the initialization logic for the optional QUPv3 wrapper 2.
Add a runtime check of the `QUP_WRAP2_BASE` macro's value within
`qupv3_fw_init`.

This approach simplifies the QUP wrapper 2 initialization, making the
code flow depend directly on whether a valid base address is defined
for the target SoC.

To facilitate this, explicitly define `QUP_WRAP2_BASE` as 0 (acting as
a dummy entry) for SoCs like sc7180 and sc7280 which do not include
this hardware block. The `if (QUP_WRAP2_BASE)` check will correctly
evaluate to false for these platforms, skipping the initialization.
Platforms that do have QUP wrapper 2 should define its non-zero base
address.

TEST=Able to build google/herobine.

Change-Id: I553ee4891abc5dd744b69bcbee1cca2efd993ef3
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87271
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-12 17:33:58 +00:00
Subrata Banik
b75669038a soc/intel/common/cse: Skip CSE state setting with LITE_SYNC_BY_PAYLOAD
This commit introduces a conditional bypass for ME state setting,
potentially reducing CBFS traversal time when searching for the
`option/me_state` file.

TEST=Able to build and boot google/fatcat.

Change-Id: I43f5daab450989307d9b3529949e9f03cba4404d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87266
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-12 03:11:52 +00:00
Subrata Banik
19b4057f1b soc/intel/pantherlake: Increase heap size for high-quality FW splash
This patch increases the default heap size from 1MB to 2MB (0x200000) to
accommodate rendering high-quality firmware splash BMP logos.

The previous 1MB heap size might be insufficient for larger, more
detailed OEM logos, potentially leading to memory exhaustion during the
splash screen display.

TEST=Able to render an OEM logo size ~512KB w/o any corruption.

Change-Id: I850247befc3904b6dc52e9872e8b99d53c2c9564
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87265
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-12 03:11:45 +00:00
Maximilian Brune
f6d40a9564 soc/amd/picasso/chipset.cb: Enable gpp_bridge_[a/b] by default
Since FSP doesn't support disabling bridges and has no UPDs for that,
they must be enabled in DT to make sure they are properly initialized
during PCI enumeration as expected by the payload (EDK2 for example).
It might be OK to have them set to off when all devices behind the
bridge are also off and FSP disables those secondary devices.

In general something that cannot be hidden/shut off shouldn't be marked
as such, as later stages (payload/OS) might find it active, but
unconfigured.

Change-Id: I4104a6af00304b0a7c50ba0e09ad19a0ed9d2733
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86598
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-11 20:05:34 +00:00
Maximilian Brune
1158e26a26 soc/amd/cezanne/chipset.cb: Enable gpp_bridge_[a/b/c] by default
Since FSP doesn't support disabling bridges and has no UPDs for that,
they must be enabled in DT to make sure they are properly initialized
during PCI enumeration as expected by the payload (EDK2 for example).
It might be OK to have them set to off when all devices behind the
bridge are also off and FSP disables those secondary devices.

In general something that cannot be hidden/shut off shouldn't be marked
as such, as later stages (payload/OS) might find it active, but
unconfigured.

Change-Id: Ie34bb2abc0211963b2613d1b50b1767df31c1062
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86272
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-04-11 20:05:07 +00:00
Naresh Solanki
940c97e46c src/soc/amd/* : Move CPU init in common code
AMD SoC from family 17h share common cpu init code.
Move those to common/block/cpu/noncar/cpu.c

TEST=Build for glinda SoC & check for boot.

Change-Id: If53455f359302f368f7c979defa2c1088c5c2f16
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87214
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-04-11 15:41:44 +00:00
Yu-Ping Wu
38f1e758ff util/mtkheader: Rename to util/mediatek
To allow adding more scripts to the util/mtkheader folder, rename it to
util/mediatek. Also update description.md and regenerate
Documentation/util.md and util/README.md by util_readme.sh.

Change-Id: Ibc6ef9dddc541d2dd471898af431cadde231edca
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87225
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-04-11 08:17:55 +00:00
Yu-Ping Wu
149f0c750c Documentation,util: Run util_readme.sh to regen *.md
As CB:71757 [1] updates Documentation/util.md and util/README.md
manually without modifying util/intelp2m/description.md, we port the
description changes back to that file.

[1] commit da54bd60af ("Documentation: Update information about
    intelp2m")

Change-Id: I3d3f87517c445d650e9cea61448b28d005d46737
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87224
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-11 08:17:48 +00:00
Weimin Wu
9ee23a1b10 mb/google/fatcat/var/felino: Add ALC1320 codec to devicetree
Update devicetree to support Realtek ALC1320 codec.
The ALC1320 soundwire class_id is MIPI_CLASS_SDCA(1).

BUG=b:378629979
TEST=emerge-fatcat coreboot
check the ssdt dump PCI0.HDAS.SNDW including 0x000331025D132001

Change-Id: Ie8763888810f56eb45523e3bcf7ef082900b1225
Signed-off-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86747
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Mac Chiang <mac.chiang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-04-11 03:47:45 +00:00
Mac Chiang
b6051e5648 drivers/soundwire/alc1320: use common struct to set soundwire ADDR_
Add common soundwire address struct for acpi table configuration
over overridetree.

refer to:
commit 2411942a05 ("drivers/soundwire/alc711: Add common Kconfig
for ALC7xx soundwire codecs")

BUG=b:378629979
TEST=emerge-fatcat coreboot
check the ssdt dump PCI0.HDAS.SNDW has address: 0x000331025D132001

Change-Id: I2d3531eef6adf21a28a26dcc3ac1bb7830877905
Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86939
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-11 03:47:37 +00:00
Weimin Wu
9e757b3396 mb/google/fatcat/var/felino: Add ALC712 codec to devicetree
Update device tree to support Realtek ALC712 codec.

reference datasheet: Realtek ALC712-VB-CG Rev. 0.24

BUG=b:378629979
TEST=emerge-fatcat coreboot
check the ssdt dump PCI0.HDAS.SNDW has address: 0x000330025d071201

Change-Id: Ic5c38462cd1ab39d4aebc324d5151cb4337051df
Signed-off-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85572
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Mac Chiang <mac.chiang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-10 04:35:41 +00:00
Weimin Wu
68da65b2a5 drivers/soundwire: Support Realtek ALC712 codec
Update SoundWire driver to support ALC712 audio codec.

reference datasheet: Realtek ALC712-VB-CG Rev. 0.24

BUG=b:378629979
TEST=emerge-fatcat coreboot
A sound can be heard from the speaker,
the test instructions are as follows:

amixer -c 0 cset name='rt712 OT23 L Switch' on
amixer -c 0 cset name=''rt712 OT23 R Switch' on
amixer -c 0 cset name='rt1320-1 OT23 L Switch' on
amixer -c 0 cset name='rt1320-1 OT23 R Switch' on
amixer -c 0 cset name='Speaker Switch' on

speaker-test -D hw:0,2 -c 2 -t sine -f 440

Change-Id: Ib79896a9fe23f2f66d6ee3a24f5a62bfa0f7a649
Signed-off-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85571
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Mac Chiang <mac.chiang@intel.com>
2025-04-10 04:35:21 +00:00
Alicja Michalska
3e0f35b23a device/Kconfig: Make option to allocate above 4G appear in Kconfig
Previously only tested on server platforms - it wasn't working correctly
on consumer platforms due to missing boolean.

This patch fixes it, which makes resource allocator use uint64 instead
of uint32. Thanks to that, modern GPUs like Intel Arc or Radeon RX now
work correctly with ReBAR enabled, and correctly initialize the
framebuffer in payload (i.e EDK2) after initializing the OpROMs.

Example of issue caused by resource allocator using uint32 (Intel Arc
A580):
[ERROR]  Resource didn't fit!!!
[ERROR]  PCI: 00:01:00.0 10 prefmem64 size: 0x0000800000 not assigned
[ERROR]  PCI: 00:03:00.0 18 prefmem64 size: 0x0200000000 not assigned

(Followed by Linux reporting that BAR space was limited to 256MB, which
severely hindered the performance).

TESTed on Intel Tiger Lake-H (mb/erying/tgl) with Intel Arc A580 and AMD
Radeon RX7800XT.

Change-Id: Ia17b3312016409d8fd6bcce4321481a7b7e35ce5
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86131
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-09 18:24:17 +00:00
Michał Żygowski
aff5ddc361 mainboard/protectli/vault_ehl/Kconfig: Configure TPM PIRQ
The board uses GPP_G19 as GPIO interrupt for SPI dTPM. The pad
is already configured as APIC interrupt, so simply define the
TPM_PIRQ to GPP_G19_IRQ, which is 0x6B for Elkhart Lake.

TEST=Boot Ubuntu 24.04 and check dmesg that Linux does not
complain on TPM interrupt not working. Check Windows Device
Manager does not report any problem with TPM and its resources.

Change-Id: Ia23319680cff927f10b44d7a5d07928cc30dbc9d
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87051
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-09 17:55:26 +00:00
Mike Lin
d921e873b8 soc/mediatek/mt8189: Reserve DRAM buffers for HW TX TRACKING
HW TX tracking works by writing a pattern to the designated DRAM buffer
and then reading it back automatically to calculate the appropriate TX
time delay. To avoid writing the pattern to system-used memory, we need
to permanently reserve last 64KB memory on each rank for the HW TX
tracking feature.

BUG=b:379008996
BRANCH=none
TEST=Reserve memory ok
Firmware shows the following log :
000000013fff0000-000000013fffffff: RESERVED
000000023fff0000-000000023fffffff: RESERVED

Signed-off-by: Mike Lin <mike.lin@mediatek.corp-partner.google.com>
Change-Id: I2ecfe42dc9f1882163d03f50cf9b5ff8e98c2972
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87039
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-04-09 17:55:11 +00:00
Mike Lin
b4f6e9a2ec mb/google/skywalker: Add DRAM calibration init entry
Add DRAM calibration entry in romstage.

BUG=b:379008996
BRANCH=none
TEST=Boot up pass
3200 LPDDR5 chan0(x16) rank0: memory test pass
3200 LPDDR5 chan0(x16) rank1: memory test pass
3200 LPDDR5 chan1(x16) rank0: memory test pass
3200 LPDDR5 chan1(x16) rank1: memory test pass

Signed-off-by: Mike Lin <mike.lin@mediatek.corp-partner.google.com>
Change-Id: Iabdcabefc77a262c548019e801daf5b269eaa97a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87038
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-09 17:53:43 +00:00
Martin Roth
1662396037 Documentation: Reformat fw_config.md
This doesn't change any text - it just reformats the existing document.
- reflow paragraphs to 72 characters
- Put examples inside pre-formatted text blocks
- Adds spacing before section markers

Change-Id: I83925a4469e264da5887334e2584466cef089503
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87190
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-04-09 17:50:28 +00:00
Liu Liu
2dec38c92c mb/google/skywalker: Set up USB host in ramstage
Add USB host function support.

BUG=b:379008996
BRANCH=none
TEST=boot to kernel successfully from USB drive

Signed-off-by: Liu Liu <ot_liu.liu@mediatek.corp-partner.google.com>
Change-Id: I3f77d116033338f979d14ce34ddf03e00d024e5d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87022
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-04-09 17:35:18 +00:00
Michał Kopeć
006ed0043c Documentation/mainboard/lenovo: Add ThinkCentre M700/M900 Tiny
Heavily based on M710s documentation.

Change-Id: I8c3860ba6254919769082c9ed749f8bb287a5f5e
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87044
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-09 17:31:21 +00:00
Vince Liu
ccb987fa66 soc/mediatek/common: Move DRAMC function declarations to common header
To promote code reuse and maintainability, this commit moves the DRAMC
parameter function declarations to the common folder.

BUG=b:379008996
BRANCH=none
TEST=build passed

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Iab24f07b4c02da22779ea1c76f3237c144d92b98
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87209
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-04-09 17:30:31 +00:00
Mike Lin
af3076b1f9 soc/mediatek/mt8196: Move TX TRACKING from MT8196 to common folder
The configuration method of the reserved DRAM buffer used for HW TX
TRACING on MT8196 is also applicable to other SoCs, such as MT8189.

To facilitate reuse, we move the relevant files to the common directory.

BUG=b:379008996
BRANCH=none
TEST=Reserve memory ok
Firmware shows the following log with 12GB DDR board:
00000001ffff0000-00000001ffffffff: RESERVED
000000037fff0000-000000037fffffff: RESERVED

Change-Id: I3fdd9d2f7ab1bbdcc097510556929da2134f7d95
Signed-off-by: Mike Lin <mike.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87036
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-04-09 17:30:23 +00:00
Mike Lin
ec65e34332 soc/mediatek/mt8189: Add DRAM calibration support
Add DRAM calibration support for mt8189. DRAM parameters and related
constants are added in dramc_param.h and dramc_soc.h.

The common emi.c can be reused for MT8189 as well, so remove the
duplicate mt8189/emi.{c,h}.

Enable MEDIATEK_DRAM_BLOB_FAST_INIT to allow running DRAM fast
calibration via the DRAM blob.

BUG=b:379008996
BRANCH=none
TEST=Boot up pass and see log
3200 LPDDR5 chan0(x16) rank0: memory test pass
3200 LPDDR5 chan0(x16) rank1: memory test pass
3200 LPDDR5 chan1(x16) rank0: memory test pass
3200 LPDDR5 chan1(x16) rank1: memory test pass

Signed-off-by: Mike Lin <mike.lin@mediatek.corp-partner.google.com>
Change-Id: Ia6f6e5afc1f4a2e919243bda0799712cd7b4d01f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87037
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-04-09 17:29:08 +00:00
Seunghwan Kim
da5f4de090 mb/google/nissa/var/meliks: Replace SPD for RAMID 2 with Samsung K3KL8L80CM-MGCT
Meliks cannot use Samsung K3KL8L80DM-MGCU memory part since Twin Lake
platform can only support memory parts that support 8B mode but this
part doesn't support it.

So we would replace the usage of RAMID 2 (b'0010) with the SPD for this
part which supports 8B mode.

- Samsung K3KL8L80CM-MGCT

BUG=b:402600450
BRANCH=nissa
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: I7c05b79ca018f68260e71d4f749ecb8573987358
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87002
Reviewed-by: NyeonWoo Kim
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-04-09 17:28:29 +00:00
Arthur Heymans
a7eb390796 mb/*/*/*.fmd: Start flash at 0
FMAP should not contain information about the memory map.

Done with the following command:
"find -name \*.fmd -exec sed -i 's/\(FLASH\).* \(.*\) /\1 \2 /' {} \;"

for AMD:
All addresses that amdfwtool expects as command line parameter have the
ADDR_REL_BIOS (flash address) address_mode setting. One exception is
the *_FW_A_POSITION and *_FW_B_POSITION addresses. But amdfwtool checks
if memory or flash addresses are passed and converts accordingly. So
changing the address from memory -> flash doesn't matter for the
resulting binary.
Since commit 41a162b7a8 ("soc/amd/phoenix/Makefile.inc: Pass APOB_NV
address as offset") and therefore since phoenix SOC, APOB_NV is passed
as flash offset. But before that the memory ABL always assumed a MMIO
address (no matter the address_mode) so we need to add a little quirk
for that.

tested: boot glinda based mainboard and also check that memory training
is still cached successfully in APOB_NV.

Change-Id: Iac86ef9be6b14817a65bf3a7ccb624d205ca3f99
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63771
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-09 17:11:43 +00:00
Subrata Banik
9fb57d9699 mb/google/fatcat: Enable FSP_UGOP_EARLY_SIGN_OF_LIFE
This patch moves eSOL enablement from the SoC level to the mainboard level. This gives the mainboard the option to not use eSOL if it's not supported.

The FSP_UGOP_EARLY_SIGN_OF_LIFE Kconfig option is now enabled for the Fatcat and Felino boards.

This option was previously enabled at the SoC level for Pantherlake,
but is now being enabled specifically for these mainboards.

BUG=b:400550435
TEST=Build the Fatcat and Felino targets. Verify that the eSOL works
fine.

Change-Id: Ie0cf5b00f75071640475d61420824cb2b89b4103
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87236
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-09 16:46:08 +00:00
Subrata Banik
bde1ac5794 mb/google/fatcat/var/fatcat: Implement barrel jack presence check
Uses fw_config to check if barrel jack PSU is configured. If
`PSU_BJ` is selected, checks hardware presence via
`google_chromeec_is_barrel_charger_present()`.

Allows 'fatcat' to adapt based on configured power source.

Includes:
- Adds `variant.c` to ramstage build in `Makefile.mk`.
- Adds `PSU` field (`PSU_USBC`: 0, `PSU_BJ`: 1) to `overridetree.cb`.
- Includes `ec.h` in `variant.c`.

TEST=Boot time savings ~62ms on google/fatcat with PSU=0 (USB-C).

Change-Id: I68507034cfbf4caa8e5c2ac9c7bebf758a5a5439
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87207
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: YH Lin <yueherngl@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-09 16:43:43 +00:00
Subrata Banik
479a271cf3 mb/google/fatcat: Introduce variant-specific barrel jack presence check
This commit introduces a weak function
`variant_is_barrel_charger_present()` to allow individual Fatcat
variants to specify if they support power-on via a barrel jack.

The default implementation of this function returns `false`,
reflecting the fact that most Chromebook devices within the Fatcat
family primarily use USB-C for power.

The `baseboard_devtree_update()` function is updated to use this
variant-specific check instead of directly calling
`google_chromeec_is_barrel_charger_present()` and checking the board
model. This allows for more flexibility in handling barrel jack
presence across different Fatcat variants.

This change enables specific variants that do support barrel jack
power to override the weak function and return `true`, allowing the
system to behave accordingly (e.g., skipping power optimization when
booting with a barrel charger).

TEST=Able to build and boot google/fatcat.

Change-Id: I613417be5a59790b8a5e6055957a2f518f4c42df
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87183
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-09 16:43:37 +00:00
Subrata Banik
7f6e43851e mb/google/fatcat: Perform early post-memory GPIO configuration
This commit restructures the GPIO configuration for google/fatcat
devices as below.

- Phase 1: GPIO configuration at pre-memory phase. This phase
  configures essential GPIOs like WWAN and storage power sequencing,
  This aligns with the initial power-up requirements of
  these critical components.

- Phase 2: This phase handles GPIO configurations for various
  peripherals like storage type, audio codec, WiFi, cellular interface
  (post initial power sequence), SD card slot, touchpad, touchscreen,
  ISH, PEG/x4 slot wake disable, and fingerprint enable/disable based
  early in post-memory phase (before MPInit).

This phased approach:

- Improves power sequencing by ordering GPIO configuration for proper
  IP power enablement.
- Optimizes boot time by performing more GPIO configuration before
  MPInit and FSP-S, allowing earlier IP stabilization and potentially
  saving ~20ms during device setup and PCIe scan.

`baseboard_devtree_update` remains in `mainboard_init` for baseboard-
specific device tree updates.

TEST=Boot time improved by ~20ms on google/fatcat.

Before:
  70:device setup done      1,339,599 (95,023)

After:
  70:device setup done      1,319,613 (72,381)

Change-Id: I9c2e58ae012cad06f8e498c75745efaa9bad4a25
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87191
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
2025-04-09 16:43:31 +00:00
Maximilian Brune
28fafc0f23 soc/amd/glinda/psp_verstage/Makefile.mk: Fix incorrect syntax
Must have been accidentally happened when copying phoenix to glinda.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I78996cd35085c7649c4952d9b121957c8cedd84b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86865
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-04-09 11:36:26 +00:00
Sean Rhodes
8c10359377 soc/intel/meteorlake: Add missing minimum D-state for SMBUS
Fixes:
Unknown min d_state for PCI: 00:1f.4

Change-Id: I73f84c09bece297194813202f17666741ad33d3a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86605
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-09 07:19:08 +00:00
Sean Rhodes
c8a7422de7 mb/starlabs/starbook/tgl: Change SSD Enable GPIO to PLTRST
Change the SSD Enable GPIO to PLTRST, as having it configure to DEEP,
renders the SSD inaccessible on S3 exit as it conflicts with the RTD3
driver.

Change-Id: If4a406af13005ba4532091d0c5c75f5198e04ff4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87213
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-09 07:19:02 +00:00
Daniel Peng
d701a218c2 mb/google/nissa/var/guren: Add touch screen ILIT2901 support
New Touchscreen function for Guren360 project.
Touchscreen panel of MUTTO A153728S1Y(11')
/K&D KD116N37-30TE-A002(11')/MUTTO B153797S1Y(12') are the
same IC controller for ILITEK device, and set TOUCHSCREEN_ILIT2901
to value "2".

BUG=b:406168542
BRANCH=firmware-nissa-15217.B
TEST=1. emerge-nissa coreboot chromeos-bootimage
     2. Confirm command evtest and touchscreen function is workable.

Change-Id: I3435a8852b1fdb897d5f89c580b5f9bfca03dd8e
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87196
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Daniel Peng <daniel_peng@pegatron.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-04-09 03:43:44 +00:00
Ivy Jian
1d6ee80e37 mb/google/nissa/var/dirks: Add ACPI DmaProperty for Ethernet device
Add ACPI DmaProperty for Ethernet device to support untrusted PCIe
port verification.

BUG=b:398872682
TEST=cat /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/untrusted
     returned 1

Change-Id: I24d5f637f1349aace0fba0640c8e72ffc3401de9
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87197
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Derek Huang <derekhuang@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
2025-04-09 03:15:10 +00:00
Subrata Banik
ee9b0fa199 cpu/x86: Conditionally invalidate caches based on self-snooping support
The code currently unconditionally flushes or invalidates the entire
cache (using `clflush_region` or `wbinvd`) after loading the SIPI vector
for APs and after loading SMM handlers.

This commit modifies this behavior to only perform these cache
operations if the CPU does *not* support self-snooping.

Self-snooping CPUs can maintain cache coherency within the core/
complex more efficiently. CPU with self-snoop enabled does not
necessarily need to perform wbinvd to ensure data written to the
cache is reflected in main memory. Self-snooping CPUs employ a
write-back caching policy, combined with a cache coherence protocol,
to manage data writes and ensure consistency between cache and main
memory.

When the BSP writes the SIPI vector or SMM handlers to memory, other
units within the same CPU that might be caching these regions should
be aware of the updates through the self-snooping mechanism. A full
cache flush or invalidate to ensure cache contains reaches to main
memory might be unnecessary and could negatively impact performance.

By conditionally performing these cache operations based on
`self_snooping_supported()`, we can optimize the boot process for CPUs
that have advanced cache coherency features while maintaining correct
behavior on older or simpler CPUs.

TEST=Boot google/rex, brox and fatcat with this patch. Able to reduce
boot time by ~19-25ms.

Change-Id: If32439752d0ceaa03b1d81873ea0bc562092e9d5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87182
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-09 02:07:32 +00:00
Subrata Banik
7887417b4e mb/google/fatcat/variants/fatcat: Refactor X1 PCIe power enable GPIO
The system was failing to boot to the OS when the SD FW config was
set to NONE. This was because the X1 PCIe slot power enable (GPP_A08)
was being configured in `pre_mem_x1slot_pads` only if the SD FW config
was not NONE.

This commit moves the configuration of GPP_A08 to the
`romstage_gpio_table` and sets it to an initial low state. This ensures
that the X1 PCIe slot power is correctly initialized early in the boot
process, regardless of the SD FW config.

The `pre_mem_x1slot_pads` array and its conditional configuration in
`fw_config_configure_pre_mem_gpio` have been removed as they are no
longer needed.

TEST=Able to boot google/fatcat w/ CBI 0x5c9014 (i.e. SD_NONE)

Change-Id: I0f2a2540de30294c30c4f5182dab326a54b4583e
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87154
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-09 02:07:08 +00:00
Subrata Banik
29cc24f0a3 soc/intel/cmn/cpu: Refactor USE_INTEL_FSP_MP_INIT enablement logic
The Kconfig options `USE_INTEL_FSP_MP_INIT` and
`USE_INTEL_FSP_TO_CALL_COREBOOT_PUBLISH_MP_PPI` are mutually
exclusive ways for the FSP to handle MP initialization.

This commit updates the `default` condition for
`USE_INTEL_FSP_TO_CALL_COREBOOT_PUBLISH_MP_PPI` to `y if
!USE_INTEL_FSP_MP_INIT`. This ensures that if
`USE_INTEL_FSP_MP_INIT` is enabled,
`USE_INTEL_FSP_TO_CALL_COREBOOT_PUBLISH_MP_PPI` will default
to disabled, preventing potential conflicts in MP initialization.

The explicit `depends on
!USE_INTEL_FSP_TO_CALL_COREBOOT_PUBLISH_MP_PPI`
on `USE_INTEL_FSP_MP_INIT` is no longer strictly necessary due to
this change in the default value, but it is kept for clarity and
to explicitly state the mutual exclusivity.

TEST=Able to choose USE_INTEL_FSP_MP_INIT Kconfig for
google/fatcat.

Change-Id: I9ecc7b50ed6a6b13c4ccde0a49f50a40b606a848
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87161
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-09 02:07:01 +00:00
Felix Held
010cfa2842 doc/internals/devicetree_language: multiple segment groups supported
coreboot supports more than just one PCI segment group by having more
than one domain in the devicetree, so update the PCI device description.

Change-Id: I9911b5e43732dd32638d540fcec6ca57b34d4fbc
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87206
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-04-08 19:07:13 +00:00
Felix Held
b8ea245e12 doc/internals/devicetree_language: describe I2C identifier
Even when the identifier of an I2C device doesn't have a '0x' prefix,
it's still interpreted as a hexadecimal number.

Change-Id: I0e5a7e39ac56e25499493a16eefa49e4f8d79337
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87205
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-04-08 19:07:02 +00:00
Felix Held
3c7f78e1e7 doc/internals/devicetree_language: eSPI doesn't support legacy DRQ
In contracts to the ISA and LPC bus, eSPI doesn't support legacy
ISA-style DMA any more, so don't list eSPI as interface in the 'drq'
chapter.

The Intel document #841685 "Enhanced Serial Peripheral Interface (eSPI)
Interface Base Specification (for Client and Server Platforms)" revision
1.6 says this about the eSPI interface: "However, 8237 DMA and Firmware
Hub (FWH) are not supported over this interface."

Change-Id: I69d4b09688699dfc984a42671abfe3804d30ade9
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87204
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-04-08 19:06:57 +00:00
Felix Held
f2b9374a99 doc/contributing/git_commit_messages: fix line length
The line length limit in the commit messages is 72 characters, not 75,
so fix the value in the documentation. The 72 characters also matches
what checkpatch checks for.

Change-Id: I2ec0fbd78fd0b054eae7bf9d6bd30580f47deb8f
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87203
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-08 19:06:41 +00:00
John Su
05ec649338 mb/var/uldrenite: Configure descriptor for either MBVR or FIVR
Since we need to support both MBVR (MotherBoard Voltage Regulator) and
FIVR (Fully Integrated Voltage Regulator) in this phase, the FIT
setting is initially set to FIVR. This causes MBVR boards to have two
voltage sources, potentially triggering OVP and leading to reboots
during the boot process.

The current build's main source is MBVR, so we want to use fw_config
to dynamically adjust MFIT and MBVR with the current phase devices to
ensure consistency in client devices settings.

Refer to Intel#822618 and set PMC Descriptor Record 7, bit 30
(VCCANA VR Location) accordingly. And then CONFIGURE_DESCRIPTOR is a
temporary workaround for the current phase. In the next phase, we will
choose a specific setting for implementation. If there are any concerns,
we use the board ID to restrict it.

BUG=b:404126972
TEST=boot to ChromeOS

Change-Id: I337574c8c55889ceb49b9f33625feadb48bd8890
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87033
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-04-08 16:44:51 +00:00
John Su
b465c99905 soc/intel/alderlake: Fix incompatible pointer-to-integer conversion
Call update_descriptor, but the builder detected an incompatible pointer
to integer conversion error, so upload CL to fix.

BUG=b:404126972
TEST=boot to ChromeOS

Change-Id: I1f8f19c6bb4636729ffe7be836c21db9a68d63d0
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87091
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-08 16:44:45 +00:00
Sean Rhodes
ec49a5556e mb/starlabs/starbook/kbl: Re-add the GPE configuration
These were previously removed, but doing so, slowed down the
brightness keys to approx. 3 seconds.

Re-add them to make them instant.

Change-Id: I1256b57192d2f8987bb476cbcc7fd7e81f314d6d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87200
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-08 08:35:36 +00:00
Sean Rhodes
862d4811da mb/starlabs/starbook/cml: Re-add the GPE configuration
These were previously removed, but doing so, slowed down the
brightness keys to approx. 3 seconds.

Re-add them to make them instant.

Change-Id: I3af197cd995bd947c6e72bf5593fc966c85c3e3a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87199
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-08 08:35:32 +00:00
Subrata Banik
77d0313358 {commonlib, lib}: Add timestamp for early chip initialization
This commit introduces a new timestamp `TS_DEVICE_INIT_CHIPS` to
specifically mark the start of the `dev_initialize_chips()` function.

Previously, the `TS_DEVICE_ENUMERATE` timestamp was incorrectly
associated with the `bs_dev_init_chips` function.

This patch corrects this by:

- Adding the `TS_DEVICE_INIT_CHIPS` enum and name definition.
- Updating `bs_dev_init_chips` in `src/lib/hardwaremain.c` to use
  `TS_DEVICE_INIT_CHIPS`.
- Moving the `TS_DEVICE_ENUMERATE` timestamp addition to the
  `bs_dev_enumerate` function where device enumeration actually begins.

This change provides a more accurate and meaningful timestamp for the
early chipset initialization phase.

TEST=Able to build and boot google/fatcat.

```
971:loading FSP-S                                     836,277 (10,658)
  17:starting LZ4 decompress (ignore for x86)          847,297 (11,019)
  18:finished LZ4 decompress (ignore for x86)          847,376 (79)
  30:early chipset initialization                      854,579 (7,203)
  17:starting LZ4 decompress (ignore for x86)          863,483 (8,903)
  18:finished LZ4 decompress (ignore for x86)          863,490 (6)
  17:starting LZ4 decompress (ignore for x86)          875,196 (11,705)
  18:finished LZ4 decompress (ignore for x86)          875,237 (41)
 954:calling FspSiliconInit                            875,344 (107)
 955:returning from FspSiliconInit                     942,740 (67,396)
 962:calling FspMultiPhaseSiInit                       942,744 (4)
 963:returning from FspMultiPhaseSiInit                1,081,355 (138,610)
  31:device enumeration                                1,081,708 (352)
  40:device configuration                              1,085,721 (4,013)
  50:device enable                                     1,091,517 (5,795)
```

Change-Id: Ib6860901c6b1528ec5098fc93240c6e65777642b
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87152
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-08 07:50:18 +00:00
Daniel Peng
0b7b68389a mb/google/nissa/var/guren: Add WFC for AZWAVE/AM-3BA5533-B module
New WFC function for Guren360 project.
ID of Vendor and Product for AZWAVE/AM-3BA5533-B module are 13d3:5533.
1. Add WFC fw_config setting
2. Used USB2 Port7 for WFC

BUG=b:406164678
BRANCH=firmware-nissa-15217.B
TEST=1. emerge-nissa coreboot chromeos-bootimage
     2. Verified with local build bios via command lsusb
        for 13d3:5533 and SSFC WFC enable

Change-Id: Ia2ab019fe76c503cc669ebf4aa8b3d7ae72269c1
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87054
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Daniel Peng <daniel_peng@pegatron.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-08 02:55:25 +00:00
Michał Żygowski
3c0fe9ef3b mb/protectli/vault_ehl/devicetree.cb: Fix assertion in soc/pmutil
The SoC code requires for GPE DW config values to be different.
Assign the default values of PMC GPIO_CONF register as GPIO GPEs
are not used on this platform. Fixes the assertion in
soc/intel/elkhartalke/pmutil.

TEST=Boot Protectli VP2420 to Ubuntu 24.04.

Change-Id: Ibf4a1f52bf970c27d0ca8dd1b1377d6a5e6477f9
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87049
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-04-07 15:42:21 +00:00
Julian Intronati
29a837bd5a mb/cwwk: Add CWWK CW-ADLNTB-1C2L-V3.0 board as an adl variants
This board is the CWWK variant based upon Alder Lake with 2 2.5 GbE
ports. The variants files structure is inspired by
system76/adl/variants structure, adapted for cw-adl-4l-v1.0 board
and the new cw-adlnth-1c2l-v3.0 (named according to original bios
naming).

CPU: Intel N100 or N305
Memory: 1x DDR5-4800 SODIMM (max 16 GB)
NIC: 2x Intel I226-V 2.5 GbE
Expansion:
- M.2 2230 E key
- M.2 2280 M key
- USB 2.0 header
- Fan header
External ports:
- DC power
- 2x Ethernet
- 2x HDMI
- 2x USB 2.0

Working:
- Boots Debian 12 with SeaBIOS and EDK II payloads
- Serial port
- External USB ports
- 1x HDMI
- 2x Intel I226 2.5 GbE NICs
- M.2 ports
- ACPI S3
- Fan (ITE IT8613E) driver IT87 (frankcrawford github fork)

Not tested:
- The second HDMI
- Audio
- S0ix (cw-adl-4l-v1.0 said it's not working)
- Internal USB ports

VBT extracted from vendor UEFI firmware
version F2 (2024-06-26 10:26:38)
was 100% matching the cw-adl-4l-v1.0,
so we kept only one in the tree.

Change-Id: Ia0553141b41717b560042de1136d53b9c3cf7a69
Signed-off-by: Julian Intronati <julian.intronati@eho.link>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87027
Reviewed-by: Julian Intronati <julian.intronati@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-07 14:44:43 +00:00
Naresh Solanki
e5ade7cfb1 soc/amd/*/include/soc/msr.h: Move MSR to common location
MSR definition in soc/amd/*/include/soc/msr.h are the same & hence move
them to common header src/include/cpu/amd/msr.h

Change-Id: Ic0cb54b13320f8a38e70c0a76d9b9a51ba0ea01d
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87124
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-07 11:27:55 +00:00
Sean Rhodes
0ae3b534e1 mb/starlabs/starbook/mtl: Change SSD enable GPIO to DEEP
Set the SSD enable GPIO to DEEP reset, so that the SSD is powered
down in S3.

Change-Id: I6cc247e04974d293dfc157a3b459a3fb61e43a7f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87153
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-07 11:08:50 +00:00
Martin Roth
712dfc1759 Documentation/internals: Add devicetree language documentation
Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: If868ad9a87cb2903bf144996fe3b87d29d4fc755
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84710
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-04-06 20:37:46 +00:00
Martin Roth
44921d386c Documentation/internals: Add devicetree documentation
Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I2a43a96911844bd2b682004d5423126ad00a4bf3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84709
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-04-06 20:37:34 +00:00
Sean Rhodes
9c05e9900e mb/starlabs/*: Enable DDC for DDIA
Enable DDC so that GOP can read the backlight brightness from EDID. This
avoids FSP repeatedly trying and failing to read it, and also stops the
backlight brightness not being restored correctly in Linux.

Change-Id: Ic05ec3cece911f61347bceb82e5798729dcaecfe
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86914
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:58:00 +00:00
Sean Rhodes
95512e1fb2 mb/starlabs/starbook/tgl: Tidy GPIO comments for SATA
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Iee7121aef28618c0877c97cf454dc1a279758c21
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87173
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:50:10 +00:00
Sean Rhodes
2df3218da8 mb/starlabs/starbook/tgl: Correct wireless GPIO group
Change-Id: I6565c3fa3d171625b0d3e538371d53d6449db180
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87171
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:50:05 +00:00
Sean Rhodes
37846c7cc7 mb/starlabs/starbook/tgl: Add comments for eSPI GPIO
This is a non-functional change, and just makes it easier to read.

Change-Id: I89028c87eeab95bf4e7a35471072bb41d02b4e6c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87170
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:50:00 +00:00
Sean Rhodes
8860dd9a42 mb/starlabs/starbook/tgl: Disconnect unused GPIOs
These pins are not used, so configure them accordingly.

Change-Id: If82741382c113b2f05078e0d24690943c9053421
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87169
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:49:56 +00:00
Sean Rhodes
c42e645d99 mb/starlabs/starbook/tgl: Move PROCHOT GPIO to PCH group
Change-Id: I3fb4421698df9ca3e9a6067d9054ef10ec103f25
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87168
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:49:51 +00:00
Sean Rhodes
56575d4113 mb/starlabs/starbook/tgl: Tidy GPIO comments for the retimers
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I237824415c99bf57e9617a37001383cdda4a38e6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87167
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:49:47 +00:00
Sean Rhodes
6b75f09b23 mb/starlabs/starbook/mtl: Uncomment eSPI GPIOs
These, unlike almost all other Intel platforms, are not configured
automatically on reset, so coreboot needs to handle it.

Change-Id: Ie013ce1769e61fae1622a9cc1a048229fd9d6944
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87178
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 18:43:40 +00:00
Sean Rhodes
a0562266e4 mb/starlabs/starbook/tgl: Remove SSD GPIO quirk
This quirk was added to turn of the SSD in S3. This is now handled by
the RTD3 driver, so it can be removed.

Change-Id: Iaf6364a0957f95411c11e31c8317e1c4ec5c769f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87166
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-06 18:43:19 +00:00
Nicolas Kochlowski
64931a3d65 Documentation/getting_started/cbmem.md: Add cbmem documentation
Change-Id: I514cfbd6df85f332419444c35d066a518d5044f3
Signed-off-by: Nicolas Kochlowski <nickkochlowski@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84761
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-04-06 15:44:01 +00:00
Martin Roth
9ddc9cbfc9 Documentation: Add a statement about committer responsibilities
This statement clarifies committer responsibilities, including using
generative AI.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: Ibfc92fc76149f96bd8e65befce99f3a2ddc3d847
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85898
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-06 15:35:48 +00:00
Martin Roth
b9de64a056 Update Maintainers file
- Update AMD maintainers lists to reflect current situation
- Remove Ron Minnich as maintainer (at his request)
- Update the Infrastructure owners to reflect the current situation.

Change-Id: I2feac94595081fcea9becd9d8067ddd99a50123c
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85883
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 20:54:47 +00:00
Martin Roth
0ffded54dd Documentation: Write down coreboot's git commit message rules
This mostly lists things that long-time coreboot contributors already
do. Some of these rules were captured on the wiki. Others were adopted
from other git commit message guideline documents long ago.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: Ic2ba681193e302318934cc2f7f30659eac73d099
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75495
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-05 20:19:25 +00:00
Maximilian Brune
8db4be1fe9 doc/contributing/gerrit_guidelines.md: Update reference to rebase.sh
Since commit cd48d19836 ("Rename and move util/gitconfig/rebase.sh"),
the script util/gitconfig/rebase.sh was moved to
util/scripts/cross-repo-cherrypick.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ibecafd6cca9d312c48cfc8c38ff11e686ee184d4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87063
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-04-05 19:34:50 +00:00
Sean Rhodes
337fc4230c mb/starlabs/starbook/mtl: Remove comments for disconnected GPIOs
Change-Id: I24c7529fdf606268d1ed1b838912b6448520d816
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87129
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:45:50 +00:00
Sean Rhodes
df75ed084f mb/starlabs/{starbook/adl_n,starlite_adl}: Add missing config for TBT LSX 2
Change-Id: Id7cf723e354a98a760b9535309d1d9a8189d21ad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87163
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:45:29 +00:00
Sean Rhodes
e0ee300dc9 mb/starlabs/starfighter: Remove duplicate entry for GPP_B13
Change-Id: I8ed1ee8389e5e32ec9ddcefeb2c146281de50adb
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87160
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:45:21 +00:00
Sean Rhodes
c7fe1ce0e4 mb/starlabs/starfighter: Tidy GPIO comments for the retimers
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ia724e342651e064ca095f9f3f1153d86f0a73a46
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87159
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:45:15 +00:00
Sean Rhodes
8dabd0c14e mb/starlabs/starfighter: Disconnect PEDET GPIO
These boards do not support SATA, so this is not needed.

Change-Id: Iff9a30cf2e8b65649440b33f850f07d499baa073
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87158
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:45:06 +00:00
Sean Rhodes
3af3b85fc2 mb/starlabs/starfighter: Tidy GPIO comments for the second SSD
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I879819e028b71137010a21ddcc0ee6b1dafb7936
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87157
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:44:57 +00:00
Sean Rhodes
aba6eceafd mb/starlabs/starfighter: Disconnect USB OverCurrent GPIOs
These are not used so configure them accordingly.

Change-Id: I6c4d793210e3c869e4f500b18a1229c5c4d40f60
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87156
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:44:50 +00:00
Sean Rhodes
7355b27070 mb/starlabs/starbook/tgl: Move Core Vendor GPIOs to PCH group
Change-Id: Icb3f83c9a308a7a097be1858d6db53faa1d6e1b5
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87155
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:44:45 +00:00
Sean Rhodes
3bd2fc7a81 mb/starlabs/starbook/mtl: Disconnect unused GPIOs
These pins are not connected, so configure them accordingly.

Change-Id: I3cf06a0945a7793592e6599dfd4048a6114d1563
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87128
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:44:02 +00:00
Aamir Bohra
f2a6a5c7fa google/chromeec: Add function to report the SKU ID
Add implementation of sku_id function that reports the SKU ID
information by making use of ChromeOS EC host command. This function
can replace redundant sku_id function definitions across boards that
rely on ChromeOS EC host command to report the SKU ID information.

The boards that relying on ChromeOS EC host command for SKU information
without any board specific quirks can select EC_GOOGLE_CHROMEEC_SKUID
to make use of common sku_id function.

Brya, zork, rex, fatcat, brox and dedede boards select
EC_GOOGLE_CHROMEEC_SKUID to use ChromeOS EC sku_id function.

BUG=b:396366352
TEST=Verify zork and brya boot log reports the correct the SKU ID
     information

Change-Id: I958cc88bf316dd2327b6545c5a37e8010e96c5d7
Signed-off-by: Aamir Bohra <aamirbohra@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86810
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-05 14:43:35 +00:00
Aamir Bohra
63318ac093 ec/google/chromeec: Add Kconfig for ChromeEC SMBIOS APIs
ChromeEC support information for SKU, OEM name and manufacturer name
using EC host commands. Instead of tying it up with SKU ID Kconfig
define a new Kconfig that clearly describes and allow adding support
for SMBIOS APIs based on ChromeEC host command.

BUG=b:396366352
TEST=Verify ec_smbios still compiles for required boards.

Change-Id: I665a3276aa6dc01571657359d17f292efc601d63
Signed-off-by: Aamir Bohra <aamirbohra@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86993
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:43:05 +00:00
Naresh Solanki
5c9a3c89ec arch/x86/cpu: Add helper function to compute cache
Consider special requirements for computing cache size in certain SoCs,
such as `soc/amd/glinda`.

Use the helper function to implement SoC-specific logic for computing
cache size.

Change-Id: I60707de4c8242a8fbda8cb5b791a1db762d94449
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85638
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-04-05 14:42:50 +00:00
Cliff Huang
6e529e7c06 mb/google/fatcat: Add Intel Touch support for touchscreen and touchpad
This commit introduces support for touch functionalities on the
Google Fatcat board( Please see docu # 818597). Changes include:

- Configuration for building with the THC driver
- Support for touchscreen devices in both THC-I2C and THC-SPI modes
  - Rework is necessary for touchscreen use in THC-SPI mode on Fatcat
    board
  - The ELAN BOM37A device is supported in THC-I2C mode
  - The ELAN BOM36 device is supported in THC-SPI mode
- Support for the HYNITRON HFW68H touchpad device in THC-I2C mode
  - A rework is required to switch the interrupt pad from GPP_A13 to
    GPP_F18 for touchpad use in THC-I2C mode
- Introduction of variant-specific touch.h header file
- Wake support from S0ix state for both touchscreen and touchpad
  across multiple modes: LPSS-I2C, THC-I2C, and THC-SPI
- PMC GPE DW0 is reconfigured to GPP_F for Touchpad in LPSS mode in
  variant.c for wake support

BUG=none
TEST=
1. Set the CBI firmware configuration for touchscreen to
   TOUCHSCREEN_LPSS_I2C and/or TOUCHPAD to TOUCHPAD_LPSS_I2C
2. Check the ACPI objects are generated in SSDT
3. The devices should be enumerated under the /sys/class/hidraw
   directory
4. The Touchscreen and/or touchpad should function properly
   The cursor on the screen should move accordingly
5. Test wake from S0ix state via touchscreen and touchpad inputs
6. Repeat the above for the THC CBI configurations:
   touchscreen: TOUCHSCREEN_THC_I2C
   touchpad: TOUCHPAD_THC_I2C

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I865dbb9eed648c8f35c7f469b27a13be993ff479
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85200
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:42:10 +00:00
Cliff Huang
511f7c3d6a drivers/intel/touch: Conditionally add ACPI _PRW based on wake source
This change addresses an issue in the touch driver where the ACPI _PRW
method was added unconditionally. The ACPI _PRW method should only be
generated when an Interrupt() resource is used in the _CRS method.
When a GpioInt() resource is used instead, the _PRW method is not
required.

The ACPI generation code has been updated to conditionally add the
_PRW method based on whether the wake source is a GPIO interrupt or
an IRQ interrupt. Now, the _PRW method is only added when an IRQ pin
is specified, which is consistent with ACPI requirements.

BUG=none
TEST=Configure the DRIVERS_INTEL_TOUCH option on a motherboard that
has the necessary touch configurations with wake support. Verify that
the THC ACPI tables are correctly generated in the SSDT. If wake_gpio
(i.e. GpioInt()) is used for wake, no _PRW is generated for the device.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I56fc8486c7494ff37c1d580d57838fee286128a6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87085
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:41:51 +00:00
Sean Rhodes
470660d44e mb/starlabs/starbook/mtl: Correct SSD GPIO config
The SSD uses GPP_A20 for reset, and GPP_H07 for enable. Correct the GPIO
configuration and corresponding entry in the devicetree.

Change-Id: I71196f65883803ba9bfc8228bb74f25795bb3a6c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87127
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:41:14 +00:00
Sean Rhodes
752e49c352 mb/starlabs/starbook/mtl: Disconnect SML1ALERT
This GPIO is not connected, so configure it accordingly.

Change-Id: Idafd6fa727f6b3a9fbfe6543c53abeb736aa9f11
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87126
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:41:05 +00:00
Sean Rhodes
e91d9ea721 mb/starlabs/starbook/mtl: Reconfigure PCH Strap GPIOs
Configure all strap GPIOs as outputs, rather than some being not
connected. This doesn't change anything, but is more explicit.

Set these all to sample on RSMRST.

Change-Id: I53415716364222de713b3bf967419e5a45322e69
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87125
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:40:58 +00:00
Werner Zeh
1afa288132 doc/community: Add a section on cross-project collaboration
This patch adds a section to the chapter 'Community' to clarify
coreboot's policy in regard to collaboration with other open-source
projects in the firmware space. It especially clarifies how coreboot
owned resources like servers and services the run can be shared with
partner projects and what the benefits and rules are for this
collaboration.

Change-Id: Ib9fbf91866192523d1a4914ff87e06f941f47d9f
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86809
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-05 14:40:40 +00:00
Maximilian Brune
2b847cfd68 soc/amd/*/psp_verstage: Remove duplicate verstage-generic-ccopts
Also remove include folders that don't even exist.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Ic64f5187e50b903af5461bfa4d57bb4951d3b501
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86864
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-04-05 14:40:29 +00:00
Michał Kopeć
66d119480c mb/novacustom/mtl-h: Add discrete graphics variant
Add NovaCustom V540TNx and V560TNx, which are variants of the mtl-h
baseboard, but with discrete graphics, compared to the igpu variant.
Other notable differences:

- 16" models come with TAS5825 Smart Amp
- Realtek RTL8111 network adapter
- 14" models have only one SSD slot
- The non-Thunderbolt USB-C port has DP Alt mode with displayport lanes
  sourced from the discrete graphics
- HDMI port is wired to discrete graphics

NVIDIA dGPU ASL code will be added in subsequent patches.

TEST=Build V560TNx with UEFIPayload and boot to payload

Change-Id: I2b8194c486de1ba3e04aa74ed63caa7a151fbb8b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86790
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2025-04-05 14:39:51 +00:00
Michał Kopeć
cbafdf6d00 mb/novacustom/mtl-h/ramstage.c: Set Pinmux FSP UPDs
Set Pin Mux FSP UPDs as per mainboard schematic.

Change-Id: Id075e236cee64527aab644616186a3e223c1bfc3
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86788
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2025-04-05 14:39:36 +00:00
Michał Kopeć
a65e94d6a1 mb/novacustom/mtl-h/romstage.c: Set Loadline FSP UPDs
Set AC / DC Load Line params. The values were dumped from original Clevo
Insyde UEFI firmware, version 1.07.02

Change-Id: I4cf729fc55ed6f2722606f393b6aa45afe396a6e
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86787
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:39:02 +00:00
Ian Feng
8bc848abd0 mb/google/fatcat/var/francka: Update HDA verb tables
Enable internal DMIC for francka.
Camera's DMIC is connected to the ALC256's DMIC pin.

BUG=b:396558772
TEST=Camera's DMIC works on francka.

Change-Id: Ie2b9fbd3d95cac145a4c64d9f07001d81880a0e5
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87034
Reviewed-by: Terry Cheong <htcheong@chromium.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-05 14:38:43 +00:00
Maximilian Brune
883b3971b5 cpu/x86: Replace LAPIC_DM_* with LAPIC_MT_*
AMD64 spec refers to the field as MT (Message Type), but the IA64 spec
refers to it as DM (Delivery Mode). The problem is that there is another
field abbreviated as DM (Destination Mode) right next to it. So for
better readability, just stick to the AMD64 terminology.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I25cf69d555fe22526f128ff7ed41f82b71f2acf2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86683
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-04-05 14:38:22 +00:00
Bartłomiej Grzesik
584f9bcc3f Add allocation of a buffer for pvmfw within cbmem
Add an allocation of an empty buffer for the Android protected virtual
machine firmware within cbmem. The buffer will be filled by the payload
and the purpose is to just reserve the memory. cbmem is used to make
sure that the region won't overlap with other reserved regions
or device regions.

BUG=b:354045389
BUG=b:359340876
TEST=depthcharge receives the buffer through lib_sysinfo
BRANCH=main

Change-Id: I48efc033ac0f5fbfcf3a52fabf40be016cd4c6f7
Signed-off-by: Bartłomiej Grzesik <bgrzesik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87107
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub "Kuba" Czapiga <czapiga@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-04-05 00:24:26 +00:00
Subrata Banik
0ac2058dbe mb/google/fatcat: Increase sagv_freq_mhz for work point #1 to #3
Update the SaGV frequency registers
- (`sagv_freq_mhz[1]`) in the devicetree from "3200" to "4800".
- (`sagv_freq_mhz[2]`) in the devicetree from "6000" to "6400".
- (`sagv_freq_mhz[3]`) in the devicetree from "6400" to "6800".

This change likely to improve the device performance.

BUG=b:328770565, b:407862619
TEST=Able to reduce the boot time by 18ms.

Change-Id: Id0b25adeed4b3f3e1c37d17901006a2db2d21223
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87087
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.corp-partner.google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-04-04 16:41:10 +00:00
Liu Liu
f485c69d18 soc/mediatek/mt8189: Add USB host support
Correct XHCI and PHY register addresses and enable USB port 3 VBUS
to support USB host functionality.

BUG=b:379008996
BRANCH=none
TEST=build pass

Signed-off-by: Liu Liu <ot_liu.liu@mediatek.corp-partner.google.com>
Change-Id: I5f1b4b3eb178cb9a110b97a2763c8cff5cdf0ddd
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87021
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 14:44:58 +00:00
Vince Liu
40717046ea mb/google/skywalker: Initialize flash controller in bootblock
Initialize SPI NOR Flash Controller (SNFC) in the bootblock to
enable CBFS and execute other stages such as verstage, romstage,
ramstage, etc.

BUG=b:379008996
BRANCH=none
TEST=Read NOR flash data successfully.

Signed-off-by: Noah Shen <noah.shen@mediatek.corp-partner.google.com>
Change-Id: Icf4af32dd9d8c704fd7246adda94dfa3350bb672
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86998
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-04 14:44:36 +00:00
Vince Liu
4c967ea167 soc/mediatek/mt8189: Add NOR-Flash support
Add NOR-Flash drivers for flash read/write.

BUG=b:379008996
BRANCH=none
TEST=Read NOR flash data successfully.

Signed-off-by: Noah Shen <noah.shen@mediatek.corp-partner.google.com>
Change-Id: I3a5b7682e4093f9eddf825bc57267b0180cf8b3c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86997
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 14:44:24 +00:00
Sean Rhodes
504cfaa41b mb/starlabs/starbook/mtl: Show the option to enable the GNA
Change-Id: I568cb169f5266703e4422d77c0e0546a6d245ee2
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87055
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-04 07:32:34 +00:00
Sean Rhodes
6f01685f5d mb/starlabs/byte_adl: Remove the override verb function
This board does not have a DMIC, so don't try to disable.

Change-Id: Ic47f9c3b40dd76a78325b024ba8f93a117f7d031
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87095
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:32:25 +00:00
Sean Rhodes
a2d5efeb1e mb/starlabs/starlite_adl: Tidy GPIO comments for the Keyboard
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Icfb80295ba0c55184b174a63756e8779111d9b76
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87122
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:31:27 +00:00
Sean Rhodes
a1bd790057 mb/starlabs/starlite_adl: Disconnect unused GPIO
GPP_F10 is not connected, so configure it accordingly.

Change-Id: I5a8fb34837b1b3f2f066ccc260f0ab749d7782c0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87121
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:31:22 +00:00
Sean Rhodes
28f1c5ad80 mb/starlabs/starlite_adl: Disconnect the SML 0 and 1 GPIOs
These are not connected to anything, so configure them accordingly.

Change-Id: Ia3a528faf74c23d0b78210b22c6e8d3f69de8184
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87120
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-04 07:31:18 +00:00
Sean Rhodes
8093d0e482 mb/starlabs/starlite_adl: Disconnect WiFi Reset GPIO
This GPIO is only used for full PCI wireless, and these boards use
CNVi so disconnect it.

Change-Id: Ie7be00543b5c99814204265157eeab654492724f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87119
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:31:14 +00:00
Sean Rhodes
3601f213c7 mb/starlabs/starlite_adl: Remove comments for disconnected GPIOs
Change-Id: Ifc52668826820a244b346c011f70081b5bc97f12
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87118
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-04 07:31:09 +00:00
Sean Rhodes
2b30f4a14b mb/starlabs/starlite_adl: Reconfigure PCH Strap GPIOs
Configure all strap GPIOs as outputs, rather than some being not
connected. This doesn't change anything, but is more explicit.

Set these all to sample on RSMRST.

Change-Id: I0b0eb72c68d2fbe7920db798c2a625d7cc7e8063
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87117
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-04 07:31:03 +00:00
Sean Rhodes
2c89131160 mb/starlabs/starlite_adl: Tidy GPIO comments for the Accelerometer
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Id0f00b9b4be06da1d58cfb4491eb7606cc968459
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87116
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:30:57 +00:00
Sean Rhodes
ba0a5f14d4 mb/starlabs/starlite_adl: Tidy GPIO comments for the Touchpanel
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: If1c102ecf9982dce1bd79175266451ed80da09f3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87115
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:30:52 +00:00
Sean Rhodes
2d3c3c03f7 mb/starlabs/starbook/*: Tidy GPIO comments for the SMBUS
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ia8a2ff8f370fef6249b1edbb08e00a01dedc3a07
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87113
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:30:48 +00:00
Sean Rhodes
f111588377 mb/starlabs/starbook/*: Tidy GPIO comments for the TPM
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ibd60b124efa4f5cb0688ee097574884b9912fb66
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87112
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:30:42 +00:00
Sean Rhodes
4290340ae5 mb/starlabs/starbook/*: Tidy GPIO comments for PCH
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I8dd5fade69b9e1c2b24b8ffaeac7f72e72894b9c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87111
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:30:36 +00:00
Sean Rhodes
6dd323e159 mb/starlabs/starbook/*: Tidy GPIO comments for HDA
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I5ba2e400ec57a0c52523ea360bee17d9517454b5
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87110
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:30:31 +00:00
Sean Rhodes
f895289a36 mb/starlabs/starbook/*: Tidy GPIO comments for display outputs
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ib86d4b0193fc78123ab3451e92865bff2bab5bd6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87106
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 07:30:26 +00:00
Pranava Y N
91dbadf677 mb/google/nissa/var/rull: Enable early EC software sync for Rull
Enable `VBOOT_EARLY_EC_SYNC` for rull device. This enables EC software
sync in romstage. This is useful to achieve full USB-PD negotiation
early in the boot flow. It eliminates a problem seen in rull devices
where PMC is wrongly configured in depthcharge during the EC-sync
scenario which prevents USB devices from getting detected when
connected via a self-powered USB hub.

BUG=b:386920751
TEST=Verify detection and booting to OS from USB drive connected to the
Servo v4 debugger (self-powered hub) during the EC-sync scenario.

Change-Id: Ie36794a8a2c0bcd4ba77f3ad844a30f28f59403f
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87104
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-04 05:37:17 +00:00
Lucas Chen
3a43968a82 mb/google/brask/var/moxie: Remove wifi sar table for moxie
The parent project kuldax had support wifi sar switch.
But moxie does not support Wifi sar. Remove wifi sar table.

BUG=b:248367859
TEST=build pass

Change-Id: I012ff2d9c8c4d6d4480cae7166bf8e633bcaa752
Signed-off-by: Lucas Chen <lucas.chen@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87004
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-04 05:36:53 +00:00
David Wu
566f87a249 mb/google/nissa/var/dirks: Add romstage early graphics for dirks
Dirks is chromebox, enable early graphics support for HDMI.

BUG=b:399236160
TEST=On-screen text message seen during MRC training on dirks

Change-Id: I8ab2c3a2cc72059facbbc0bba59cc480a5081a9e
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87020
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-04 05:36:41 +00:00
Subrata Banik
3a88eb8cb6 mb/google/fatcat: Enable HDA SDI based on FW config
This commit modifies the handling of PCH High Definition Audio (HDA)
Serial Digital Interface (SDI) enablement.

- In `devicetree.cb`, the static `pch_hda_sdi_enable` property is
  removed to allow varaints to override if needed.
- In `variant.c`, `variant_update_soc_memory_init_params` is
  introduced to dynamically configure `PchHdaSdiEnable` UPD based on
  the firmware configuration (for example: `AUDIO_ALC256_HDA` or
  `AUDIO_ALC256M_CG_HDA`).
  SDI is enabled if this FW config option is present. Otherwise, it
  defaults to disabled.
- `variant.c` is now added for romstage as well because the SDI
  configuration needs to happen earlier in the boot process.

BUG=b:328770565, b:407876136
TEST=Able to reduce the boot time by 18ms for SKUs w/o HDA audio.

Change-Id: Ice28ea7445a5cb32fe8263ada363d4f45c3152f5
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87090
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-04 05:34:44 +00:00
Subrata Banik
e9b020f02e mb/google/fatcat: Allow board-specific FSP-M UPD override
This commit introduces a mechanism to allow mainboards to override
the default FSP-M UPDs for Panther Lake.

- Adds `variant_update_soc_memory_init_params` as a weak function
  in `variants.h` and `romstage.c` for board-specific implementations.
- In `romstage.c`, `mainboard_memory_init_params` now calls
  `variant_update_soc_memory_init_params` to apply board-specific
  overrides to the FSP-M UPDs.

This enables finer-grained control over memory initialization parameters
at the variant level.

BUG=b:328770565
TEST=Able to build and boot google/fatcat.

Change-Id: I403bc4270ef526363defa6cd7d22741ad42a8a76
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87089
Reviewed-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 05:34:32 +00:00
Martin Roth
1e53a973bc Documentation: Update 25.03 release notes
These are the final notes for the release.

Change-Id: I5daaae609b9271c543009c303db948fa7aa24b6d
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87134
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-04 01:11:17 +00:00
Sean Rhodes
ddb09fce6e mb/starlabs/starbook/*: Tidy GPIO comments for the wireless
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I5643fe19f349facffab218e0e8da02d88f192e73
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87105
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 19:26:30 +00:00
Sean Rhodes
fa598433fc mb/starlabs/starbook/*: Tidy GPIO comments for the SSD
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ifd24ca28d66e5e987129a44b6682efab9b64049b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87103
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-03 19:26:21 +00:00
Sean Rhodes
e7de832d12 mb/starlabs/starbook/*: Tidy GPIO comments for the touchpad
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I9563f1d3f464b3be35d18d6cd6fbbcee314fce28
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87102
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-03 19:01:09 +00:00
Sean Rhodes
d2fa941e49 mb/starlabs/starbook/*: Tidy GPIO comments for eSPI
This is a non-functional change, and only makes the GPIOs easier to
read.

Change-Id: Id6a30adbc434c975cda1cdcffd164650910e1da3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87101
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 19:00:56 +00:00
Sean Rhodes
9e6800c98b mb/starlabs/starbook/*: Tidy GPIO comments for deep GPIOs
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ic5c541a44ac9b34dad5430c994b1fa28e96d67f4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87100
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-03 19:00:50 +00:00
Sean Rhodes
03a0171475 mb/starlabs/*: Remove old incorrect comment
Change-Id: Ia3919bd2c41272bca03b464d31ed227c7579cb20
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87099
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-03 19:00:44 +00:00
Sean Rhodes
a22bfba5cf mb/starlabs/starbook/*: Tidy GPIO comments for debug connector
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I5e271508fcd99c01f7de4e5dad7a1941ba1968ec
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87098
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 19:00:36 +00:00
Sean Rhodes
156c05d255 mb/starlabs/starlite_adl: Remove the VGPIO config
These aren't required, so remove the config and let FSP handle it.

Change-Id: I143a779950773823746e838cf29209b6e3bb87ad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87097
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-03 19:00:31 +00:00
Sean Rhodes
b1e95af172 mb/starlabs/starbook/adl_n: Set CNVi strap to disabled
Set GPP_F2 to output high, to indicate that CNVi is disabled.

Change-Id: I82f3ce699d5e823e1ce942acb7a0ba1bd548d9a0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87084
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 19:00:11 +00:00
Sean Rhodes
eaae0ce699 mb/starlabs/starbook/adl_n: Reconfigure PCH Strap GPIOs
Configure all strap GPIOs as outputs, rather than some being not
connected. This doesn't change anything, but is more explicit.

Set these all to sample on RSMRST.

Change-Id: I779b6bc486b68e8df50347540364901507a7102c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87083
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 19:00:04 +00:00
Sean Rhodes
4ac75ed1b3 mb/starlabs/starbook/adl_n: Remove comments for GPIOs that aren't connected
This is a non-functional change; it just makes it easier to read.

Change-Id: Ib3f87c6e3e83d57c4e6969c3aac7cae02d750a5c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87082
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 18:59:57 +00:00
Sean Rhodes
87395f6d55 mb/starlabs/starbook/adl_n: Disconnect GPP_F10
This GPIO is not connected so configure it accordingly.

Change-Id: Ie85d69e0a2a423261038688c176b32abe7bd8134
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87081
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 18:59:50 +00:00
Sean Rhodes
d27e7d7233 mb/starlabs/starbook/adl_n: Tidy GPIO comments for the PCH Straps
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I658cd6ddf2d418da0e36a8e1969041a696a10d87
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87080
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-03 18:59:44 +00:00
Pranava Y N
590f6b9b79 mb/google/brya/var/gimble: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on gimble device and verify that the
device suspends to S0ix.

Change-Id: Iac9eb63639cbb0c7708d5b2bb30aca20e09db3e7
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87061
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-03 11:22:14 +00:00
Pranava Y N
2077d0d79d mb/google/brya/var/redrix: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on redrix device and verify that the
device suspends to S0ix.

Change-Id: I9d8bd6bb2c5aecf2fa67486cc81935d2ac7cd5ce
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87058
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-03 11:22:04 +00:00
Pranava Y N
807c9d0840 mb/google/brya/var/mithrax: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on mithrax device and verify that the
device suspends to S0ix.

Change-Id: I5008ec5e153c3695b1d6aa1183515eba192deaa2
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87060
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-03 11:21:56 +00:00
Pranava Y N
8b55ee05dc mb/google/brya/var/anahera: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on anahera device and verify that the
device suspends to S0ix.

Change-Id: I43a1277efabf8b1ca265e9aca65878da60275b38
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87057
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-03 11:21:39 +00:00
Pranava Y N
57f7e2182e Revert "mb/google/brya: Enable RTD3 for SSD to resolve S0ix issue"
This reverts commit 08076240bd.

Reason for revert: Unable to boot to OS on taniks. Enabling RTD3 for
pcie_rp9 in the brya baseboard enables it for all variants. pcie_rp9
is being used for eMMC in taniks, taeko and few other variants. This
is causing boot failure in these devices.

Change-Id: I72270812312db5b2505046f32466cbb4c200947f
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87056
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-03 11:21:31 +00:00
Subrata Banik
30ecc1c9ce soc/intel/pantherlake: Increase CBFS mcache size
This patch overrides `CONFIG_CBFS_MCACHE_SIZE` Kconfig option with
updated size of the CBFS memory cache to 0x8000 bytes.

TEST=Able to build and boot google/fatcat w/o any error.

w/o this patch:

```
[ERROR]  CBFS ERROR: mcache overflow, should increase CBFS_MCACHE size!
```

Change-Id: Ib6f046c7211a020c15d89a02348ea89f095273ed
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87108
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-04-03 11:19:41 +00:00
Mac Chiang
175a37059b mb/google/fatcat/var/francka: move NC pin to default
Relocate the NC pins configuration to gpio.c, enabling it once needed.

BUG=b:392007428
TEST=emerge-fatcat coreboot

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Change-Id: I5c594f68b151f8c8c58e35a0590be15456f54b32
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87062
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-03 05:40:44 +00:00
Subrata Banik
cab89f7d11 commonlib/storage: Avoid build error when CONFIG_PCI is disabled
When CONFIG_PCI is disabled, but COMMONLIB_STORAGE and
COMMONLIB_STORAGE_SD are enabled, the compilation of
pci_sdhci.c fails. This is because the code attempts to use
pci_s_read_config32() with the PCI_BASE_ADDRESS_0 macro, which
are only defined when CONFIG_PCI is enabled.

Add an early return NULL check based on !CONFIG(PCI) at the
beginning of new_pci_sdhci_controller(). This prevents the
compiler from attempting to process the PCI-specific code path
when PCI support is not configured, resolving the build failure
in this specific Kconfig scenario.

TEST=Able to build herobrine.

Change-Id: I5c70d9b9ebcac13b47bba2c260fdf2ad7d56d4d7
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87092
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-04-03 03:11:05 +00:00
Subrata Banik
2a76384804 soc/intel/pantherlake: Directly assign HDA SDI enable
The double negation (`!!`) was unnecessarily used when assigning the
`pch_hda_sdi_enable` type boolean from the SOC config to the FSP M
config.

This commit removes the redundant `!!` operator, directly assigning
the boolean value of `config->pch_hda_sdi_enable[i]` to
`m_cfg->PchHdaSdiEnable[i]`.

TEST=Able to build and boot google/fatcat.

Change-Id: I9233116ca2bfaeac2f685d464a1cb261f067db6a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87109
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-04-03 03:10:32 +00:00
Subrata Banik
275beb93db mb/google/fatcat: Conditionally check for barrel charger
The barrel charger check in `baseboard_devtree_update` was
unconditional, increasing boot time on platforms without it.

This commit conditions the check on `CONFIG(BOARD_GOOGLE_MODEL_FATCAT)`,
making it specific to the fatcat board.

This avoids unnecessary delay on platforms like francka and felino.

BUG=b:328770565
TEST=Boot time reduced by 56ms.

Change-Id: Id7a26b634a1a310f714fbf4b4a2accd75665bc28
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87064
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-03 03:08:58 +00:00
Maximilian Brune
22fd605d23 soc/amd/common/psp_verstage: Remove arch/io.h
The arch include files are overshadowed by PSP verstage include files.
The reason is that psp_verstage implements its own set of inb() and
outb() functions, which use a runtime configurable IO base address
instead of a built time constant.

But this works at the moment only because of the order in which the
include files are added. Since that is very error prone, this patch
introduces another solution to the problem.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I16fa4a4cb5168024aaef30119e9aa8a34dbaacbe
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86874
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-04-02 16:03:34 +00:00
Maximilian Brune
02fa23724f Documentation/lib/rmodules.md: Update simple binary explanation
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I9cf21b4258758b18f0d3c9316c9aa32cc0d9c44f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86656
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 16:03:15 +00:00
Felix Held
fe344ea507 util/amdfwtool: add PLATFORM_FAEGAN
Add the PLATFORM_FAEGAN element to the 'platform' enum and use it in the
code. The Faegan SoC is similar to the Glinda SoC, but has a different
PSP ID.

Change-Id: I40a3e9981696fc02a44fbf300d1b47060a4a398b
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86940
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
2025-04-02 16:02:47 +00:00
Gareth Yu
730b2b506b mb/google/brya/var/meliks: reset DPHY_CLOCK_LANE_TIMING
According to the analysis results, resetting the DSI DPHY to default
during a warm boot is needed if 'You are in developer mode' needs to be
displayed on the screen in a system using the MIPI-DSI panel.

DPHY_0_CLOCK_LANE_TIMING -- address:0x162180, size: 32 bits
[31]: CLK_PREPARE Override. 0:HW maintains, 1:SW overrides
[30..28]: CLK_PREPARE
[27]: CLK_ZERO Override. 0:HW maintains, 1:SW overrides
[23..20]: CLK_ZERO
[19]: CLK_PRE Override. 0:HW maintains, 1:SW overrides
[17..16]: CLK_PRE
[15]: CLK_POST Override. 0:HW maintains, 1:SW overrides
[10..8]: CLK_POST
[7]: CLK_TRAIL Override. 0:HW maintains, 1:SW overrides
[2..0]: CLK_TRAIL

BUG=b:397805262
TEST=Able to show 'You are in developer mode'

Change-Id: I7857c4f71fc7d1d0c5069a462bdd70c8dbb78179
Signed-off-by: Gareth Yu <gareth.yu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86838
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-04-02 16:02:11 +00:00
Matt DeVillier
e3173ddbae docs/security/vboot: Update supported board list
Generated by util/vboot_list/vboot_list.sh.

Change-Id: I079e02d24671a76520587b03a9d83fdc9f33e55b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87029
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-04-02 16:01:21 +00:00
Ivy Jian
1c87176130 mb/google/nissa/var/dirks: Disable TCSS D3COLD_SUPPORT
In dirks, we re-purpose a TCSS USB port into a Type-A port.
In this case, D3COLD in tcss_xhci is not supported, so we override
dirks settings. This is a W/A until we root cause why PMC is unable
to handle PM for this migrated port.

BUG=b:400809281
TEST= Confirm that when connecting only the Type-A0 port, it can
recognize USB3 speed.

Change-Id: I35ae587e02d794352ffc9d18a4c18868d23366f3
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87053
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
2025-04-02 11:10:35 +00:00
Sean Rhodes
070447049a mb/starlabs/starbook/adl_n: Tidy GPIO comments for the SMBUS
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I8456c5fa72d0c8620469e9c9ea260c60100db40e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87079
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:19:30 +00:00
Sean Rhodes
b2e8327480 mb/starlabs/starbook/adl_n: Tidy GPIO comments for the TPM
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I147d0b9770c6a1d10b4e8996591508a42805a18c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87078
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-02 08:19:25 +00:00
Sean Rhodes
bd07bb450a mb/starlabs/starbook/adl_n: Tidy GPIO comments for PCH
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I710f3ab84a4c6d76941a2a7dc3d41f87ba0c0415
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87077
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-02 08:19:20 +00:00
Sean Rhodes
41a99f014e mb/starlabs/starbook/adl_n: Tidy GPIO comments for HDA
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ib40431a24037535e7c4d1bc49a5ae50576b62e33
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87076
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:19:13 +00:00
Sean Rhodes
e94c2459d5 mb/starlabs/starbook/adl_n: Tidy GPIO comments for display outputs
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Iaac4672fec3e282ffc3ea6acf07cfb56072ad850
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87075
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:19:09 +00:00
Sean Rhodes
087acda5ce mb/starlabs/starbook/adl_n: Tidy GPIO comments for the wireless
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ie93658cc4f8f17be1ff59244c038f53095751be7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87074
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:19:04 +00:00
Sean Rhodes
ec87f05099 mb/starlabs/starbook/adl_n: Tidy GPIO comments for the SSD
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ief80e0527c9e1bfdc31ce9a28fb0bd997ba4493e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87073
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-02 08:18:59 +00:00
Sean Rhodes
c98d58ac83 mb/starlabs/starbook/adl_n: Tidy GPIO comments for the touchpad
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I65d055955c0abf04b597e6972ef95f5c2983563e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87072
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:18:53 +00:00
Sean Rhodes
26484b0b63 mb/starlabs/starbook/adl_n: Tidy GPIO comments for eSPI
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I8cf7342e6442d283c5ba4b7ee545aa8ac524e365
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87071
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:18:49 +00:00
Sean Rhodes
d476f72b75 mb/starlabs/starbook/adl_n: Tidy GPIO comments for deep GPIOs
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: Ic69920c052707a44ecdd44c5879bbbf612cc03f8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87070
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-04-02 08:18:43 +00:00
Sean Rhodes
3e0de0de83 mb/starlabs/starbook/adl_n: Tidy GPIO comments for debug connector
This is a non-functional change, and only makes the GPIOs easier to read.

Change-Id: I1284e9947edca20d113ca2e810963fcfffb92831
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87069
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:18:39 +00:00
Matt DeVillier
af1f198678 mb/starlabs/byte_adl/cfr: Drop CONFIG guards for CFR elements
The byte_adl is an Alderlake board, so we don't need to do any SoC
checks to determine which CFR elements to include.

TEST=build/boot starlabs/byte_adl, verify CFR options unchanged.

Change-Id: Ie21a873ad7af1504f46db769c3abba00c0e61008
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87067
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 08:17:20 +00:00
Yidi Lin
9faec116ca MAINTAINERS: Add google/skywalker to GOOGLE MEDIATEK-BASED MAINBOARDS
Change-Id: I234dfc2a64be88e274af57ea489d5775347ac913
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87040
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-04-02 07:24:12 +00:00
Momoko Hattori
81f396ec2f mb/google/rex: Enable use_gpio_for_status for touchscreen
The _STA method of touchscreen's power resource currently always returns
true. This causes the touchscreen to be powered on by the kernel in a
boot critical path (in acpi_bus_init_power) and block the boot for a
while due to the long (~300ms depending on variants) sleeps in the _ON
method of the power resource. To prevent it, enable use_gpio_for_status
so that the implementation of _STA returns the touchscreen's actual
power state and the kernel powers it on in another place that doesn't
block boot.

The similar change has already been made to mb/google/brya/var/redrix in
commit d0367e38a9 ("mb/google/brya/var/redrix: Enable
use_gpio_for_status for touchscreen") (CB:86749). This change applies it
to all rex variants with touchscreen.

BUG=b:397355818
TEST=Dump SSDT and check that the _STA method of touchscreen (i2c1)
     PowerResource doesn't always return true.
TEST=Check that touchscreen works with the change.
TEST=Check that kernel sleep during ACPI initialization is removed by
     checking the timestamps of 'New power resource' logs from ACPI in
     /var/log/messages.
TEST=(Tested above on karis)

Change-Id: Ibe7681884dc3edfb98c7c179b1af2063e35c4b46
Signed-off-by: Momoko Hattori <momohatt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87001
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Sam McNally <sammc@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-02 05:10:49 +00:00
Cliff Huang
a6b2cf1531 soc/intel/pantherlake: Add Touch Controller UPD and SoC config
This commit introduces the necessary changes to configure the Touch
Host Controller User Platform Data (UPD) fields such as ThcAssignment,
ThcMode, and ThcWakeOnTouch according to the specific SoC chip
configuration derived from the devicetree.

Key changes include:
- Creation of override functions to supply SoC-specific configurations
  for the Touch Host Controller (THC).
- Addition of a new SoC-specific THC header file.
- Inclusion of a motherboard (MB)-specific THC header file.
- Establishment of a build path to allow devicetree to leverage
  variant-specific defines.

BUG=none
TEST=Add CONFIG_DRIVERS_INTEL_TOUCH to fatcat board with the devicetree
changes for touchscreen and/or touchpad, as well as proper CBI settings.
Boot the board to OS and check that the THC SoC-specific info is
generated in the SSDT.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I15fb62eaadc03b9a17e94609b97c686518150e2e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85199
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-01 21:56:39 +00:00
Momoko Hattori
0afe12b606 mb/google/nissa: Enable use_gpio_for_status for touchscreen
The _STA method of touchscreen's power resource currently always returns
true. This causes the touchscreen to be powered on by the kernel in a
boot critical path (in acpi_bus_init_power) and block the boot for a
while due to the long (~300ms depending on variants) sleeps in the _ON
method of the power resource. To prevent it, enable use_gpio_for_status
so that the implementation of _STA returns the touchscreen's actual
power state and the kernel powers it on in another place that doesn't
block boot.

The similar change has already been made to mb/google/brya/var/redrix in
commit d0367e38a9 ("mb/google/brya/var/redrix: Enable
use_gpio_for_status for touchscreen") (CB:86749). This change applies it
to all nissa variants with touchscreen except for pujjoniru, whose
touchscreen does not have has_power_resource option enabled.

BUG=b:397355818
TEST=Dump SSDT and check that the _STA method of touchscreen (i2c1)
     PowerResource doesn't always return true.
TEST=Check that touchscreen works with the change.
TEST=Check that kernel sleep during ACPI initialization is removed by
     checking the timestamps of 'New power resource' logs from ACPI in
     /var/log/messages and/or getting perfetto boot-time trace.
TEST=(Tested the above on gothrax and riven)

Change-Id: I126e0b2cece6b3fb9a750a908e6cc9663b7f37c9
Signed-off-by: Momoko Hattori <momohatt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86877
Reviewed-by: Sam McNally <sammc@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-04-01 03:19:25 +00:00
Momoko Hattori
9927094ef0 mb/google/brya: Enable use_gpio_for_status for touchscreen
The _STA method of touchscreen's power resource currently always returns
true. This causes the touchscreen to be powered on by the kernel in a
boot critical path (in acpi_bus_init_power) and block the boot for a
while due to the long (~300ms depending on variants) sleeps in the _ON
method of the power resource. To prevent it, enable use_gpio_for_status
so that the implementation of _STA returns the touchscreen's actual
power state and the kernel powers it on in another place that doesn't
block boot.

The similar change has already been made to mb/google/brya/var/redrix in
commit d0367e38a9 ("mb/google/brya/var/redrix: Enable
use_gpio_for_status for touchscreen") (CB:86749). This change applies it
to all the other non-4es brya variants with touchscreen.

BUG=b:397355818
TEST=Dump SSDT and check that the _STA method of touchscreen (i2c3)
     PowerResource doesn't always return true.
TEST=Check that touchscreen works with the change.
TEST=Check that kernel sleep during ACPI initialization is removed by
     checking the timestamps of 'New power resource' logs from ACPI in
     /var/log/messages.
TEST=(Tested above on crota)

Change-Id: I068faa97089ce0011727325ffc868450572bdf58
Signed-off-by: Momoko Hattori <momohatt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86876
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Sam McNally <sammc@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-04-01 01:42:03 +00:00
Jeremy Compostella
5c0340349e mb/google/fatcat: Rationalize Wi-Fi and Bluetooth combinations
We aim to support only two Wi-Fi and Bluetooth combinations:
- CNVi Wi-Fi paired with CNVi Bluetooth
- Discrete Wi-Fi paired with USB Bluetooth

The CNVi core settings are configured at runtime based on the firmware
configuration for Fatcat and Felino variants. Since Francka only
supports CNVi configuration, settings are enforced in the override
device tree.

Change-Id: Ida95d1898d24898880de567db7c0ac8ac053eeaa
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85662
Reviewed-by: Ben Kao <ben.kao@intel.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-31 18:27:50 +00:00
Sean Rhodes
51130ebc64 mb/starlabs/starbook/mtl: Add the option to enable the VPU
Enable the VPU, and add a CFR option to enable or disable it.

Change-Id: I747d85c6764e5affcc202e063abe7ec786d04e39
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87046
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-31 09:35:56 +00:00
Martin Roth
38f5f7c480 Docs: Update 25.03 release notes
These are the release notes for the 25.03 release.

We will update again after the release is done with the final statistics
and information.

Change-Id: I4a3894fd617e95b8014c3cf1afe6472994e3fb16
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87042
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-28 23:23:34 +00:00
Maximilian Brune
c444d166f3 include/endian.h: Add 'always aligned access' support
RISC-V doesn't support unaligned access, so check for that before
decoding and encoding. It is not perfectly performant, but still much
better then invoking the misaligned exception handler every time there
is a misaligned access. We can't modify our whole codebase to always do
aligned access, because it is neither feasible in long term nor is fair
to add that performance penalty onto other architectures that do support
unaligned access. So this is the next best thing.

On architectures that do support unaligned access the compiler will just
optimize the RISCV_ENV part out and should result in the exact same
binary.

tested: identical binary on QEMU-aarch64 and QEMU-q35.

Change-Id: I4dfccfdc2b302dd30b7ce5a29520c86add13169d
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86609
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-03-28 20:28:34 +00:00
Maximilian Brune
dcd07b37d5 mb/emulation/qemu-aarch64/include: Update ECAM comment
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I5864cb742ba8e7be54f67c234766cd8a5272f8e2
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86872
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-28 20:27:08 +00:00
Mac Chiang
2c623c17fb mb/google/fatcat/var/francka: Add audio_disable_pins
disable audio-related pins when the CBI FW_Config is not defined.

BUG=b:392007428
TEST=emerge-fatcat coreboot

Signed-off-by: Mac Chiang <mac.chiang@intel.com>
Change-Id: I278106df53635adf2bb9f2eb787231724ad4b372
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87023
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-03-28 20:26:30 +00:00
Maximilian Brune
cdd60238e4 Makefile: Add build/3rdparty as an exception for project_filelist.txt
The ctags tool (called by ctags-project target) currently complains
about not finding certain files:
```
ctags: Warning: cannot open input file "bl31/aarch64/bl31_entrypoint.S" : No such file or directory
ctags: Warning: cannot open input file "bl31/aarch64/crash_reporting.S" : No such file or directory
ctags: Warning: cannot open input file "bl31/aarch64/runtime_exceptions.S" : No such file or directory
ctags: Warning: cannot open input file "bl31/bl31.ld.S" : No such file or directory
ctags: Warning: cannot open input file "bl31/bl31_context_mgmt.c" : No such file or directory
ctags: Warning: cannot open input file "bl31/bl31_main.c" : No such file or directory
ctags: Warning: cannot open input file "bl31/bl31_traps.c" : No such file or directory
ctags: Warning: cannot open input file "bl31/interrupt_mgmt.c" : No such file or directory
ctags: Warning: cannot open input file "common/aarch64/debug.S" : No such file or directory
ctags: Warning: cannot open input file "common/bl_common.c" : No such file or directory
ctags: Warning: cannot open input file "common/fdt_fixup.c" : No such file or directory
...
```

The project_filelist.txt generation includes the compiler
generated "*.d" files, except for files found in build/util. Most file
paths in these "*.d" files are file paths relative to the root
directory of coreboot. Some projects though are compiled separately from
coreboot (e.g. payload, vboot, util). Some of these (e.g. util, vboot)
are also put into the build directory of coreboot and relative file
paths are relative to these projects instead of coreboot. This has the
uncanning side effect that the ctags Makefile target can't find these
files, since they are not relative to the coreboot root directory.

This patch excludes the build/3rdparty directory from those files, since
they contain 'separately' compiled projects like
3rdparty/arm-trusted-firmware.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I18d0377e327530d9ef9382c324a305d156c5c681
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86868
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-28 20:26:12 +00:00
Sean Rhodes
1467e5fbd3 mb/starlabs/starbook/mtl: Don't configure GPIOs to IOSTANDBY_IGNORE
This is just simply incorrect, as these signals are used to
pull various devices into low power states during S3.

Change-Id: Ic2950cc43fd17dda4205964c851b09cfd86d90d9
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87013
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-28 20:25:59 +00:00
Sean Rhodes
28d4a35fd0 mb/starlabs/starbook/mtl: Set PsysPmax to auto
Set PsysPmax to 0, which is auto instead of the FSP default
which is 21.5W (0xac).

Change-Id: Ia2503077067fa719a09f9877d7fe0bedf2a662f1
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87006
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-28 20:25:48 +00:00
Martin Roth
a939106016 Documentation: Add coreboot release 25.06 template
This adds the release notes template for the upcoming June release of
coreboot.

Change-Id: Ia8aa266973181be12620343eb58bb9ba8f0ccc79
Signed-off-by: Martin Roth <gaumless@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87030
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-28 20:25:36 +00:00
Seunghwan Kim
c0c9fc3084 mb/nissa/var/meliks: Choose active storage by using FW_CONFIG
Select UFS or eMMC as the active storage of meliks boards by using
`STORAGE` field in `FW_CONFIG`.

BUG=none
BRANCH=nissa
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: Ifcc917ad1231fa68ce4caf6f0d67fa75b16a3085
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86980
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-28 20:25:28 +00:00
Keith Hui
4c016e28f7 mb/asus/p8z77-m: Move SIO ACPI device config to bootblock
ACPI S3 suspend has been failing on this mainboard for about 5 months
as of this writing. This move fixes the regression. The removal of
these three settings from devicetree also realized a small image
size reduction.

TEST=Now again able to enter S3 suspend and return to where I was.

Change-Id: I35189b7977c83b3a2666dded8267b9021f0ea3f3
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86636
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-27 16:22:31 +00:00
Keith Hui
e7f4a2c0d6 mb/asus/p8x7x-series: Move Super I/O base port to Kconfig
By doing this the base port is now #defined as CONFIG_SUPERIO_PNP_BASE,
available to both C and ASL code, the latter will soon start to make
use of this as well. This will be gradually expanded to all boards using
superio/nuvoton/{nct5572d,nct6776,nct6779d,nct6791d}.

Change early_init.c of all variants to use this new #define.

Change-Id: I6e2851db68f4867be8fa4ef0d8bd8d1b9b8bf92a
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86635
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 16:22:11 +00:00
Keith Hui
692ed637ba mb/asus/p8x7x-series: Add P8Z77-V LE PLUS variant
Based on a mix of existing P8x7x series boards, boardview, vendor
firmware dumps, and hardware testing.

Working:
- SeaBIOS 1.16.3 and edk2/mrchromebox/uefipayload_2501
- Serial port
- All USB2 & USB3 ports
- Z77 SATA ports
- Integrated graphics thru all ports with libgfxinit
- RTL8111F LAN (MAC address doesn't stick)
- Analog 7.1 audio out the back panel jacks
- Digital audio
- Front HDA audio panel
- PCIe x16 slot with nVidia 8800GT GPU
- PCIe x1 slots
- PCIe x4 slot with Intel Octane H10 1TB NVMe
- PCI slots
- Hardware monitoring and fan control
- S3 suspend

Untested:
- Hotplugging Z77 SATA ports
- EHCI debug

Not working:
- PS/2 mouse
- Wake on LAN
- Marvell SATA ports

Change-Id: Id9eef8b3426daecce0c95f56bfcd4caae2d52e50
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86172
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 16:21:17 +00:00
Keith Hui
2ac0a7feeb mb/asus/p8x7x-series: Blink power LED during suspend
Extends commit 57946ad817 ("mb/asus/p8z77-m[_pro]: Blink power
LED during suspend") to the entire family.

Also, we don't need the 0x for Arg0; it can't go larger than 5.

Applied this patch and CB:82556 while developing a port for
P8Z77-V LE PLUS variant (which uses GPIO8 for power LED). Its
power LED does blink during suspend.

Change-Id: Ie30e5ef79a87a3dca6875b0a6e07ae99d0d79e6e
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82557
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-27 16:12:15 +00:00
Keith Hui
0f38b6b1ba mb/asus/p8x7x-series: Mark variants using GPIO8 for power LED
All boards in the family have the negative leg of power LED linked
to a PCH GPIO pin, either GPIO 27 or 8.

After examining their boardviews, mark p8h77-v and p8z77-v_lx2
variants through Kconfig as using GPIO8 for power LED.

Change-Id: I4d42cd9ac497a4200ab5c90d09eb4dbab8917b30
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82556
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 16:11:09 +00:00
Matt DeVillier
3356bf0d68 mb/google/volteer: Include ACPI for GNA scoring accelerator
Since the PCI device is already enabled, include the ACPI stub so the
OS driver can attach.

TEST=build/boot Win10 on google/volteer (drobit)

Change-Id: I9f9edcdd3c32d66af64878b6d8735019bccddd26
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: CoolStar <coolstarorganization@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77578
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-27 16:07:58 +00:00
Maximilian Brune
a38cb1bd43 soc/amd/glinda/Kconfig: Increase APOB NV size
A glinda based platform reports:
[WARN] RAM APOB data is too large (3b3b0 + 8) > 1e000

APOB NV size is not enough on recent platforms to cache memory training,
which causes the same amount of boot time on subsequent boots as on the
first boot.

This time increase the size properly by adjusting the base address of
the components that come after the APOB region.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I070cf766b98825cd5ff37674e1f9651fa71159c4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86849
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-27 15:48:23 +00:00
Maximilian Brune
37c968d899 Revert "soc/amd/glinda/Kconfig: Increase APOB NV size"
This reverts commit 362232d236.

Reason for revert:
This introduced an overlap between APOB DRAM region and SHAREDMEM
region used for PSP verstage. Our linker scripts would have caught that,
but we don't have any glinda based mainboards using VBOOT in the tree
at the moment so there is no actual overlap on any upstream mainboards
at the moment. Still if VBOOT based mainboards are added in the future
it would cause a build error for them.

The next patch in the train will increase the APOB NV size properly by
increasing all the other addresses in the chain too.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I4b4cb4104a59f72491a941dc1d13018f2389bb03
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86861
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 15:48:10 +00:00
Sean Rhodes
4dffa65d7e mb/starlabs/starbook/mtl: Enable Port Reset Message
Enable the Port Reset Message for the two USB Type-C ports.

Change-Id: I181db4cfd3a50915337816c91f1b2feb3f874b06
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87018
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 09:01:56 +00:00
Sean Rhodes
ea6441b1d3 soc/intel/common/cnvi: Add missing PRRS name
Add the PRRS object that is used in the _RST method.

Change-Id: I935fae3c215e48288d8856d7be5cacc4e261d86f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87005
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-03-27 08:51:26 +00:00
Sean Rhodes
7eb97dfda1 mb/starlabs/starbook/mtl: Configure SML1ALERT GPIO
This pad is connected, so configure it accordingly.

Change-Id: I3ef2fd3793c31a6e2f62ff621ab0ed9bb4595b79
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87014
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 08:47:46 +00:00
Sean Rhodes
30af663a0a mb/starlabs/starbook/mtl: Configure the Boot Halt GPIO
This pin is connected, so configure it to NF2 accordingly.

Change-Id: Iae8730a875fa0b2f4036f278591ece5a5fa5c5d1
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87012
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 08:47:37 +00:00
Sean Rhodes
69a3af77a0 mb/starlabs/starbook/mtl: Add explicit configs for strap GPIOs
Rather than setting the pads to Not Connected for low, configure
them as output GPIOs driven low; this isn't a functional change,
but just makes it easier to read.

Change-Id: Ia8fa495ff9a7b25195fbf39b4090bc57a48bf4e8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87011
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-27 08:47:32 +00:00
Sean Rhodes
5d5a06a71f mb/starlabs/starbook/mtl: Add comments for Top Swap Override GPIO
This GPIO is conected to the Top Swap Override strap, so add comments
to that effect, and an explicit config to disable it.

Change-Id: I183fc60c61ec82f0d27a0d3726f0d3c37ddee04a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87010
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 08:47:27 +00:00
Sean Rhodes
811ab788d1 mb/starlabs/starbook/mtl: Disconnect WLAN PEWAKE GPIO
This GPIO isn't conencted, so configure it accordingly.

Change-Id: I2b027a1181de67e9a33bbb2062573c071827134a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87009
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-27 08:47:19 +00:00
Sean Rhodes
bb70c75700 mb/starlabs/starbook/mtl: Configure eSPI GPIOs
Meteor Lake doesn't seem to configure the eSPI GPIOs for S3 on
reset, so add configuration from them so coreboot can configure
them correctly.

Change-Id: I4b74d320977faa60441e3d8b12980ef6ec41549d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87008
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-27 08:47:15 +00:00
Sean Rhodes
cb956861a1 mb/starlabs/starbook/mtl: Correct the config for eSPI strap
The comment was reversed for the eSPI strap, so the GPIO was
misconfigured. Correct the comment and config accordingly.

Change-Id: I494d247ea4625fa1633ffa6d073b48f1dbf8432f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87007
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-27 08:47:11 +00:00
Jeremy Compostella
1fa5ab805b mb/google/fatcat: Remove unnecessary CNVi core variables settings
config->cnvi_wifi_core and config->cnvi_bt_core are false by
default. This commit suppresses the acpi/acpigen.h inclusion, which is
unnecessary as well.

Change-Id: I2e171d6388b472f4cb877fdd93771142f9a3f2de
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86994
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-27 06:07:24 +00:00
Zheng Bao
3856d0fa90 amdfwtool: Set address mode of BIOS binary as context defines
Other types of FWs in the BIOS table are defined by context. So the
BIOS binary should follow that.
TEST=Binary identical test on platforms before mendocino
Tested on Skyrim

Change-Id: I9c2f2983d03c913b28fbd87aa0925a32a4649d62
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85466
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 20:59:03 +00:00
Johannes Hahn
50178229ff mb/siemens/fa_ehl: Configure LPDDR4 from CBFS
Process the single SPD data file which resides in cbfs. Add Kconfig
switch for SPD data in cbfs and include Nanya_NT6AP512T32BV-J1I.spd.hex
into the build by adding a correspondig Makefile.mk in the spd folder.
Additionally to load the memory configuration FSP-M parameters for the
romstage are set.
Loading SPD data from HWILIB was the technique applied by mainboard
siemens/mc_ehl2 from which this mainboard was copied. On fa_ehl
SPD data is stored in CBFS and gets loaded from there.

Change-Id: If84373dfbc1ecbf916489af6e964f8a7541f5e7b
Signed-off-by: Johannes Hahn <johannes-hahn@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86424
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-03-26 20:57:50 +00:00
Weimin Wu
28e8e22215 drivers/soundwire: Support Realtek ALC1320 codec
Add SoundWire driver to support ALC1320 audio codec.

reference datasheet: Realtek ALC1320-CG Rev. 0.21

BUG=b:378629979
TEST=emerge-fatcat coreboot.
check ssdt dump has 0x000331025D132001.

Change-Id: I8f100d63a6470b36d4b1a245fa6098362205728e
Signed-off-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86746
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-26 20:57:18 +00:00
Zheng Bao
61249065f5 amdfwtool: Move L1 before L2
It is more reasonable. And, in later change, the Level 1 should be
split with Level 2 and combined with EFS.

Change locate_bdt2_bios to locate_bdt_bios. This function is more
flexibile and covers both L1 and L2 BIOS directory table.

Change-Id: I74605013cf53a38686f4e1e5a89a4e6a870f1f4b
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84532
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 20:57:01 +00:00
Keith Hui
cd0c7c6466 sb/intel/bd82x6x: Drop xhci_overcurrent_mapping
This is now drawn (indirectly) from main usb_port_config.

Also drop it from autoport.

Change-Id: I8c5e9b2016cf56538de06575181a0a6b738c6a28
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85925
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 20:47:59 +00:00
Keith Hui
91a8a5603f mb/dell/snb_ivb_workstations: Drop xhci_overcurrent_mapping
As of commit a3d1e6c480 ("sb/intel/bd82x6x: Apply EHCI mapping to
xhci_overcurrent_mapping"), this is now linked to main USB port config
and is no longer referenced separately.

This board is the last unresolved mismatching xhci_overcurrent_mapping
and there is no reports whether it is working or broken. Since the
value is no longer used anyway, remove it and put a FIXME in its place.

Change-Id: Ie60d34cae5ae94d148854b42f77ab4c02e8f49ef
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85924
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-03-26 20:47:48 +00:00
Keith Hui
91e2e3b5c0 mb/hp/compaq_8300_elite_sff: Replace broken USB port config
This board has an effectively broken USB configuration, which made
itself known during testing on a Pro 6300 SFF, that could run an
unmodified build for this variant and actually share the same vendor
BIOS update file (sp95971 v3.08 rev A).

Further examination of the BIOS update reveals five possible sets
of USB port configurations for all models covered by that update,
selected by PCH GPIOs 38 & 49, none of which matches what was currently
coded.

Then I received the autoport log from hardware with vendor BIOS that
confirmed my theory. Therefore apply the USB port config found therein.

While I'm at it, remove xhci_overcurrent_mapping, made obsolete by
commit a3d1e6c480 (sb/intel/bd82x6x: Apply EHCI mapping to
xhci_overcurrent_mapping).

Change-Id: Idc469b1aedcad2978247b9f6efbc7f55964e9ed1
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86909
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-03-26 20:47:32 +00:00
Subrata Banik
e64a5c4d49 drivers/intel/fsp2_0: Enable panel-orientation aware bitmap rotation
Implement logo bitmap rotation within fsp_convert_bmp_to_gop_blt() to
support devices with portrait-oriented displays. The rotation is driven
by the panel framebuffer orientation, allowing the logo to be displayed
correctly regardless of physical panel orientation.

This resolves issues where the logo was displayed incorrectly on
portrait-oriented displays.

Additionally, discard the display orientation change if the LID is
closed aka built-in display is not active. This will ensure that
display orientation is proper when extended display is attached w/o
any display rotation.

BUG=b:396580135
TEST=Verified BMP logo display in landscape mode on a portrait panel
with rotation enabled. Also verified portrait logo display in landscape
mode with rotation enabled.

Change-Id: I110bd67331f01e523c227e1a4bdb0484f0157a60
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86850
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 20:45:47 +00:00
Seunghwan Kim
470e459c4d mb/google/nissa/var/meliks: Disable external FIVR
Disable external FIVR in overridetree.cb since meliks will remove
external FIVR in next phase.

BUG=b:402647064
BRANCH=nissa
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: If1584da51976fb682733b246ce7af3786ae55947
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86992
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 17:22:33 +00:00
Wonkyu Kim
aa3da6e785 src/lib: use RO CBFS file as fw_config source
The FW_CONFIG_SOURCE_CBFS option serves as a backup for
FW_CONFIG_SOURCE_CHROMEEC_CBI, utilizing variables stored in CBFS.
When using ChromeEC CBI as the firmware configuration source,
changes to fw_config values can be made without updating the firmware
image. However, using CBFS as the configuration source requires
resigning the firmware because the current implementation reads from
the RW firmware region (FW_MAIN_A/B), necessitating resigning for
updates.  To avoid this step, the code should be modified to use the
RO CBFS for fw_config values instead of the RW (Read-Write) CBFS.

TEST:
1. Add FW_CONFIG_SOURCE_CBFS in board Kconfig and build image
2. Modify fw_config value by cbfstool with built image
3. flash and boot up system
4. Check updated fw_config value

Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Change-Id: I4710a1043fe75888d2dcaee98c6957e6bd639be9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86943
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-03-26 16:37:25 +00:00
Ian Feng
231296b638 mb/google/fatcat/var/francka: Disable RTD3 for SD card
BUG=b:399264399
TEST= Run suspend_stress_test on francka and verify that the device can
suspend.

Change-Id: Icccf1bf181495171449f1c1335902fef2614d04c
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86978
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-03-26 02:05:10 +00:00
Tongtong Pan
a129f85b7f mb/google/fatcat/var/felino: Add Focal touchpad to devicetree
Update device tree to support Focal touchpad.

BUG=b:404363997
TEST=emerge-fatcat coreboot and Focal touchpad can work well.

Change-Id: I515eb63a9e5b8e4ebc7d6828ae3da47caa997ea3
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86979
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 02:04:13 +00:00
Momoko Hattori
a8f52bdc9c mb/google/brox/var/jubilant: Enable use_gpio_for_status for touchscreen
Apply the change made to brya/redrix in CB:86749 to all applicable brox
variants, which is currently jubilant only.

BUG=b:397355818
TEST=Dump SSDT on jubilant

Change-Id: Ie0fc00e511b8efd5bae29cc089a24f7b0128d77e
Signed-off-by: Momoko Hattori <momohatt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86954
Reviewed-by: Sam McNally <sammc@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 02:03:53 +00:00
Sean Rhodes
96ec1f7c1f mb/starlabs/starbook/mtl: Add missing config for GPP_E09
This pad isn't used, so set it to not connected.

Change-Id: Ic7174457f56e64751718dc10227ec07b793559eb
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86988
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 02:03:08 +00:00
Sean Rhodes
31c4bdcba2 mb/starlabs/starbook/mtl: Fix duplicate GPP_F21 comment
Change-Id: Ic5d1ac1044aa3e54d7d0494fc19fc238f3d87065
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86987
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 02:03:02 +00:00
Sean Rhodes
9102bcca41 mb/starlabs/starbook/adl_n: Fix spacing in comments
Change-Id: I9d81ae0b81b4c58adaf99e8cbfae6795310554f4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86986
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-26 02:02:57 +00:00
Ian Feng
0fc2422e88 mb/google/fatcat: Implement S0ix hooks aka MS0X method
Implemented runtime ASL method (MS0X) being called by PEPD device
_DSM to configure `GPIO_SLP_S0_GATE` PIN at S0ix entry/exit.

Test on francka: GPIO_SLP_S0_GATE (GPP_F23)
Scope (\_SB)
{
    Method (MS0X, 1, Serialized)
    {
        If ((Arg0 == One))
        {
            \_SB.PCI0.CTXS (0x47)
        }
        Else
        {
            \_SB.PCI0.STXS (0x47)
        }
    }
}

BUG=b:399264399
TEST=Run suspend_stress_test on francka and verify that the device can
suspend.

Change-Id: Idd9fcd07ab09f4dc905e4fa029b9b2f897ad015c
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86981
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-25 14:43:10 +00:00
Subrata Banik
eb85dfae1f mb/google/fatcat: Configure GPIO_SLP_S0_GATE for francka and felino
This commit configures the GPIO_SLP_S0_GATE pin for the francka and
felino mainboards, which are used to gate the SoC's SLP_S0# signal
for proper sleep state management.

- For francka, GPIO_SLP_S0_GATE is set to GPP_F23.
- For felino, GPIO_SLP_S0_GATE is set to GPP_D03.

The base fatcat board and its variants (fatcatnuvo, fatcatite,
fatcatish) do not utilize this pin, therefore it is defined as 0
(Not Connected).

Change-Id: I3150d4e60e4886fb7df7229eaf9efed59a69a707
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86984
Reviewed-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-03-25 14:43:00 +00:00
Subrata Banik
9f39d6ec5e mb/google/fatcat: Enable HAVE_SLP_S0_GATE for felino and francka
The fatcat variant now handles SLP_S0 pin functionality natively,
removing the need for HAVE_SLP_S0_GATE. However, other variants like
felino and francka boards still rely on this Kconfig option for proper
sleep state gating. This commit re-enables it for these specific boards.

TEST=Able to build and boot google/fatcat.

Change-Id: Ib7e683c3fee575245e8796638260f1fd8e6e5c34
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86983
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-25 14:42:50 +00:00
Subrata Banik
ef80ccbc43 mb/google/fatcat: Disable EC software sync for Microchip EC
This patch disables EC software sync specifically for the Microchip EC
on the fatcat/fatcat-ish board. This change selects
`GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC` for boards w/ microchip EC
(EC_GOOGLE_CHROMEEC_MEC) like fatcat and fatcat-ish.

This allows other fatcat variants (Nuvoton, ITE EC AIC) to potentially
enable EC software sync, which is not compatible with the Microchip EC.

BUG=b:368278795
TEST=Verified EC software sync functionality on a Nuvoton AIC fatcat
variant.

Change-Id: I33c82c05a810c0328de5513f452505f2d560cf91
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86982
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-03-25 14:42:39 +00:00
David Li
b8dced3f63 mb/google/nissa/var/guren: Add new DB config HDMI and HDMI+1A
1. Add DB_HDMI 6 on DB_USB fw_config
2. Add DB_HDMI_1A 7 on DB_USB fw_config

BUG=b:405229505
BRANCH=firmware-nissa-15217.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I0757a87eeb97e6fcf7fbf79392786ed69e4563bb
Signed-off-by: David Li <David_Li@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86853
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-03-25 08:35:22 +00:00
Sean Rhodes
6c728ba10d mb/starlabs/{starlite,starbook}_adl: Select FSP Type IOT
Select FSP Type IOT so that the FSP blobs from the Intel repo are
used, as the client ones are not available.

Change-Id: Iefe8abc9741f9a77b7d55168a0ac42bf607fdb7c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86832
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-24 16:15:04 +00:00
Matt DeVillier
5dd0181f7b cpu/x86/mtrr: Exclude ranges above 4G if temporary MTRRs exhausted
mtrr_use_temp_range() is used to temporarily cache the area(s) of RAM
to which the SPI flash is mapped, in order to speed up reading the
payload out of flash in preparation for execution. On systems with more
than 32GiB of RAM, there are not enough MTRRs available to map the
"permanent" regions below 4GiB, these temporary regions below 4GiB, and
any RAM above 4GiB due to fragmentation in the various ranges, as well
as limitations on the area covered by a single MTRR due to how they
are stored in the CPU registers.

As a workaround, if the number of MTRRs needed for the temporary map
exceeds the maximum available for  the system, retry calc_var-mtrrs()
with `above4gb` set to false.

TEST=build/boot starlabs/starbook_mtl with > 32GB RAM, verify temporary
MTRRs are able to be assigned via cbmem console log, and no boot delays
in payload loading/decompression due to the SPI flash not being cached.

Change-Id: Ia9f9a1537e7e0c2f7ce21067eceb1549d0f9ea5b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86941
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-03-24 14:54:30 +00:00
Keith Hui
1518b29e22 Documentation/mb/hp: Revise compaq_8300_sff flashing verbiage
Cleans up a nit identified by Martin when adding a very similar
variant.

Change-Id: Id19054c08643cf03b2afbfe4c8929ce9dacaea5c
Signed-off-by: Keith Hui <buurin@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86910
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-03-24 14:53:52 +00:00
Dolan Liu
4ca566343d mb/google/fatcat/var/felino: Remove BT offload and Keep PMC Pin NC
Since CNVI BT Offload is not yet ready on Pantherlake and HW already
soldered these 4 pads connection onto the board, therefore keep 
Pad Config NC_LOCK and BT offload disable.

BUG=b:397578690
Test=emerge-fatcat coreboot and make sure WIFI/BT works

Change-Id: I2d84e8cff499d462133143b12fa6335e76323926
Signed-off-by: Dolan Liu <liuyong5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86944
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-03-24 14:42:48 +00:00
Kapil Porwal
2d03c4c3c3 Revert "mb/google/var/trulo: Fix ISH firmare name"
This reverts commit 2da8d8affc.

Reason: The ISH firmware is renamed to trulo_ish.bin in the rootfs
itself hence this change is not required.

BUG=b:401138236
TEST=S0ix on Trulo and Truloti.

Change-Id: Ic21c9e2a28113dbd58ac992a380df601d058b16c
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86976
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-24 07:59:32 +00:00
Subrata Banik
cd5e6ef3df mb/google/fatcat/var/fatcat: Add Write Protect GPIO to cros_gpios
This enables the crossystem utility to access WP GPIO.

TEST= wpsw_cur in crossystem reads the correct gpio

Change-Id: Iedf4d73a85e4159b4236e13d6aa8ff5e6fe2fcb1
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86938
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-03-23 03:39:03 +00:00
Kapil Porwal
2da8d8affc mb/google/var/trulo: Fix ISH firmare name
Use the ISH firmware file name as in rootfs.

BUG=b:401138236
TEST=suspend_stress_test is successful.

Change-Id: I29fbb4d9f04c23c1499dff5ffeab93e70675ae51
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86974
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-23 03:37:43 +00:00
Matt DeVillier
cff3efa1e3 cpu/x86/mtrr: Return number of MTRRs used via calc_var_mtrrs()
calc_var_mtrrs() calculates the number of MTRRs needed for both WB and
UC default memory types, and returns the type that uses fewer MTRRs.
Modify it to return the number of MTRRs used as well, and if that
count exceeeds the number available on the system, throw an error
and skip calling prepare_var_mtrrs() as we know it will fail.

TEST=tested with rest of patch train

Change-Id: I2be7c5b3385731f4dc9ef62de15dcf6d4cceb5d3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86955
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-22 23:58:06 +00:00
Matt DeVillier
8da0d01ba0 cpu/x86/mtrr: Make 'above4gb' variable a bool
No need for this to be a signed or unsigned int.

TEST=tested with rest of patch train.

Change-Id: I409c04b928211e0e89eec324fdf3fa3997c73576
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86942
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-22 23:57:28 +00:00
Dolan Liu
c8069bc53f mb/google/fatcat/var/felino: Enable SD Function
Enable SD function based on SCH_MB_V3_A
RTD3 configured by HW design,PERST# and WAKE# pin connected to PCH
PLT_RST_N and Wake_PCH_N.

BUG=b:404409600
TEST=Boot OS from SD card and card detected works on OS

Change-Id: Ib7cb09edc3f07559f0013a3c554c97349e60f117
Signed-off-by: Dolan Liu <liuyong5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86945
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-22 23:56:07 +00:00
Hualin Wei
b1f0ee2c92 mb/google/nissa/var/pujjoniru: Add SLP_S0_GATE_R to control fp feature
According to the circuit schematic diagram, FPR feature need add
SLP_S0_GATE_R with or gate to control. Use gpp_a7 as SLP_S0_GATE_R
and add a variant specific S0ix hook to fill the SSDT table to control
FPR feature during suspend and resume respectively.

BUG=b:402629294
TEST=emerge-nissa coreboot. Test by EE, GPP_A7 pull down when do suspend
and pull high when resume.

Change-Id: I2334ef1e91776b292639f56b931f650f0661a69d
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86873
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: wen zhang <zhangwen6@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-22 23:53:46 +00:00
Matt DeVillier
a11a61907f mb/google/sarien: Add ACPI brighness controls
Add display panel info and ACPI includes to enable display backlight
control under Windows and MacOS.

TEST=build/boot Win11 on sarien, verify brightness controls functional.

Change-Id: Ic0595c8c977f1203424ab9d91343b8e98414f594
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86907
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-22 23:53:04 +00:00
Matt DeVillier
6364bd827c mb/google/sarien: Update VBT for both variants
Arcada and Sarien use different VBTs in the current stock ChromeOS
firmware, so use the correct VBT for each. Files taken from images
Google_Sarien.12200.222.0.bin and Google_Arcada.12200.103.0.bin.

Change-Id: I0b07fadd34f84889c8bb186a9a22ed1bce36d6b1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86906
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-22 23:52:56 +00:00
Matt DeVillier
28bb765726 drivers/intel/mipi_camera: Add platform_type enum for JSL
Taken from an ACPI dump from a Windows JSL device with MIPI camera.

Change-Id: Ibdb2b148ebfa85c3d4f5af2594b9b8847215e726
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86863
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-22 23:52:42 +00:00
Matt DeVillier
95cc23be9c mb/google/volteer: Mark fingerprint reader as hidden
Windows doesn't have / will likely never have a signed driver for the
FPR, so set the device status as hidden so it will not appear as an
unknown device in Windows Device Manager. Linux does not check/care
about the ACPI device status.

TEST=build/boot Win11 on google/volteer (drobit), verify FPR does not
show up as unknown device under Device Manager.

Change-Id: I4b5962638128c73e1e752cf8c5f40e12deb9d96c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86846
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-22 23:51:39 +00:00
Matt DeVillier
5e2448bbda mb/google/dedede: Enable GNA scoring accelerator
Enable the GNA PCI device, and include the ACPI stub so the OS driver
can attach.

TEST=build/boot Win10 on google/dedede (magpie)

Change-Id: I928bfe710e69bb43f177e3ce0c0077638233d44d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: CoolStar <coolstarorganization@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77579
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-22 23:51:23 +00:00
Sean Rhodes
7945a31e91 mb/starlabs/starbook/adl_n: Enable S3 and S4 GPIOs
These are used to control the rails, so enable them.

Change-Id: I3607dad4e57b99048aa7669c826fed046554333a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86920
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-22 01:04:20 +00:00
Naresh Solanki
e3c74ccd77 soc/amd/common/cpu: smbios: CPU frequency & voltage
Determine CPU frequency & voltage for use in smbios type 4 table.

Reference:
AMD PPR 57254 v1.59 Section 2.1.15 CPUID Instruction

TEST=Build for glinda SoC & verify output to reflect CPU frequency
& voltage.

Sample Output:
dmidecode -t
...
        Voltage: 1.2 V
...
        Current Speed: 2600 MHz
...

Change-Id: Ibd7c7f1e299a0a8d294e7e30ae3130faae16ae22
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86757
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-21 16:47:00 +00:00
Patrick Rudolph
bb66d07d41 soc/amd/common: Always use genoa SPI MMAP driver
Currently the generic x86 SPI flash mmap driver is being used when not
using DMA and when not on GENOA. It only works for ROM_SIZE of 16 MiB
or less and prevents boot when the ROM is bigger than that.

Use the genoa_poc SPI MMAP driver on all platforms by default as it
allows to use a ROM_SIZE greater than 16MiB. The newly introduced
Kconfig SOC_AMD_COMMON_BLOCK_SPI_MMAP is used for all platforms when
the SPI DMA driver is not in use.

This doesn't allow to access the whole SPI flash using the ROM2 MMIO
window, but it no longer prevents boot when the mainboard specifies
the correct SPI flash size in Kconfig.

TEST: Booted an AMD/birman+ with 64MiB ROM specified in Kconfig.
TEST: Booted on AMD/onyx with 32MiB ROM specified in Kconfig.

Change-Id: I39e33c71d27179212ddb1f5bcca4c5d4a39d47e4
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86618
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-21 15:54:46 +00:00
Patrick Rudolph
0f06d8e158 soc/amd/common/block/lpc: Add ROM2 and ROM3 helper functions
Add functions to return the position and size of the ROM2 and ROM3
MMIO windows that mmap the SPI flash. Starting from AMD Family 17h
Model 30h (Zen 2) the ROM3 BAR is available.

ROM3 is not supported on picasso or stoneyridge.

Document ID: 56780

TEST: Verified that both functions return sane values.

Change-Id: I10d4f0fe8a38e0ba2784a9839270d5dd3398d47a
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86583
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-21 15:44:25 +00:00
Patrick Rudolph
18136e6e2c soc/amd/genoa_poc: Add LPC device
Add the LPC PCI device to make sure common code builds.

Document ID: 55898

Change-Id: I52b129b47f98d88cad1d656dab4d4562c7ce3394
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86706
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-21 15:43:33 +00:00
Bora Guvendik
f56beb734c mb/intel/ptlrvp: Add DQ mapping and SPD for GCS board
This patch adds initial dq mapping and spd data for LP5 memory
parts for GCS board. This also configures memory based on the board id.

Memory - LPDDR5x
Vendor/Model - H58G66BK8BX067

BUG=b:398880064
TEST=Boot to OS on GCS board.

Change-Id: I268ddf2d4b6361d9dabb217c4246cb6cc0e2144c
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86834
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
2025-03-21 15:07:27 +00:00
Jeremy Compostella
3c7a984e6b soc/intel/adl: Correct comment on Energy Efficient Turbo setting
Commit 3ff85e5dcd ("soc/intel/alderlake:
Make Energy Efficient Turbo configurable") made the EnergyEfficientTurbo
User Product Data (UPD) adjustable, but it did not update the comment.

Change-Id: I34b8829efcfa3210950051e9b6d4d5a3c289ec93
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86932
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-21 15:07:12 +00:00
Jeremy Compostella
d19dd192db mb/google/fatcat: Add PTL-U Fast VMode Voltage Regulator settings
This commit introduces the missing Fast Voltage Mode settings for the
Voltage Regulator (VR) applicable to the Intel Panther Lake (PTL)-U 15W
System on Chip (SoC) on the Google Fatcat mainboard. The configurations
have been populated in accordance with the specifications outlined in
Intel's Panther Lake Power Map document (reference number 813278). These
settings leverage the Fast Voltage Mode capabilities of the CPU cores
(IA), Graphics (GT), and System Agent (SA).

The voltage regulator settings are for PTL-U; therefore, when the
coreboot image is used on a Panther Lake H SKU, some lower performance
could be observed due to the I_TRIP value being lower than what the
device could actually use.

BUG=b:357011633

TEST=As no Panther Lake-U (PTL-U) SKUs were available, smoke tests have
     been performed on Panther Lake-H (PTL-H). We verified that the
     Firmware Support Package (FSP) successfully submitted requests to
     the pcode firmware and that once the operating system was running,
     S0iX entry and exit were operational.

Change-Id: If98edb88d7488c0b863a8f1a9654d0273de567c6
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86622
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-21 15:06:55 +00:00
Johannes Hahn
e364d32667 mb/siemens/fa_ehl/variants/fa_ehl/spd: Add Nanya remove Micron SPD data
Micron SPD file was removed and Nanya-NT6AP512T32BV-J1I.spd was added
as it will be used for the final product.

Change-Id: Icbfb3a51fcb7c09bad9b70861fa58f5c957ce1ae
Signed-off-by: Johannes Hahn <johannes-hahn@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86423
Reviewed-by: Uwe Poeche <uwe.poeche@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-03-21 15:06:46 +00:00
Mark Hsieh
a3862fa8c3 mb/google/nissa/var/joxer: Include SPD for Hynix H58G56CK8BX146
Add joxer new supported memory part in mem_parts_used.txt.

DRAM Part Name                 ID to assign
H58G56CK8BX146                 5 (0101)

BUG=b:236576115
TEST=USE="project_joxer emerge-nissa coreboot"

Change-Id: I4045e895694b940748b5f221ebcabaa4be064b95
Signed-off-by: Mark Hsieh <mark_hsieh@wistron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86933
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-03-21 15:06:31 +00:00
Derek Huang
a4e771a836 mb/google/rex/var/deku: Set FORCE_PWR pin high by default
The Intel Hayden Bridge Re-timer drives I2C SDA low unexpectedly
which breaks the I2C communication between EC and TCPC and causes
multiple USB-C issues. This patch sets HBR FORCE_PWR pin high by
default to prevent the HBR from entering low power state to work
around the I2C issue.

BUG=b:386019934,b:380947618
TEST=Verify basic USB-C functions on Deku

Change-Id: I6eae8ad4ae1b22446b903fad276a3fbcd57ca865
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86852
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-03-21 15:06:07 +00:00
Naresh Solanki
5c35db4324 arch/x86/smbios: Enhance processor characteristics detection
Improve SMBIOS Type 4 table processor characteristic detection for
following:
PROCESSOR_MULTI_CORE
PROCESSOR_64BIT_CAPABLE
PROCESSOR_ENHANCED_VIRTUALIZATION
PROCESSOR_POWER_PERFORMANCE_CONTROL

Based on following reference:
1. AMD APM 24594 Appendix E (Obtaining Processor Information Via
the CPUID Instruction)
2. Intel SDM 325462 Table 3-17(Information Returned by CPUID
Instruction)

TEST=Build for Glinda SoC & Intel SPR & verified in 'dmidecode -t 4' output.
Sample output:
        Characteristics:
                64-bit capable
                Multi-Core
                Hardware Thread
                Execute Protection
                Enhanced Virtualization
                Power/Performance Control

Change-Id: I2a05724a791ef1df55aa3a759a2dc4b2c69222b3
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86755
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2025-03-21 15:05:41 +00:00
Sean Rhodes
b033367e61 soc/intel/meteorlake: Add support for USB wake up
Add the same wakeup method that Alder Lake uses to Meteor Lake.

Test=boot `starlabs/starbook/mtl` and check USB devices can wake.

Change-Id: I67da6af619db947ab4830fa2d9904f3e70fbfd21
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86628
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-21 15:05:23 +00:00
Yidi Lin
abd0f60298 soc/mediatek/common: Add rtc_mt6359p.h for SoCs using mt6359p RTC
MT8188, MT8192 and MT8195 use mt6359p RTC and share the same RTC
definitions. Move the definitions to rtc_mt6359p.h and remove duplicate
definitions.

BUG=b:391067089
TEST=build coreboot for asurada, cherry and geralt

Change-Id: I6e60148e1847171c6ab6b6dbee2fd706f3c3a47f
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86928
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-21 08:01:52 +00:00
Yidi Lin
e5e0621273 soc/mediatek/common: Move common API declarations to rtc_common.h
Move following function declarations to rtc_common.h.
- rtc_init()
- rtc_boot()
- rtc_get_frequency_meter()
- rtc_gpio_init()
- rtc_read()
- rtc_write()

BUG=b:388796896
TEST=build coreboot for all MediaTek platforms

Change-Id: I6210251a5cf3f80836d5f8a09c9ecfd133677b35
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86927
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-21 08:01:43 +00:00
Yidi Lin
a384d6e122 soc/mediatek/common: Change return type to void for all rtc_{read, write} APIs
The MediaTek RTC driver does not check the return value of rtc_read()
and rtc_write(). Additionally, the RTC driver of recent platforms uses
void for rtc_read() and rtc_write(). Therefore, change the return type
of all rtc_{read, write} APIs to void and add assert for debugging.

BUG=b:388796896
TEST=build coreboot for elm, kukui and corsola

Change-Id: Ie5168db0abd479e63279ac4c8d6f2c668d6234f0
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86926
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-21 08:01:30 +00:00
Yidi Lin
114af7f95f soc/mediatek: Refactor rtc_{read, write} for mt8173, mt8183 and mt8186
MT8173, MT8183 and MT8186 read and write RTC register via pwrap
interface. Since the implementations are the same, move those APIs to a
common file.

BUG=b:388796896
TEST=build coreboot for elm, kukui and corsola

Change-Id: I6c177e8c1b5dee72c18d765f19a48eb38db121f1
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86925
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-21 08:01:18 +00:00
Yidi Lin
55faa2532f soc/mediatek: Change rtc_bbpu_power_on to static function
BUG=b:388796896
TEST=compiled on kukui/asurada/cherry/corsola/geralt

Change-Id: Iea9a1aa5e19887513c537d0787f0434b51736c08
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86924
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-21 08:01:05 +00:00
Michał Kopeć
696391a763 mb/novacustom/mtl-h/ramstage.c: Set Port Reset FSP UPDs
Enable Port Reset on USB lanes corresponding to Type-C ports on the
mainboard.

Change-Id: Id9adc8827f3393e419118efda91c06c43ebb2ccb
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86843
Reviewed-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-20 19:40:28 +00:00
Johannes Hahn
f37f67f532 mb/siemens/fa_ehl/variants/fa_ehl: Remove I210 driver
Intel I210 Ethernet Transceiver is not used on the platform.
As there are dependencies in the mainboard code that references
functions defined by I210 code a new header (tsn_gbe.h) was added as it
contains the dependent function definitions. The corresponding TSN_GBE
driver will be used anyway on the platform. Thereby dependencies that
lead to a failed build should be resolved with this commit.

Change-Id: I413cb334ee06e3fc7183dc2621b6091f0d0b602b
Signed-off-by: Johannes Hahn <johannes-hahn@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86425
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
2025-03-20 19:39:38 +00:00
Kenneth Chan
2cb0b3d590 mb/google/rex/var/kanix: Add WIFI SAR table
Add WIFI SAR table for kanix.

BUG=b:399484050
BRANCH=firmware-rex-15709.B
TEST=emerge-rex coreboot chromeos-bootimage

Change-Id: Ie4c549ea507b2f823ce54a0e4476f4f82a037865
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86931
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-20 19:38:42 +00:00
Monika A
a47aa776a7 mb/google/brya/variants/trulo: Enable BT audio offload
vGPIO configs are configured to enable SSP2 for BT audio offload.

BUG=b:404741604
Test=Verified BT offload with HDA configuration

Change-Id: Ibce828e32f4640cb234591392bb6ebf0662105fc
Signed-off-by: Monika A <monika.a@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86929
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-03-20 19:38:34 +00:00
Sean Rhodes
7a0db71f35 mb/starlabs/*: Enable PMC IPC Mailbox for Alder Lake onwards
Introduce support for an IPC mailbox interface that lets the OS
exchange commands and responses with the Power Management Controller
(PMC) when needed.

Change-Id: Id6748b410b96dcf2a6e681c39dad2173be9bde3c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86916
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-20 19:38:12 +00:00
Sean Rhodes
653f191de9 mb/starlabs/starbook/adl_n: Adjust eSPI GPIO
Set the GPIO that enables eSPI to PLTRST to ensure that eSPI works
in S3.

Change-Id: I7da5cf493a676ea106ab94fcb377bc8a29b72990
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86919
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-20 19:37:50 +00:00
Sean Rhodes
2f65153602 mb/starlabs/starbook/adl_n: Disconnected unused GPIOs
This pins aren't connected to anything so adjust them accordingly.

Change-Id: I906e3b555e7ae802f6c14285ad8a5b98f43b2f36
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86918
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-20 19:37:44 +00:00
Sean Rhodes
80b597ed82 mb/starlabs/*: Enable HDA DSP
Enable the  High Definition Audio Digital Signal Processor (HDA DSP)
to improve audio processing capabilities.

Change-Id: I6fd44b40a635bc6bb9404978493761823088b0fa
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86917
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-20 19:37:37 +00:00
Sean Rhodes
c8e6ca1d81 mb/starlabs/*: Disable HPD for USB Type-C ports
Display-Alt Mode doesn't require HPD to be set here, so remove it.

Change-Id: I6e03c481584ff2b0bbb06d1d21f31fd0db4ecb27
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86915
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-20 19:37:31 +00:00
Sean Rhodes
3848debd52 mb/starlabs/starbook/mtl: Deselect FSP_TYPE_IOT
Deselect this so that a local copy of PR3 can be used.

Change-Id: I7efe35457186bca43af3e5b7557cbd3be6cecbb7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86913
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-20 19:37:09 +00:00
Sean Rhodes
2337ec2b57 mb/starlabs/starbook/mtl: Don't set rcomp config
Leave the rcomp config empty so that 0's are passed to FSP; this
allows FSP to figure out the correct settings to use.

Change-Id: Id7d44984c5ecfd0307d207d997248e88e1bd6eb4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86912
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-20 19:37:04 +00:00
Sean Rhodes
b2a0347cf4 mb/starlabs/starbook/mtl: Remove unnecessary op
The default for DQS interleaving is 0, so don't set it to 0.

Change-Id: I5f828aa3a28947c2f88eaf36cc7bc8ad68812cb2
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86911
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-20 19:36:59 +00:00
Sean Rhodes
57a3d2d183 mb/starlabs/starbook/mtl: Rename memory struct
`ddr5_spd_info` is a better name for DDR5 memory parameters.

Change-Id: If54718592950164569fccee6e8b7d53803310de0
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86904
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-20 19:36:49 +00:00
Ian Feng
b5dea9fa99 mb/google/fatcat/var/francka: Add Write Protect GPIO to cros_gpios
This enables the utility crossystem to access WP GPIO.

BUG=b:399511940
TEST= wpsw_cur in crossystem reads the correct gpio

Change-Id: Ided919920dff74c49ce2f718f845ae5a1117a89b
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86923
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-03-20 09:23:15 +00:00
David Wu
5ac7f635a5 mb/google/nissa/var/dirks: Correct PCIe RP 11 for WIFI7
According the schematic to correct PCIe RP 11 for WIFI7.

BUG=b:388117663
TEST=build pass and insure WLAN function work properly

Change-Id: I84e9fc707c23099d7cd7ea2d8acde1043325f06b
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86934
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-03-20 03:52:44 +00:00
David Wu
b9565f7817 mb/google/nissa/var/dirks: Enable PCIE port 7 for Ethernet
Enable PCIE port 7 using clk 3 for RTL8111H Ethernet.

BUG=b:388117663
TEST=build pass and insure LAN function work properly

Change-Id: I60c30f207aa92ba9f52da0b95b647307a73e9d13
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86930
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-20 03:52:37 +00:00
Jarried Lin
0f1a18999c Revert "soc/mediatek/mt8196: Delay 0.5ms after enabling PMIF SPMI SW interface"
This reverts commit c476c4d5b9.

Reason for revert: Previously in CB:85799, we added a 0.5ms delay as a
workaround to solve the boot hang issue of non-serial firmware. Now that
the root cause has been identified and fixed in CB:86859, we can revert
the workaround.

Original change's description:
CB:85799, commit c476c4d5b9 ("soc/mediatek/mt8196: Delay 0.5ms after
enabling PMIF SPMI SW interface")

BRANCH=rauru
BUG=b:341054056
TEST=Build pass.

Change-Id: I0abdcae95924c4d3197496c14d20502b08938d76
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86858
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-03-19 08:13:30 +00:00
Lu Tang
0b53a60d4d soc/mediatek/mt8196: Disable PMIF reset after enable
Currently, we don't explicitly disable the PMIF and SPMI resets after
the reset is completed, causing them to remain asserted for
approximately 0.5ms. That would cause the DUT to hang during PMIF
initialization (pmif_spmi_init) when using non-serial firmware.

To fix this issue, explicitly disable the PMIF and SPMI resets
immediately after the reset.

BRANCH=rauru
BUG=b:341054056
TEST=Build pass, non-serial firmware boot ok.

Signed-off-by: Lu Tang <lu.tang@mediatek.corp-partner.google.com>
Change-Id: Ic903ddd893470cd46dbfed9c3faa9c2a9e50c904
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86859
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-19 08:13:23 +00:00
Seunghwan Kim
cadfb07dbe mb/nissa/var/meliks: Update GPP_E7 strap configuration
Meliks uses GPP_E7 to determine the channel count of the RAM chip in
romstage, move its configuration to early_gpio_table from
override_gpio_table to be ready to use at that moment.

And early stage meliks boards didn't implement the GPP_E7 strap but
leaved it as NC. All of them used two channel ram chip, so add DN_20K
for them not to disable any memory channel. Otherwise, they might not
be able to boot since memory training will be failed due to the
incorrect memory channel information.

BUG=None
BRANCH=nissa
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: Icf71c3a1f24d3dcbff6ba5e646e9f805144add71
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86908
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-19 08:06:17 +00:00
Subrata Banik
86baf7aee6 drivers/intel/fsp2_0: Use consistent spacing in BMP color translation
This patch corrects spacing around assignment operators in the
`fill_blt_buffer` to comply with coding style guidelines, specifically
within the BMP color translation logic for 1/4/8/24/32-bit images.

Change-Id: Ia243d11568ec4c3d1108ff60289743919394aa32
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86860
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-19 03:47:22 +00:00
Matt DeVillier
af26e5e24e mb/google/guybrush/var/nipperkin: Mark fingerprint reader as hidden
Windows doesn't have / will likely never have a signed driver for the
FPR, so set the device status as hidden so it will not appear as an
unknown device in Windows Device Manager. Linux does not check/care
about the ACPI device status.

TEST=build/boot Win11 on google/guybrush (nipperkin), verify FPR does
not show up as unknown device under Device Manager.

Change-Id: I3eac631aebb26ec1c375b436e088be522d659338
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86847
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-19 01:03:06 +00:00
Bora Guvendik
05aa75bd3d mb/intel/ptlrvp: Add PTL-P RVP and GCS board IDs
This commit introduces new board ID definitions for PTL-P and GCS in the
PTLRVP mainboard code. The changes involve updating the `romstage.c` and
`memory.c` files to handle these new board IDs, ensuring that memory
configuration is correctly initialized based on the detected board
type.

Change-Id: Ia354db27a0124dcde2825e7a05a59ef5d539c4ef
Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86833
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-03-18 19:25:56 +00:00
Patrick Rudolph
0b03ecbc44 soc/amd/glinda: Fix PSP_SOFTFUSE_BITS
The PSP_SOFTFUSE_BITs were probably copy&pasted during initial
SoC bringup and need to be adjusted:

* Drop PSP_SOFTFUSE_BIT BIT28 as it causes PSP to hang.
* Drop PSP_SOFTFUSE_BIT BIT34 as it's not required.

This also moves coreboot closer to the UEFI reference firmware.

Document #55758 Rev. 2.04
TEST: Booted on amd/birman_plus with default PSP_SOFTFUSE_BITS.

Change-Id: Ic7b2b0ac01fe0ac0ed2535254f242a8068f9b02a
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86840
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
2025-03-18 19:25:24 +00:00
Yunlong Jia
286eff6833 mb/google/nissa/var/gothrax: Tune SX9324 P-sensor configuration
Update SX9324 register settings based on tuning value from SEMTECH.
- Adjust register reg_prox_ctrl0/reg_prox_ctrl6/ph01_proxraw_strength/ph23_proxraw_strength

BUG=b:295109511
BRANCH=None
TEST=Check register settings and confirm P-sensor function can work.

Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Change-Id: I1c27360de2d711810abdfd4ec95629ec7bba969b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86878
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-18 19:25:00 +00:00
Sean Rhodes
025a5e8629 mb/starlabs/starbook/mtl: Don't configure the MMIO size
Don't set this, so FSP will use the default auto setting, which
behaves better with various memory sizes.

Change-Id: I4d0bfd19af08ec127065f7ad5aaa51cb7e0ca2ac
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86905
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-18 08:48:18 +00:00
Sean Rhodes
c12c023249 mb/starlabs/starbook/mtl: Enable HDA DSP
Enable the  High Definition Audio Digital Signal Processor (HDA DSP)
to improve audio processing capabilities.

Change-Id: Ifcd107f0c889fc5210bdb8578d1df27b9e4414ff
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86903
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-18 08:48:14 +00:00
Sean Rhodes
fad6772611 mb/starlabs/starbook/mtl: Enable PMC IPC Mailbox
Introduce support for an IPC mailbox interface that lets the OS
exchange commands and responses with the Power Management Controller
(PMC) when needed.

Change-Id: I31ba44dc6fb848dda94321e1c17e64ddf6abe637
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86902
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-18 08:48:09 +00:00
Sean Rhodes
d6a4f4fb80 mb/starlabs/starbook/mtl: Configure V GPIOs to work in S3
Configure all the controlling GPIOs to IOSTANDBY_IGNORE to
ensure they work in S3.

Change-Id: I1b34793a6437d2e489fca90be1f5d3e13ec7d559
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86901
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-18 08:48:05 +00:00
Sean Rhodes
f811b1bb0e mb/starlabs/starbook/mtl: Don't configure eSPI GPIOs
Don't configure the eSPI GPIOs as they are configured automatically on
reset.

Change-Id: Icdd6e916571bad33404fa91a1e288e0a18d7778b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86900
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-18 08:48:00 +00:00
Sean Rhodes
a675835326 mb/starlabs/starbook/mtl: Adjust eSPI GPIO
Set the GPIO that enables eSPI to PLTRST to ensure that eSPI works
in S3.

Change-Id: Ibee64ccd9f21f33b764aacc4f97404ba56e5102e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86899
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-18 08:47:56 +00:00
Sean Rhodes
cc6c6e10d3 mb/starlabs/starbook/mtl: Set Power Delivery GPIOs to ignore standby
Set the PMC alert and SML Clock/Data pins to IOSTANDBY_IGNORE to ensure
that they're still operational in S3.

Change-Id: I1dd7a9410211c50cc171645f6db82b15c52ff7ce
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86898
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-18 08:47:51 +00:00
Sean Rhodes
cba1aeae71 mb/starlabs/starbook/mtl: Disconnect unused GPIOs
GPP_C03 and GPP_C04 are not used for the StarBook, so disconnect them.

Change-Id: I5e2c3da1198f064800f6f897583e507b6ae8a656
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86897
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-18 08:47:41 +00:00
Sean Rhodes
f6220f72cf mb/starlabs/starbook/mtl: Disable HPD for USB Type-C ports
Display-Alt Mode doesn't require HPD to be set here, so remove it.

Change-Id: I2a22519dcf87e77fabefe0d2a392808d9b449872
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86896
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-18 08:47:35 +00:00
Sean Rhodes
ebe3501828 mb/starlabs/starbook/mtl: Enable DDC for DDIA
Enable DDC so that GOP can read the backlight brightness from EDID. This
avoids FSP repeatedly trying and failing to read it, and also stops the
backlight brightness not being restored correctly in Linux.

Change-Id: Icd292ee175a14799fe08c0989ca3fdccd5ccc123
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86895
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-18 08:47:30 +00:00
Sean Rhodes
fb52bc8b50 mb/starlabs/starbook/mtl: Correct GPIO references
The table included 3 entries for GPP_F00, so adjust them to the
correct pads.

Change-Id: Ic8d3a2e742f01231d1a4b777879da0b310085efe
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86894
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-18 08:47:26 +00:00
Matt DeVillier
35933e40be Revert "soc/intel/jasperlake: Add CrashLog implementation for Intel JSL"
This reverts commit 07dd73c921.

Jasperlake FSP does not properly support the crashlog feature, and
enabling it results in several issues (increased boot time, issues
with USB device detection).

Change-Id: I5598b40321b3ca15a48ac6eff64a85323d55939d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86844
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
2025-03-17 20:21:04 +00:00
Matt DeVillier
0c60652a51 mb/google/dedede: Deselect INTEL_CRASHLOG
Jasperlake FSP does not properly support the crashlog fearture, and
selecting this option significantly impacts boot time negatively by an
order of magnitude (~10s vs ~1s) and breaks USB detection in edk2
payload; inability to properly enumerate USB devices is almost
certainly the cause of the increased boot time.

TEST=build/boot google/maglia, verify boot time normal (~1s) and USB
detection working as expected with multiple USB devices connected.

Change-Id: I53be4befe9a04bdaece21f40f93af6599baa7e0b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84359
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
2025-03-17 20:20:55 +00:00
Matt DeVillier
ba42b42cda soc/intel/skylake: Use common ACPI code for HECI
Use the newly-created ACPI device in common/acpi, and adjust the
SoC ACPI name for the CSE/HECI device to match.

Change-Id: Ie4d9a480152fabb93d784b338c2846feba874f4b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86817
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-03-17 20:20:39 +00:00
Matt DeVillier
7b4110b1bf soc/intel/cannonlake: Use common ACPI code for SRAM and HECI
Use the newly-created ACPI devices in common/acpi, and adjust the
SoC ACPI name for the CSE/HECI device to match.

Change-Id: Id7b68e7c5ed554639dc14e837e311552c3ff92f0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86815
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-03-17 20:20:33 +00:00
Matt DeVillier
f160b6f66e soc/intel/tigerlake: Use common ACPI code for SRAM and HECI
Use the newly-created ACPI devices in common/acpi, and adjust the
SoC ACPI name for the CSE/HECI device to match.

Change-Id: I3a4b122b206cb1fc98e693973f2aeb28e8b2ff22
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86814
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-17 20:20:26 +00:00
Sean Rhodes
264134840c mb/starlabs/*: Enable Energy Efficient Turbo for all ADL boards
This reduces power consumption so enable it. For example,
`starbook/adl_n` idles at 5.16W with this disabled, but 4.6W with
it enabled.

Change-Id: I5b6fd4853aba0dd4e9f9f45be4b43efff375dfad
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86867
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-17 15:37:39 +00:00
Sean Rhodes
3ff85e5dcd soc/intel/alderlake: Make Energy Efficient Turbo configurable
Hook up Energy Efficient Turbo to devicetree so it can be configured.
The default value of 0 will ensure this doesn't change existing boards.

Change-Id: I58a9877371ec66e71cee15aced2413a282416b5c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86855
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-17 15:37:33 +00:00
Sean Rhodes
06f3c07a25 soc/intel/alderlake: Correct setting of PchUnlockGpioPads
This should be set to the opposite of lockdown_by_fsp.

Change-Id: I9e3c8f03ca14d2cb28c3f2f9bd74618d81e53d2c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86854
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-17 15:37:30 +00:00
Filip Brozovic
b4d311df6d soc/intel/cmn/block/smbus: Keep TCO WDT timeout flag if ACPI_WDAT_WDT=y
The TCO SMI handler clears the watchdog timeout flag unconditionally.
Since the system is only rebooted if the flag is already set and the
watchdog timer expires again, this means that the reboot never occurs.
This change preserves the timeout flag if CONFIG_ACPI_WDAT_WDT is
enabled, otherwise the behavior remains unchanged.

TEST=Build CB with CONFIG_ACPI_WDAT_WDT=y and
CONFIG_USE_PM_ACPI_TIMER=y, trigger the watchdog under Linux
with "wdctl -s 5 && cat > /dev/watchdog" and wait approximately 10
seconds (two watchdog periods) for the watchdog to reboot the system.

Change-Id: I2d35a8f8bcbcc3aaaadcc936fab028641dfd6e2c
Signed-off-by: Filip Brozovic <fbrozovic@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84875
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-17 13:37:10 +00:00
Michał Kopeć
9a4c6710ab soc/intel/cmn/blk: cse_enable_ptt: Wait up to 5 s for FW Init Complete
FW Init Complete is a prerequisite for sending the FW FEATURE SHIPMENT
TIME STATE OVERRIDE message. Unfortunately, on some platforms such as
Lenovo ThinkCentre M700 Tiny, it takes too long for the flag to be set,
so enabling PTT fails.

Wait up to 5 seconds for the FW Init Complete to be set instead of
failing immediately.

On M700 Tiny with debug level set to ERROR, we have to wait nearly 2
seconds:

    [EMERG]  HECI: CSE took 1900 ms to complete FW init

Because FW Init Complete is not required for getting the current feature
enablement state, only for setting, move the FW Init Complete check to
after we've determined if we actually need to change the state. This
avoids needlessly increasing boot time.

Reference: Intel ME 11.x BIOS Specification, #549522, section 6.3.15

Change-Id: Ib6de170f3f998273bec437848faa49652f013f45
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84862
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-17 13:36:42 +00:00
Michał Kopeć
89cdd8d491 mb/lenovo/m900_tiny: disable CLKREQ for SSD and Wi-Fi slots
It's been observed that at least on some M700 Tiny boards, CLKREQ
signals aren't wired as per the schematic. Disable them and configure
their pads as per original Lenovo UEFI.

This change fixes Wi-Fi card detection on M700 Tiny.

TEST=Boot M700 Tiny with AX200 card in Wi-Fi card slot and boot to
Windows 10. Check that Wi-Fi works correctly.

Change-Id: I5b26937cd4a6937b516304fefad9186b9e1cdc76
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84813
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-17 13:35:34 +00:00
Martin Roth
cab1670728 Docs: Add 25.03 release notes template
Change-Id: I513f58c15f7fa34658d6571a6f55852c60331b81
Signed-off-by: Martin Roth <gaumless@gmail.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86800
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-03-16 20:14:00 +00:00
Matt DeVillier
cfad6abdc6 mb/google/volteer: Select IOM_ACPI_DEVICE_VISIBLE
Needed for coolstar's IOM/TCSS drivers under Windows.

TEST=build/boot Win11 on google/drobit

Change-Id: I136ced08f977289a41ba424d5379984d4bf6038c
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86823
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-16 19:57:24 +00:00
Matt DeVillier
7708a94709 mb/google/brya: Select IOM_ACPI_DEVICE_VISIBLE
Needed for coolstar's IOM/TCSS drivers under Windows.

TEST=build/boot Win11 on google/banshee

Change-Id: I682362290fa90274d06a6541211f5a22e8115503
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86821
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-16 19:57:17 +00:00
Matt DeVillier
3dd72a36e8 soc/intel/{adl,mtl,ptl,tgl}: Make IOM ACPI device visibility configurable
Coolstar's Windows drivers require the IOM device to be visible to the
OS, so add a Kconfig to control this, which mainboards will select in
subsequent patches.

TEST=build/boot Win11 on rex/screebo, verify USB4 drivers functional.

Change-Id: I00ef9703179d87b7b476ef18d8d02fcafa9e14ab
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86792
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-16 19:57:08 +00:00
Elyes Haouas
92d77dd2e3 spd_bin.h: Deduplicate SPD definitions
Use already defined macros in `spd.h`, ddr3.h`and `ddr4.h`.

TEST=Built google/cyan (Cyan) with BUILD_TIMELESS=1, no change in output
ROM.

Change-Id: I727aa38236ad97f9c529389fdb7d7d11c1db08d0
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82314
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-16 05:25:07 +00:00
melongmelong
f3e78b076d Makefile: Add ctags target in Makefile
Add 'ctags' target.
we can see that 'make help' says
...
  ctags / ctags-project ...
...
but, Makefile have only 'ctags-project' target.

Change-Id: Ie554892bcb072d773babf745d7756630327d2975
Signed-off-by: melongmelong <knw0507@naver.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85936
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-15 21:58:20 +00:00
Lawrence
19deb5e5f8 src/soc/intel/adl: Add EnableTcssCovTypeA and MappingPchXhciUsbA
Add EnableTcssCovTypeA and MappingPchXhciUsbA to repurpose the
integrated USB Type-C subsystem (TCSS) ports to USB3.2 Gen2x1 Type-A.
For example, to enable port 1 to be configured as USB Type-A, add the
following code in overridetree.cb:
register "enabletcsscovtypea[1]" = "true"
register "mappingpchxhciusba[1]" = "2"
AP log:
[SPEW ]  EnableTcssCovTypeA[0]= 0x00000000
[SPEW ]  MappingPchXhciUsbA[0]= 0x00000000
[SPEW ]  EnableTcssCovTypeA[1]= 0x00000001
[SPEW ]  MappingPchXhciUsbA[1]= 0x00000002
Reference document:
742076_ADL_TypeA_Repurpose_TCSS_Ports_USB3p2_Gen2x1_TWP_Rev1p2.pdf

BUG=b:400809281
TEST=Able to build and boot google/Riven

Change-Id: I3684fdf23706cec86c6da2b409aa4fbb33f4ec2e
Signed-off-by: Lawrence <lawrence.chang@intel.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86781
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-15 14:57:12 +00:00
Matt DeVillier
95829131c7 soc/intel/pantherlake: Use common ACPI code for SRAM and HECI
Use the newly-created ACPI devices in common/acpi, to align with other
client SoCs.

Change-Id: Icc5da0b820101b3c651ed59a47aeab37440a6996
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86816
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-03-14 16:28:19 +00:00
Matt DeVillier
0586e0eb0f soc/intel/alderlake: Use common ACPI code for SRAM and HECI
Use the newly-created ACPI devices in common/acpi, and adjust the
SoC ACPI name for the CSE/HECI device to match.

Change-Id: Iabd9dec2f6838c1dc4b1cad924ceb62c992f89c0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86813
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-03-14 16:28:04 +00:00
Matt DeVillier
e22ff257d6 soc/intel/mtl/acpi: add entries for HEC1 and SRAM to DSDT
HEC1 and SRAM are defined in src/soc/intel/meteorlake/chipset.cb:

device pci 16.0 alias heci1 on  end
device pci 14.2 alias pmc_shared_sram off end

Add entries for these devices in DSDT to prevent "AE_NOT_FOUND" errors
in the kernel dmesg log, and add entries to soc_acpi_name() to ensure
that these names are returned during acpi_device_path() calls.

TEST=Build/boot Linux 6.x on screebo to confirm errors are not seen.

Change-Id: Id79054d2cb56daae238ac562b7b6c204926cdced
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86797
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-03-14 16:27:49 +00:00
Matt DeVillier
8daa9eed86 soc/intel/meteorlake: Add missing ACPI device path name
The ACPI device path name handler for the fast SPI device is missing,
so add it to ensure that the names is returned from  acpi_device_path()
calls.

TEST=Build/boot Win11 on screebo

Change-Id: Ibf5ab3bf6694875c357b999fe871a5b16f89ec62
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86796
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-03-14 16:27:33 +00:00
Matt DeVillier
55f4f86f0c soc/intel/cmn/blk/acpi: Add ASL stubs for HECI and SRAM devices
These can be used by most/all client SoCs

Change-Id: I6622fa34f014bbe9fdd95a996332dfe5a07a92fb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86802
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-03-14 16:27:23 +00:00
Matt DeVillier
a98514188b soc/intel/tigerlake/acpi: Fix scope of IOM ACPI device
Since the IOM region is outside of the PCH MMIO address space, Windows
will report a device error for the IOM since the ACPI scope
is under PCI0, but the assigned resource range is not inside an
address range for any of PCI0's resources.

Correct this by setting the scope of the IOM device to just _SB.

TEST=build/boot Win11 on google/drobit, verify USB-C ports functional
and coolstar's IOM/TCSS drivers loaded without error.

Change-Id: Ia089e723ccac5508cfaffc0204815b80bb209dd0
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86819
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-14 16:26:11 +00:00
Matt DeVillier
49a5473656 soc/intel/alderlake/acpi: Fix scope of IOM ACPI device
Since the IOM region is outside of the PCH MMIO address space, Windows
will report a device error for the IOM since the ACPI scope
is under PCI0, but the assigned resource range is not inside an
address range for any of PCI0's resources.

Correct this by setting the scope of the IOM device to just _SB.

TEST=build/boot Win11 on google/banshee, verify USB-C ports functional
and coolstar's IOM/TCSS drivers loaded without error.

Change-Id: I7e61341dd9b7548a079a1ce3b88025f6391f3203
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86818
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-03-14 16:25:50 +00:00
Cliff Huang
7322906fed drivers/intel/touch: Add Intel Touch Controller driver
This commit introduces a driver for the Intel Touch Controller (THC),
which supports HID-over-I2C and HID-over-SPI protocols, as well as
touch devices. The driver generates ACPI objects and publishes data
into the Secondary System Descriptor Table (SSDT) to facilitate
interaction with the touch hardware.

The driver implementation covers the following ACPI objects:
- _DSM (Device Specific Method)
- _CRS (Current Resource Settings)
- _STA (Power resource with Status), including _ON and _OFF methods
- _DSD (Device Specific Data) for THC-I2C
- _RST (Device Reset) for THC-SPI

Template device configuration for the following supported devices:
- Wacom: SPI touchscreen only
- Elan: both SPI and I2C touchscreen
- Hynitron: I2C touchpad only

It also includes template configurations for supported devices such as
Wacom (SPI touchscreen), Elan (SPI and I2C touchscreen), and Hynitron
(I2C touchpad). These configurations are divided into device-specific,
SoC-specific, and motherboard (MB)-specific details.

For SoC-specific configuration, the driver implements functions like
`soc_get_thc_hidi2c_info` and `soc_get_thc_hidspi_info`, which should
be defined in the SoC's `chip.c` file. Device-specific configurations
are provided by the driver for supported devices. For unsupported or
generic devices, the required information is expected to be provided
via the device tree. MB-specific information, such as LTR (Latency
Tolerance Reporting) values and speed, must be provided in the device
tree.

BUG=none
TEST=Configure the DRIVERS_INTEL_TOUCH option on a motherboard that has
the necessary touch configurations. Verify that the THC ACPI tables are
correctly generated in the SSDT.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Change-Id: Ibcd2a75a41460dee67aebdc61ee9e85fa98b71bf
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85198
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-14 16:25:19 +00:00
Matt DeVillier
ef855f19f0 soc/intel/meteorlake: Fix logic for FSP repo use
Commit a7a76b0dee ("soc/intel/meteorlake: Hook up FSP repo for IOT")
added logic to use the FSP repo for IOT boards, but in doing so
broke the automatic selection of FSP_USE_REPO when HAVE_INTEL_FSP_REPO
was selected. Fix this by removing the override for FSP_USE_REPO and
selecting HAVE_INTEL_FSP_REPO when FSP_TYPE_IOT is selected.

TEST=build/boot starlabs/starbook_mtl with IOT FSP binaries/headers

Change-Id: Iad946a23c569e27cafa35ce2e6fefd6be1d90666
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86845
Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-03-14 16:25:00 +00:00
Filip Brozovic
e6c6606884 Revert "soc/intel/alderlake: Guard PchPcieClockGating & PchPciePowerGating UPDs"
This reverts commit 491afc3cc7.

Reason for revert: Starting with FSP MR6, the 'PchPcieClockGating' and
'PchPciePowerGating' UPDs are also available on ADL-N.

Change-Id: I0134737cfb956163ea6e722cd0a3f39dffbaa13b
Signed-off-by: Filip Brozovic <fbrozovic@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86680
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-03-14 16:24:49 +00:00
Tongtong Pan
925eacb50f mb/google/fatcat/var/felino: Modify the gpio.c to poweroff
Modify the config for GPP_F09 to poweroff successfully.

BUG=b:388202483
TEST=Build felino and poweroff under the OS and the dut can poweroff successfully.

Change-Id: I1c83d230be7dbce9f9ad0b55f86d748e2de3565e
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86808
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-03-14 16:23:53 +00:00
Tongtong Pan
06b818aa48 mb/google/fatcat/var/felino: Add fw_config probe for felino
Use fw_config to probe WIFI,AUDIO,STORAGE and PDC_CONTROL Type.

BUG=b:388982526
TEST=emerge-fatcat coreboot

Change-Id: I97edbb2d9b8fb29a18a3f701d16d3a7818716581
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86780
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-14 16:23:39 +00:00
Tim Crawford
73a3d621c0 mb/system76/rpl: bonw15: Update GPIOs
Go through the schematics and update GPIOs for the unit. In particular,
explicitly mark unconnected pins and pins without placed components as
not connected.

Change-Id: I5a81115850d7bf3ecabeae29058e86cea51ac390
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84149
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-13 20:40:09 +00:00
Subrata Banik
4988f447d7 soc/intel/pantherlake: Correct GPIO Community 3 PIN mapping
This commit rectifies a PIN mapping error in GPIO Community 3,
introduced by the removal of CPUJTAG PADs from the static ACPI entry.

CPUJTAG PADs are reserved for SoC debugging and should not be
configured by kernel drivers. To ensure accurate PIN mapping for
subsequent GPIO banks, this patch designates the CPUJTAG PAD range as
"RSVD" (Reserved) and exposes the corresponding GPIO PIN numbers. This
allows other GPIO banks within Community 3 to correctly adjust their
offsets.

Problem:

Prior to this fix, GPP_H0 was incorrectly assigned PIN 0 within GPIO
Community 3, deviating from the EDS.

Solution:

By marking the CPUJTAG range as RSVD, GPP_H0 is now correctly mapped
to PIN 15, aligning with the EDS definition.

Changes in details:

- Corrected the GPI3 to accurately calculate the GPIO PINs.
- Renamed CPUJTAG to RSVD (Reserved) and adjusted related definitions.
- Updated GPI3 device to reflect the RSVD group, including adding
  subproperties and correcting group counts.
- Modified gpio_defs.h and gpio_soc_defs.h to reflect the RSVD name
  change and pad count.

Change-Id: I9f32b54a8a0218cd993f01ccf5f0bb158877766a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86825
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 19:23:11 +00:00
Subrata Banik
e6a89935e9 ec/google/chromeec: Override Lid State for Factory Netboot
This patch modifies the get_lid_switch() function to allow faking the
lid switch state when the GBB_FLAG_DISABLE_LID_SHUTDOWN Kconfig option
is enabled.

When GBB_FLAG_DISABLE_LID_SHUTDOWN is enabled, the function will
always return 1 (lid open), bypassing the actual lid switch state
retrieval from the Embedded Controller (EC).

This functionality is specifically designed to facilitate factory
processes, such as netboot image downloads, where devices need to
remain operational regardless of the lid's closed state. This prevents
intended shutdowns triggered by a closed lid during manufacturing and
testing.

By setting GBB_FLAG_DISABLE_LID_SHUTDOWN, we override the actual
lid status with a simulated LID status is open, which is a
prerequisite for display initialization.

w/o this patch:

```
[ALERT]  Graphics hand-off block not found
...
[INFO ]              NAME |       PORT | POLARITY |     VALUE
[INFO ]               lid |  undefined |     high |       low
```

w/ this patch:

```
[INFO ]              NAME |       PORT | POLARITY |     VALUE
[INFO ]               lid |  undefined |     high |      high
...
[INFO ]  framebuffer_info: bytes_per_line: 7680, bits_per_pixel: 32
[INFO ]    x_res x y_res: 1920 x 1200, size: 9216000 at 0xd0000000
```

BUG=b:333982806
TEST=Verified lid switch behavior with and without
`GBB_FLAG_DISABLE_LID_SHUTDOWN` enabled.

Change-Id: I89d506ab50b421b93be13b0e5e36a7ef1247e2b9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86807
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 19:23:00 +00:00
Subrata Banik
d9d06f7d79 soc/qualcomm/cmn/qclib: Replace magic number with BIT() macro
Replace the magic number 0x00000001 with the BIT(0) macro for
QCLIB_GA_ENABLE_UART_LOGGING. This improves readability and
maintainability by clearly indicating that a specific bit is being set.

TEST=Able to build google/herobrine.

Change-Id: Ie425a68c6721343ca53eb883d6278decca92bcad
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86774
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-03-13 19:22:52 +00:00
Michał Kopeć
042e3ebd34 mb/novacustom/mtl-h/variants/igpu/hda_verb.c: Add all HDA verbs from stock FW
Add remaining HDA verbs from stock Clevo firmware 1.07.02.

Change-Id: Ibd6db007f40670825f652066fc2fba6978f6a73b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86789
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 18:14:19 +00:00
Michał Kopeć
3dae427ac5 mb/novacustom/mtl-h/var/igpu: Add power limits
Set PL4 to the wattage of the included AC adapter. The EC will override
this limit at runtime, if necessary (for example, if a weaker USB-PD
power supply is connected).

PsysPmax is set according to the board schematics (RPsys resistor),
which ensures that the Psys signal generated by the battery charger and
interpreted by SOC VRs is interpreted correctly and that Psys power
limits applied by the EC work as expected.

Change-Id: I56e9c20556553940c308150f7e470628f56c3991
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86752
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2025-03-13 18:14:00 +00:00
Michał Kopeć
d0a28d4c97 mb/novacustom/mtl-h/var/igpu: Fix HDMI DDI lane index
The DDI lane number in `enum ddi_ports` is 1-based, while the TCPx
display link numbers from the SoC are 0 based. Fix the off-by-one error
and set the HDMI DDI lane index to the correct value of 3.

Change-Id: I861e58150ebe8b97cf3e9be81c2bd5494eff600b
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86751
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 18:13:53 +00:00
Michał Kopeć
b2ffe5ee68 mb/novacustom/mtl-h/var/igpu/data.vbt: Disable secondary display feature
Currently, to make sure that the UEFI setup menu stays legible on HiDPI
displays, the VBT has the Fixed Display feature enabled with the
resolution set to 1920x1200.

If the secondary display feature is also enabled, and a monitor with
resolution lower than 1920x1200 is connected, the result is that neither
the internal nor external display is initialized.

Disable the secondary display feature to ensure that the internal
display keeps working regardless of any connected external displays.

Change-Id: I47630f5ce9573ed0ae86621252a04d41a92d40cc
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86713
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 18:13:44 +00:00
Michał Kopeć
466696bfb0 mb/novacustom/mtl-h: Add iGPU variant
Split V5x0TU into a separate variant of the mtl-h baseboard. This is in
preparation to add support for the V5x0TNx variants, which is a
different variant of the board, with a discrete NVIDIA GPU.

Change-Id: I4f8215ace6b7a394f8d196be3f81c33b2cb4e9ec
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86709
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 18:13:10 +00:00
Michał Kopeć
cc29db483f mb/novacustom/mtl-h/devicetree.cb: Set SOC aux override
Set TCSS SOC Aux orientation override as per the mainboard schematic.

Change-Id: I45903f26a3f724e6bd82645b0fe3d1e919a84833
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86697
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 18:13:03 +00:00
Michał Kopeć
1f430614fd mb/novacustom/mtl-h/devicetree.cb: Move USB cfg to xhci device nodes
Move all USB configuration from the parent SOC node to the appropriate
XHCI controller device nodes in the devicetree.

Change-Id: Ib702b132698bcb71b4e7b6fa51c6a428bfe77252
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86708
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2025-03-13 18:12:02 +00:00
Michał Kopeć
e63e54e0e9 mb/novacustom/mtl-h/devicetree.cb: Disable detect flag on PCIe CLKREQs
Probing the clock request signal is not required on this board and with
the SSD models the board is sold with.

Change-Id: I51b0d0f2b390912cf8fff45d736e317de31863ed
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86694
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
2025-03-13 18:11:45 +00:00
David Wu
b9759ba550 mb/google/nissa/var/riven: Modify eMMC DLL tuning value
Riven cannot boot into OS from 2nd source eMMC, show message
"Something went wrong booting from internal disk" and stop in depthcharge.
According to Intel provides eMMC DLL delay patch that tuning on each
riven different eMMC system to modify eMMC DLL tuning value to improve initialization reliability.

BUG=b:401663746
TEST=Cold reboot stress test over 2500 cycles

Change-Id: Ib36650f2a8fca486c8c89fb9f2ef42452b7a4cfa
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86778
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Simon Yang <simon1.yang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 18:11:26 +00:00
Sean Rhodes
51d7881dd5 mb/starlabs/starbook/mtl: Select FSP Type IOT
Select FSP Type IOT so that the FSP blobs from the Intel repo are
used, as the client ones are not available.

Change-Id: I95ab68d1b5bb73738b5b6f9461d2b7771e75f17a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86831
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-13 14:26:53 +00:00
Matt DeVillier
6d66965995 soc/intel/meteorlake: Condition DISPLAY_FSP_VERSION_INFO_2 on !FSP_USE_REPO
The MTL FSP headers in github do not include FirmwareVersionInfo.h, so
DISPLAY_FSP_VERSION_INFO_2 needs to be deselected when using FSP
binaries from the repo.

TEST=tested with subsequent patch

Change-Id: I53dae842f545b3d4fe34ded57916f33716777a7d
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86835
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 14:26:49 +00:00
Robert Chen
151e991065 mb/google/dedede/var/drawcia: add memory NT6AP512T32BL-J1
Generate SPD id for Nanya memory NT6AP512T32BL-J1

BUG=b:401424949
TEST=go run ./util/spd_tools/src/part_id_gen/part_id_gen.go JSL lp4x \
src/mainboard/google/dedede/variants/drawcia/memory/ \
src/mainboard/google/dedede/variants/drawcia/memory/mem_parts_used.txt

Change-Id: Icb1a6894307bd27c7d5ea25adb6cf0c8514c661c
Signed-off-by: Robert Chen <robert.chen@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86764
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-13 01:27:17 +00:00
Felix Singer
d6caf33c6f util/scripts/update_submodules: Rework default branch detection
Instead of guessing the default branch by iterating over a list of
branch names, use the branch that is configured as default by upstream.

Change-Id: I628b5a4e5228870c54719577e32dae169b0ceb2e
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86803
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
2025-03-12 15:21:04 +00:00
Sean Rhodes
05ad11216c mb/starlabs/starbook/mtl: Correct comments for UART GPIOs
Change-Id: I894d871acfb3f21114d18b26c3897a17358d3822
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86842
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-12 13:33:49 +00:00
Matt DeVillier
e91e0d0ea4 Revert "mb/starlabs/byte: Update the VBT from 249 to 251"
This reverts commit aeb04808c7.

This fixes HDMI output with FSP MR5.

Change-Id: I277c802544b78677cce2e059286feba79bb8bf5c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86827
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-12 13:33:35 +00:00
Bincai Liu
f864a192e3 soc/mediatek/mt8196: Support 512 bytes EDID
Refine dptx_get_edid function to read extension edid to bring up 2.8k
120hz OLED panel.

BRANCH=rauru
BUG=b:392040003
TEST=check edp training pass and show log:
EQ training pass

Change-Id: If35782950ae02d892ea697580fa4991595c21533
Signed-off-by: Bincai Liu <bincai.liu@mediatek.corp-partner.google.com>
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86779
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-12 12:45:48 +00:00
Yidi Lin
abec7ab276 lib/edid: Support DisplayID 2.0 extension
Add support for DisplayID 2.0 extension. Right now, the implementation
only supports 'Type VII – Detailed timing' data block decoding.

Reference: 'DisplayID v2.1a.pdf'

BUG=b:392040003
BRANCH=rauru
TEST=Check FW screen on a panel than supports Display ID 2.0

Change-Id: I1b8a5ab3ada5c8eacc7b6dde3d33ec72b3790960
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86724
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-12 12:45:39 +00:00
Yidi Lin
339d1a26ad lib/edid: Update the condition check for extension block count
According to E-EDID A.2_revised_2020.pdf, block maps are optional in
EDID 1.4. If block maps are used then 254 is the maximum number.
Otherwise, 255 is the maximum number. For now, we simply print the
number of extension blocks.

BUG=b:392040003
BRANCH=rauru
TEST=Verify with the panel containing two EDID extension blocks

Change-Id: I2458e3493e74f91af6422b36285bb95e438a29f1
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86723
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-12 12:45:13 +00:00
Patrick Rudolph
ad4c2b3282 soc/intel/xeon_sp/spr: Use default turbo ratio
Allow a board to use the default turbo ratio by not specifying
turbo_ratio_limit and turbo_ratio_limit_cores in the devicetree.cb.

TEST: Intel PTAT tool no longer complains about 0Mhz turbo frequency.

Change-Id: Ib8fbc78997fc7f8e6c80b2029d63b70f6117542e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86604
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-03-12 12:44:06 +00:00
Tony Huang
58f162b07e mb/google/nissa/var/yavilla: Update eMMC DLL settings
Update eMMC DLL settings to prevent Ramaxel eMMC initialization error.

BUG=b:402260689
TEST=Verify on Ramaxel emmc warm/cold reboot stress test pass
     Verify on current emmc warm/cold reboot stress test pass

Change-Id: I2c560d63de7b596ee05ceb95726e4cb8001cf730
Signed-off-by: Tony Huang <tony-huang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86812
Reviewed-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-12 12:43:37 +00:00
Jayvik Desai
c41af2d43c mb/google/fatcat/var/fatcat: Update THC Interrupt for Touchpad Development
This patch updates the TCH_PAD_INT_N GPP from A13 to F18

The Touch Pad's interrupt line (TCH_PAD_INT_N) was previously connected
to GPP_A13, This patch moves the interrupt line to GPP_F18, aligning it
with the THC1-i2c interface.

Both LPSS-i2c and THC1-i2c share SCL/SDA signals, with the exception of
the interrupt pin. This change ensures the interrupt pin shared between
both the interface.

The Tier-1 PMC GPE programming specifications limit us to configuring
three GPIO banks. Currently, GPP_A, GPP_D, and GPP_E are utilized, as
demonstrated in
[https://github.com/coreboot/coreboot/blob/main/src/mainboard/google/
fatcat/variants/baseboard/fatcat/devicetree.cb#L3]

We encounter a constraint when attempting to add GPP_F as an additional
Tier-1 GPIO due to the exhaustion of available PMC configuration
registers. However, the THC touchpad requires wake-capable registration,
necessitating a PMC GPE entry.

To resolve this, we have opted to configure GPP_F18 as an IOAPIC
interrupt. This solution provides a dedicated pin, avoiding the
complexities of GPIO shared IRQ masking. Furthermore, GPP_F18 supports
both interrupt (IRQ) and wake functionality, as defined by the ACPI
ACPI_IRQ_WAKE_LEVEL_LOW entry.

Snippet of change in runtime ASL code:
w/o cl:
`Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
{
     0x0D,
     0x03
})`

w/ cl: no such entry

This patch also removed the GPP_F18 entry from the finger print sensor
config to avoid conflicts.

BUG=b:395160736
TEST=able to build google/fatcat. Verfied touchpad functionality

Change-Id: Ied917427225035a484a5873fa734f4c9f14277c0
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86479
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-12 12:43:23 +00:00
Seunghwan Kim
526af80308 mb/nissa/var/meliks: Support x32 memory configuration
Use GPP_E7 level to determine whether x32 memory configuration is
supported.

BUG=None
BRANCH=nissa
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: Iedaf3c4ff1b025a4d69eca1db32ef743066a4478
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86804
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-12 12:43:00 +00:00
Wisley Chen
4c2a4cd925 mb/google/brya/var/anahera: Disable smart card reader power saving
Disable smart card reader power saving as W/A to avoid detect issue

BUG=b:383375529
TEST=Check whether the smart card reader exists without a card inserted

localhost~# lsusb
Bus 004 Device 009: ID 2cb7:0007 Fibocom Wireless Inc. L850-GL
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 010: ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader
Bus 003 Device 002: ID 0408:5479 Quanta Computer, Inc. HP 5M Camera
Bus 003 Device 012: ID 0bda:8153 Realtek Semiconductor Corp. USB 10/100/1000 LAN
Bus 003 Device 004: ID 8087:0033 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Change-Id: Idfff67b8fadd2ca07572fb3dad8bdffbbf7acad0
Signed-off-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86805
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-12 12:42:30 +00:00
Matt DeVillier
ac3cb3189c mb/google/brya/var/nissa: Select FSP_TYPE_IOT for non-ChromeOS builds
Select FSP_TYPE_IOT, so that Nissa-baseboard boards can be built using
FSP binaries from 3rdparty/fsp.

TEST=build/boot google/craask

Change-Id: I0ba45205e3af9daf7c41d393689d8f14d847a446
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86801
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-03-12 12:42:05 +00:00
Matt DeVillier
f50be824a2 drivers/intel/mipi_camera: Fix size of SSDB struct
Drop duplicate/unused `mclk` field, which corrects the size of the SSDB
struct to 108 bytes. Size/fields confirmed by comparing to DSDT
dumps of UEFI firmware and SSDB struct in linux MIPI driver (ref:
/include/media/ipu-bridge.h).

Change-Id: Iea5b2138d2396e32bcecb3a48ab2b159a9b33345
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86795
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-12 12:41:52 +00:00
Matt DeVillier
07d5f56db9 drivers/intel/mipi_camera: Add more platform_type enums
Add more platform type values. Values sourced from Slimbootloader and
various DSDT dumps on github.

Change-Id: If7ea46aad76dfedf89f764e60d9bf6061f53cbe1
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86794
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-12 12:41:47 +00:00
Matt DeVillier
53b53ddd1c util/chromeos/crosfirmware: Increase lookahead when parsing bios_image
Newer recovery images change the manifest format yet again, so increase
the lookhead when parsing the bios_image field to ensure we can find it.

TEST=run `./crosfirmware.sh craaskbowl` without erroring out

Change-Id: Idb1862e38a82f3cec8db55993ccf421cf3572c6f
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86777
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-12 12:41:35 +00:00
Sean Rhodes
c93ac71883 mb/starlabs/lite/glk: Disable PMC device
These boards use BootGuard, which isn't fully working in coreboot as
it requires the bootblock to be relocatable.

Turn off the PMC to workaround the missing BootGuard requirements, so
that they will turn on when pressing the power button.

Change-Id: Idd03684d9fb4573fc160e17ac2c28c39bc8b2ddd
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86830
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-12 09:07:30 +00:00
Matt DeVillier
6f35296975 Update intel-microcode submodule to upstream main branch
Updating from commit id 8ac9378a8487 (2024-11-12):
  microcode-20241112 Release

to commit id 8a62de41c011 (2025-02-11):
  microcode-20250211 Release

This brings in 1 new commit:
8a62de41c0 microcode-20250211 Release

Change-Id: I3ba126335e4dc3deb93ea8e362ea354f18bbbf38
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86799
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-12 09:07:11 +00:00
Kulkarni, Srinivas
dcc6fbb59a vc/intel/fsp/ptl: Update header files from 3015_00 to 3071_00
Update header files for FSP for Panther Lake platform to version
3071_00, with the previous version being 3015_00.

Changes includes:
FSPM:
- Offset changes
- Added UPD's - TXDQSDCC, WeaklockEn, RxDqsDelayCompEn
FSPS:
- Reserved bit changes

BUG=b:396535191
TEST=Able to build Google/fatcat.

Change-Id: I9657eb2b6db1b05adc721b3ef2cf8661642d91e8
Signed-off-by: Kulkarni, Srinivas <srinivas.kulkarni@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86642
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-03-12 05:00:04 +00:00
Momoko Hattori
d0367e38a9 mb/google/brya/var/redrix: Enable use_gpio_for_status for touchscreen
The _STA method of redrix i2c3's power resource currently always returns
true. This causes the device to be powered on by the kernel in a boot
critical path (in acpi_bus_init_power) and blocks it for 300ms due to
the sleep in the _ON method. To prevent this sleep from blocking the
boot, enable use_gpio_for_status so that the implementation of _STA
returns the device's actual power state and the kernel powers on the
device in another place that doesn't block boot.

BUG=b:397355818
TEST=Boot the device, confirm that kernel doesn't sleep for 300ms during
     acpi_bus_init_power and the touchscreen works without any problems.

Change-Id: I517a9477f7b59b621337c56eedbfcf17b82dc39b
Signed-off-by: Momoko Hattori <momohatt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86749
Reviewed-by: Sam McNally <sammc@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-11 21:41:03 +00:00
Momoko Hattori
68b8565fc4 drivers/i2c/generic: Add option to generate proper PowerResource _STA
The _STA method of drivers/i2c/generic PowerResource currently always
returns true. To allow generating _STA that returns the device's actual
power state, this CL adds a new boolean option `use_gpio_for_status` to
the `drivers_i2c_generic_config` struct, and propagates the value to
`acpi_power_res_params` to reuse the feature implemented for acpi/device
in [1].

[1] https://review.coreboot.org/c/coreboot/+/55027

BUG=b:397355818
TEST=Dump SSDT on redrix with CB:86749

Change-Id: I5c0a423730788d634a780d1d1d8c87a7007cc150
Signed-off-by: Momoko Hattori <momohatt@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86759
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Sam McNally <sammc@google.com>
2025-03-11 21:40:57 +00:00
Sean Rhodes
534f9e7514 mb/starlabs/starbook/adl_n: Correct alignment in devicetree
Change-Id: I3a67abc7f8a169fc9484c6dd0efd2ef92404d8f3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86786
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-11 17:04:07 +00:00
Sean Rhodes
4dcaf5a227 mb/starlabs/starbook/adl_n: Add generic Graphics driver config
This provides entries in the SSDT for all display devices, which
allows the kernel to enumerate them.

Change-Id: I350af852ffed5afda4bbc5a85f5b9db035a99995
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86785
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-11 17:03:58 +00:00
Sean Rhodes
1a799eb7ac mb/starlabs/starbook/adl_n: Change USB Type-C macro
As the USB-C port on this board is not TBT, change the macro to a
regular port as it is more reliable.

Change-Id: I4dae9ff95d448924f1c2a199053be1ad0ca1cece
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86784
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-11 17:03:50 +00:00
Sean Rhodes
e545a233a5 mb/starlabs/starbook/adl_n: Remove the WiFi Generic entry
The entry only provided CNVi configuration, and this board does not
use CNVi, so this entry is not required.

Change-Id: I737bed22f5d1545fe91e37d8e55c7c43d1d841fd
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86783
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-11 17:03:44 +00:00
Sean Rhodes
e2ba4330dd mb/starlabs/starbook/adl_n: Adjust the TCC offsets
Commit 3a8835f0e8 ("mb/starlabs/*: Unify tcc_offset settings")
unified the TCC offsets based on:
* 70, 80 and 90 degrees for fanless boards
* 80, 90 and 100 degrees for fanned boards

This board has a fan, so make it follow the above.

Change-Id: Ic40ec1a317c787cf7695b37246b2cb337043af2d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86782
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-11 17:03:36 +00:00
Sean Rhodes
296e732e22 mb/starlabs/starbook/mtl: Change USB Type-C macro
As the USB-C port on this board is not TBT, change the macro to a
regular port as it is more reliable.

Change-Id: Ibcafae6b9bf495e3d41e3a2c49cda070db1c2e0c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86791
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-11 17:03:22 +00:00
Sean Rhodes
bd453f2b6f mb/starlabs/starlite_adl: Add generic Graphics driver config
This provides entries in the SSDT for all display devices, which
allows the kernel to enumerate them.

Change-Id: Ie3fe24be948b256b47eb8d48fd8a84d6daa2702f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86742
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-11 17:03:05 +00:00
Ana Carolina Cabral
637c35cd67 mb/amd/birman_plus/ec: Rectify ECRAM register bits
Rectify wrong EC module RAM register bits
based on PI source code 1.0.0.1b

Change-Id: I1a13d99a55a4aa02a5cb0e67ffa4ed555f91a471
Signed-off-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86084
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-03-11 15:36:51 +00:00
Jayvik Desai
27f3427f4a mb/google/fatcat/var/fatcat: Update GSPI0 CS pin for FPS
GPP_F18 is currently shared between the fingerprint sensor GSPI0-CS and
the touchpad THC1-INT.

This commit moves the FPS GSPI0-CS signal to GPP_E17, which is a GSPI-0
CS alternative option and moves the current GSPI0A-CS pin GPP_F18 to
not connected.

Schematic version dated march'25 has the rework details.

BUG=b:395147436
TEST=Build and boot google/fatcat. Able to fetch the FPS version using
`ectool --name=cros_fp version`

Change-Id: I1131962e9b6423bbf68fb92189b8910eab49645e
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86702
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-11 07:55:55 +00:00
Yuval Peress
ec83019b50 mb/google/brya/var/trulo: Update ISH firmware name
Renames ish_fw.bin to trulo_ish.bin to prevent potential conflicts with
other Nissa projects. This aligns with the naming used in the
chromeos-zephyr-ish package.

BUG=b:397821047
TEST=Flash trulo, disassemble SSDT, search for trulo_ish.bin
BRANCH=none

Change-Id: I855ecc87ddb7b69c2c2c8e4287bd9d6ec2e2e991
Signed-off-by: Yuval Peress <peress@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86769
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-11 04:52:23 +00:00
Derek Huang
9b4b0eeda1 mb/google/rex/deku: Define TCSS port and EC port mapping
Deku design has a non-sequential mapping between CPU Type-C ports
and EC Typec-C ports. This patch maps the CPU Type-C port to the
correct EC Type-C port for the Intel re-timer driver.

BUG=b:399032094
TEST=Check the Type-C port and EC port mapping in coreboot log

deku-rev1 ~ # cbmem -c |grep "USB Type-C"
[INFO ]  USB Type-C 0 mapped to EC port 0
[INFO ]  USB Type-C 1 mapped to EC port 2
[INFO ]  USB Type-C 2 mapped to EC port 1
[INFO ]  USB Type-C 3 mapped to EC port 3

Change-Id: I80fa45a5f40d15c86087dca98bd0fb80a9121e50
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86705
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-10 15:24:26 +00:00
Derek Huang
c5db254b12 drivers/intel/usb4: Move log message from SoC code to driver code
This patch moves the debug print which prints the mapping between CPU
Type-C port and EC Type-C port from SoC code to generic driver code.

BUG=b:399032094
TEST=Check the Type-C port and EC port mapping in coreboot log

Change-Id: Iaef5813cc825569a53feba975258f7d5fadecfab
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86704
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-10 15:24:19 +00:00
Derek Huang
c53b3efa4e drivers/intel/usb4: Add parameter to explicitly define EC Type-C port
This patch adds the parameter which allows for custom port mapping
between CPU Type-C port and EC Type-C port to accommodate the
non-sequential mapping. Mainboard code must configure this parameter
if the CPU Type-C port to EC Type-C port mapping is not sequential.

BUG=b:399032094
TEST=build and verify TCSS port and EC port mapping

Change-Id: Id92f942e5c6b27342777b3e6fd12aff264ccec1b
Signed-off-by: Derek Huang <derekhuang@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86703
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-10 15:24:11 +00:00
Michał Żygowski
ba92b66454 soc/intel/common/block/graphics: Add missing TWL GT SKUs
IDs taken from ADL-N and TWL EDS Vol 1 Rev 2.5 doc #645548.

Change-Id: I53c41e17324cbb19c2150d986c538a11eb1140af
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86750
Reviewed-by: Michał Kopeć <michal.kopec@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-10 15:23:53 +00:00
Michał Kopeć
365947827a mb/novacustom/mtl-h/devicetree.cb: Enable pch_hda_audio_link_hda_enable
Now that pch_hda_audio_link_hda_enable is hooked up in soc code, enable
it in devicetree to enable the HDA audio link.

Change-Id: I3f902d9b994cb0aac75cda69476500ec7c47b763
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86696
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 15:23:26 +00:00
Michał Kopeć
59aa4cab1e ec/dasharo/ec: Gate options behind EC_DASHARO_EC
In CB:86109 it was reported that some options incorrectly don't depend
on EC_DASHARO_EC. Remove `depends on` from all options and instead put
everything behind an `if EC_DASHARO_EC` to ensure options don't cause
issues with boards not using Dasharo EC.

Change-Id: If6303bf7f155749bfcf9145fb93b018247350009
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86698
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 15:22:37 +00:00
Michał Kopeć
e30d99f994 mb/novacustom/mtl-h/devicetree.cb: Re-enable c-state auto-demotion
It was disabled while debugging S0ix issues during development.
Re-enable it now that S0ix is functional.

Change-Id: Ieab5229474ef93e96908b70e5986949b406fc0fa
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86693
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 15:22:08 +00:00
Masa Nakura
ae532fe641 payloads/libpayload: Add fast data types to types.h
libpayload stdint.h only supports typedefs for datatypes of exact
bits. This makes libpayload less flexible to support libraries
that reference different data types.

Add fast data types in types.h.

BUG=b:386913035

Change-Id: Ie9197866ae9b6c27d3f26c11d8409ecb90321c74
Signed-off-by: Masa Nakura <nakura@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86632
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Hsuan-ting Chen <roccochen@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 15:21:44 +00:00
Patrick Rudolph
97bf77e52e soc/amd/common/block/lpc: Limit ROM2 to 16MiB
Don't map more than 16MiB in ROM2 decode window when the SPI ROM
size is bigger than 16MiB.

TEST: amd/birman+ still boots with bigger SPI flash sizes.

Change-Id: Ie811f6a38363f2e900611b3f3f407a94d8137c89
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86582
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 15:21:04 +00:00
Jeremy Compostella
bfeef0cc45 soc/intel/pantherlake: Bind SoC config VR settings to respective UPD
This commit binds the cep_enable, enable_fast_vmode and
fast_vmode_i_trip voltage regulator SoC settings to the CepEnable,
EnableFastVmode and IccLimit UPDs respectively.

BUG=b:357011633
TEST=CepEnable, EnableFastVmode and IccLimit are set accordingly

Change-Id: Ie72e4725cb97b4af7843a43eeaedd687d28b6752
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85131
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
2025-03-10 15:20:48 +00:00
Michał Żygowski
940d1d0868 soc/intel/cannonlake: Let coreboot lock MSR_IA32_DEBUG_INTERFACE
Intel TXT requires the debug interface to be disabled. There is no
way to program the MSR_IA32_DEBUG_INTERFACE using FSP as needed, so
let coreboot handle it.

TEST=Boot Linux with tboot on Protectli VP4670 with Intel TXT enabled

Change-Id: I7ed4382bbe68f03e8eca151245c13928609f434f
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83730
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-03-10 15:19:26 +00:00
Wisley Chen
4a84a1bd61 mb/google/brya/var/anahera: add memory NT6AP512T32BL-J1
Generate SPD id for Nanya memory NT6AP512T32BL-J1

BUG=b:401424949
TEST=run part_id_gen to generate SPD id

Change-Id: I4b207076b73a03059262e0244f5dd0ea24625ff0
Signed-off-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86763
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-10 15:18:17 +00:00
Wisley Chen
0349aecda0 mb/google/brya/var/redrix: add memory NT6AP512T32BL-J1
Generate SPD id for Nanya memory NT6AP512T32BL-J1

BUG=b:401659784
TEST=run part_id_gen to generate SPD id

Change-Id: I655590e43fcd9c3eb704d09edd6dcee51b635256
Signed-off-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86762
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-10 15:18:11 +00:00
Wisley Chen
c6754fe0af spd/lp4x: Add Nanya memory part
Add Nanya memory part NT6AP512T32BL-J1 in lp4 list.

BUG=b:401424949
TEST=util/spd_tools/bin/spd_gen spd/lp4x/memory_parts.json lp4x

Change-Id: I953c09c7d8d2cdd670187c5285ebedfcc66aa021
Signed-off-by: Wisley Chen <wisley.chen@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86761
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-10 15:18:02 +00:00
Shuo Liu
5495f7fc15 MAINTAINERS: Add Shuo to x86 maintainer
Add Shuo to x86 maintainer to focus on x86 arch changes impacting
Xeon-SP.

Change-Id: Ia273f3d6fc1e4b13bd1f695976209a95adc03f60
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86760
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-03-10 15:17:46 +00:00
Nicholas Sudsgaard
30c4e79294 util/lint: Add support for FreeBSD
Change-Id: I9f7ceb2233d5d68b6e6f57faeaa0253390e0e003
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86768
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-10 15:17:36 +00:00
Matt DeVillier
8fb1f6513e soc/intel/cmn/block/cnvi: Add missing parenthesis in ASL code
It was accidentally deleted in a recent commit, but missed in review
since it is in a comment and not the actual acpigen code.

Change-Id: I0d28c2a67579a135e9002eaab9450353e8eec2d5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86773
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2025-03-10 15:17:19 +00:00
Patrick Rudolph
dbcfa67c28 device/pci_device: Move PCI Option ROM code into pci_rom.c
Move PCI Option ROM handling code into device/pci_rom.c as it's
already using a majority of functions within this file.

Change-Id: I50fc3bf45a1ab6572ab031b9e24ca2f882a13aad
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86733
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-10 11:35:57 +00:00
Patrick Rudolph
d541890e76 device/pci_rom: Support non VGA iGPUs
Recent AMD iGPUs are not VGA compatible anymore, thus they don't
identify themself as "VGA compatible" anymore by the PCI class code.
Since the PCI VGA Option ROM code assumes it only runs on VGA
compatible devices, relax the ACPI code part to handle display devices
as well. In order to run a VBIOS in coreboot it still must be VGA
compatible, but for ACPI table generation, where no code is run, it's
not necessary any more.

The new code allows to use Linux's amdgpu driver on AMD/glinda.

TEST: On amd/birman+ the amdgpu kernel drivers starts and dmesg shows:
[    3.010224] [drm] amdgpu kernel modesetting enabled.

The coreboot log shows:

[INFO ]  CBFS: Found 'pci1002,150e.rom' @0x10a40 size 0x4400 in mcache @0x1b7dd184
[DEBUG]  In CBFS, ROM address for PCI: 00:02:00.0 = 0xff012a6c
[DEBUG]  Class Code mismatch ROM 00030000, dev 00038000
[DEBUG]  Copying non-VGA ROM image from 0xff012a6c to 0x000d0000, 0x4400 bytes
[...]
             Copying initialized VBIOS image from 0x000d0000
[DEBUG]  ACPI:    * VFCT at 1b5cb960

Change-Id: I623cd80b45b148b91f2796b22a589bbede0feeeb
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86386
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-10 11:27:18 +00:00
Patrick Rudolph
85e503e641 device/pci_rom: Keep track of VBIOS
Currently the VBIOS is placed somewhere in DRAM when necessary.
While generating ACPI tables the code attempts to find the VBIOS
by looking at "known" places.

Simplify the code and keep track of the VBIOS using a pointer in
struct device by filling it in pci_rom_load().

The following patches will reuse this pointer to generalize the
code even more.

Change-Id: Ib27d30e3b07740d6098d4f7a5c4f5d8bce976f00
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86385
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 11:27:13 +00:00
Patrick Rudolph
257375eb24 device/pci_rom: Update debug message
Do not assume that a VBIOS has been run when loaded below 1MiB.
On recent AMD platforms the VBIOS is loaded into the C/D-segment,
but it's not run as CONFIG_VGA_ROM_RUN is not set.

Since commit 5f5aa79 "device/pci_rom: Move VBIOS checksum fix" the
VBIOS has a valid checksum in ati_rom_acpi_fill_vfct(), thus it's
not possible to tell if it has been run or ATOMBIOS tables have
been modified.

Update the debug message to avoid confusion.

Change-Id: I63289ecf2c212f3d95e022e8c47dcd0ac610d970
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86732
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-03-10 11:25:55 +00:00
Sean Rhodes
89c7a5b766 mb/starlabs/*: Correct comments/use defs for sleep assertion
Correct the comments, and use the definations where available
for the sleep assertion values

Change-Id: Idfd382a166c8101b5d9a79bd18c40d6763c05e7b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86753
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-10 09:04:30 +00:00
Arthur Heymans
b004ee591d soc/intel/xeon-sp/spr: Hook up public FSP bin and headers
vendorcode/intel/fsp/fsp2_0/sapphirerapids_sp/ is still needed due to
Intel FSP repo does not ship all header files.

TEST=Build and boot on intel/archercity CRB

Change-Id: I778d3535c273dff653330518653bdefcb45e66f4
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80360
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 08:08:48 +00:00
Felix Singer
7e8cf42fbb 3rdparty/fsp: Update submodule to upstream master
Updating from commit id 15c0f7b3f723:
2025-01-21 12:24:27 +0800 - (ECG ARL-S PV (4400_43) FSP)

to commit id 86c9111639d3:
2025-03-03 16:14:02 +0800 - (Edge Platforms RPL-P IPU 2025.2 (5402_02) FSP)

This brings in 19 new commits:
86c9111639d3 Edge Platforms RPL-P IPU 2025.2 (5402_02) FSP
85a0b8abf54c Edge Platforms RPL-S/RPL-S Refresh IPU 2025.2 (5402_02) FSP
9230a87a24bf Edge Platforms ADL-PS IPU 2025.2 (5402_02) FSP
39a1dab37cfb Edge Platforms ADL-S IPU 2025.2 (5402_01) FSP
c2aa77cde720 Merge branch 'master' of https://github.com/intel/FSP
508d8eb4bde8 Edge Platforms ADL-P IPU 2025.2 (5402_00) FSP
cdb5d570f5d8 Eagle Stream FSP (0115.D.05)
b4202af1b52e NEX TGL IPU 2025.2 (7021_05) FSP
99830941181e Update MemInfoHob.h
590d7f9bd8c7 IoT RPL-PS MR1 (5275_01) FSP
a92562452783 Merge branch 'master' of https://github.com/intel/FSP
6e84fc2ed0f6 IoT ADL-N MR6 (6023_00)
0acc6fac5bcc Update MemInfoHob.h
4b3e936c9701 Merge branch 'master' of https://github.com/intel/FSP
7207bafc8905 Elkhart Lake IPU2025.2 FSP
29e0f7ae5d26 ECG ARL-UH PV (4404_55) FSP
e369d3f2c21b ECG ARL-UH PV (4404_55) FSP
d746b5b93806 ECG ARL-S PV (4400_43) FSP
3ba9ffddac41 NEX AZB IPU 2025.2 (6033_00) FSP

Change-Id: I1e050bea8a8d625cfd842b6f008bf18ce6f66f84
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86744
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 08:08:27 +00:00
John Su
b78896348d ec/google/chromeec/acpi: Add support for Body Detect
The EC code will monitor Body to choose corresponding DPTF oem variable
table. When it changes, this event will send to the ACPI FW through host
event and then pass onto the DPTF kernel driver.

BUG=b:394177292
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot

Change-Id: I7ed72157d3480fca5fd1a58b5d9bc3e321f4a628
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86707
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-10 07:55:56 +00:00
John Su
68367ac69e mb/google/trulo/var/uldrenite: Support body detection to DPTF
Use DPTF_FEATURE_DYNAMIC_THERMAL_TABLE_SWITCH to support
body detection to DPTF on the Uldrenite.

BUG=b:394177292
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot

Change-Id: I6e98b9c3fd1b38d10a1aa7c30d5d92e1638449f2
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86494
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-10 07:55:42 +00:00
jamie_chen
c278be512b mb/google/trulo/var/uldrenite: Adjust Touchpad I2C timing
Adjust I2C/data fall Time to 13.5 ns and I2C data hold time to 353 ns

BUG=b:397150937
BRANCH=firmware-trulo-15217.771.B
TEST=Confirm the measured waveform of the Touchpad .

Change-Id: I16a9967f7e99892f2aa337ad9290252ab63a5b97
Signed-off-by: jamie_chen <jamie_chen@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86743
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-10 07:55:23 +00:00
Sowmya Aralguppe
c90315276e soc/intel/pantherlake: Decrease CRASHLOG_NODES_COUNT to 1
This patch changes child record count to 1 (i.e., compute die). The
number of crashlog agent/SRAM storage count is reduced in Crashlog
Discovery table (CRASHLOG_HEADER) for Panther Lake to 1 aka compute
die compared to MTL where crashlog units were compute die and GT die

source= 733648-LNLFAS-15.3.4,812562 PTL FAS 16.5.2 PTL
Dis-Aggreagation CrashLog

BUG=None
TEST=Build fatcat and verify the child record count

Change-Id: I209366d324c95b7a32afdcfb792c34d927a0508e
Signed-off-by: Sowmya Aralguppe <sowmya.aralguppe@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85531
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-10 05:31:16 +00:00
Shuo Liu
98f3cf138e cbfstool: Fix the help text
The help text of cbfstool's memory map window assignment option
needs to be corrected to [--mmap flash-base:mmio-base:size] from
[--mmio flash-base:mmio-base:size].

P.S. The option --mmap was initially introduced by
commit 34a7e66faa ("util/cbfstool: Add a new mechanism to
provide a memory map").

Change-Id: I5f8224c8789e642fc68f6ae2242e8e7a7228c8de
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86639
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-03-10 05:26:46 +00:00
Yidi Lin
2b131cc744 soc/mediatek/mt8196: Eliminate mt6685_hw.h and mt6685_rtc_hw.h
Utilize the constants in rtc_reg_common.h and rtc_common.h.

1. Maintain minimum defines in mt6685_rtc.h.
2. Remove mt6685_hw.h and mt6685_rtc_hw.h.
3. Remove redundant definitions.

The constains in mt6685_rtc.h are determined by below command,

aarch64-cros-linux-gnu-gcc -E src/soc/mediatek/mt8196/mt6685_rtc.c \
-I src/commonlib/bsd/include/ -I src/include/ \
-I src/commonlib/include/ -I src/soc/mediatek/mt8196/include/ \
-I src/soc/mediatek/common/include/ -I src/arch/arm64/include/armv8/ \
-I ./src/arch/arm64/include/

BRANCH=rauru
BUG=b:391067089
TEST=compare macro expansion result before and after applying the patch
TEST=boot to kernel without RTC error

Change-Id: I69ee165df6a1c9ea5853173f46f0aafc382153c1
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86264
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-10 04:04:59 +00:00
Angel Pons
5d291de601 haswell NRI: Do sense amplifier offset training
Quoting Wikipedia:

  A sense amplifier is a circuit that is used to amplify and detect
  small signals in electronic systems. It is commonly used in memory
  circuits, such as dynamic random access memory (DRAM), to read and
  amplify the weak signals stored in memory cells.

In this case, we're calibrating the sense amplifiers in the memory
controller. This training procedure uses a magic "sense amp offset
cancel" mode of the DDRIO to observe the sampled logic levels, and
sweeps Vref to find the low-high transition for each bit lane. The
procedure consists of two stages: the first stage centers per-byte
Vref (to ensure per-bit Vref offsets are as small as possible) and
the second stage centers per-bit Vref.

Because this procedure uses the "sense amp offset cancel" mode, it
does not rely on DRAM being trained. It is assumed that the memory
controller simply makes sense amp output levels observable via the
`DDR_DATA_TRAIN_FEEDBACK` register and that the memory bus is idle
during this training step (so the lane voltage is Vdd / 2).

Note: This procedure will need to be adapted for Broadwell because
it has per-rank per-bit RxVref registers, whereas Haswell only has
a single per-bit RxVref register for all ranks.

Change-Id: Ia07db68763f90e9701c8a376e01279ada8dbbe07
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81948
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:55:39 +00:00
Angel Pons
b6d3af1361 haswell NRI: Implement fast boot path
When the memory configuration hasn't changed, there is no need to do
full memory training. Instead, boot firmware can use saved training
data to reinitialise the memory controller and memory.

Unlike native RAM init for other platforms, Haswell does not save the
main structure (the "mighty ctrl" struct) to flash. Instead, separate
structures define the data to be saved, which can be smaller than the
main structure.

This makes S3 suspend and resume work: RAM contents MUST be preserved
for a S3 resume to succeed, but RAM training destroys RAM contents.

Change-Id: I06f6cd39ceecdca104fae89159f28e85cf7ff4e6
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81897
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-08 22:55:32 +00:00
Angel Pons
a2f059c87e haswell NRI: Add final raminit steps
Implement the remaining raminit steps. Although many training steps are
missing, this is enough to boot on the Asrock B85M Pro4.

Change-Id: I94f3b65f0218d4da4fda4d84592dfd91f77f8f21
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64198
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:54:35 +00:00
Angel Pons
174380c904 haswell NRI: Add write leveling
Implement JEDEC write leveling, which is done in two steps. The first
step uses the JEDEC procedure to do "fine" write leveling, i.e. align
the DQS phase to the clock signal. The second step performs a regular
read-write test to correct "coarse" cycle errors.

Change-Id: I27678523fe22c38173a688e2a4751c259a20f009
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64197
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-08 22:54:27 +00:00
Angel Pons
7d8f12b565 haswell NRI: Add read MPR training
Implement read training using DDR3 MPR (Multi-Purpose Register).

Change-Id: Id17cb2c4c399ac9bcc937b595b58f863c152461b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64196
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:54:16 +00:00
Angel Pons
47f31f24d4 haswell NRI: Add function to change margins
Implement a function to change margin parameters. Haswell provides a
register to apply an offset to margin parameters during training, so
make use of it. There are other margin parameters that have not been
implemented yet, as they are not needed for now and special handling
is needed to provide offset training functionality.

Change-Id: I5392380e13de3c44e77b7bc9f3b819e2661d1e2d
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64195
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-08 22:54:07 +00:00
Angel Pons
d434ec3453 haswell NRI: Add RcvEn training
Implement the RcvEn (Receive Enable) calibration procedure.

Change-Id: Ifbfa520f3e0486c56d0988ce67af2ddb9cf29888
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64194
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-08 22:53:59 +00:00
Angel Pons
fc72b9f3d9 haswell NRI: Add library to change margins
Implement a library to change Rx/Tx margins. It will be expanded later.

Change-Id: I0b55aba428d8b4d4e16d2fbdec57235ce3ce8adf
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64193
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:53:53 +00:00
Angel Pons
b1ec1bee7e haswell NRI: Add range tracking library
Implement a small library used to keep track of passing ranges. This
will be used by 1D training algorithms when margining some parameter.

Change-Id: I8718e85165160afd7c0c8e730b5ce6c9c00f8a60
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64192
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:53:46 +00:00
Angel Pons
7262698583 haswell NRI: Add REUT I/O test library
Implement a library to run I/O tests using the REUT hardware.

Change-Id: Id7b207cd0a3989ddd23c88c6b1f0cfa79d2c861f
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64191
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-08 22:53:39 +00:00
Angel Pons
9d0897a0bc haswell NRI: Add pre-training steps
Implement pre-training steps, which consist of enabling ECC I/O and
filling the WDB (Write Data Buffer, stores test patterns) through a
magic LDAT port.

Change-Id: Ie2e09e3b218c4569ed8de5c5e1b05d491032e0f1
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64190
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:53:31 +00:00
Angel Pons
06d0ee4372 haswell NRI: Add DDR3 JEDEC reset and init
Implement JEDEC reset and init sequence for DDR3. The MRS commands are
issued through the REUT (Robust Electrical Unified Testing) hardware.

Change-Id: I2a0c066537021b587599228086727cb1e041bff5
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64189
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-08 22:53:24 +00:00
Angel Pons
e95c52ef08 haswell NRI: Program memory map
This is very similar to Sandy/Ivy Bridge, except that there's several
registers to program in GDXCBAR. One of these GDXCBAR registers has a
lock bit that must be set in order for the memory controller to allow
normal access to DRAM. And it took me four months to realize this one
bit was the only reason why native raminit did not work.

Change-Id: I3af73a018a7ba948701a542e661e7fefd57591fe
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64188
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:53:17 +00:00
Angel Pons
fdb57ee43d haswell NRI: Add timings/refresh programming
Program the registers with timing and refresh parameters.

Change-Id: Id2ea339d2c9ea8b56c71d6e88ec76949653ff5c2
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64187
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-03-08 22:53:09 +00:00
Angel Pons
aadf6d59b2 haswell NRI: Configure initial MC settings
Program initial memory controller settings. Many of these values will be
adjusted later during training.

Change-Id: If33846b51cb1bab5d0458fe626e13afb1bdc900e
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/64186
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 22:52:59 +00:00
Subrata Banik
7b36319fd9 {drivers, lib}: Move low-battery user notification logic outside FSP
This patch refactors low-battery user notification logic (Kconfig,
APIs to check if low-battery rendering is required, low-battery
shutdown is required) outside FSP driver code to ensure in future
non-FSP platforms might still be able to leverage this feature/logics
to render the low-battery indicator icon during boot.

Specifically, it:

- Moves Kconfig options related to low-battery notifications from
  drivers/intel/fsp to lib/
- Relocates the low-battery check and shutdown APIs drivers/intel/fsp
  to bootsplash.h
* Adjusts the vendor driver to utilize the new APIs for low-battery
  rendering decisions.
* Drop the unwanted header file "fsp/api.h" from bmp_logo.c

This change avoids tight coupling of low-battery functionality to FSP,
promoting code reusability across platforms.

BUG=b:400738815
TEST=Able to build and boot google/brox.

Change-Id: Iaa730dac2bb4866183408b6390221f0bb8411a48
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86756
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-03-08 07:17:32 +00:00
Zhaoqing Jiu
1faea7389c soc/mediatek/mt8196: Save HW protect temperature to SRAM
It will restore the HW protection settings based on the data saved in
the SRAM, after the system suspends and resumes.

BRANCH=rauru
BUG=b:389026545
TEST=Boot up and check temperature in coreboot log:
[INFO ]  [LVTS_MSR] ts0 msr_all=141d0, msr_temp=16848, temp=41086
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 0 ts_name 0 temp 41086 rg_temp 41073(42059)
[INFO ]  [LVTS_MSR] ts1 msr_all=141e3, msr_temp=16867, temp=41540
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 1 ts_name 1 temp 41540 rg_temp 41526(42523)
[INFO ]  [LVTS_MSR] ts2 msr_all=14199, msr_temp=16793, temp=39772[0m
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 2 ts_name 2 temp 39772 rg_temp 39760(40715)
[INFO ]  [LVTS_MSR] ts3 msr_all=141c2, msr_temp=16834, temp=40751
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 3 ts_name 3 temp 40751 rg_temp 40739(41717)
[INFO ]  [LVTS_MSR] ts4 msr_all=141d0, msr_temp=16848, temp=41086
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 0 ts_name 4 temp 41086 rg_temp 41073(42059)
[INFO ]  [LVTS_MSR] ts5 msr_all=141b3, msr_temp=16819, temp=40393
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 1 ts_name 5 temp 40393 rg_temp 40380(41350)
[INFO ]  [LVTS_MSR] ts6 msr_all=14194, msr_temp=16788, temp=39652
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 2 ts_name 6 temp 39652 rg_temp 39641(40593)
[INFO ]  [LVTS_MSR] ts7 msr_all=14186, msr_temp=16774, temp=39318
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 3 ts_name 7 temp 39318 rg_temp 39307(40251)

Signed-off-by: Zhaoqing Jiu <zhaoqing.jiu@mediatek.corp-partner.google.com>
Change-Id: Ib714c297871132907e286536c4b3aea1532f3869
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86551
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-08 01:51:21 +00:00
Zhaoqing Jiu
1b7e1adc90 soc/mediatek/mt8196: Remove unused LVTS controllers
Controller2 and controller3 are disabled, so remove them from source
code.

BRANCH=rauru
BUG=b:389026545
TEST=Boot up to kernel

Signed-off-by: Zhaoqing Jiu <zhaoqing.jiu@mediatek.corp-partner.google.com>
Change-Id: I69c1e76e7de544fd4e24e8e94e4f676de783e205
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86687
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-03-07 10:05:21 +00:00
Ivy Jian
d43ac436da mb/google/nissa/var/dirks: Configure TCSS port 1 to USB Type-A
Configure EnableTcssCovTypeA and MappingPchXhciUsbA to repurpose
TCSS port 1 to USB Type-A (Document Number: 742076)

USB Ports for dirks:
(FRONT) USBA 10G x 3
(REAR)  USBA 10G x 2 + USBC 10G x 1

BUG=b:389391653
TEST=none.

Change-Id: Ib227995cde8d871ff58c89ccb09221226640a7e6
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85991
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-07 03:49:47 +00:00
Varun Upadhyay
36fd23d143 vc/intel/fsp/twinlake: Update FSP headers from v5222.01 to v5293.00
Update generated FSP headers for Twinlake from v5293.00

Changes include:
- Add EnableTcssCovTypeA and MappingPchXhciUsbA in FspsUpd.h
- Update UPD Offset in FspsUpd.h

BUG=b:390225562
TEST=Able to build and boot google/Trulo

Change-Id: I6e0bd39addf9f6d48b27748678c70f54abd79cbe
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86591
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-07 03:49:34 +00:00
Subrata Banik
1e7ba810c6 {commonlib, lib}: Rename CBMEM_ID_FSP_LOGO to CBMEM_ID_BMP_LOGO
This commit renames the cbmem ID from CBMEM_ID_FSP_LOGO to
CBMEM_ID_BMP_LOGO.

This change:

-   Standardizes the naming to reflect the actual content, which is a
    BMP logo.
-   Removes the FSP-specific prefix, making the ID more generic and
    suitable for use in the common library.
-   Aligns the code with the recent Kconfig changes that moved BMP_LOGO
    related options to the common library.

BUG=b:400738815
TEST=Able to build and boot google/brox.

Change-Id: I838d4e6ad0efdef063f2cc78bb83d1d37e065f45
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86731
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-03-06 19:02:27 +00:00
Subrata Banik
efb1806d3d {drivers, lib}: Move BMP_LOGO Kconfig options to common library
This commit relocates the BMP_LOGO related Kconfig options from the
FSP1.1 and FSP2.0 drivers to the common library (lib/).

This change:

-   Centralizes the BMP_LOGO configuration, making it accessible to
    all drivers and platforms.
-   Removes duplicate Kconfig entries from the FSP drivers.
-   Prepares for future refactoring where BMP_LOGO will be handled
    entirely within the library, enabling its use by both FSP and
    non-FSP platforms.

The following Kconfig options are moved under "Boot Logo Configuration"
menu option:

-   `BMP_LOGO`
-   `BMP_LOGO_COMPRESS_LZMA`
-   `BMP_LOGO_COMPRESS_LZ4`
-   `BMP_LOGO_FILE_NAME`
-   `HAVE_BMP_LOGO_COMPRESS_LZMA`
-   `HAVE_CUSTOM_BMP_LOGO`

BUG=b:400738815
TEST=Able to build and boot google/brox.

Change-Id: I9bbfade9b919cfbd0b689a67c988ed8c65deb597
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86730
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-06 19:02:22 +00:00
Subrata Banik
cf8f0693a6 {drivers, lib}: Rename FSP*_LOGO_FILE_NAME to BMP_LOGO_FILE_NAME
This commit standardizes the Kconfig option for the boot logo file name
across FSP drivers and the common library.

The `FSP1_1_LOGO_FILE_NAME` and `FSP2_0_LOGO_FILE_NAME` options are
renamed to `BMP_LOGO_FILE_NAME`.

BUG=b:400738815
TEST=Able to build and boot google/brox.

Change-Id: I6a6c2c6d235ad9643879b00232930c8a0d2e3801
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86725
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-03-06 19:02:15 +00:00
Subrata Banik
c8f9199f12 {drivers, mb, soc}: Drop HAVE_FSP_LOGO_SUPPORT Kconfig
This change eliminates the HAVE_FSP_LOGO_SUPPORT Kconfig option.

It was initially used to control BMP_LOGO selection within the FSP2.0
driver. However, upcoming refactoring will move BMP_LOGO and its
implementation to the `lib` directory therefore, BMP_LOGO can be
used by both FSP and non-FSP SoC platforms.

BUG=b:400738815
TEST=Able to build and boot google/brox.

Change-Id: I899bbfcf7e747abe69ff0866c4594a42278891b9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86719
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-03-06 19:02:08 +00:00
Kapil Porwal
17da392ae8 soc/intel,mb/google: Use the correct SoC config
Change-Id: I657a4d45901f6b2bab8daa6c93509190896cab62
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86748
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-06 12:03:28 +00:00
Sean Rhodes
bea62e221d mb/starlabs/starbook/mtl: Configure tcss_aux_ori
Both USB Type-C ports do not have retimers, so configure this
accordingly.

Change-Id: I341e54984b768ff5b1020c6d127b0c4b18b8725c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86741
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-03-06 08:44:33 +00:00
Sean Rhodes
3a8835f0e8 mb/starlabs/*: Unify tcc_offset settings
Add a simply macro to make the value set for tcc_offset easier to
read.

Then, unify the settings across all boards:
* 70, 80 and 90 degrees for fanless boards
* 80, 90 and 100 degrees for fanned boards

Change-Id: I5c0323aea0d9d3b09e60f88c3a95c821ab1d3b7d
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86740
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-06 08:44:20 +00:00
Sean Rhodes
39244ba676 mb/starlabs/*: Set tcc_offset instead of pch_thermal_trip
Some boards configure pch_thermal_trip based on the performance
profile, and some set tcc_offset.

tcc_offset makes more sense here, so change all the boards to be
the same.

Change-Id: Id55b5d971c895baa1ba97137351fbd0aea3317d8
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86728
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-06 08:44:15 +00:00
Sean Rhodes
39341b494a mb/starlabs/starbook/mtl: Add generic Graphics driver config
Change-Id: I68d44902a17695538dc4f1f2c38576bb02d8be8a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86729
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-06 08:44:10 +00:00
Yidi Lin
3cb5308d07 Update arm-trusted-firmware submodule to upstream master
Updating from commit id 0c370e2d592b:
2025-02-04 18:14:07 +0100 - (Merge "feat(mt8196): add SMMU driver for PM" into integration)

to commit id e5a1f4abeec3:
2025-03-03 16:21:54 +0100 - (Merge "feat(mt8196): fix MT8196 gpio driver" into integration)

This brings in 215 new commits.

Change-Id: I15af95b97566ee3660f3d4a650920fd60ec81d34
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86722
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-06 04:23:45 +00:00
Maximilian Brune
90cde7f66f soc/amd/glinda/xhci.c: Fix gpe_configure_sci argument
Change-Id: Ia2964d73483a4308f1fb9f194b60a3dbbee5c713
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86721
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-05 21:20:16 +00:00
Felix Held
2727adbeea soc/amd/cezanne/acpi: Add ACP MSG0 method
Add the MSG0 method to the ACP's SSDT entry, so that the ACP driver can
talk to a two different mailbox interfaces via this ACPI MSG0 method
interface. This is used by some drivers to configure the ACP's clock
source and to notify the PSP that the audio DSP firmware has been loaded
so that the PSP can validate the firmware and set the qualifier bit to
enable running it.

TEST=The AML code sequence written by this decompiles to the expected
ASL code and the driver is able to initialize the ACP correctly by
calling the MSG0 method twice with different parameters.

Change-Id: I34f641fbfe40b5df7f0ff2fc173510c5cf2a7f61
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86466
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-05 16:45:58 +00:00
Felix Held
f60d630727 soc/amd/cezanne/acpi: Add ACP SMN access interface
Add two ACPI methods to access a PSP mailbox interface via an SMN
register pair in the host bridge.

TEST=The AML code sequence written by this decompiles to the expected
ASL code.

Change-Id: I282f1fa2898f76659700450ee1f4b11f79d2d030
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77703
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 16:45:41 +00:00
Felix Held
a23c2dd246 soc/amd/block/acp: add SSDT generation callback into SoC code
Some SoCs require adding SoC-specific methods to the ACP's SSDT entry.
In order to not add SoC-specific code to the common ACP code, add the
'acp_soc_write_ssdt_entry' callback into the SoC-specific code and guard
it via the 'SOC_AMD_COMMON_BLOCK_ACP_SOC_SPECIFIC_SSDT_ENTRY' Kconfig
symbol to neither need weak functions or stubs in every SoC code.

Change-Id: I0ca5272d28938c8b90b645884a0d8b306a77d473
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86465
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-05 16:45:19 +00:00
Matt DeVillier
50ba957b17 soc/amd/cezanne: Add ACPI opregion to root complex
Add an ACPI OperationRegion to access an SMN access index/data register
pair in the root complex. To access the PCI config space registers, the
ECAM MMCONF MMIO region is used which matches the UEFI reference
implementation.

TEST=The AML code sequence written by this decompiles to the expected
ASL code.

Change-Id: I4d00c86647e51e5cae621fe788f0a1b06471a443
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77682
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 16:44:59 +00:00
Felix Held
7437c16c27 src/acpigen: support 0-initialized buffer in acpigen_write_byte_buffer
Previously, the 'acpigen_write_byte_buffer' function required both the
byte buffer length and the initialization data byte array 'arr'. The
ACPI spec however allows buffer declarations with only the length, but
without an initialization data byte array. In this case the AML
interpreter will create a buffer of the given length with all bytes
initialized to 0x00. In order to not need another function, allow the
'arr' parameter for the pointer to the initialization data byte array to
be NULL and in that case don't write the optional buffer initialization
byte array.

TEST=Calling 'acpigen_write_byte_buffer' with 'NULL' as first parameter
results in the AML code sequence being written which decompiles to ASL
as expected.

Change-Id: Ie756489e02f994c38d38907a97fb215d30f4a636
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86631
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 16:44:43 +00:00
Felix Held
92d75be20b src/acpigen: implement acpigen_write_create[_buffer]_bit_field
Implement functions to write the AML bytes corresponding to
CreateBitField for both OP buffers and named buffers.

TEST=Calling 'acpigen_write_create_buffer_bit_field' results in the AML
code sequence being written which decompiles to ASL as expected.

Change-Id: Ia5c06c2e8564b64de386871b2faf79c433e5a1da
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86630
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 16:44:33 +00:00
Felix Held
4a2a3e7b96 acpi/acpigen: implement acpigen_write_if_lnotequal_*
Implement functions to write the AML bytes corresponding to
'If (LNotEqual (...))' which is equivalent to 'If (LNot (LEqual (...)))'
for the value types combinations 2 OPs, OP and value, and namestring and
value.

TEST=Calling 'acpigen_write_if_lnotequal_op_int' results in the AML code
sequence being written which decompiles to ASL as expected.

Change-Id: I6c664bc4d30a49ae990eeb9f0e0776cac37efc57
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86464
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-05 16:44:20 +00:00
Yang Wu
5c4f49708c mb/google/geralt: Adjust VSP/VSN voltage for CSOT_PNA957QT1_1 panel
The system default VSP/VSN voltage for Ciri is +-5.7V, which causes
the Gray screen pattern to display abnormally with screen corruption.

According to CSOT panel vendor's requirement, VSP/VSN for the
CSOT_PNA957QT1_1 panel needs to be adjusted to +-6V. So modify the
relevant register values accordingly.

BUG=b:399728328
TEST=Boot to firmware screen and kernel, measure the voltage.
BRANCH=geralt

Change-Id: I1b69303317f5ef47818f4a6a0c851bf650285e51
Signed-off-by: Yang Wu <wuyang5@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86640
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-03-05 12:50:54 +00:00
Matt DeVillier
a7a76b0dee soc/intel/meteorlake: Hook up FSP repo for IOT
IOT FSP binaries for MTL are available on github, so add FSP_TYPE_IOT
Kconfig option, select 'HAVE_INTEL_FSP_REPO', and add the paths for the
FSP headers and binary.

TEST=build/boot starlabs/starbook_mtl

Change-Id: I44ee923f4d1151f0e11104af7db53ce59551cf37
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86611
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-05 10:30:49 +00:00
Kapil Porwal
c4afd04547 mb/google/ocelot: Create Ocelot board
This is just a copy of fatcat at the moment.

BUG=b:372502513
TEST=Build AP firmware image.

Change-Id: Iee93610f3367f4c850b4fcc8827a4a4d44b46117
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86692
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-05 05:44:11 +00:00
Kapil Porwal
7eb53f8623 soc/intel/ptl: Define config option for Wildcat Lake (WCL)
This is same as PTL U/H at the moment.

BUG=b:372502513
TEST=Build AP firmware image.

Change-Id: Ibc51cb90bc13a442587d3dc187638544cb633a0f
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86691
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 05:44:02 +00:00
Pranava Y N
1ec46a45c4 mb/google/brya/constitution: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on constitution device and verify that
the device suspends to S0ix.

Change-Id: Ia367911d6d55b1f769c1660a6f42118988975621
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86686
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 05:36:16 +00:00
Pranava Y N
08076240bd mb/google/brya: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on brya device and verify that the device
suspends to S0ix.

Change-Id: Ifc85b85ef57216dc394f9a2e1b25bb7154da658f
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86685
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 05:36:10 +00:00
Pranava Y N
28930e9c18 mb/google/brya/nova: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on nova and verify that the device
suspends to S0ix.

Change-Id: Icb36285d0a12dcb098282b08ef794256af67b019
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86649
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 05:36:04 +00:00
Pranava Y N
26d494b57a mb/google/brya/gladios: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on gladios and verify that the device
suspends to S0ix.

Change-Id: I329e3a99e2e5c7cf4a51d7d8606987f5277d4584
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86648
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-05 05:35:57 +00:00
Pranava Y N
002a9119c9 mb/google/brya/gaelin: Enable RTD3 for SSD to resolve S0ix issue
Some SSDs block the CPU from reaching C10 during the S0ix suspend
without the RTD3 configuration. Add PCIe RTD3 support so NVMe gets
placed into D3 state when entering S0ix.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on gaelin and verify that the device
suspends to S0ix.

Change-Id: I4a3f4fbddae3806f548705e9a492379c0b38a415
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86647
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-03-05 05:35:51 +00:00
Pranava Y N
6df02490a7 mb/google/brya/vell: Enable RTD3 for SSD to resolve S0ix issue
Add PCIe RTD3 support so NVMe gets placed into D3 state when entering
S0ix. Some SSDs block the CPU from reaching C10 during the S0ix
suspend without the RTD3 configuration.

Enable and reset GPIOs are configured as per pin mapping in gpio.c.

BUG=b:391612392
TEST=Run suspend_stress_test on vell and verify that the device
suspends to S0ix.

Change-Id: I9015f992cc797af013e8882630220b3df41dc9b3
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86646
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-03-05 05:35:40 +00:00
Felix Held
5b268a5654 soc/amd/common/cpu/noncar: report 100 MHz external clock in smbios
All AMD SoCs from family 17h on, so all using a non-CAR configuration
to boot, have a reference clock of 100 MHz, so report this for all of
them in the SMBIOS tables.

Change-Id: I9573cbb8ec816c797314415d0c60c72abf23a094
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86690
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-04 16:07:17 +00:00
Felix Held
ca4c0d07d4 Revert "soc/amd/cpu: smbios: Set external clock to 100 MHz"
This reverts commit fe107c1ad2.

I have strong doubts that this is Glinda-specific, so this likely should
have been made common after verifying.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ib7282e2bec4d6aa5b74efa5621c825bc234cca82
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86689
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-04 16:07:09 +00:00
Felix Held
3a5c1ae56a Revert "soc/amd/glinda/cpu: Update smbios parameters"
This reverts commit 00b4a61dc5.

I have strong doubts that this is Glinda-specific, so this probably
should have been made common after verifying.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ie7fa0dca4c92f7bb0d49956aa9f1588b5fcba585
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86688
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-03-04 16:07:01 +00:00
Brandon Weeks
0e775bc390 mb/cwwk/adl: Fix HDMI, PCIe CLKREQ, EC, TPM
- Update VBT to fix HDMI
- Enable ITE environment controller
- Enable PTT fTPM
- Disable s0ix, it never worked and will crash if used
- Set CLKREQ# based on register values from vendor firmware
- Set pmc_gpe0_dw{0-3} to fix "Duplicate GPE DW register values"

Change-Id: I9365e76c593b7e4a334dcdc5ecd46da253e14716
Signed-off-by: Brandon Weeks <bweeks@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86260
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-04 09:53:28 +00:00
Patrick Rudolph
3c96687c2c MAINTAINERS: Drop Patrick Rudolph from Xeon-SP
It's too broken to be maintained.

Change-Id: I2c6492f4e37b21bdc2b8d413fb30beaf16403345
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86641
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-04 04:59:10 +00:00
Elyes Haouas
77cd0ce768 coreboot-sdk: Remove unnecessary files
Reduces the size of the Docker image by removing all unnecessary files.

Change-Id: Ib8c658799217c3b6595e3b5fce8f5c8238054c45
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86617
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-03-03 22:05:57 +00:00
Alexander Couzens
6789dea1d6 util/intelp2m/platforms: Add support for Elkhart Lake
TEST:
- 'make test' = PASS;
- 'intelp2m -p ehl -file parser/testlog/inteltool_test.log' = no errors.

Change-Id: I0f60d182bc5cc3d0d1d1177fbda0cfe8e2279e46
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84191
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:57:59 +00:00
Maxim Polyakov
864dea8d21 intelp2m/platforms: Rename macro.go to match module name
Change-Id: I5eeb24d668a8d478720ecccf1522238e70dd8a71
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85770
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:57:44 +00:00
Maxim Polyakov
a4f4dc5769 util/intelp2m: Provide GPP group slice from each platform
Instead of a pointer to a function for analyzing the pad name, provide
GPP group slice with pad names to the parser. This will get rid of some
functions and files and make the code cleaner.

TEST:
- 'make test' = PASS;
- 'intelp2m -file parser/testlog/inteltool_test.log' = no errors.

Change-Id: I0d7818d3892450a37bffbf1ffd9524888e4675bf
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85769
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-03-03 21:57:16 +00:00
Maxim Polyakov
da54bd60af Documentation: Update information about intelp2m
Change-Id: I80d5fb5d46b50193e8fecc647d9052a2e29af93f
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71757
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Filip Lewiński <filip.lewinski@3mdeb.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-03-03 21:56:57 +00:00
Maxim Polyakov
9e50202e4c util/intelp2m: Move fields pakage to common
According to the architecture, this is part of the common block.
TEST: 'make test' = PASS

Change-Id: I6390182ab00d9ebd787e8da6f341e3ef85572991
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71235
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:44:31 +00:00
Maxim Polyakov
e833b4661d util/intelp2m: Move remapping reset source to common
TEST: 'make test' = PASS

Change-Id: I315541b12f5f1fdf7c97c2ff8ddd305e30a447cc
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85731
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-03-03 21:44:24 +00:00
Maxim Polyakov
d9c3e51a81 util/intelp2m/platforms/cnl: Add missing VGPIO groups
Change-Id: Ib7c807c343c71e8420feaa481b7f0536a5f36533
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85608
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-03-03 21:44:16 +00:00
Maxim Polyakov
85054dbccb util/intelp2m: Rework platforms and fields packages
- embed the base platform and redefine its methods if they differ;
- separate the macro structures from the platform;
- move more functions to common;
- undo use of a single global instance of the microstructure.

TEST:
1) 'make test' = PASS
2) './intelp2m -p cnl -iiii -file inteltool.log' = gpio.h before and
   after the commit is the same.

Change-Id: I2e0aa56efa2430ac6524c6977f8b6fd13113edf9
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71167
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:44:09 +00:00
Maxim Polyakov
e91324707e util/intelp2m: Rewrite parser
- Split the parser code into several packages to make its testing of its
  functions more convenient and detailed. This also makes embedding the
  parser in third-party applications more flexible - there is no need to
  use all the functionality of the parser.

- Clean up code and remove unnecessary objects to make intelp2m simpler
  and more readable.

- Change the common macro format to be consistent with the new parser.

- Rename the results directory containing gpio.h to output to avoid
  confusion with the generator package directory.

- At the moment there is no mechanism for setting the Ownership flag.
  This will be added in later versions.

Tests:
- make test = PASS
- gpio.h for Apollo Lake before and after the patch is the same

Change-Id: I9a29322dd31faf9ae100165f08f207360cbf9f80
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70543
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-03-03 21:43:58 +00:00
Maxim Polyakov
2c2e92f7f7 util/intelp2m: Drop non-DWx register analysis support
The utility can parse the value of non-DWx registers, if they are
present in the inteltool dump. However, the functions that allow the
inteltool utility to print the value of such registers have not been
added to the master branch, and it makes no sense to support such
functions in intelp2m, besides, their implementation is far from ideal.
Remove this unused functionality. This will be restored in the future in
a different form and after corresponding changes in inteltool.

TEST: make test = PASS

Change-Id: If5c77ff942a620897c085be4135cb879a0d40a00
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56887
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:43:40 +00:00
Maxim Polyakov
be7eb06131 util/intelp2m: Add logger
Add logging to a file, ./logs.txt by default. --logs option is used to
override this path. Error messages are duplicated to the console.

Change-Id: I97aba146b6d8866a7fa46bac80c27c0896b26cf7
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70542
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:43:28 +00:00
Maxim Polyakov
2e9dd0ade2 util/intelp2m: Update cli options
- Redesign the options format.
- Add automatic completion of arguments for bash.
  [complete -C `pwd`/intelp2m ./intelp2m] to enable

TEST: make test = PASS

Change-Id: I08ff379b99b018b1099aa5d70fea47026bc84045
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70310
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:43:17 +00:00
Maxim Polyakov
a581660031 util/intelp2m/register: Rework package code
Split all methods between DW0 and DW1 to avoid the mistake of using any
DW0 method with DW1 receiver and make the code safer. Also make some
code style fixes.

TEST: make test = PASS

Change-Id: Id64e2a5e29f1d561597004ac83d32e3c80c16ebd
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70309
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:43:04 +00:00
Maxim Polyakov
5fe0b88b15 util/intelp2m/config: Rework configuration package
- Reduce the number of methods for updating settings and redefine types
  to make the code cleaner and more readable.
- Move the configuration to the p2m package to add settings from new
  utilities based on the intelp2m code.
- Make some code style fixes.

TEST: make test = PASS

Change-Id: Ia1b19ae3122bcf6ec740ae4683d62f31570670b1
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70308
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-03-03 21:40:03 +00:00
Maxim Polyakov
1ce69c9db0 util/intelp2m: Drop multi-template support
Exclude the template to parse gpio.h, since coreboot no longer has such
files with raw DW register values. The new GPIO config should be
generated using inteltool.log only.

TEST: make test = PASS

Change-Id: I07124cca487f11641c4e107134efb8cfc29c6731
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70307
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-03 21:39:21 +00:00
Elyes Haouas
118b394137 sb/intel/lynxpoint/pch: Use boolean for pch_is_lp()
pch_is_lp() returns CONFIG(INTEL_LYNXPOINT_LP) which is a boolean,
so use boolean instead of int.

Change-Id: Ic7bf801f549077cbd493e0a53ba7eff7a72728fb
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84859
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-03 21:30:42 +00:00
Maximilian Brune
362232d236 soc/amd/glinda/Kconfig: Increase APOB NV size
A glinda based platform reports:
[WARN] RAM APOB data is too large (3b3b0 + 8) > 1e000

APOB NV size is not enough on recent platforms to cache memory training,
which causes the same amount of boot time on subsequent boots as on the
first boot.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I8cc1f1e4f8d6f99c8e2b717926b66a5a683bffdc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86624
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-03-03 19:37:49 +00:00
Elyes Haouas
e90fc546e7 cpu/intel/haswell: Usee boolean for haswell_is_ult()
haswell_is_ult() returns CONFIG(INTEL_LYNXPOINT_LP) which is a boolean,
so use boolean instead of int.

Change-Id: I3c98ee819fc937ed6da9ee1340c2af10cec19eb3
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84857
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
2025-03-03 01:15:17 +00:00
Sergii Dmytruk
3794f9f94a drivers/efi/capsules.c: fix recording capsule size
As mentioned in comments on CB:83422, size of the current data
block (which is also the last block of a capsule) was incorrectly used
in place of the capsule size:
 - when publishing a capsule in CBMEM (this worked in practice because
   CapsuleApp.efi allocates a continuous physical memory)
 - when aligning target address (which could move output pointer past
   previously allocated buffer by up to 7 bytes per capsule block)

Change-Id: I97a528e2611fcd711c555d0f01e9aadcd2031217
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84542
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:29:54 +00:00
Naresh Solanki
00b4a61dc5 soc/amd/glinda/cpu: Update smbios parameters
Update smbios parameters for cache type, operation mode & error
correction type.

source: UEFI reference BIOS

Change-Id: If8eaa54c9a0086f4d397a7ddb01009acfd3f1aee
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85637
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:29:35 +00:00
Naresh Solanki
fe107c1ad2 soc/amd/cpu: smbios: Set external clock to 100 MHz
Set external clock to 100MHz.

source: PPR #57254

Change-Id: I99f73695019612d58b0c78c6985370d23c78b729
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85636
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-03-01 23:29:28 +00:00
Sean Rhodes
927f16085a mb/starlabs/starbook/mtl: Correct GPP_D21 configuration
This GPIO is used for clock request 5, which is NF2.

Change-Id: Ic5712090339a39a269aa1aefca9f54da11cb6528
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86654
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:29:16 +00:00
Shuo Liu
b8a88f851e Kconfig: Update prompt and help text for CBFS_SIZE
Kconfig item CBFS_SIZE is actually indicating the host firmware
size, a.k.a. coreboot owned flash region size, covering
CBFS, FMAP, console, MRC cache, VPD, etc. Revise the prompt and
help documentation to reflect recent usage updates.

Change-Id: I762042fae6357ee368b22a47b8e1168902041675
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86571
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:29:09 +00:00
Sean Rhodes
172853a8ce mb/starlabs/starbook/mtl: Don't configure MUX pins
These were incorrectly copied from Alder Lake so remove them
as they are not correct nor needed.

Change-Id: I70708212c4652ed77c875242340c30edf5b935a1
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86651
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:28:59 +00:00
Pranava Y N
dc9d6fdee3 mb/google/brya/lisbon: Enable RTD3 for SSD
Add PCIe RTD3 support so NVMe gets placed into D3 state when entering
S0ix. Some SSDs block the CPU from reaching C10 during the S0ix
suspend without the RTD3 configuration.

BUG=b:391612392
TEST=Run suspend_stress_test on lisbon and verify that the device
suspends to S0ix.

Change-Id: I124b63061650c85ed84324f3e1558a583a1875e0
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86645
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-01 23:28:47 +00:00
Pranava Y N
f0f66be2c3 mb/google/brya/bujia: Enable RTD3 for SSD
Add PCIe RTD3 support so NVMe gets placed into D3 state when entering
S0ix. Some SSDs block the CPU from reaching C10 during the S0ix
suspend without the RTD3 configuration.

BUG=b:391612392
TEST=Run suspend_stress_test on Bujia and verify that the device
suspends to S0ix.

Change-Id: Idee14e7d4df0a9cf8b06b33a52016c1b9228e459
Signed-off-by: Pranava Y N <pranavayn@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86644
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-01 23:28:35 +00:00
Sean Rhodes
f114b018b0 mb/starlabs/starbook/mtl: Don't reconfigure GPIOs in ramstage
GPP_H08 and GPP_H09 are configured in the bootblock, so remove the
configuration in ramstage to allow the serial output in ramstage.

Change-Id: I4b813370cf259fb1ca138dd1922c16f801b40cc4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86650
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-03-01 23:28:19 +00:00
Sean Rhodes
2d2343308a soc/intel/meteorlake: Don't generate a TME on S3 exit
Generate a new TME key will cause S3 exit to fail, so
don't do it.

Change-Id: Ie19cb7f11ad633405a9fc3c1faf1c3cc53113f51
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86625
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-03-01 23:28:00 +00:00
Tongtong Pan
c3273e3896 mb/google/fatcat/var/felino: Add Fn key scancode
The Fn key on felino emits a scancode of 94 (0x5e).

BUG=b:395822961
TEST=Flash Felino, boot to Linux kernel, and verify that KEY_FN is
generated when pressed using `evtest`.

Change-Id: I297cc3dea577acff6c85804ba1f7e5778fc63736
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86613
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:27:49 +00:00
Weimin Wu
8303a71a91 mb/google/fatcat/var/felino: Enable Type-C Ports and TBT
Test with PDC fw 19.16.3.

BUG=b:397313651
TEST=
1. FW_NAME=felino emerge-fatcat coreboot-private-files-baseboard-fatcat coreboot chromeos-bootimage
2. Type-C Ports and TBT work fine.

Change-Id: Icbed4d16911665e820382a483607e6dae44b7f8c
Signed-off-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86633
Reviewed-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:27:37 +00:00
Matt DeVillier
5e491f613f soc/intel/meteorlake: Allow boards to disable INTEL_TME
Allow boards to disable TME (total memory encryption) by guarding
selection of TME_KEY_REGENERATION_ON_WARM_BOOT on INTEL_TME.
This way, boards can set INTEL_TME to n in their Kconfig without
generating an unmet dependencies error.

The default behavior/Kconfig selections are unmodified with this change.

Change-Id: I0df1437798e7cafa228ca0e5ae0c32eff774ed09
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86621
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-03-01 23:27:00 +00:00
Jeremy Compostella
39d890073f mb/intel/ptlrvp: Add Intel Panther Lake RVP as copy of google/fatcat
This commit introduces the Intel Panther Lake (PTL) Reference Validation
Platform (RVP) mainboard definition. It is aligned with the Google
Fatcat mainboard in the coreboot codebase, with the commit hash
e2ea7f22c6.

Intel's proprietary platform, commonly referred to as PTLRVP, and
Google's Fatcat mainboard share a considerable degree of similarity in
their design and capabilities. Nevertheless, Intel faces unique
challenges and requires specific board configurations that Google does
not. Consequently, there is a necessity for a specialized mainboard
tailored to Intel's individual needs.

To maintain consistency with the Fatcat board definition, the Chrome OS
Board Information (CBI) firmware configuration aligns with that of
Google Fatcat. If necessary, new bits will be appended, starting from
the end of the 32-bit firmware configuration field.

BUG=b:398880064
TEST=The Intel PTLRVP board successfully boots to the operating System.

Change-Id: I914f73ff06bfb801fc319b45b23d7ce4cb7a6d60
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84564
Reviewed-by: Cliff Huang <cliff.huang@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
2025-03-01 18:11:28 +00:00
Sergii Dmytruk
7164abff0b drivers/efi/capsules: check for overflows of capsule sizes
As was pointed out in comments on CB:83422 [0], the code lacks overflow
checks:
 - when computing size of capsules in a single capsule block
 - when computing size of capsules in all capsule blocks

If an overflow is triggered, the code might allocate a capsule buffer
smaller than the data that's going to be written to it leading to
overwriting memory after the buffer.

[0]: https://review.coreboot.org/c/coreboot/+/83422

Change-Id: I43d17d77197fc2cbd721d47941101551603c352a
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84541
Reviewed-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 18:32:09 +00:00
Vesek
670ed107de mb/hp/pro_3x00_series: Remove unused ACPI brightness control
These lines are not needed because this mainboard does not have
an integrated display to control.

Tested on HP Pro 3400 Series.

Change-Id: Id39cd18713cc596eb2c92e028dad480fe7de8ef2
Signed-off-by: Vesek <venda.straka@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85847
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 18:31:11 +00:00
Vesek
ddc373afab Doc/mb/hp: Rename pro_3500_series to pro_3x00 series
The pro_3500_series was converted to a variant to include the Pro 3400, so rename the corresponding documentation.

Change-Id: I5977f223d6f004a801e163397d1c97febd7ee1d4
Signed-off-by: Vesek <venda.straka@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85846
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 18:30:52 +00:00
Vesek
d8aaa220c8 mb/hp: Add Pro 3400
Based on autoport and HP Pro 3500.
As part of this change renamed 3500 to 3x00 and added this as
it's variant.

It's an almost identical board to the 3500 but has a smaller flash.

Other differences between boards were identified by autoport.
They may or may not important but were included anyway.

Tested on HP Pro 3400, behaves exactly as 3500 described in the docs.
Changes were not significant enough to require retesting on 3500.

Change-Id: I833996f6eddcaac91fb0ad0cd95fcc2a99447387
Signed-off-by: Vesek <venda.straka@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85825
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-02-28 18:30:23 +00:00
Frank Wu
af2d11f963 mb/google/fatcat/var/francka: Adjust NVMe SSD power sequence
Move SSD enable/reset pins to romstage to have more time for initialization.

BUG=b:398070426
BRANCH=None
TEST=Build francka and do EC reset to check the SSD boots to OS successfully

Change-Id: I468ba34a54046ef6ed3d5ec4c625a87bb5255640
Signed-off-by: Frank Wu <frank_wu@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86593
Reviewed-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 18:28:56 +00:00
Fred Reitberger
4cfc5db6b6 soc/amd/common: Support sbin ucode files
Recent PI releases have been distributing the ucode patch files as sbin
files instead of bin files. The sbin uses a 256 byte amd_fw_header to
wrap the bin file.

Offset 0x14 of the header is the size field. The can be extracted with
od to get the size of the ucode bin file. The bin file can then be
extracted with dd and placed in the build directory for inclusion as a
cbfs file.

In the case where both an sbin and bin ucode file are present, the bin
file will be added and a note will print at the start of the build about
the sbin file being skipped.

TEST=builds with only bin, only sbin, non-matching bin and sbin,
matching bin and sbin files

Signed-off-by: Fred Reitberger <reitbergerfred@gmail.com>
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I29768ea19543bdc76662e687f59bf31b76f555ae
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68122
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 18:28:27 +00:00
Maximilian Brune
70ca54bf37 mb/emulation/qemu-riscv: Add support for 512 harts
QEMU has a maximum of 512 of emulated harts supported.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I149c8d8a43733c8ba3e02a84b0a3606d98f8b2c1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81083
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Carlos López <carlos.lopezr4096@gmail.com>
2025-02-28 18:27:39 +00:00
John Su
d5bd4fbdfa mb/trulo: Add host event EC_HOST_EVENT_BODY_DETECT_CHANGE
Add host event EC_HOST_EVENT_BODY_DETECT_CHANGE for trulo.

BRANCH=firmware-trulo-15217.771.B
BUG=b:394177292
TEST=bodydetectmode on|off, verify host event is received

Change-Id: Ifac0460e0e8feb33ad0085d250928adb593bb8ca
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86615
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 18:27:12 +00:00
John Su
f1fbcf7647 mb/trulo/var/uldrenite: Fix boot time caused by WWAN initialization
The previous approach would increase the delay time by 50 ms. So move
WWAN power sequence to GPIO control to reduce boot time caused by WWAN
initialization. Additionally, add a 150ms delay to T0_OFF_MS before powering off the WWAN. This ensures that the WWAN Power OFF Sequence operates correctly during a reboot.

BUG=b:383212261
BRANCH=firmware-trulo-15217.771.B
TEST=Confirm the measured WWAN power sequence

Change-Id: Ie01019eca7eaa4bbb34dd80aeb65b9b6b08587fd
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86514
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-28 18:26:54 +00:00
Maximilian Brune
0ac29ad3ce device/dram/ddr5: Add 7500 MT/s support
Before I got the following error:
[ERROR]  DDR5 speed of 3750 MHz is out of range

tested: glinda based mainboard

Change-Id: I141f63c4fc505a9e16eed132a9a550441f4ad68d
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86543
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Reviewed-by: Marvin Drees <marvin.drees@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Naresh Solanki <naresh.solanki@9elements.com>
2025-02-28 18:25:25 +00:00
Cliff Huang
3ef23c9a88 soc/intel/common/gpio: Add macro for interrupt GPI with driver mode
Adds PAD_CFG_GPI_APIC_DRIVER macros to configure interrupt pad with
driver mode. This is needed when a PAD is configured as an interrupt
such that the corresponding GPI_IS status bit can be updated by the
host controller hardware.

BUG=none
TEST=Check a GPIO pad that is used as interrupt via GpioInt in the ACPI
device _CRS method and check the interrupt has been assigned in
/proc/interrupts.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: Ibc1ed3089c24302bc7eb02318714b8ec464fad01
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86414
Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-by: Kyoung Il Kim <kyoung.il.kim@intel.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 18:24:45 +00:00
Zhaoqing Jiu
1633ae8378 soc/mediatek/mt8196: Adjust thermal trip point parameters
Adjust thermal trip point parameters so the thermal can trigger the
interrupt at the expected trip point.

BRANCH=rauru
BUG=b:389026545
TEST=Boot up and check temperature in coreboot log:
[INFO ]  [LVTS_MSR] ts0 msr_all=141d0, msr_temp=16848, temp=41086
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 0 ts_name 0 temp 41086 rg_temp 41073(42059)
[INFO ]  [LVTS_MSR] ts1 msr_all=141e3, msr_temp=16867, temp=41540
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 1 ts_name 1 temp 41540 rg_temp 41526(42523)
[INFO ]  [LVTS_MSR] ts2 msr_all=14199, msr_temp=16793, temp=39772[0m
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 2 ts_name 2 temp 39772 rg_temp 39760(40715)
[INFO ]  [LVTS_MSR] ts3 msr_all=141c2, msr_temp=16834, temp=40751
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 3 ts_name 3 temp 40751 rg_temp 40739(41717)
[INFO ]  [LVTS_MSR] ts4 msr_all=141d0, msr_temp=16848, temp=41086
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 0 ts_name 4 temp 41086 rg_temp 41073(42059)
[INFO ]  [LVTS_MSR] ts5 msr_all=141b3, msr_temp=16819, temp=40393
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 1 ts_name 5 temp 40393 rg_temp 40380(41350)
[INFO ]  [LVTS_MSR] ts6 msr_all=14194, msr_temp=16788, temp=39652
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 2 ts_name 6 temp 39652 rg_temp 39641(40593)
[INFO ]  [LVTS_MSR] ts7 msr_all=14186, msr_temp=16774, temp=39318
[INFO ]  lvts_tscpu_thermal_read_tc_temp order 3 ts_name 7 temp 39318 rg_temp 39307(40251)

Signed-off-by: Zhaoqing Jiu <zhaoqing.jiu@mediatek.corp-partner.google.com>
Change-Id: Ia7361edd7f75b82fff4241ec94488ed1ef07346f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86552
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-02-28 13:04:43 +00:00
Sean Rhodes
b6c2d01d01 driver/usb/intel_bluetooth: Add PS0 and PS3 methods
Add PS0 and PS3 methods that return the Bluetooth power
resource. This allows the OS to turn on or off the device.

This fixes and issue where the Bluetooth reported a power
failure in device manager.

Change-Id: I0e37fc0369b1dc2b166f851daa183b145a09eb32
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86507
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 08:49:02 +00:00
Sean Rhodes
c166b6d95c drivers/usb/intel-bluetooth: Remove the _PR3 Object
_PR3 should return resources required for the device to be in D3Hot
for which the Intel Bluetooth needs none, so remove it.

Change-Id: I65f206899affd46d791c2ba39235a1af320395d2
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86595
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 08:48:55 +00:00
Sean Rhodes
970d983083 drivers/usb/intel_bluetooth: Guard BTRK if no GPIO passed
Don't attempt any GPIO operations of there isn't a reset
GPIO specified.

Change-Id: I9c97963e61f790f2d9c55d8ec1a384a5779782b4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86401
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 08:48:42 +00:00
Sean Rhodes
9f351c76a3 drivers/usb/acpi: Account for GPIO polarity
Whilst the GPIO's used for Intel Bluetooth should always be consistent
as to whether they're active high or active low, adjust the driver to
pass the GPIO as a pointer, so that it can correctly account for
polarity.

Change-Id: Ib481d49d536b702fef149af882209501c61de6da
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86400
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-28 08:48:33 +00:00
Sean Rhodes
aab800b1a4 soc/intel/cnvi: Increase the reset delay to 160ms from 105ms
The Intel reference code for Thunder Peak increase the reset delay
to 160ms from 105ms seen on Jefferson Peak, Cyclone Peak and others.

For the sake of 110ms, use 160ms to cover all use cases.

Change-Id: I19c1bf7eeffa340e2564381a184ebfaca89bf364
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86489
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-28 08:48:22 +00:00
Sean Rhodes
e4832dce93 mb/starlabs/{byte_adl,starlite_adl}: Enable SW RF Kill for CNVi
Specify an enable GPIO for CNVi wireless so that the driver will
add support for WiFi SW RF Kill.

Test=boot starlite_adl/byte_adl, and use acpi_call dkms to check
that _OFF and _ON Methods in the power resource successfully
disable the wireless.

Change-Id: Ib172230f2c9e926870e35f040ce1b80628561863
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86428
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-28 08:48:10 +00:00
Sean Rhodes
0476770659 soc/intel/cnvi: Deref BTRK as it might not exist
Check for the existence of BTRK method before attempting to
call it, as coreboot doesn't enforce its creation.

Change-Id: Ibb0dace635c6a014ce65ae3d1c96a92ff991ce5b
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86450
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-28 08:43:49 +00:00
Sean Rhodes
def337aa7e soc/intel/common: Add support for WiFi SW RF Kill on CNVi
Hook CNVC and CNVS Methods into the power resource for the CNVi
which is provided via the `wifi/generic` driver to allow for WiFi
SW RF Kill (low power mode) support.

Add corresponding _PS3 and _PS0 Methods, change the power resource
to S0 from S5, and rename the power resource from WRST to CNVP for
better relevance.

Test=boot `starlabs/starlite_adl`, disconnect wireless and verify
with inteltool that the WIFI_RF_KILL GPIO is asserted.

Change-Id: I22292ad97c439e50fe5d7a6b79f77847e71ca62c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86403
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-28 08:43:43 +00:00
Sean Rhodes
f2d91575ac drivers/wifi/generic: Add Methods to control CNVi enable GPIO
Add two new methods, CNVS and CNVC, that can check and control
the enable GPIO for a CNVi module.

These will be used by the common code for WiFi SW RF Kill (Low
Power Mode).

Change-Id: I09d0011ede6f739511a61daf2f1b317f6500a343
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86402
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-28 08:43:34 +00:00
Sean Rhodes
f7ca6600ad mb/starlabs/starbook/mtl: Set the MMIO Size to 3GiB
This is required when using 96GB of memory.

Change-Id: I3a2a3e737eeb9282a4edf09eb0a24019ceeb016e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86623
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-28 08:43:25 +00:00
Brian Hsu
0870f977c8 mb/google/nissa/var/guren: Add initial override devicetree
The schematic is the same as Glassway project and only difference for CPU.
Therefore, we clone the coreboot settings of glassway to guren
then remove some configurations to meet those keypart/design for guren.

BUG=b:397149037
BRANCH=firmware-nissa-15217.B
TEST=Local build successfully and boot to OOBE normally.

Change-Id: Ia43a78c340426069571172319be1675b3d94eba4
Signed-off-by: Brian Hsu <Brian_Hsu@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86602
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-28 04:52:33 +00:00
Shuo Liu
5cc8685fcd util/cbfstool: Add missing \n and use __func__ in debug messages
For adding missing \n, find all potential missings by below script
and apply manual checks and fixes.

grep -nE "(DEBUG|ERROR)\(\".+[^\\n]\"" util/cbfstool/ -r

For using __func__ in debug message, below script is used with
manual checks and fixes.

grep -nE "DEBUG\(.+:" util/cbfstool/ -r

Change-Id: I3e2c225dc16a65470f9f94db89d8ec3711e781c8
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86567
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-27 16:24:53 +00:00
Seunghwan Kim
f46f2cb678 mb/google/nissa/var/meliks: Update GPIO configuration
Update the initial GPIO configuration for meliks by referring to
the schematics.

BUG=b:394359785
BRANCH=nissa
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: I33e1e3be5f2530feb396e7413f3f0cd75d5f38ca
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86378
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-02-27 16:24:07 +00:00
Seunghwan Kim
4ba6dc6b1c mb/google/nissa/var/meliks: Copy pirrha’s overridetree as initial one
Upload the initial devicetree for meliks.

All devices and port usages are the same as pirrha, just copied from
pirrha's devicetree for the initial configuration except
typec_aux_bias_pads[0] since pirrha had incorrect setting.

About detection method of the touch screen device, the panel-built-in
touch screen for meliks needs some delay after panel power up, so it
may not be detected in coreboot phase. So we would keep `probed`
instead of `detect` for this special touch screen device to avoid
missing it in OS.

BUG=b:394359785
BRANCH=nissa
TEST=FW_NAME=meliks emerge-nissa coreboot

Change-Id: Ifd6dfbeca7276dbacd72f9145ed7119566c8faef
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86377
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-27 16:23:59 +00:00
Seunghwan Kim
a53d8ad8ac mb/google/nissa/var/meliks: Generate SPD ID for 3 supported parts
Add supported memory parts in mem_parts_used.txt, and generate
SPD id for these parts.

- K3KL6L60GM-MGCT (Samsung)
- MT62F512M32D2DR-031 WT:B (Micron)
- K3KL8L80DM-MGCU (Samsung)

BUG=b:394359785
TEST=Build coreboot and verified booting to depthcharge

Change-Id: Ief1272ef4cb7971c3abfe6ee982b019121f54793
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86375
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-27 16:20:47 +00:00
John Su
b927d558bb mb/google/trulo/var/uldrenite: Enable DPTF oem_variables
Support oem_variables and change based on EC notify event.

BUG=b:394177292
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot

Change-Id: Iac18cb968906a9dfe53836432ba8dbefee1dcc8e
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86394
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-27 16:20:17 +00:00
Bora Guvendik
ce3b7f0e34 soc/intel/pantherlake: Inject CSE TS into CBMEM timestamp table
Get boot performance timestamps from CSE and inject them into CBMEM
timestamp table. For Panther Lake, remove "Die Management Unit (DMU)
load completed" and add "ESE completed AUnit loading" instead.

 990:CSME ROM started execution                        0
 992:ESE completed AUnit loading                       0
 944:CSE sent 'Boot Stall Done' to PMC                 174,000
 945:CSE started to handle ICC configuration           274,000 (100,000)
 946:CSE sent 'Host BIOS Prep Done' to PMC             274,000 (0)
 947:CSE received 'CPU Reset Done Ack sent' from PMC   448,000 (174,000)
   0:1st timestamp                                     556,874 (108,874)

BUG=b:376218080
TEST=Able to see TS elapse prior to IA reset on Fatcat

Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Change-Id: Ie7716b8c371b82c13da1b0217dce1a16e7b95cee
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84872
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-27 16:19:51 +00:00
Elyes Haouas
ed85f01281 mb/*/*/irq_tables.c: Use PCI_DEVFN(dev, fn)
Change-Id: Ic97bf7c8f04edbb56f200c34060d22a8c5fb7ec2
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69066
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-02-26 23:05:42 +00:00
Sean Rhodes
ec7b6a5a24 mb/starlabs/*: Unify IO genx_dec configuration across all boards
Change-Id: I614b4cbf6ad502e69f463d71a2536b017c483907
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86188
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-26 20:17:17 +00:00
Patrick Rudolph
2494c28a49 soc/amd/glinda: Enable x86_64 support
The code compiles and works fine in x86_64. Thus allow the user
to use x86_64.

TEST: Booted on amd/birman+ to OS using EDK2 as payload.

Change-Id: If1b5d91a376770c0f0e1a4ee46dd625b401fbfa6
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86581
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-02-26 17:12:06 +00:00
Patrick Rudolph
f4bf050518 cpu/x86/64bit: Allow to map more of the address space
On AMD platforms the SPI flash can be accessed using the ROM3
mapping in upper MMIO space. To reach the MMIO window the default
page tables must be extended to cover the address by default.

Add support for a SoC specific default address space being used on
x86_64, where the default of 4GiB/512GiB remains.
The size can be specified by the Kconfig CPU_PT_ROM_MAP_GB option.

Used in the following patch to use ROM3 mapping on AMD platforms.

TEST: Access ROM3 bar at 0xfd00000000 on amd/birman+ using x86_64
TEST: x86_64 still works on qemu/q35.

Change-Id: If669426f2b5ae40dd5c62e17f3a0234783b7d462
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86580
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-02-26 17:11:59 +00:00
joel.bueno
632ae13fe0 soc/riscv/ucb: Switch to FDT parsing to get memory size
Currently, coreboot tries to manually probe the memory for
the Spike target as part of the SOC_UCB_RISCV target.

However, Spike already passes a pointer to the device tree,
so use it instead to get the memory size (like qemu-riscv does).

TEST=Compile for SPIKE-RISCV and run (cmdline: spike -m1024 build/coreboot.elf)

Change-Id: I5c826ab5e4896e07a78632d5d594377a3d6a7a43
Signed-off-by: joel.bueno <joel.bueno@openchip.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86588
Reviewed-by: Carlos López <carlos.lopezr4096@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-02-26 17:11:09 +00:00
John Su
2e9f1f0990 mb/google/brya/var/agah: Remove the AGAH DPTF OEM variant
Because the AGAH EC code is based on monitoring adapter current to
choose the corresponding DPTF OEM variable table, but not every
project follows this design. Based on the comment below, the AGAH
EC code was removed in 2023, so remove the AGAH DPTF OEM variant,
allowing each OEM to adjust in EC ASL accordingly.

BUG=b:394177292
BRANCH=None
TEST=None

Change-Id: I2929eaa65a518b06f32e33cc31ae4a01bcfb77e8
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86493
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-26 17:10:23 +00:00
Sean Rhodes
c1acd33247 mb/starlabs/starbook/kbl: Update the verb table
Use the newer verb for the ALC2669-VB6 from `starbook/mtl`,
as the current verb table failed to detect headphones being
connected.

Change-Id: Iaa50c6622f3ca75fbeff96300e08eb00e071c8b6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86594
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-26 17:09:49 +00:00
Elyes Haouas
4e99ffcb02 intel/broadwell/spd: Use <spd.h> and <dram/ddr3.h>
Use already defined macros in <spd.h> and <dram/ddr3.h>.

TEST=Built purism/librem_bdw (Librem 13 v1) with BUILD_TIMELESS=1, no
change in output ROM.

Change-Id: Id38b97017b43f1421129fed0bb9c1fff5c3423d8
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82315
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-26 14:27:22 +00:00
Sean Rhodes
cb446c0404 soc/intel/alderlake: Add IRQ mapping for PEG PCI-E ports
ACPI _PRT method was missing from PEG (SoC PCI-E) links, resulting in
OS complaining about interrupt routing:
    pcieport 0000:00:06.0: can't derive routing for PCI INT A

Tested on `starbook_adl` with Ubuntu 24.04 by running SSD
benchmark with GNOME disks and suspend.

Change-Id: I2e36cee37716d3b003b9ce250f28fdf5581a15bc
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84620
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-02-26 10:13:43 +00:00
Hualin Wei
75759bfada mb/google/nissa/var/pujjoniru: Add Fn key scancode
The Fn key on pujjoniru emits a scancode of 94 (0x5e).

BUG=b:398943428
TEST=Flash Pujjoniru, boot to Linux kernel, and verify that KEY_FN is
generated when pressed using `evtest`.

Change-Id: I8eb7f253a637741b0aa45aac4d1d59bd0309d559
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86589
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-26 02:20:54 +00:00
Hualin Wei
ebd8e77596 mb/google/nissa/var/pujjoniru: Modify the gpio of GPIO_PCH_WP
According to the circuit schematic diagram, pujjoniru uses GPP_E17
as a write-protected gpio,so it is necessary to add the GPIO_PCH_WP
definition for GPP_E17 in gpio.h.

Duo to cros_gpios under variants/baseboard/nissa/gpio.c will call
GPIO_PCH_WP under variants/baseboard/nissa/include/baseboard/gpio.h,
causing our modifications to not take effect.

In order to achieve the above modification, we follow brya, we
modify DECLARE_CROS_GPIOS in variants/baseboard/nissa/gpio.c to
DECLARE_WEAK_CROS_GPIOS, so that the cros_gpios we defined in
/pujjoniru/gpio.c can overwrite variants/baseboard/nissa/gpio.c

BUG=b:396594296
TEST=wp status update verified by toggling it on and off.

Change-Id: Ic92ff33a5fde50a1a400043b2daba0414eb9e255
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86554
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-26 02:20:40 +00:00
Brian Hsu
76fecd1e55 mb/google/nissa/var/guren: Generate SPD ID for 7 supported memory parts
Add supported memory parts in mem_parts_used list, and generate SPD ID
for these parts.

DRAM Part Name       Vendor      Model Spec         ID to assign
K3KL8L80CM-MGCT      Samsung     LPDDR5X 7500 32Gb  0 (0000)
K3KL6L60GM-MGCT      Samsung     LPDDR5X 7500 16Gb  1 (0001)
H58G56AK6BX069       SK hynix    LPDDR5 6400 32Gb   2 (0010)
H9JCNNNBK3MLYR-N6E   SK hynix    LPDDR5 6400 16Gb   3 (0011)
H58G66AK6BX070       SK hynix    LPDDR5 6400 64Gb   4 (0100)
K3KL9L90CM-MGCT      Samsung     LPDDR5X 7500 64Gb  5 (0101)
K3LKBKB0BM-MGCP      Samsung     LPDDR5 6400 16Gb   2 (0010)

BUG=b:397149037
BRANCH=firmware-nissa-15217.B
TEST=Run command "go run ./util/spd_tools/src/part_id_gen/\
     part_id_gen.go ADL lp5 \
     src/mainboard/google/brya/variants/guren/memory/ \
     src/mainboard/google/brya/variants/guren/memory/\
     mem_parts_used.txt"

Change-Id: Ibc8626ea51e1143706b8c627f21d33c3ade6a232
Signed-off-by: Brian Hsu <Brian_Hsu@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86535
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-02-26 02:18:50 +00:00
Seunghwan Kim
2a10fac565 mb/google/nissa/var/meliks: Update memory DQ/DQS map
Update memory DQ/DQS map configuration by following schematics.

BUG=b:394359785
TEST=Build coreboot and verified booting to depthcharge

Change-Id: Iae3f2c65b4d1004d1d9ebf76b099fc7f50e8365f
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86376
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-25 20:36:05 +00:00
Subrata Banik
80db7cdae0 soc/intel/pantherlake: Add early shutdown notification hook
This commit display UX message for low-battery shutdown using
platform_display_early_shutdown_notification().

This commit also enables the HAVE_ESOL_SUPPORT_FOR_LOW_BATTERY_INDICATOR
Kconfig option, which is required for displaying the VGA text message
during early shutdown.

BUG=b:339673254
TEST=Verified low battery boot event logging and controlled shutdown.

Change-Id: I45c0fb07b984fcde6209631612cb8b4a08ac2041
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86476
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-02-25 17:38:47 +00:00
Subrata Banik
2f57986700 soc/intel/pantherlake: Centralize FSP-M eSOL UX with common APIs
Refactor the FSP-M early Sign-of-Life (eSOL) implementation to utilize
the UX APIs defined in `ux.c`.

This eliminates redundant code and ensures consistent messaging during
critical boot phases, such as memory training.

BUG=b:339673254
TEST=Verified eSOL message over eDP while booting google/fatcat.

Change-Id: Icf22c39c21e2357b2a548398700a1488f4ef463a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86592
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-25 17:38:41 +00:00
Subrata Banik
3130c410c6 soc/intel/pantherlake: Implement UX help APIs for eSOL handling
This patch refactors the eSOL implementation for Panther Lake and
introduces two new APIs, mirroring those in Alder Lake, to manage:

- Low battery shutdown notifications
- Firmware update memory training

BUG=b:397302064
TEST=Built and booted google/fatcat successfully.

Change-Id: I14229af4a4920414f3c572576d67fa6d665681cd
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86509
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-25 17:38:34 +00:00
Subrata Banik
3a57364bc4 soc/intel/adl: Delegate low-battery shutdown notification to platform
This commit removes the SoC-specific implementation of the early
low-battery shutdown notification. The generic implementation now
resides within the FSP driver layer, requiring only platform-specific
customization.

Platforms can now implement platform_display_early_shutdown_notification()
when CONFIG(PLATFORM_HAS_EARLY_LOW_BATTERY_INDICATOR) is enabled. This
function utilizes ux_inform_user_of_poweroff_operation() to display a
"low-battery shutdown" message using libgfxinit.

BUG=b:339673254
TEST=Verified low battery boot event logging and controlled shutdown.

Change-Id: If9f68b2b5cc710e00584b451f904e60d724d1e32
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86453
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-25 17:38:27 +00:00
Subrata Banik
77e8b821cb drivers/intel/fsp2_0: Add early low-battery shutdown during memory init
This commit introduces an early low-battery shutdown mechanism during
FSP memory initialization. This is particularly important during
firmware updates, where memory training can consume significant power
and lead to abrupt shutdowns, potentially corrupting the firmware.

The changes include:

- Adding platform_display_early_shutdown_notification() to notify the
user of the impending shutdown.
- Checking platform_is_low_battery_shutdown_needed() to determine if a
shutdown is necessary.
- Implementing a shutdown sequence if low battery is detected during
memory init, especially when no MRC cache is found (i.e. firmware
update).
- Deferring shutdown on systems without MAINBOARD_HAS_EARLY_LIBGFXINIT
so that FSP-M (uGOP) can display a message.

This prevents firmware update corruption due to low battery.

BUG=b:339673254
TEST=Verified low battery boot event logging and controlled shutdown.

Change-Id: Ia135b238d1e16722c2ca8d3b461e83b4ce513adf
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86452
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-25 17:38:22 +00:00
Anil Kumar
e4ee0ce5ac soc/intel/pantherlake: Display Sign-of-Life during memory training
This commit activates the Firmware Support Package (FSP) Memory
Sign-of-Life feature (FSP_UGOP_EARLY_SIGN_OF_LIFE), which allows for the
display of a user-configurable text message on-screen during memory
initialization. This feature enhances the user experience by providing
reassurance that the memory training process is underway and may take
some time.

The following FSP-M UPDs (Updateable Product Data) are utilized:

- VgaInitControl (boolean): Initializes graphics, establishes VGA text
  mode, and centers the VgaMessage text on the screen. It clears the
  screen, disables VGA text mode, and deactivates graphics upon exiting
  the FSP-M (Firmware Support Package - Memory Initialization).

- VbtPtr (address): This is a pointer to the VBT (Video BIOS Table)
  binary.

- VbtSize (unsigned integer): Indicates the size of the VBT binary.

- LidStatus (boolean): Given the limited resources available at early
  boot stages, the text message is shown on a single monitor. The lid
  status determines the most appropriate display to use:

  - 0: If the lid is closed, display the text message on an external
       display if one is available; otherwise, display nothing.

  - 1: If the lid is open, display the message on the internal display;
       if unavailable, default to an external display.

- VgaMessage (string): Specifies the text message to be displayed.

When the FSP_UGOP_EARLY_SIGN_OF_LIFE flag is set, coreboot is configured
to use the UPDs mentioned above to show a text message during the memory
training phase. This text message can be customized through the locale
text mechanism using the identifier memory_training_desc.

In addition, the newly introduced code records an extra event to
indicate when early Sign-Of-Life has been requested, to cover the Memory
Reference Code (MRC) training scenario. This event logging is crucial
for debugging and analyzing the boot process, especially in production
environments where it helps in pinpointing the exact stage where a boot
issue might occur.

TEST="Enabling FSP-M Sign-of-Life" message is present in the log upon
     the first boot, and a message is displayed on the screen while the
     FSP performs MRC training.

Signed-off-by: Anil Kumar <anil.kumar.k@intel.com>
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Change-Id: I993eb0d59cd01fa62f35a77f84e262e389efb367
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85454
Reviewed-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-25 17:37:58 +00:00
Subrata Banik
d9da262829 soc/intel/common/reset: Mark do_low_battery_poweroff with __noreturn
In the low battery poweroff scenario, the platform should halt after
issuing the poweroff command. This ensures that no further code
execution occurs, preventing potential issues.

Additionally, the do_low_battery_poweroff() function is marked with
__noreturn to indicate that it does not return. This is appropriate
because the platform will either power off or halt.

TEST=Able to compile google/fatcat.

Change-Id: Ieb77645283360b5731ca48b94551712b99109a1c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86578
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-02-25 17:37:13 +00:00
Maximilian Brune
a8139c0b87 treewide: Rename PM4LE -> PML4E
The x86 (AMD and Intel) spec defines it as Page-Map Level-4 Entry.
It is annoying when searching for the wrong abbreviation in the spec so
fix it everywhere it occurs.

source: Intel 64 spec April 2022 and AMD64 spec April 2024.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I730235beea69b3720f080bbade083c2eeed26587
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86587
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
2025-02-25 17:33:36 +00:00
Guangjie Song
024a23e478 soc/mediatek/mt8196: Disable HWRot's clocks
HWRot (Hardware Root of trust) is not used, so we disable its clocks to
save power. This patch is a subitem of Vcore power consumption
improvement. The whole work improves SoC power consumption from 120mW to
90mW in suspend.

BRANCH=rauru
BUG=b:377628718
TEST=Bootup OK & Suspend/Resume passed

Signed-off-by: Guangjie Song <guangjie.song@mediatek.com>
Change-Id: I25e607e8e8b2d52608d279e1862f423ca50aab6a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86553
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-25 11:22:30 +00:00
Sean Rhodes
bf649fb150 drivers/crb: Always generate TPM ACPI Tables
Commit `fb2c09d516` stopped the SSDT
containing TPM tables if PTT was not active, as at the time, the
table unconditionally reported the device present in the _STA
method.

Commit `d503ce1277` made the _STA to
return an accurate state, so now, the tables can always be
generated and Linux will report the presence correctly.

Change-Id: I594bf25a207b809c1ae2632eb1aea0d0fb6df35e
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86369
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-25 09:03:46 +00:00
Sean Rhodes
d64385f307 acpi: Fix incorrect TPM2 table generation for CRB_TPM
If CONFIG(CRB_TPM) is enabled but the TPM is inactive, and no other TPM
interface (SPI, I2C, Memory-Mapped) is configured, the function would
incorrectly fallback to generate a TPM2 table for FIFO mode.

This commit adds a check to ensure crb_tpm_is_active() is only
called if CONFIG(CRB_TPM) is enabled and no other TPM interface
is present. If the CRB TPM is inactive and no other TPMs are
available, the function now exits early to prevent generating
an invalid TPM2 table.

Test=boot `starlabs/starlite_adl` and check Linux doesn't probe for a
TPM when PTT is not active.

Change-Id: I153779aa1f3d84ffeb694543f9da1d09b120f98f
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86513
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-25 09:03:43 +00:00
Kapil Porwal
5c53441738 mb/google/trulo: Update GPIO wake pins
List of changes -
1. Make GPP_B3 IRQ only pin.
2. Remove redundant GPE option from touchpad device.

BUG=b:397905085
TEST=Verified wake from S0ix using touchpad.

Change-Id: I055a60476e4a37bf74940802157bb9cd30bac3c4
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86555
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-25 07:43:47 +00:00
Kapil Porwal
5a7c1c6729 mb/google/trulo: Lock GPIO pad configuration for GPP_F17
BUG=b:397905085
TEST=Make sure that GPP_F17 pad configuration is locked.

Change-Id: I9211ac70539d251746332448691d22b454bc6a2b
Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86579
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-25 07:43:39 +00:00
Elyes Haouas
9c0edfa76b libpayload/tests: Remove unused test files
Change-Id: Id2cec6a56ba5ce98832aced6fc2cfd8ebda91f02
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86536
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-25 03:56:49 +00:00
Tongtong Pan
d9d731d97d mb/google/fatcat/var/felino: Modify the overridetree.cb for enable touchpad
Modify the overridetree.cb configuration and gpio.c to enable touchpad.

BUG=b:388982526
TEST=abuild -v -a -x -c max -p none -t google/fatcat -b felino

Change-Id: I47667120f098727f0d3ef05c17ea48f62b13c135
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86542
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-24 13:49:39 +00:00
Sean Rhodes
b84ad781f2 mb/starlabs/byte_adl: Reconfigure the vGPIO's for CNVi BT
Manually confgiure the vGPIO's related to CNVi for USB Bluetooth
instead of UART.

Change-Id: I7d6007e40b2edbadeb5611f6cd67df0c1e6ee8a6
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86565
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-24 09:08:07 +00:00
Sean Rhodes
9e6a52fb50 mb/starlabs/byte_adl: Disconnect WLAN Sleep GPIO
This GPIO is not connected, so configure it accordingly.

Change-Id: I4b3421f1ab676599ffec6b2f46429ce937704e40
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86564
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-24 09:07:55 +00:00
Elyes Haouas
4dd07e0355 soc/intel/common/block/cse: Drop unused symbols
SOC_INTEL_CSE_RW_A_FMAP_NAME, SOC_INTEL_CSE_RW_B_FMAP_NAME and
SOC_INTEL_CSE_RW_HASH_CBFS_NAME are not used.

Change-Id: I0639f03baf4edcf5f01d6673137dfbab1f2d4a25
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81976
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-24 05:14:03 +00:00
David Wu
b63f8a1d0e mb/google/nissa/var/dirks: Add fw_config probe for WIFI Type
Use fw_config to probe WIFI Type.

BUG=b:389391653
TEST=emerge-nissa coreboot

Change-Id: Iaefda61e4929d48f02ce7190e9e45d70b32b75e3
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86540
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-23 20:15:03 +00:00
Jakub Czapiga
7dd2cf2f85 util/cbmem: Use uintN_t instead of uN int types
Replace all occurrences of u8, u16, u32 and u64 with their respective
alternatives of uint8_t. There is no need to unnecessarily compress code
by using standard types aliases.

BUG=b:391874512
TEST=Compile cbmem

Change-Id: I4fdb4a31923368342ef218144f8cb44624cd4b2a
Signed-off-by: Jakub Czapiga <czapiga@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86556
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-02-23 20:14:13 +00:00
Sean Rhodes
d46943d849 mb/starlabs/starlite_adl: Reconfigure the vGPIO's for CNVi BT
It seems FSP will only automatically configure the vGPIO's for
CNVi Bluetooth if USB 2 Port 7 is used. On this board, USB 2
Port 9 is used, so manually confgiure the vGPIO's related to
CNVi for USB Bluetooth instead of UART.

Change-Id: I8d1c337523450de41f11fc9bfbc9b52825d7311c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86387
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-23 19:59:17 +00:00
Nicholas Chin
d0c6ff5f26 mb/lenovo: Add ThinkCentre M900 (Skylake/LGA 1151)
The mainboard is marked IQ1X0MS, though it is also known as the MS-7988.
The Small Form Factor version was used for this port, though the Mini
Tower seems to use the exact same board. Other systems such as the
ThinkCentre M800, ThinkStation P310, ThinkStation P320, and IdeaCentre
700-25ISH appear to use the same PCB with different configurations of
components.
All the code in this port was originally copied from the Asrock H110M
and then modified to match the actual configuration of the M900. The VBT
was extracted using `intelvbttool -l -v data.vbt` while running version
FWKTBFA of the vendor firmware.

Working:
- Boots to Linux with SeaBIOS 1.16.3
- Boots to Linux with EDK2 (MrChromebox uefipayload_202408)
- Display Ports
- VGA port
- PCIe slots
- Console over serial port
- Front and rear USB 3.0 ports and internal USB2.0 headers
- Front and rear audio jacks
- Internal speaker
- SATA ports 1-4 (5 and 6 are not populated on the M900)
- Hardware monitoring via nct6683 kernel module
- Gigabit Ethernet
- S3 suspend/resume

Unknown/untested:
- M.2 E-key slot
- Parallel port header
- PS/2 Mouse/Keyboard via KB_MS1 header
- TPM

Change-Id: I4e70c9f42c19f130a00170b32ae74b61f0483a22
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74187
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-02-23 07:07:30 +00:00
Vince Liu
ac80241fc9 soc/mediatek/mt8189: Reduce bootblock size by separating SPI NOR GPIOs
In the bootblock stage, only SPI NOR related GPIOs are used. To optimize the code size, separate the SPI NOR GPIO driving information. This modification reduces the bootblock code size by 1KB.

BUG=b:379008996
BRANCH=none
TEST=booted successfully

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: If7e8e5c7db59b5f181db14f6e66df2f333dbb6d4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86538
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-02-22 00:57:59 +00:00
Vince Liu
61f7e5a6cf soc/mediatek/mt8196: Move common functions to gpio_eint_v2.c
Move gpio_get_eint_reg() and gpio_calc_eint_pos_bit() to common code
to avoid redundant definitions for other platforms such as MT8189.

BUG=b:379008996
BRANCH=none
TEST=build passed.

Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Change-Id: Id21f627a49f730f3a0db786a148f81806aeba287
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86541
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-21 14:12:23 +00:00
Dinesh Gehlot
e3cf1bc4cc mb/google/brya: Do not select HAVE_ACPI_RESUME
This patch removes the HAVE_ACPI_RESUME config option from the Google
Brya mainboard configuration. The Intel Alder Lake SoC does not support
S3 (ACPI sleep state) entry/exit, and attempting S3 validation could
lead to abnormal platform behavior. This change ensures that `_S3` is
not listed as a valid wake source in the DSDT (Differentiated System
Description Table) after booting to the OS.

BUG=b:337274309
TEST=Boot verfied google/trulo.
TEST=Veified that the _S3 name variable is not present in the DSDT ASL.

Change-Id: Ic0dce9c7779333ca079001e3763e843a4aad9a81
Signed-off-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86422
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-21 14:12:10 +00:00
Ivy Jian
14ff47783b mb/google/nissa/var/dirks: Update ddi_ports_config
Update ddi_ports_config to match VBT's settings.

DDI_PORT_A = HDMI
DDI_PORT_B = HDMI
DDI_PORT_1 = Type-C DP

BUG=b:389391653
TEST=emerge-nissa coreboot

Change-Id: I67e9fcf4a3caa303ec8d873507a7533389c095ae
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86537
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Wu <david_wu@quanta.corp-partner.google.com>
2025-02-21 14:11:59 +00:00
Nicolas Kochlowski
67dab0c3c9 drivers/amd/opensil/memmap.c: Factor out common memmap code to driver
Refactor the vendorcode openSIL memory map code and move all common
calls that do not require any openSIL headers to the driver. Improve
the legibility of the logic to return memory hole type string.

Change-Id: I80b9bdd7fd633c7b12d695ced5d4b9b518570d80
Signed-off-by: Nicolas Kochlowski <nickkochlowski@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85634
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-02-21 14:11:43 +00:00
Tongtong Pan
b1fb0dff24 mb/google/fatcat/var/felino: Enable CNVi wifi core
Enable CNVi wifi core for felino.

BUG=b:388982526
TEST=abuild -v -a -x -c max -p none -t google/fatcat -b felino

Change-Id: Ib5a98dc481b0c64612ffd50242262714f114b5b7
Signed-off-by: Tongtong Pan <pantongtong@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86549
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Weimin Wu <wuweimin@huaqin.corp-partner.google.com>
2025-02-21 14:10:39 +00:00
Zheng Bao
018c9a6388 amdfwtool: Add combo_index into context
We need to know how many combo entries have been processed.
It will be checked in functions in later change.

Change-Id: I4b026b0630a18d1f46bff98ffe5f11e7f930d7a8
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85590
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-21 13:35:38 +00:00
Zheng Bao
daf32b75c6 amdfwtool: Merge all the steps for A/B recovery into one branch
Clean up the code to make it more logical.
This is for later changes to reorder the PSP Level 1, Level 2, ISH and
BIOS tables.

TEST=Identical test on all AMD platform

Change-Id: I5f7213fd42c7f0ff5ecd9e504a6654cdfb1e3513
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84531
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-21 13:34:41 +00:00
Zheng Bao
4b1c4e7ee8 amdfwtool: Reorder the PSP L2 and BIOS L2 for A/B recovery
For A/B recovery, it is better, even though it is not mandatory, to
put BIOS level 2 table next to its PSP level2. So the relative
addresses of BIOS table are the same. So all the data in B could be a
copy of A.

Identical binary test on all non A/B recovery platform.
Booting test on Majolica with A/B recovery enabled.

Change-Id: Ia25277d307329a2fa66d38d1a7fc21b18246cfe6
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84440
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-02-21 13:32:35 +00:00
Zhixing Ma
9495063993 mainboard/google/fatcat: Fix SMBIOS Processor upgrade info
The current SMBIOS for fatcat is missing processor upgrade information.
This patch adds the missing value by enabling kconfig flag
CPU_INTEL_SOCKET_OTHER.
Refer to SMBIOS spec sheet for documentation on cpu socket values:
https://web.archive.org/web/20221012222420/https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf

Output of dmidecode:
Handle 0x0004, DMI type 4, 48 bytes
Processor Information
        Socket Designation: CPU0
        Type: Central Processor
        Family: Pentium Pro
        Manufacturer: GenuineIntel
        ID: C0 06 0C 00 FF FB EB BF
        Signature: Type 0, Family 6, Model 204, Stepping 0
        Flags: ...
        Version: Genuine Intel(R) 0000
        Voltage: Unknown
        External Clock: 100 MHz
        Max Speed: 3200 MHz
        Current Speed: 3000 MHz
        Status: Populated, Enabled
-       Upgrade: Unknown
+       Upgrade: Other

BUG=NONE
TEST=Boot and verified that SMBIOS processor upgrade value is correct.

Change-Id: Ica92d15e4a6123f928fceb77c7638e4c45d6dc7d
Signed-off-by: Zhixing Ma <zhixing.ma@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85960
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-02-21 02:21:33 +00:00
Sean Rhodes
0438858b21 mb/starlabs/starbook_adl_n: Fix USB port assignments/descriptions
Fix USB port assignments/descriptions to match actual topology.

TEST=build/boot Win11 on starlabs/starbook_adl_n. Verify ports
match assignmented in devicetree using USBTreeview.

Change-Id: If0b341f1c5f99b53df8fff69f8a58fa732adbbc4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86346
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-20 15:27:09 +00:00
Sean Rhodes
a0d0327685 mb/starlabs/starbook/{kbl,cml}: Unselect LIBGFXINIT
Unselect LIBGFXINIT to bring these two variants inline with the
others.

Change-Id: If0fdc9ffd391f2710f252be7358d87644a77b36a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86515
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-20 15:27:00 +00:00
John Su
804d2c8306 mb/trulo/var/uldrenite: Decrease ROM size to 16MB
According to the design, the SPI ROM will be replaced
with a 16MB size, so the Kconfig is modified to 16MB.

BUG=b:397372760
TEST=emerge-nissa coreboot and check rom size is 16MB

Change-Id: I3ef1aa2401d44259e4301f65e2ba0ac7b9418bbd
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86501
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-20 14:30:05 +00:00
Seunghwan Kim
adc53a8837 mb/google/nissa: Create meliks variant
Create the meliks variant of the nissa 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:394359785
BRANCH=None
TEST=util/abuild/abuild -p none -t google/brya -x -a
make sure the build includes GOOGLE_MELIKS

Change-Id: Iff5e27ef06a44976c2724751de0f9c6d5cf6eaaf
Signed-off-by: Seunghwan Kim <sh_.kim@samsung.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86373
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-20 14:26:45 +00:00
John Su
71b6248602 mb/google/trulo/var/uldrenite: Add FW_CONFIG probe for fivr
Uldrenite will support internal fivr in next phase and using fw_config
to decide the board with internal or external fivr.

BUG=b:394752422
BRANCH=firmware-trulo-15217.771.B
TEST=boot to ChromeOS, cold reboot/suspend/recovery mode/install OS
work normally

Change-Id: I14233090f2445461cf422c1257f21556fd745b43
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86303
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-20 14:26:30 +00:00
Rui Zhou
1f2bb567af mb/google/nissa/var/rull: Adjust SSD power sequencing to give the SSD more preparation time
Improve SSD reset time by enabling earlier sequencing, save 230ms

BUG=b:397098950
TEST=build and boot normal using NVMe

Change-Id: I2e48a6614e8bded36d03138869b0eba7e1acb567
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86483
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-20 14:25:56 +00:00
Sean Rhodes
61b99e9527 mb/starlabs/starbook/mtl: Correct HDMI HPD GPIO config
This GPIO should be NF2, not NF1.

Change-Id: I012acfa43ada5641b37f38892a1e3bfbc6e74843
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86495
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-20 14:25:34 +00:00
Matt DeVillier
c5a0beed9a mb/google/skyrim/var/frostflow: Set SYSTEM_TYPE_CONVERTIBLE
Frostflow is a 2-in-1 device, this sets the SMBIOS enclosure type
properly.

Change-Id: I6c3306270cbc80bb55fb536a1fc51a5546287649
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86468
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-02-20 01:26:00 +00:00
Matt DeVillier
2320593a3b mb/google/glados/var/cave: Set SYSTEM_TYPE_CONVERTIBLE
Cave is a 2-in-1 device, this sets the SMBIOS enclosure type properly.

Change-Id: I8f2ec82c97676aa315c18286b5e2eb94d46004ec
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86467
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
2025-02-20 01:25:48 +00:00
Matt DeVillier
3e062c8270 mb/google/rambi: Set system type for ninja/sumo variants
Set these to minipc and all-in-one respectively now that these
system types exist, so that the SMBIOS enclosure type is correctly
set vs defaulting to desktop.

Change-Id: I661401dcd7fe348a07e34ace309c0a8b7e0f00eb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86462
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-02-20 01:25:39 +00:00
Matt DeVillier
ab24ddbb49 mb/google/puff: Add missing device names to Kconfig.name
Taken from:
https://dl.google.com/dl/edgedl/chromeos/recovery/recovery2.json
https://dl.google.com/dl/edgedl/chromeos/recovery/workspaceHardware_recovery2.json

Change-Id: I1da5c129c3912b4158bdc5349eb038265f80bf85
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86461
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-02-20 01:25:29 +00:00
Matt DeVillier
77d50109bb mb/google/puff: Set SMBIOS system type
Puff variants will now correctly show their SMBIOS type as an
all-in-one (dooly, scout) or a mini-pc (all other variants) rather than
the default desktop type.

Change-Id: Id24ff40f0aacade359f281def8be2a41c752d0d6
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86460
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-02-20 01:25:19 +00:00
Matt DeVillier
a06faf9687 mb/google/jecht: Set SMBIOS system type
Jecht variants will now correctly show their SMBIOS type as mini-pc
rather than the default desktop type.

Change-Id: I4f1be147bcfdad6247101db5b5943301466e60ad
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86459
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-02-20 01:25:11 +00:00
Matt DeVillier
2974781987 mb/google/fizz: Set SMBIOS system type
Fizz variants will now correctly show their SMBIOS type as an
all-in-one (karma) or a mini-pc (all other variants) rather than the
default desktop type.

Change-Id: Ida61c68d3664115ca29cb11e6820edb1496e4709
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86458
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-20 01:25:04 +00:00
Matt DeVillier
de964a7de3 mb/google/cyan: Set SYSTEM_TYPE_CONVERTIBLE for cyan/kefka
Cyan and Kefka are convertible devices, so set them as such so their
SMBIOS type is set correctly, necessary for some Linux tablet drivers.

Change-Id: Ief81c7ba83eb5326dd6199508a3194008dee243b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86457
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-20 01:24:55 +00:00
Matt DeVillier
d0f5fc7444 mb/google/beltino: Set SMBIOS system type
Beltino variants will now correctly show their SMBIOS type as an
all-in-one (monroe) or a mini-pc (all other variants) rather than the
default desktop type.

Change-Id: Ia9f17236c415b626fd5d553a453cf43d4145ef41
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86456
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-20 01:24:47 +00:00
Matt DeVillier
c972e6113f mb/google/auron: Clean up Kconfig selections
Select the newly-added SYSTEM_TYPE_ALL_IN_ONE for Buddy variant, and
use that as a discriminator to de-duplicate selections for system
type and HAVE_SPD_IN_CBFS.

Change-Id: I0d28bc496ff6bcfa9947a4d15ed2d8f75cf74ac3
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86455
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2025-02-20 01:24:40 +00:00
Felix Held
3783e06c33 acpi/acpigen: fix typo in acpigen_write_if_lequal_op_op comment
Change-Id: I2e4159e1e34560dacffbb6b9e392c2d2e2ad6887
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86463
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 16:47:42 +00:00
David Wu
270d4b6b33 mb/google/nissa/var/dirks: Generate SPD ID for supported parts
Add supported memory parts in mem_parts_used.txt, and generate
SPD id for these parts.

1. K3KL9L90CM-MGCT (SAMSUNG)
2. H58G66BK8BX067 (HYNIX)

BUG=b:388117663
TEST=Run part_id_gen tool and check the generated files.

Change-Id: I1ca97e28852660cae0352d771e30c9348a5939a0
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86477
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 16:47:30 +00:00
Matt DeVillier
2d35aceeb3 mb/starlabs/byte: Set SYSTEM_TYPE_MINIPC
Ensures SMBIOS enclosure type set properly.

Change-Id: I65ca75a57dbc4a9251316d48bf660dd631c716dd
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86471
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 16:47:12 +00:00
Matt DeVillier
d0c1a4966f mb/purism/librem_cnl: Set SYSTEM_TYPE_MINIPC for Librem mini v1/v2
Ensures SMBIOS enslosure type set properly.

Change-Id: I047e6319b70f2747796869151bf361afe4c3e961
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86470
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jonathon Hall <jonathon.hall@puri.sm>
2025-02-19 16:47:03 +00:00
Matt DeVillier
2e2b35062e mb/google/brya: Set SYSTEM_TYPE_MINIPC for brask baseboard boards
Brask devices are all Chromeboxes, so select SYSTEM_TYPE_MINIPC to
ensure the SMBIOS enclosure type is set correctly.

Change-Id: I133a26223ad204dfad67e136cf342d2fb2a7205e
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86469
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-19 16:46:54 +00:00
David Wu
fe018334af mb/google/brya: Create moxie variant
Create the moxie variant of the kuldax project by
copying the files to a new directory named for the variant.

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

Change-Id: Ie2b4888e4150cf2110fbcd57906b3496c97f6712
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86061
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
2025-02-19 16:46:39 +00:00
Dtrain Hsu
620eb090dd mb/trulo/var/uldrenite: Add Fn support and clean up Kconfig order
Support Fn key on uldrenite emits a scancode of 94 (0x5e) and order the
Kconfig.

BUG=b:394749952
TEST=fn + top row (F1~F12) keys work fine

Change-Id: I92c1bd200f1849a460943bdb96ab122d464a0f40
Signed-off-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86474
Reviewed-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-19 16:46:14 +00:00
Matt DeVillier
2988beac8e Kconfig: Rework SYSTEM_TYPE_XX to better map to SMBIOS
Add SYSTEM_TYPE_SERVER and SYSTEM_TYPE_ALL_INE_ONE; rename
SYSTEM_TYPE_BOX to SYSTEM_TYPE_MINIPC. Map these entries to the
analogous SMBIOS enclosure types.

Follow-on patches will have mainboards select these new SYSTEM_TYPE
entries as appropriate.

Change-Id: I2a35101ccc60daf4863568216ef145c9c701140b
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86454
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
2025-02-19 16:45:42 +00:00
Michał Kopeć
584cdc99b7 mb/novacustom: add V5x0TU board (Meteor Lake)
NovaCustom (Clevo) V5x0TU are two laptops with Intel Core Ultra (Meteor
Lake) series processors.

Two variants (V540TU and V560TU) are supported. Their EC firmware is
different due to keyboard layout changes. On coreboot's side, the only
difference are SMBIOS strings.

Working:
- DDR5 SODIMM in slot RAM2
- M.2 2280 PCIe slots
- Thunderbolt, USB ports
- Video outputs in OS and firmware via FSP GOP
- I2C touchpad, webcam, SD Card reader
- S0ix
- Booting Ubuntu 24.04 with edk2 UefiPayload
- Vboot, TPM measured boot

VBT was extracted from Clevo Insyde firmware, version v1.07.2.

Change-Id: I82c73ddb1e76a9baf9b97e13124aa249ae1c2771
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82673
Reviewed-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 16:44:46 +00:00
Brian Hsu
ad81102108 mb/google/nissa/var/guren: Create empty variant for guren
Create the template files to a new directory named for the guren variant.

BUG=b:397149037
BRANCH=firmware-nissa-15217.B
TEST=None

Change-Id: I23803aaceb122d2b9e3c2215914643593afa1246
Signed-off-by: Brian Hsu <Brian_Hsu@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86492
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-19 16:44:12 +00:00
Sean Rhodes
e2ea7f22c6 soc/intel/cnvi: Remove _S0W and DSW Methods
coreboot already has a way to configure wakeup from wireless through
the `wifi/generic` driver, so remove these to avoid conflicts.

Change-Id: I744ef37690b7a2478ec29a43b987b43592df2235
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86506
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 08:24:40 +00:00
Sean Rhodes
017260c534 driver/usb/intel_bluetooth: Set BTRK to NotSerialized
This method calls STXS and CTXS, which are both serialized so this
method itself does not need to be serialized.

Change-Id: I6d9d6d3b765bba918c08f64458bd1fdad18eff18
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86505
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 08:24:34 +00:00
Sean Rhodes
741017dfe8 drivers/usb/acpi: Make SBTE Method NotSerialized
This method calls STXS and CTXS, which are both serialized so this
method itself does not need to be serialized.

Change-Id: Ia46eaa8746bcff5a57831c14a2845139116b01da
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86504
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
2025-02-19 08:24:29 +00:00
Sean Rhodes
5776ea9d04 drivers/usb/intel_bluetooth: Make AOLD Method NotSerialized
This method only returns a package, so it does not need to be
serialized.

Change-Id: I5e61e92b0cffb28aaa070db3e9e8e2ff0e7c4251
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86503
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-19 08:24:25 +00:00
Sean Rhodes
7377896e11 mb/starlabs/{lite_adl,byte_adl}: Disable CNVi Audio Offload
Both of these boards use the Intel 9560, which does not
support audio offload so configure it accordingly.

Change-Id: Idcdbd7cc83eda50ece74ce823bef60b16b49600c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86502
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 08:24:07 +00:00
Sean Rhodes
d81378d1d7 drivers/usb/intel_bluetooth: Use correct function to close scope
The scope should be closed with `acpigen_write_scope_end`, rather
than `acpigen_pop_len`.

Change-Id: I80df2ee1b51d7dbba85e556bee0fd7513ac933bb
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86500
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-19 08:24:01 +00:00
Matt DeVillier
9aaa3e99d3 src/acpi/acpigen: Increase LENSTACK_SIZE from 10 to 15
Some upcoming patches run up against the existing limit, which
was added 16 years ago without any justification as to the size.
Bump the size from 10 to 15, to prevent tripping the runtime assertion.

TEST=Tested with rest of patch train

Change-Id: I8362b3a63a23bea0ce47920e5d41cd2535dbc084
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86427
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-02-19 08:23:47 +00:00
Ronak Kanabar
09670ec9d6 soc/intel/pantherlake: Add support for VMD device
This commit adds support for VMD (Volume Management Device) in the
Panther Lake SoC. VMD is a feature that allows the management of NVMe
storage devices by abstracting the PCIe root complex. It provides a way
to manage multiple NVMe drives more efficiently.

Changes include:
- Adding VMD to the `min_pci_sleep_states` array in `acpi.c`.
- Updating `chipset.cb` to include the VMD device.
- Disabling the VMD device by default.
- Introducing a new function `fill_fsps_vmd_params`.
- Defining the VMD device and function numbers in `pci_devs.h`.

BUG=b:391083063
TEST=Able to build and boot google/fatcat. Observed that VmdEnable UPD
     is disabled in debug FSP logs.

Change-Id: Ie391196e7b4537d1146ac30177a0ba472a1bfb43
Signed-off-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86301
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
2025-02-19 06:24:28 +00:00
Alok Agarwal
6304435023 vc/intel/fsp/ptl: Update header files from 2454_00 to 3015_00
Update header files for FSP for Panther Lake platform to version
3015_00, with the previous version being 2454_00.

Changes include:
- Updating UPD Offset in FspmUpd.h and FspsUpd.h
- Adding Sign-of-Life related UPDs in FspmUpd.h
- Adding VMD related UPDs in FspsUpd.h

BUG=b:394189627
TEST=Able to build google/fatcat.

Change-Id: I87176515d4bdd8906842fd7c2ade1e6acd339212
Signed-off-by: Alok Agarwal <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86297
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-19 06:24:22 +00:00
Tyler Wang
6e6b5ed915 mb/google/rex/var/kanix: Add Fn key scancode
The Fn key on kanix emits the scancode 94 (0x5e).

BUG=b:384580437
TEST=Build and test on kanix, the fn key works normally

Change-Id: Ia693813dafe1bd35840dfb892827598a7ca9c88f
Signed-off-by: Tyler Wang <tyler.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85438
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-19 03:17:12 +00:00
Cliff Huang
cae4caaf84 soc/intel/pantherlake: Enable multiple ACPI devices for GPIO
In the Panther Lake architecture, each GPIO community functions as a
separate pin control entity. Therefore, when specifying a GPIO
identifier, one should use the community-specific offset, not the number
from the first pad within the GPIO series. This is achieved by selecting
the Kconfig option SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES within
the Panther Lake SOC Kconfig file.

The numbers within the _CRS GpioInt and GpIo objects in the SSDT should
be offsets within the community. The GPIO identifier employed should
correspond to the offset from the respective community.

Let's take an example. In the fatcat board overridetree.cb,
ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E19) points to GPIO Group E. The pad
starts at 74. It is inside community 1, which starts at 48. The correct
GPIO reference is (19 + 74) - 48 = 45, or 0x002D in hexadecimal.

Here are two notable changes in the fatcat board SSDT introduced by this
commit.

- ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E19)

                       "\\_SB.PCI0.GPI1", 0x00, ResourceConsumer, ,
                       )
                       {   // Pin list
  -                        0x0033
  +                        0x002D
                       }
               })
               Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data

- ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A16)

                   "\\_SB.PCI0.GPI3", 0x00, ResourceConsumer, ,
                   )
                   {   // Pin list
  -                    0x0050
  +                    0x003B
                   }
           })
           Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data

This change is verified via S0ix in Google Fatcat board with
touchscreen/touchpad attached as the wake source.

BUG=none
TEST=Check the number from CRS GpinInt and GpIo objects in the SSDT, and
     ensure that the GPIO number used matches the community offset.
     Configure touchscreen/touchpad in THC-i2c mode on factcat board and
	 enter S0ix and check that it can be waked by touchscreen/touchpad.

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: Ic2ba67518fa173e13975478ccae5f8a1772ebf08
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86290
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-19 00:42:08 +00:00
Subrata Banik
31d583faca soc/intel/pantherlake: Enable Thunderbolt authentication
This commit enables Thunderbolt authentication for Panther Lake by
assigning `ioe_tcss_valid_tbt_auth` to the valid_tbt_auth field in
`soc_tcss_ops`.

For the SoC's integrated PD solution, AUX BIAS PAD programming is not
required and has been removed.

TEST=Verified all USB-C ports are functional.

With this patch, \_SB.PCI0.TDM0._DSD exists in the SSDT, containing:
```
  Scope (\_SB.PCI0.TDM0)
    {
        Name (_DSD, Package (0x04)  // _DSD: Device-Specific Data
        {
            ToUUID ("c44d002f-69f9-4e7d-a904-a7baabdf43f7"),
            Package (0x01)
            {
                Package (0x02)
                {
                    "IMR_VALID",
                    One
                }
            },

            ToUUID ("6c501103-c189-4296-ba72-9bf5a26ebe5d"),
            Package (0x01)
            {
                Package (0x02)
                {
                    "WAKE_SUPPORTED",
                    One
                }
         }
    }
```

Change-Id: I28eac7cfd6511d8680cdae4f830afa73ad201a17
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86420
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-02-18 08:04:09 +00:00
Elyes Haouas
f07b2f2091 mb/google/kukui: Drop non-existent directory from subdir-y
Change-Id: Ifafec925439375dc2c9237244eff24c7bbe56bd6
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86486
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-02-18 04:11:07 +00:00
Yidi Lin
d1a5a345b4 Update arm-trusted-firmware submodule to upstream master
Updating from commit id 15e5c6c91d48:
2024-12-05 16:00:37 +0100 - (Merge changes I00d2de7b,I5ec82646 into integration)

to commit id 0c370e2d592b:
2025-02-04 18:14:07 +0100 - (Merge "feat(mt8196): add SMMU driver for PM" into integration)

This brings in 414 new commits.

Change-Id: I5cb4fab45fb82463f0ae3332e46995d30d123352
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86478
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-18 04:10:38 +00:00
Riku Viitanen
145b174116 mb/hp/snb_ivb_desktops/dt: Remove what matches defaults
These are unnecessary because they are the same as the chipset
devicetree defaults.

Change-Id: Id26f09674457720ad56a19b6b0884b8012be9019
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86412
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-17 22:07:24 +00:00
Subrata Banik
29054bc9c7 soc/intel/pantherlake: Skip exposing CPUJTAG at kernel
This patch prevents exposing the CPU JTAG GPIO pads. These are
internal GPIO pins used for debugging the SoC and should not be
configurable from the kernel pinctrl driver.

TEST=Able to build and boot google/fatat. Decompile ACPI table
using iasl and ensure CPUJTAG entry not present.

Change-Id: I4d920acb95275fbf72b83b822eddc41829511626
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86393
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-17 05:16:38 +00:00
Ivy Jian
6e3c56dcd0 mb/google/brya/Kconfig: Select SYSTEM_TYPE_BOX for Dirks
Dirks is a Chromebox device, so select SYSTEM_TYPE_BOX for it. Other
nissa variants will continue to have SYSTEM_TYPE_LAPTOP selected.

BUG=b:389391653
TEST=emerge-nissa coreboot
     check CONFIG_CSE_RESET_CLEAR_EC_AP_IDLE_FLAG=y
     check CONFIG_CR50_RESET_CLEAR_EC_AP_IDLE_FLAG=y

Change-Id: Iabc9afdfdb07d4d6cb4d3fb4b43bfdc3cf2aa383
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86392
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-16 03:04:45 +00:00
Ivy Jian
ac6212805d src/Kconfig: Add config SYSTEM_TYPE_BOX
Add config SYSTEM_TYPE_BOX to allow proper system type selection for
devices like chromebox, mac-mini etc.

Change-Id: I887413cbc09fb0725b2ffd621fe10991b7dbcf6d
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86396
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-16 03:04:39 +00:00
Hualin Wei
4aeaa453e3 mb/google/nissa/var/pujjoniru: Update DTT settings for thermal control
update DTT settings for thermal control, according to
b:395802079#comment2.

BUG=b:395802079
TEST=emerge-nissa coreboot

Change-Id: Ia32911488464af4e5070543e2ec630c339ab1925
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86404
Reviewed-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-15 21:43:20 +00:00
John Su
19bcc7653b mb/trulo/var/uldrenite: Remove GPP_B5 and B6 as ISH function
It will cause suspend to fail to enter S0ix. After discussion
with SOC and HW teams, remove GPP_B5 and B6 as ISH function and
disable ISH on the devicetree.

BUG=b:383696667, b:395005219
TEST=emerge-nissa coreboot

Change-Id: Id3d26f1b604b889f4fdb6e45218f4118499c303e
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86416
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-15 21:31:45 +00:00
John Su
c1ad986f3a mb/trulo/var/uldrenite: Fix WWAN_RST pin
Fix WWAN_RST pin due to previous incorrect configuration.

BUG=b:395430920
TEST=emerge-nissa coreboot

Change-Id: I6012a11e5c54e79e31b0cbfca657174274658368
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86415
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-15 21:31:13 +00:00
Ian Feng
5688932d25 mb/google/fatcat/var/francka: Configure the finger print pins
Configure correct finger print pins, And change power sequence.
FP_PWR_EN - GPP_H03
FP_RST_OD - GPP_H17
FPMCU_INT - GPP_D17
FPMCU_FW_UPDATE - GPP_F20

BUG=b:393985006
TEST=Boot to OS in francka and fingerprint function work well.

Change-Id: I0d9b1d042da1bd81d0f3a32140247948cdab983c
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86413
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-15 21:30:51 +00:00
Maximilian Brune
9cbde37fc3 soc/amd/glinda: Fix pci int defs
commit 540d605f48 ("soc/amd/glinda: Update pci int defs") forgot to
update the offset after adding GEventSmi and GEventSci.

source:
PPR #57254 Rev 1.59 Table 137

Change-Id: I702f16e681d57c5e44f91c805a9aeb71eb160bd3
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86421
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-02-15 21:30:23 +00:00
Maximilian Brune
72401fc039 soc/amd/mendocino/chipset_*: Enable gpp_bridge_[a/b/c] by default
Since FSP doesn't support disabling bridges and has no UPDs for that,
they must be enabled in DT to make sure they are properly initialized
during PCI enumeration as expected by the payload (EDK2 for example).
It might be OK to have them set to off when all devices behind the
bridge are also off and FSP disables those secondary devices.

In general something that cannot be hidden/shut off shouldn't be marked
as such, as later stages (payload/OS) might find it active, but
unconfigured.

Change-Id: Ife30f73495d44c98717e147602de10f5a6a89358
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86273
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-02-15 21:29:53 +00:00
Maximilian Brune
3d07c761f7 soc/amd/phoenix/chipset_*: Enable gpp_bridge_[a/b/c] by default
Since FSP doesn't support disabling bridges and has no UPDs for that,
they must be enabled in DT to make sure they are properly initialized
during PCI enumeration as expected by the payload (EDK2 for example).
It might be OK to have them set to off when all devices behind the
bridge are also off and FSP disables those secondary devices.

In general something that cannot be hidden/shut off shouldn't be marked
as such, as later stages (payload/OS) might find it active, but
unconfigured.

Change-Id: Ic226fd93b431467c7fa3a53140102ff4fd327f40
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86271
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-15 21:29:02 +00:00
Maximilian Brune
5aebeb4056 soc/amd/glinda/chipset.cb: Enable gpp_bridge_[a/b/c] by default
Since FSP doesn't support disabling bridges and has no UPDs for that,
they must be enabled in DT to make sure they are properly initialized
during PCI enumeration as expected by the payload (EDK2 for example).
It might be OK to have them set to off when all devices behind the
bridge are also off and FSP disables those secondary devices.

In general something that cannot be hidden/shut off shouldn't be marked
as such, as later stages (payload/OS) might find it active, but
unconfigured.

Change-Id: Id28a29481f9a1bc570e47a9cb75613d3621b0d44
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86270
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-15 21:28:55 +00:00
Subrata Banik
72947a131f soc/intel/alderlake: Enable low-battery indicator support
This patch enables the `HAVE_ESOL_SUPPORT_FOR_LOW_BATTERY_INDICATOR`
Kconfig option for Alder Lake SoC platform that has support for
CHROMEOS_ENABLE_ESOL.

This allows the eSOL feature (depending upon CHROMEOS_ENABLE_ESOL)
to display a low-battery indicator.

BUG=b:339673254
TEST=Verified low battery boot event logging and controlled shutdown.

Change-Id: I8b49a487ca80a2aeeb8b4d8e4c2259217e854444
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86316
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-02-15 19:00:56 +00:00
Subrata Banik
80801e7f69 soc/intel/alderlake: Handle critical low battery early in romstage
This commit implements early handling of critical low battery
conditions in the romstage for Alder Lake platforms.

A message is displayed to the user via
ux_inform_user_of_poweroff_operation. A short delay is introduced to
allow the user to see the message. A low battery event is logged.
The system is shut down via the Chrome EC.

This early handling prevents the system from proceeding with
boot (while performing firmware update) if the battery is critically
low and ensures a clean shutdown. This is particularly important for
ChromeOS devices.

BUG=b:339673254
TEST=Verified low battery boot event logging and controlled shutdown.

Change-Id: Ib4be86ed17818ee05b7bec0337a90f80017183c2
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86227
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-15 19:00:49 +00:00
Subrata Banik
1a58ae5e09 vc/google/chromeos: Implement platform callback for critical shutdown
This commit implements `platform_is_low_battery_shutdown_needed` and
callback for ChromeOS.

- platform_is_low_battery_shutdown_needed: API to check if low battery
   shutdown is needed.

BUG=b:339673254
TEST=Verified low battery boot event logging and controlled shutdown.

Change-Id: I119f80a45c045a6095cae98f179c755a2e948e9c
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86228
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-02-15 19:00:40 +00:00
Subrata Banik
a518709e25 drivers/intel/fsp2_0: Add platform callback for critical shutdown
This commit adds the `platform_is_low_battery_shutdown_needed` callback
to the FSP API. This allows platforms to integrate low-battery handling
logic directly into the FSP silicon initialization process. By checking
for critical conditions (e.g., low battery) within this callback after
FSP silicon initialization, the platform can initiate a controlled
shutdown before proceeding with further boot stages, preventing abrupt
shutdowns later in the boot process.

BUG=b:339673254
TEST=Able to build and boot google/brox.

Change-Id: I2d6677d70dea3d24f5a19d70608fd21229a271a0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86226
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-02-15 19:00:32 +00:00
Subrata Banik
e5cc73cb94 soc/intel/common: Add low battery shutdown function
This commit adds a `do_low_battery_poweroff()` function to handle
platform power off due to critically low battery levels.

This provides a standardized way to handle low battery shutdowns across
platforms.

Additionally, the delay to the `do_low_battery_poweroff()` function,
allowing time for the low battery indicator to be displayed before
powering off. The delay is configurable through the
`PLATFORM_LOW_BATTERY_SHUTDOWN_DELAY_SEC` Kconfig option.

Finally, a low battery indicator event is logged using `elog`
before the delay.

This functionality (elog and delay) is enabled when the
`PLATFORM_HAS_LOW_BATTERY_INDICATOR` Kconfig option is selected.

BUG=b:339673254
TEST=Able to build and boot google/brox.

Change-Id: I92e9003c70c2608770972f1a302f954ebdf17bc4
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86361
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-15 19:00:24 +00:00
Subrata Banik
1c8a058c08 drivers/intel/fsp2_0: Add low battery indicator screen
This commit adds low battery indicator bitmap into CBFS. This screen
is displayed when the system detects a critically low battery condition.

The screen displays a logo and can be configured with a custom path.

An option to display an early low battery indicator in text mode is also
included. This early indicator can defer the firmware update.

This feature is controlled by the PLATFORM_HAS_LOW_BATTERY_INDICATOR
Kconfig option.

BUG=b:339673254
TEST=Able to see low-battery user notification in text mode before
memory init. Verified low-battery boot event listed in the eventlog.

Change-Id: I711c53455639b449fe85903139bbc06cdab08d09
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86225
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-02-15 19:00:12 +00:00
Subrata Banik
40b9e55696 lib: Refactor logo.bmp inclusion with helper macro
This commit refactors the logo.bmp inclusion logic to use a helper
macro, `add_bmp_logo_file_to_cbfs`. This centralizes the logic for
adding BMP logo files to the CBFS image and improves code readability.

Change-Id: I135c1f2af02064b72bc1f747336ac98ffdb20842
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86368
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-02-15 19:00:03 +00:00
Subrata Banik
801d0a1491 lib: Centralize logo.bmp inclusion in lib/Makefile.mk
This commit moves the logo.bmp inclusion logic from
`src/drivers/intel/fsp2_0/Makefile.mk` to `src/lib/Makefile.mk`.

This change centralizes the logo inclusion logic within the `lib`
directory, aligning it with the location of `bmp_logo.c` and making
it independent of the FSP 2.0 driver.

Change-Id: I16ed1cf29b839c25b6ea1c2f10faf3d99dd707c9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86367
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-02-15 18:59:53 +00:00
Subrata Banik
c8fc650c5b ec/google/chromeec: Implement early power off support
This commit renames the `google_chromeec_do_early_poweroff()` function
to `platform_do_early_poweroff()`, aligning it with the API that adds
early power off support using the Chrome EC.

It selects the `HAVE_EARLY_POWEROFF_SUPPORT` Kconfig option for platform
to perform early power off procedures.

Change-Id: I0c634d69de36fe8bdb6a61c121e321d3626ac3ff
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86379
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-02-15 18:59:44 +00:00
Subrata Banik
0fe338c88b soc/intel/cmn/pmc: Add support for early power off
This commit adds support for early power off on Intel platforms
along with existing PMC based implementation to support power off
at later stage (like ramstage).

A new function, `platform_do_early_poweroff`, is added to the
pmclib to handle platform-specific early power off procedures.
This function is called before memory initialization (in romstage or
earlier).

Note: While Intel chipsets do not support power off before silicon
initialization, this change leverages Chrome EC APIs to enable power off
in romstage for low-battery boot on ChromeOS devices. Power off failures
in ramstage prior to FSP-S are outside the scope of this change.

BUG=b:339673254
TEST=Able to build and boot google/brox.

Change-Id: I39f516640b3f75ab4c6a09826922289c0533f79b
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86336
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-02-15 18:59:20 +00:00
Subrata Banik
ae0adb7c16 lib: Introduce early power off support Kconfig option
This commit introduces the `HAVE_EARLY_POWEROFF_SUPPORT` Kconfig option
and the `platform_do_early_poweroff()` API.

The Kconfig option enables platform-specific early power off support,
which is often required on Intel platforms. The corresponding API allows
platforms to implement the necessary hardware operations for early power
off, typically before memory initialization.

BUG=b:339673254
TEST=Able to build and boot google/brox.

Change-Id: I05b9882e100825a4fb733163a65f820c8c943361
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86417
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-15 18:59:11 +00:00
Subrata Banik
e5949cfef8 soc/intel/alderlake: Display low battery message on screen
This commit adds a function ux_inform_user_of_poweroff_operation
to display a message on the screen when the system is powering off due
to critically low battery. The message is centered on the screen and
displays a localized string "Battery critically low. Shutting down.".
If no localized string is found, a default English message is displayed.

This implementation relies on CHROMEOS_ENABLE_ESOL Kconfig which is used
to render text message for early sign-of-life.

BUG=b:339673254
TEST=Able to capture the eventlog for low battery boot event.

Change-Id: I3b24d2c89ade8cc62b7e47c487d52d47b7f3376d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86224
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-15 18:58:59 +00:00
Subrata Banik
f8381b9023 lib: Add low battery UX locale message
This commit adds a new UX locale message to display a warning when the
battery is critically low.

The message informs the user about the low battery and indicates that
the system is shutting down.

This change ensures that users are notified before the system
unexpectedly shuts down due to low battery.

BUG=b:339673254
TEST=Built and booted google/brox.

Change-Id: I75c7a0d4d439901098c7f17a1dc90355307116ac
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86284
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-02-15 18:58:48 +00:00
Subrata Banik
cf6f492099 soc/intel/alderlake: Use helper for UX messages
This commit introduces `ux_inform_user_of_operation` to reduce code
duplication when displaying UX messages.

`ux_inform_user_of_update_operation` now calls this helper, passing
the message ID. This allows easier addition of other UX messages.

BUG=b:339673254
TEST=Built and booted google/brox. Verified display eSOL.

Change-Id: Ib31f7633e7b3f84122419e4ce39e2b5044cb9a96
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86278
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-02-15 18:58:33 +00:00
Subrata Banik
121ab8e201 lib: Refactor ux_locales_get_text API
This patch refactors the `ux_locales_get_text` API to handle fallback
text (English) internally, rather than relying on the caller. It
introduces message IDs for lookups, enabling the API to locate both
the UX locale name and fallback text based on the ID.

With this patch, `ux_locales_get_text` API locates UX locales message
based on message ID.

`ux_locales_get_text` retrieves fallback text message depending
upon the message ID if UX locales is not available.

This centralizes fallback handling and simplifies adding future
messages without per-SoC duplication.

BUG=b:339673254
TEST=Built and booted google/brox. Verified eSOL display.

Change-Id: I4952802396265b9ee8d164d6e43a7f2b3599d6c0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86283
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2025-02-15 18:58:19 +00:00
Subrata Banik
ff353fe88d mb/google/fatcat: Increase PL4 power limits for PTL-H variants
Increase PL4 power limit values for all Intel PTL-H variants on Fatcat
from 50000 to 65000 to ensure successful boot and adequate performance
with 45W and 65W USB-C adapters. This prevents system bottlenecks when
using lower-wattage power supplies.

BUG=b:395130929
TEST=Verified successful boot with 45W and 65W USB-C travel adapters,
as well as 96W/106W USB-C adapters.

Change-Id: I6073e748e9f8c7317f0ad9a1193699e34703bdba
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86388
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-15 04:57:01 +00:00
Maximilian Brune
fc9a192d34 mb/emulation/spike-riscv/uart.c: Update UART address
Spike Simulator commit 191634d2854d implemented a ns16550 serial device
which puts the base address at 0x10000000.

Tested: Start Spike Simulator and see that coreboot prints onto the UART.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I0e3db9d8b141c733bf609f906018096e3594ce83
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85852
Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:13:15 +00:00
Ivy Jian
c60991870e mb/google/nissa/var/dirks: Use a separate ec.h for dirks
Dirks are chromebox, so they need different settings in ec.h.
Add a new dirks baseboard ec.h and use it for dirks.Remove
everything related to:

- Lid
- Battery
- Built-in keyboard
- AC connect/disconnect
- Mode changes

BUG=b:389391653
TEST=emerge-nissa coreboot

Change-Id: I8089a2aff3032a4271212765f65881a09f42c1ae
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86354
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-14 17:12:59 +00:00
Ivy Jian
4ab0e333ad mb/google/nissa/var/dirks: Update GPIO table
Configure buzzer to GPP_D2 based on schematic change.

BUG=b:389391653
TEST=emerge-nissa coreboot

Change-Id: Iefc6aefeae0a3a05ba04fb2718c6c3a3058de5f8
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86351
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:12:16 +00:00
Maximilian Brune
4e8943801b payloads/external/Makefile.mk: Update linuxboot warning
Only print the warning if Linuxboot payload is actually selected,
because we don't care otherwise.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I5008d685c52c1d4e0d7eba44c964c51a2a6f99c3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85957
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-02-14 17:11:55 +00:00
Maximilian Brune
7c31377bf9 util/lint/lint-000-license-headers: Add license
This adds the "GPL-2.0 OR MIT" license combination.
It is used in subsequent patches that adds source files originally from
the linux kernel.

OR operator:
https://web.archive.org/web/20240730192545/https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d42-disjunctive-or-operator

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I07c508aa6134b063801de36199af9a312a7d6bed
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84584
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
2025-02-14 17:11:40 +00:00
Maximilian Brune
94d4707649 util/riscv: Add starfive Image building tool
Add the tooling necessary to build an Image that can be found and
started by ROM code of the JH7110 SOC.

source: https://github.com/starfive-tech/Tools

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: Iab16c1e1f15f24e85c0ef1a3e838d024e1e49286
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83849
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:11:34 +00:00
Maximilian Brune
7073ec43b0 arch/riscv: Add common FDT build
Currently all platforms on RISC-V require a FDT.
The inclusion of the FDT is currently done in the platform Makefiles.
In order to factor out some common code this patch adds the inclusion
in the architecture Makefile. The FDT must be aligned to 8 byte
according to device tree spec. It avoids misaligned access.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I3b304a89646fe84c98e9f199f315bebb156de16c
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83848
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-14 17:11:19 +00:00
Patrick Rudolph
a614e3c50f Documentation: Improve x86_64
* Move x86_64 documentation to dedicated page
* Update with better description of current implementation
* Update TODOs

Change-Id: Ia5ba51be629a8c878aad64d3297176457cf8e855
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79160
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
2025-02-14 17:11:04 +00:00
Michael Büchler
a132aba399 board_status/getrevision.sh: Ignore non-annotated tags
Local tags (e.g. to keep track of builds) should not be used to describe
a board status report. This has happened in some cases, e.g. [1].

According to the Git 2.41.0 manual for git-describe, the '--tagged'
parameter is a way to also use any "lightweight (non-annotated) tag" in
addition to annotated tags, which are always used even without this
parameter. All coreboot release tags seem to be annotated, so this
option should be safe to drop.

[1] https://review.coreboot.org/plugins/gitiles/board-status/+/b8c47429bad5afc5cd7f798cad3dece9790a1f83

Signed-off-by: Michael Büchler <michael.buechler@posteo.net>
Change-Id: I54b302415e569a3385559cc85323ce34462042ad
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79837
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:10:47 +00:00
Alper Nebi Yasak
c63a198884 drivers/qemu/bochs: Use arch-independent data port
The QEMU Bochs display driver uses 0x1CF as its VBE DISPI data port, but
this is only present on x86. Instead, use the port at 0x1D0 [1] which is
available on both x86 and non-x86 architectures. The data port is also
calculated inline based on the VBE DISPI index port while reading and
writing, update those expressions as well.

[1] https://web.archive.org/web/20240404032816/https://www.qemu.org/docs/master/specs/standard-vga.html#io-ports-used

Change-Id: I899beb742d42c26f3e57023f05ff459094fce5f1
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82061
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:10:10 +00:00
Nicholas Sudsgaard
b7d144a41c Documentation/mainboard/lenovo: Add ThinkCentre M710s
Change-Id: I90311257a28bd463712c4d43f8b83baa745509cc
Signed-off-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80411
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Alicja Michalska <ahplka19@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:09:54 +00:00
David Wu
d6eff7060a mb/google/nissa/var/craask: Modify eMMC DLL tuning value
Craask cannot boot into OS from 2nd source eMMC.
Update eMMC DLL tuning value to improve initialization reliability

BUG=b:375497774
TEST=Cold reboot stress test over 2500 cycles

Change-Id: I415beb84ac09f8c3e80c3df12bc323a06baf812d
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86395
Reviewed-by: Simon Yang <simon1.yang@intel.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:09:31 +00:00
Kenneth Chan
6d61022b8f mb/google/rex/var/kanix: Update LAN clock request setting
According to the EVT's circuit(kanix_250116.pdf) change,
update LAN clock request to GPP_C11.

BUG=b:386025819
BRANCH=firmware-rex-15709.B
TEST=emerge-rex coreboot chromeos-bootimage; test LAN function on kanix
Change-Id: I5d27585717897203d6ac81ca47551be5771918c3
Signed-off-by: Kenneth Chan <kenneth.chan@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86397
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 17:09:01 +00:00
Maximilian Brune
94e9663f33 mb/amd/birman_plus: Update devicetree
The devicetree was still a copy of a previous mainboard.
This patch updates the devicetree for the birman_plus mainboard.
Birman plus is an AMD reference board.

sources:
- document #58168 Rev 1.01 "Birman+ User Guide"
- birman+ schematic

Change-Id: I1cc2e4c8f722048b24d84cf782855ae7a8d64c42
Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84500
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-02-14 16:54:36 +00:00
Zheng Bao
8a0d68d804 amdfwtool: Set entry address mode based on current table header
The address field of each PSP or BIOS entry defines the location of
the entry.
For the family newer than Cezanne, the upper 2 bits define the address
mode. In table header, the address mode of the table is set. They have
the same definition.
  Address Mode 0: Physical Address
  Address Mode 1: Relative Address to entire BIOS image
  Address Mode 2: Relative Address to PSP/BIOS directory
  Address Mode 3: Relative Address to slot N

In common case, the address mode of entry should be the same as its
table. In spec, it says, "attribute is ignored if the directory
address mode is not 2 or 3",
In the old code, if the header defines address mode as relative BIOS(1),
the entry address mode is not set. That meets the spec. PSP doesn't
use, but amdfwtool can use it to record the address mode and transfer
it to table. That can reduce the code complexity.

Identidal binary test passes on platforms which are not based on
Cezanne, V2000A, Genoa. Booting test passes on Majolica/Cezanne.

Change-Id: I156b315d350d9e7217afc7442ca80277bb7f9095
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84530
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-02-14 16:51:15 +00:00
Patrick Rudolph
5f5aa79cca device/pci_rom: Move VBIOS checksum fix
Move the VBIOS checksum code into the soc/amd folder, as it's
specific to AMD's FSP. The code now fixes the VBIOS in place
instead only fixing it for the VFCT table.

TEST: VBIOS has correct checksum after loading in BS_DEV_RESOURCES.
      VBIOS checksum is invalid entering graphics_dev_init().
      VBIOS checksum is correct leaving graphics_dev_init().

Change-Id: I63aaaefaf01ea456e2ed39cd0891e552a7fb5135
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86384
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-02-14 16:41:41 +00:00
Patrick Rudolph
935a423f26 device/pci_rom: Use correct endian conversion
The Option ROM contains lots of 16bit values that are being used,
thus use the 16bit endianness conversion function over the 32bit
variant to avoid confusion.

TEST: Still works on amd/birman+.

Change-Id: I571be97a930ad018e1d1316117cefe5bd1c68f9b
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86383
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Andy Ebrahiem <ahmet.ebrahiem@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 16:39:23 +00:00
Patrick Rudolph
33f6375ca5 soc/amd/common/block/graphics: Support non VGA IGDs
On glinda the IGD is no longer VGA compatible. It doesn't
advertise itself as a VGA compatible devices and doesn't decode
the legacy VGA ranges 0x3C0-0x3CF, 0x3D4.

Introduce a new Kconfig and select it where necessary to keep
existing behaviour on older SoC while fixing FSP GOP init on
glinda. The VBIOS will get loaded into the D-segment instead
the C-segment, which is typically used by VGA.

TEST: FSP GOP on amd/birman+ is able to find the VBIOS.
      amdgpu driver still doesn't work as the VFCT table isn't
      generated on amd/glinda.

Change-Id: I6ab28aab74f3169d45d7d852a37ddfcfc75b7c88
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86300
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-14 16:38:47 +00:00
Patrick Rudolph
7da6c68eed soc/amd/common/block/graphics: Use vbt_get()
Implement vbt_get() on AMD and return the VBIOS location. This allows
to drop the hardcoded addresses used in various places and return an
address in DRAM that is reserved for FSP use.

TEST: amd/birman+ still gets passed the correct VBIOS address.

Change-Id: I92d76fc4df88fbce792b9d7c912c6799617704a0
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86299
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral <ana.cpmelo95@gmail.com>
2025-02-14 16:35:34 +00:00
Yu-Ping Wu
f48b4d16ca mb/google/rauru: Set up open-drain ChromeOS pins
Set open-drain GPIOs for ChromeOS as input and bias-disable mode.
After applying this patch, the voltage of these pins will become the
expected value 1.8V (previously 1.0V), preventing wrong judgement of
low/high.

BUG=b:396106564
TEST=emerge-rauru coreboot
BRANCH=rauru

Change-Id: I76c7931a56540a395eaf934125bded7fede84992
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86398
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-02-14 06:54:51 +00:00
Wenzhen Yu
93b70934bc mb/google/rauru: Notify EC that AP is in S0
GPIO_AP_SUSPEND_L is supposed to be high in S0, and low in S3. EC uses
this pin to determine the AP power state. This pin should be set as
early as possible in bootblock.

BRANCH=rauru
TEST=Build pass, reboot pass, suspend/resume pass.
BUG=b:395737458

Signed-off-by: Wenzhen Yu <wenzhen.yu@mediatek.com>
Change-Id: I6ea56208256bb6f11fb6b0adf7627403963295bc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86381
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-02-14 06:54:42 +00:00
Jarried Lin
74efa4e396 mb/google/rauru: Correct GPIO name for BEEP_ON
Rename GPIO_BEEP_ON_OD to GPIO_BEEP_ON to match the schematics.

BRANCH=rauru
TEST=Build pass
BUG=b:317009620

Change-Id: Ica48ed4f4e2cd6a159203ba1f8c17ac371a08f87
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86391
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2025-02-14 06:54:20 +00:00
Patrick Rudolph
03b5a4160a mb/amd/birman_plus: Use actual flash size of 64 MiB instead of 16 MiB
Birman+ has a 64MiB flash chip.

Update the mainboards Kconfig comment and fix the FMD to generate a
64MiB ROM. Until now only the first 16MiB are being used.

TEST: Still boots on AMD/Birman+

Change-Id: I72e3dcb0c3a308c3b0fd981b56cc7c1ef60095cc
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86179
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-13 18:17:03 +00:00
Patrick Rudolph
15df34c16d mb/amd/birman_plus: Add SMMSTORE to FMAP
Add the SMMSTORE region to the default FMAP to allow
building for EDK2 as payload.

TEST: Still boots on AMD/Birman+

Change-Id: I661fcc55bf30aa6f1f3cc8a57e6d0eaf2fed4621
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86177
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-13 18:16:45 +00:00
Lu Tang
f21969acb2 soc/mediatek/mt8196: Set MT6316 deglitch time from 2ns to 4ns
To fix the SPMI-P glitch, set the mt6316 deglitch time from 2ns to 4ns.
Additionally, a hardware solution of SPMI damping to 0 ohm is needed.

BRANCH=rauru
TEST=Build passed and booted successfully. 10 platforms have passed CPU
stress tests over multiple iterations.
BUG=b:386438329

Signed-off-by: Lu Tang <lu.tang@mediatek.corp-partner.google.com>
Change-Id: I77bd50cc6c25d6dcded57d9d65d92a0dd19c3c86
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86371
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Knox Chiou <knoxchiou@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-02-13 14:48:19 +00:00
John Su
b6c02d660c mb/trulo/var/uldrenite: Support x32 memory configuration
Use the GPP_E13 level to determine whether x32 memory configuration
is supported.

BUG=b:379311559
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Idd3534bba0379a7bb06f8fbbeb9469e938e5a629
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86364
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-13 05:58:39 +00:00
John Su
a89c4624bd mb/trulo/var/uldrenite: Remove GPP_E13 from being used as RAM ID3
Remove GPP_E13 from being used as RAM ID3.
Planned to be used as a strap pin to disable memory channels
for x32 memory configuration.

BUG=b:379311559
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: I418f84255959452d5a63612ab703ec11d81f2e33
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86362
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-13 05:58:29 +00:00
Subrata Banik
46f38d05d6 ec/google/chromeec: Implement early power off
This commit implements the `google_chromeec_do_early_poweroff`
function for the Chrome EC. This allows the system to power
off before memory initialization by triggering an EC reset
with EC_REBOOT_COLD_AP_OFF.

BUG=b:339673254
TEST=Able to build and boot google/brox.

Change-Id: Ia53469feb2a020b38a5414728159b09c86c7e32d
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86337
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2025-02-13 04:43:19 +00:00
Subrata Banik
825ad863b5 mb/google/fatcat: Use TDP macros for CPU TDP values
This commit replaces the hardcoded 25 values for CPU TDP with the
TDP_25W macro.

Change-Id: I45cf507fe5300466519aafb0b920c8ae1d62ace0
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86340
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-13 04:41:12 +00:00
Shunxi Zhang
d669736841 soc/mediatek/mt8196: Fix RTC recovery by disabling external XTAL
Configure PMIC register 0x50c bit0 which decides whether to use external
xtal. This bit of mt6685 should be set to 1, to disable external xtal.

BRANCH=rauru
BUG=b:395485005
TEST=emerge-rauru coreboot chromeos-bootimage, remove battery and
charger, then insert battery and charge, RTC boots normally.

Signed-off-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.com>
Change-Id: Iea44f13af030f24c02993dd43a35a9d8b4f72179
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86353
Reviewed-by: Shunxi Zhang <ot_shunxi.zhang@mediatek.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-02-12 09:18:00 +00:00
Guangjie Song
5e14f1f525 soc/mediatek/mt8196: Remove tvdpll3 disable/enable
The tvdpll3 cannot be disabled during suspend because of the enable
operation, so we remove the enable operation. Hardware can now
automatically enable and disable tvdpll3 based on the clock demand of
its downstream.

BRANCH=rauru
BUG=b:377628718
TEST=Bootup OK, Suspend/Resume OK and FW screen shown OK, with MMinfra
kernel/vcp patch, mminfra can be turned off to reduce power consumption.

Signed-off-by: Guangjie Song <guangjie.song@mediatek.com>
Change-Id: Ib9c72a1602c1f76dc94cca5c4a61a542a853560b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86343
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-02-12 09:17:50 +00:00
Yu-Ping Wu
c0506ad1e0 soc/mediatek/mt8196: Require mtk_fsp_*.elf to exist
As MT8196 won't be able to boot up without mtk_fsp_romstage.elf and
mtk_fsp_ramstage.elf, ensure their presence in build time.

Change-Id: I668319ae1f63818e324002e7ae4d888479edb9cf
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86355
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-02-12 09:09:17 +00:00
John Su
71824342df mb/google/trulo/var/uldrenite: Add fw_config probe for USB-C ports
Use fw_config to probe USB-C ports.

BUG=b:392040004
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Ic0161e8b85c5a2afe6ec8473497d21a5737f4f70
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86338
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-12 03:09:14 +00:00
Yu-Ping Wu
8fad6b043c Update blobs submodule to upstream main
Updating from commit id 14f8fcc1b426:
2024-11-28 05:07:49 +0000 - (soc/mediatek/mt8196: Update SSPM firmware to v2.0)

to commit id a0726508b86d:
2025-02-06 17:31:46 +0800 - (soc/mediatek/mt8196: Update SSPM firmware to v4.0)

This brings in 10 new commits:
a0726508b86d soc/mediatek/mt8196: Update SSPM firmware to v4.0
efe57af33c41 soc/mediatek/mt8196: Add mtk_fsp_ramstage version v1.0
ec3eb123e329 soc/mediatek/mt8196: Update SSPM firmware to v3.0
f7428ce40d6a soc/mediatek/mt8186: Update SSPM firmware from v2.0.1 to v2.0.2
4b3be4b01f10 soc/mediatek/mt8196: Add mtk_fsp_romstage version v1.0
11da5595c96c soc/mediatek/mt8196: Add PI_IMG firmware v1.0
491c2f791901 soc/mediatek/mt8196: Update MCUPM firmware to v1.1
316468e7befd soc/mediatek/mt8196: Add GPUEB firmware v1.0
288ebf18db56 soc/mediatek/mt8196: Add SPM firmware v1.0
7130fc0c8eba soc/mediatek/mt8196: Update DRAM blob to 0.4.0

Change-Id: Ic0e99e28c9705c769042a29fbf86e44af9ba7e68
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86365
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-12 02:58:11 +00:00
Julius Werner
ba3af158aa libpayload: Unify selfboot() implementations
selfboot() doesn't really need to be architecture dependent. All
architectures are essentially doing the same thing with a normal
function call, only x86_32 needs an extra attribute. arm64 and x86 also
previously haven't been passing the coreboot table pointer, even though
they should. This patch fixes that.

Change-Id: If14040e38d968b5eea31cd6cd25efb1845a7b081
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86142
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-11 20:59:57 +00:00
Ivy Jian
d5a3f9998f mb/google/nissa/var/dirks: Add initial override devicetree
Add initial override devicetree for dirks based on the
latest schematic (0W4_TWL_A_MB_0120.pdf).

    - Add eMMC DLL tuning value (copy from riven)
    - Configure I2C buses
    - Configure USB ports
    - Configure audio codec
    - Configure WIFI6(CNVi) and WIFI7(PCIe)

Note :
There will be a separate CL to configure the implementation of
repurposing the TCSS port to USB Type-A after FSP support is added.

BUG=b:389391653
TEST=none.

Change-Id: Ic0b80e3121d94ede771ecc30cf0c66a67b9a41d0
Signed-off-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86250
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2025-02-11 16:31:08 +00:00
Guangjie Song
93cef8791b soc/mediatek/mt8196: Correct MMinfra vote register
Correct MMinfra vote register to fix MMinfra power off failure during
suspend.

BRANCH=rauru
BUG=b:377628718
TEST=Bootup OK and Suspend/Resume OK, with MMinfra kernel/vcp patch,
mminfra can be turned off to reduce power consumption by 50mW.

Signed-off-by: Guangjie Song <guangjie.song@mediatek.com>
Change-Id: I7c23c3c53c68b0de85d8b6189b685de7f8398e8b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86342
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-02-11 14:09:56 +00:00
Lu Tang
9c5496ecb0 soc/mediatek/mt8196: Set the driving strength of SPMI-P to maximum
To fix the SPMI-P glitch, the driving strength of SPMI-P needs to be set
to a maximum value of 16mA. Additionally, a hardware solution of
external pull-down is also required.

BRANCH=rauru
TEST=Build passed and booted successfully. The platform remained idle
for approximately 20 hours without hang.
BUG=b:383634290

Signed-off-by: Lu Tang <lu.tang@mediatek.corp-partner.google.com>
Change-Id: I131fd04c0313c7ed64bbd123f61d9a6849c8def4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86341
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-02-11 14:09:47 +00:00
Patrick Rudolph
8d87fd7d32 soc/amd: Document VBIOS handling
The code flow isn't that obvious in the beginning. You pass an address
of the VBIOS to FSP, but don't load any VBIOS until BS_DEV_RESOURCES
phase.
Add comments to document what is done and when. This will help to
improve the code in the next step.

Change-Id: I643bc9088306d99cc0fbb79648809e16b068fb33
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86298
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2025-02-11 12:28:12 +00:00
Matt DeVillier
773a405b7b {ec,mb}/starlabs: Consolidate EC-related CFR options in ec directory
Move all of the EC-related CFR options into a header in the ec
directory, so it can be reused across multiple boards.

TEST=build/boot starlabs/starbook_mtl,starlite_adl and verify CFR
options work properly.

Change-Id: I831559184de917b32e4993e8e34ffbc7b7e883e4
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86318
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-11 09:22:58 +00:00
Matt DeVillier
46e9d5a398 mb/starlabs/starlite_adl: Increase display brightness at POST
Adjust the POST brightness level in the VBT from 50 to 150 (max 255).

Change-Id: I1704a3479c38510b29427d582ee14c740401cd38
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86345
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-11 09:22:49 +00:00
Matt DeVillier
0c72983da2 ec/starlabs/merlin: Only include lid switch ACPI when needed
Desktop devices don't need and shouldn't define a lid switch.

TEST=build/boot starlabs/byte,starlite_adl

Change-Id: Iecf3e2558e244cc0bec301a505c0bc86684954aa
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86322
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-02-11 09:22:46 +00:00
Sean Rhodes
7d7802088a mb/starlabs/*: Correct PAD ownership
Commit `57aca97a2c` correctly changed the
reset types of GPIOs used in ACPI, but incorrectly set the pads to GPIO
mode, rather than ACPI mode.

This patch corrects that.

Change-Id: I7207d4d00e810c15d071eca0bea83796989e3735
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86344
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-11 09:22:30 +00:00
Sean Rhodes
b994bbdd28 mb/starlabs/starbook/adl_n: Disconnect unused GPIOs
These are not connected, so configure them as such.

Change-Id: I5dfeb5c1503ca85baf3641f1f5803519ec517b81
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86347
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-11 09:22:24 +00:00
Subrata Banik
39fc3587dd mb/google/fatcat: Add power limits for additional PTL-H variants
This commit adds power limit configurations for additional variants of
the Intel PTL-H platform found on Fatcat. Specifically, it adds entries
for PCI Device IDs 2, 3, and 4. These configurations define the PL1,
PL2, and PL4 power limits, as well as the associated CPU TDP and
power limits index.  The PL4 values are currently placeholders and
marked for future fine-tuning.

BUG=b:395130929
TEST=Able to boot google/fatcat with 65W USB-C PD charger.

Change-Id: I86befb07f39a5e292365ea40ea08d0f93f38a7a6
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86339
Reviewed-by: Jayvik Desai <jayvik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
2025-02-11 05:36:27 +00:00
Sean Rhodes
a810b2762d mb/starlabs/*: Use a safe configurations for DRAM Sleep GPIO
The configuration used was copied from other boards in the tree,
NF1/NF2. However, no Intel documents says that GPP_E8 has a native
function.

As it remains unclear if the other boards in the tree are
misconfiugured, or the documents are incorrect, revert to a safe
configuration for the GPIO.

Change-Id: I49b8faa7f8712ad0ead22b7ccbfa6deca6046368
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86332
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-10 15:14:44 +00:00
Paul Menzel
597dba2e34 drivers/asmedia/asm1061: Align = only with tabs and not spaces
The `.devices` line only had once space before the =, as the tab
boundary is directly after the s of devices. The lines above had once
space after the last tab, so the equal sign is closer to the left side.
As the whole file aligns the equal sign, replace the space by a tab, and
do *not* go the route of not aligning the equal signs.

Change-Id: Ic49dc56263cafce3cfe40bb3ed7036fa25300f9f
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86335
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2025-02-10 15:14:32 +00:00
Subrata Banik
d25a73d9a7 util/cbfstool/eventlog: Add low battery event type
This commit adds a new event type, `ELOG_TYPE_LOW_BATTERY_INDICATOR`,
to the event log. This event is logged when the system boots due to
a low battery condition.  It includes the reason for the shutdown,
currently only supporting "Power Off".

BUG=b:339673254
TEST=Able to capture the eventlog for low battery boot event.

```
> elogtool list
9 | 2025-02-03 09:44:19+0530 | Low Battery Boot  | Power Off
```

Change-Id: I5cc5e5f540657c7dfd174a4928e697a272da813a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86223
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2025-02-10 15:14:13 +00:00
Jayvik Desai
976a28bcfa soc/intel/ptl: Disable FSP_UGOP_EARLY_SIGN_OF_LIFE for pantherlake
This patch disables eSOL Kconfig until the feature is ready in PTL
FSP-uGOP binary.

TEST=Able to build and boot google/fatcat to OS.

Change-Id: I99dd516816995b6cdfdcec618c06c7dbe061718a
Signed-off-by: Jayvik Desai <jayvik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86314
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-10 11:38:17 +00:00
Hualin Wei
17c94b65c8 mb/google/nissa/var/pujjoniru: Tune I2C_5 parameters
1. Modify the I2C frequency of the touchpad to below 400 KHz to
meet the spec.
2. Modify the Thd dat of DATA between 0.3 us and 0.9 us to meet
the spec.

Before:
I2C5 - 407KHz
Thd  - 0.06us

After:
I2C5 - 387Khz
Thd  - 0.34us

BUG=b:391796230,b:391788680
TEST=Check that the wave form meets the spec.

Change-Id: I3c8c8d3b78236247ca7be810ac152085f615a6ef
Signed-off-by: Hualin Wei <weihualin@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86324
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Qinghong Zeng <zengqinghong@huaqin.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-10 02:07:20 +00:00
Alicja Michalska
6d0e35b68d mb/erying/tgl: Drop specifying which timers to use
With 8254 timer enabled, system would hang while entering s0ix state.
If we build coreboot with both timers =N, system enters s0ix state
(although it doesn't cut the power to the platform) and can be woken
up by pressing the key on the keyboard.

Since there's less potential for data loss in case of accidental
suspend, I think it makes sense to do it this way.

Change-Id: If6e0ac1d289447c292a49111251d321c951078e2
Signed-off-by: Alicja Michalska <alicja.michalska@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86093
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-09 21:43:31 +00:00
Matt DeVillier
cd414d9d61 soc/intel/meteorlake: Add missing USB port definitions
The TCSS_XHCI controller has a single USB2 port followed by 4 USB3
ports; the XHCI controller has 12 USB2 ports followed by 2 USB3
ports. The topology was queried from the root hub on each controller
and returned via the descriptor.

Add the 2 missing USB2 ports to the XHCI controller and the one to
the TSS_XHCI controller.

TEST=build/boot Win11, Linux 6.x on starlabs/starbook_mtl.

Change-Id: I5dc97f150ff064d55e7969f10c1cea8ba72d6bfb
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86319
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-02-09 20:40:25 +00:00
Yidi Lin
04ccbbc464 soc/mediatek/common: Measure mtk_fsp_load_and_run() execution time
Measure mtk_fsp_load_and_run() execution time. This info helps AP boot
time analysis. The logs show as below.

[INFO ]  mtk_fsp_load_and_run: run fallback/mtk_fsp_romstage at phase 0x30 in 0 msecs
[INFO ]  mtk_fsp_load_and_run: run fallback/mtk_fsp_ramstage at phase 0x50 in 41 msecs

BUG=none
BRANCH=rauru
TEST=cbmem -1|grep "mtk_fsp_load_and_run"

Change-Id: I61706952bef4590c5bfd09707a08a4f1a25fbda2
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86325
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-02-09 20:40:11 +00:00
Matt DeVillier
d958b270a2 mb/starlabs/starbook_mtl: Fix USB port assignments/descriptions
Fix USB port assignments/descriptions to match actual topology.

TEST=build/boot Win11 on starlabs/starbook_mtl. Verify ports
match assignmented in devicetree using USBTreeview.

Change-Id: Ifb5ac4cf95c8f10706404479dea48ba20a90e286
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86320
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
2025-02-08 19:40:16 +00:00
Sean Rhodes
1ac3bee7d6 ec/starlabs/merlin: Only include virtual button driver for detachables
Including the Virtual Button Driver made laptops report as a detachable
in tablet mode. Adjust how it's included, so they report as laptops.

Change-Id: Idc2076c400524744836e2f52124ccb8502622b04
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86315
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-08 19:37:42 +00:00
Sean Rhodes
ceaed25bf1 mb/starlabs/starbook/mtl: Change the user board type
Change the board type to ULX as seen in the AMI CRB. This fixes
failed memory training for certain memory modules.

Change-Id: I951387fcfc0be8fb931b4c5ac0b5f022e057b371
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86310
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-08 19:35:51 +00:00
Sean Rhodes
bf4da5f272 mb/starlabs/starbook/mtl: Enable Early Command Training
Enable Early Command Training.

Test=build and boot `starbook/mtl`, verify no issues in  FSP debug log
and enter/ exit s3.

Change-Id: I18d94537ec662e11ef09065569e1695403490012
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86308
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-08 19:35:47 +00:00
Sean Rhodes
5ff1ce6963 ec/starlabs/merlin: Remove unused name objects
These are not referenced anywhere, so remove them.

Change-Id: Ieb66099dcb9e13b26e6a7a752584537c060c8c18
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86317
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-08 19:35:32 +00:00
Jarried Lin
259306a296 mb/google/rauru: Deassert PCIe PERST# earlier in romstage
Reorder the PCIe reset before mtk_dram_init to overlap the de-assert
time with the DRAM initialization process. This change helps to optimize
the initialization sequence and reduce overall boot time.

BRANCH=rauru
TEST=Build pass
BUG=b:391333055

Change-Id: I24b254ff3a3cbe6d9a60a8e6afea2c621e0a07e2
Signed-off-by: Jarried Lin <jarried.lin@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86311
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2025-02-08 14:25:45 +00:00
Subrata Banik
bbe8a63e34 mainboard/google/fatcat: Set TCC offset
This commit sets the TCC offset for the Fatcat baseboard variant.
A value of 10 was chosen, resulting in a TCC trip point of 100C
(Tjmax of 110C - offset of 10C).

This allows for thermal throttling to begin at a more appropriate
temperature.

Fatcat variants can override the TCC offset as per platform
requirements between power and/or performance.

TEST=Able to build and boot to CrOS.

Change-Id: I2a57fd3b06378f4e62872ffeb116a65561100e33
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86292
Reviewed-by: Jamie Ryu <jamie.m.ryu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2025-02-08 10:03:00 +00:00
Brandon Weeks
656f26ee3c soc/intel/alderlake: Add missing min sleep state for SMBUS device
Fixes:
Unknown min d_state for PCI: 00:1f.4

Change-Id: I8050c8d574ea5908d5ad3f1e5a034257fabb72c5
Signed-off-by: Brandon Weeks <bweeks@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86259
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-07 22:02:04 +00:00
David Wu
16bd8b2065 mb/google/nissa/var/riven: Add fw_config probe for all wifi
Add fw_config probe to enable all wifi for factory use.

BUG=None
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Ic7326266fd8d69cb76257b01c1d9083a2e30a2b3
Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86266
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
2025-02-07 22:01:37 +00:00
Ian Feng
e914a551a2 mb/google/fatcat/var/francka: Enable CNVi wifi core
Enable CNVi wifi core for francka.

BUG=b:391772114
TEST=Build and boot to OS in francka.
lspci:
00:14.3 Network controller: Intel Corporation Device e440

Change-Id: I80c38882aab801dedb05355774e5b930a8528fed
Signed-off-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86262
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-07 22:01:06 +00:00
jamie_chen
1b2c7c588d mb/google/trulo/var/uldrenite: Add WIFI SAR table
Add WIFI SAR table for uldrenite.

BUG=b:384453900
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Ieb7f7ba54aaa6bdf1a19e59e57eb46cfafd655fe
Signed-off-by: jamie_chen <jamie_chen@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86291
Reviewed-by: Jayvik Desai <jayvik@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-07 22:00:39 +00:00
Yunlong Jia
a7755bb35f mb/google/nissa/var/gothrax: Add 2 Hynix parts to RAM ID table
Add the support RAM parts for gothrax.
Here is the ram part number list:
DRAM Part Name                 ID to assign
MT62F512M32D2DR-031 WT:B       0 (0000)
H58G56AK6BX069                 1 (0001)
K3LKBKB0BM-MGCP                2 (0010)
H9JCNNNBK3MLYR-N6E             0 (0000)
H9JCNNNCP3MLYR-N6E             3 (0011)

BUG=b:394756067
BRANCH=None
TEST=emerge-nissa coreboot

Change-Id: I9945ef9f8b9f5de8aedc34e4bc41c29a702be819
Signed-off-by: Yunlong Jia <yunlong.jia@ecs.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86296
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-07 22:00:26 +00:00
Filip Brozovic
3a6481aeb2 CFR: Add min/max/step values and hex display flag for number options
This commit adds support for minimum/maximum limit values as well as
step sizes for CFR number options. Additionally, add a new flag that
specifies the option should be displayed in hexadecimal notation instead
of decimal.

Change-Id: I2e70f1430fb1911f1ad974832f8abfe76f928ac3
Signed-off-by: Filip Brozovic <fbrozovic@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86039
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-02-07 22:00:01 +00:00
Filip Brozovic
17cc750e8b CFR: add dependencies based on specific option values
Implements a way for CFR options to depend on another option
being set to one or more specific values. This is achieved
by writing a list of values as a varbinary struct.

Change-Id: Iaf7965551490969052eb27c207fa524470d4dd6a
Signed-off-by: Filip Brozovic <fbrozovic@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85987
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-07 21:59:24 +00:00
Filip Brozovic
99cfad508a CFR: Add version field to root struct
Add a version field to the CFR root struct so parsers can check
compatibility when parsing structs.

Change-Id: Ifcb950f1bdedc0ab925f3841befb7e7001c0f7f4
Signed-off-by: Filip Brozovic <fbrozovic@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86080
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2025-02-07 21:58:32 +00:00
John Su
4a2135d21e mb/google/trulo/var/uldrenite: Add fw_config probe for Cellular
Use fw_config to probe Cellular.

BUG=b:392040004
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Ib664f543c6012b44a0a604d0943416519d92a057
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86255
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2025-02-07 21:57:50 +00:00
Vladimir Serbinenko
fa703f7b94 intel/acpi: Put BSP as the first entry
Linux complains in dmesg as a firmware bug that BSP is not the first
entry.
NetBSD hangs and OpenBSD panics early on boot.
With this patch I was able to boot NetBSD and OpenBSD on darp10-b when
loaded in GRUB.
Note: vanilla bootloaders for NetBSD and OpenBSD still result in an
apparent hang for an unknown reason.

Change-Id: I520a2e080c9f07a5866729ae2283990d20c0d691
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86247
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-02-07 21:57:33 +00:00
Yidi Lin
8deb8e94ad soc/mediatek/mt8196: Correct assert conditions
Correct the assert conditions in dptx_hal_setswing_preemphasis() and
dptx_hal_phy_set_swing_preemphasis().

BRANCH=rauru
BUG=b:376357839
TEST=Verify FW screen with a 4 lanes panel on Hylia

Change-Id: I8830b05c976ea2ba987de6333b93e2394d3403ba
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86302
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-07 12:43:26 +00:00
Yidi Lin
57fbd9c92c mb/google/rauru: Pull HPD pin up
Pull HPD (Hot Plug Detect) pin up in order to detect the panel.

BRANCH=rauru
BUG=b:376357839
TEST=Verify FW screen on Navi and Hylia

Change-Id: Ie11ceabad0b9872729125936d90b93b5d6d7cea6
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86294
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-07 12:43:14 +00:00
Yidi Lin
9f6a871414 mb/google/rauru: Support the panel with a load switch control
The Rauru follower device goes `load switch` path to ensure the
discharge timing meets the panel power-off sequence. Refactor panel.c to
support this hardware change.

Remove PANEL from fw_config since this is a board-specific change.

BRANCH=rauru
BUG=b:339580836
TEST=verify firmware screen on Navi

Change-Id: I57dcaa2a0b5af94fe3fa3eaf04e9f3159c51d144
Signed-off-by: Yidi Lin <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86282
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2025-02-07 12:43:05 +00:00
Sean Rhodes
0f3589b3d7 ec/starlabs/merlin: Add an option to disabled the lid switch
Previously, the lid switch could be set to not wake the system.

Add another option to ignore the switch entirely.

Change-Id: I1dd666a44b332ffbbef4420799eeffd746fd1664
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86305
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-07 08:52:35 +00:00
Sean Rhodes
6e7b44f4f3 ec/starlabs/merlin: Add an option to disable the fan
Add an option alongside the three existing curves to just turn
off the fan.

Change-Id: I39f6599056fe0116abbd7e2eb4084f77a7c395d3
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86304
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-07 08:52:21 +00:00
Sean Rhodes
4ef7804bc4 mb/starlabs/starbook/mtl: Add rcomp configuration
Add rcomp configuration values taken from the AMI CRB. This fixes
failed memory training for certain memory modules.

Change-Id: If7a29bbd015d45eac178480ba6cae42912e25195
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86307
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-07 08:52:06 +00:00
Sean Rhodes
21f0df3c1a mb/starlabs/starbook/mtl: Correct DIMM Speed Size
The DDR5 modules have a speed size of 1024 bytes, not 512. Update
Kconfig to reflect this.

Change-Id: Ic7b691104ff8b0061a485f01709a2f53046cc94a
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86306
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-07 08:52:02 +00:00
Amanda Huang
e75cc637ce mb/google/fatcat/var/francka: Decrease trace length of USB-A phy to short
To resolve the issue of not being able to boot from USB on Francka, the USB PHY settings need to be modified.

BUG=b:394206896
TEST=Build and test Type-A port function works fine

Change-Id: I140b8a2047768d3aeb0d5919aad998bd9dcd099f
Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86285
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Ian Feng <ian_feng@compal.corp-partner.google.com>
2025-02-07 08:34:57 +00:00
Bora Guvendik
d0f895a548 mb/google/fatcat: Set frequency and gears for SaGv work points
Update sagv gears and frequency values as per recommendation
from power and performance team.

BUG=none
TEST=Boot to OS.

Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Change-Id: I315fcac387680df9312880120b7e6d33bded38e0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86274
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-07 04:39:09 +00:00
Bora Guvendik
d5ad4ce36c soc/intel/pantherlake: Add ability to set SaGv work points
Hook up SaGv work point UPDs.

BUG=none
TEST=Boot to OS.

Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Change-Id: Ie38d007edc293727066f2bc9f67037e6fbe77aa5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86277
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2025-02-07 04:39:04 +00:00
Matt DeVillier
4526bc68df drivers/intel/gma: Drop unused MAILBOXES_DESKTOP
MAILBOXES_DESKTOP is unused, and the IGD opregion spec makes no
distinction in the mailboxes supported between desktop and mobile
platforms. Rename MAILBOXES_MOBILE to IGD_MAILBOXES for consistency
with other mailbox variables and clean up the comment.

Change-Id: Ia06fe75702887aa6953bf17bd4bc14af4038bec5
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86279
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-06 09:18:25 +00:00
Matt DeVillier
857a92ef4b drivers/intel/gma: Don't advertise support for opregion mailbox #2
IGD mailbox #2, Software SCI Interface, is not supported by coreboot
currently, as it requires supporting the Get BIOS Data (GBDA) and
System BIOS Callbacks (SBCB) interfaces. Since coreboot doesn't
support these, don't advertise mailbox #2 support.

This eliminates an error with the Linux display drivers:
"SWSCI request timed out"

TEST=build/boot Linux 6.9, Win11 on starlabs/starlite_adl

Change-Id: I8efcf9c5d384b6e0ce159d65cb1497c2e2e47f42
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86276
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
2025-02-06 09:18:19 +00:00
Matt DeVillier
f56b8b49e8 drivers/intel/gma: Fix alignment of extended VBT in opregion
Intel's reference implementation in Slimbootloader pads the area
allocated for the extended VBT to the nearest 512-byte boundary, which
strongly suggests that the Windows driver expects the same.

TEST=build/boot Linux 6.9, Win11 on starlabs/starlite_adl, verify
VBT read properly by OS.

Change-Id: Ib3784eea6eb929ffec9672fc123b833c11c057e8
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86275
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-06 09:18:12 +00:00
Sean Rhodes
fa3fd6871a mb/starlabs/starbook/adl: Change soft strap GPIO to DEEP reset
This has no noticable affect apart from being more consistant with
other boards.

Change-Id: Ia2d9284a7dfd29f47356860d6085c7aa5b94adb4
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86289
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-06 09:06:56 +00:00
Sean Rhodes
78c9f0e96d mb/starlabs/starbook/adl: Remove OverCurrent config
The schematics show that these are not connected, so disconnect
the GPIOs and set the ports to OC_SKIP.

Change-Id: I9e2b087b348fbae12edaf085fb61776277514c93
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86288
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-06 09:06:52 +00:00
Sean Rhodes
66d7d922e1 mb/starlabs/starbook/adl: Change the HPD to DEEP reset
DEEP proves more reliable on Linux with USB-C displays.

Change-Id: I04e243c6409af64fef0996b474aa448ce32b2da9
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86287
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2025-02-06 09:06:48 +00:00
Sean Rhodes
73c741bbf9 mb/starlabs/starbook/adl: Disconnect the WLAN Sleep GPIO
The schematics show this pin isn't connected, so disconnect it.

Change-Id: Ib21048fa0972231410b7e8f7829a9eeac1d065c7
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86286
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2025-02-06 09:06:44 +00:00
5030 changed files with 258380 additions and 50766 deletions

1
.gitignore vendored
View file

@ -35,6 +35,7 @@ tags
.cache
compile_commands.json
.vscode/
.clangd
# Cross-compile toolkits
xgcc/

11
.gitmodules vendored
View file

@ -54,6 +54,7 @@
[submodule "3rdparty/intel-sec-tools"]
path = 3rdparty/intel-sec-tools
url = https://review.coreboot.org/9esec-security-tooling.git
ignore = dirty
[submodule "3rdparty/stm"]
path = 3rdparty/stm
url = https://review.coreboot.org/STM
@ -62,9 +63,19 @@
path = util/goswid
url = https://review.coreboot.org/goswid
branch = trunk
ignore = dirty
[submodule "src/vendorcode/amd/opensil/genoa_poc/opensil"]
path = src/vendorcode/amd/opensil/genoa_poc/opensil
url = https://review.coreboot.org/opensil_genoa_poc.git
[submodule "3rdparty/open-power-signing-utils"]
path = 3rdparty/open-power-signing-utils
url = https://review.coreboot.org/open-power-signing-utils.git
[submodule "src/vendorcode/amd/opensil/phoenix_poc/opensil"]
path = src/vendorcode/amd/opensil/phoenix_poc/opensil
url = https://github.com/openSIL/openSIL.git
branch = phoenix_poc
[submodule "src/vendorcode/amd/opensil/turin_poc/opensil"]
path = src/vendorcode/amd/opensil/turin_poc/opensil
url = https://github.com/openSIL/openSIL.git
branch = turin_poc

2
3rdparty/amd_blobs vendored

@ -1 +1 @@
Subproject commit 26c572974bcf7255930b0e9a51da3144ed0104b5
Subproject commit aa9288a33c6d7a67e55b8757390029207593fa9f

@ -1 +1 @@
Subproject commit 15e5c6c91d483aa52908154cc80e48956e234232
Subproject commit 9109143417b24337d39a2a9583828a44996f8aac

2
3rdparty/blobs vendored

@ -1 +1 @@
Subproject commit 14f8fcc1b426cb0884a21a9b715da6e0c1c7f434
Subproject commit 4a8de0324e7d389454ec33cdf66939b653bf6800

2
3rdparty/fsp vendored

@ -1 +1 @@
Subproject commit 15c0f7b3f723bcd713e5ab11ebc502f30d9084e7
Subproject commit 81399b3b61479abc379c2d01362d4b6dc6f515c9

@ -1 +1 @@
Subproject commit 8ac9378a84879e81c503e09f344560b3dd7f72df
Subproject commit 250941fb670645d7d91f761cc63656ad3a1ec367

2
3rdparty/libgfxinit vendored

@ -1 +1 @@
Subproject commit 17cfc92f402493979783585b6581efbd98c0cf07
Subproject commit 3c3828add50024e90e57d6fbe0e660d1b66302d9

2
3rdparty/qc_blobs vendored

@ -1 +1 @@
Subproject commit a252198ec6544e13904cfe831cec3e784aaa715d
Subproject commit 6379308814bd00a8b6e36a4715bdb86ba019a3a7

2
3rdparty/vboot vendored

@ -1 +1 @@
Subproject commit 3f94e2c7ed58c4e67d6e7dc6052ec615dbbb9bb4
Subproject commit 5c360ef458b0a013d8a6d47724bb0fffb5accbcf

103
AUTHORS
View file

@ -15,12 +15,14 @@ Aaron Durbin
Abe Levkoy
Abel Briggs
Abhinav Hardikar
Abhishek Pandit-Subedi
AdaCore
Adam Liu
Adam Mills
Advanced Computing Lab, LANL
Advanced Micro Devices, Inc.
AG Electronics Ltd.
Agogo
Ahamed Husni
Akshu Agrawal
Al Hirani
@ -41,24 +43,30 @@ Alexey Vazhnov
Alice Sell
Alicja Michalska
Allen-KH Cheng
Alok Agarwal
Alper Nebi Yasak
Amanda Hwang
American Megatrends International, LLC
Amersel
Amit Caleechurn
Ana Carolina Cabral
Analog Devices Inc.
Analogix Semiconductor
Anand Mistry
Anand Vaikar
Anastasios Koutian
Andre
Andre Heider
Andrew McRae
Andrew SH Cheng
Andrey Pronin
Andriy Gapon
Andy
Andy Fleming
Andy Pont
Andy-ld Lu
Angel Pons
Angela Czubak
Anil Kumar K
Anna Karaś
Annie Chen
@ -68,6 +76,7 @@ Appukuttan V K
Arashk Mahshidfar
Arec Kao
Ariel Fang
Ariel Otilibili
ARM Limited and Contributors
Arthur Heymans
Asami Doi
@ -77,9 +86,12 @@ Ashqti
ASPEED Technology Inc.
Atheros Corporation
Atmel Corporation
Avi Uday
Avinash Munduru
Balaji Manigandan
Balázs Vinarz
BAP - Bruhnspace Advanced Projects
Bartłomiej Grzesik
Baruch Siach
Ben Chuang
Ben Kao
@ -90,6 +102,7 @@ Bernardo Perez Priego
Bhanu Prakash Maiya
Bill Xie
Bin Meng
Bincai Liu
Bitland Tech Inc.
Bob Moragues
Bora Guvendik
@ -97,10 +110,13 @@ Boris Barbulovski
Boris Mittelberg
Brandon Breitenstein
Brandon Weeks
Brian Hsu
Brian Norris
Bryant Ou
Carl-Daniel Hailfinger
Carlos López
Casper Chang
Cathy Xu
Caveh Jalali
Cavium Inc.
Chao Gui
@ -125,6 +141,7 @@ Cong Yang
CoolStar
coresystems GmbH
Corey Osgood
Crystal Guo
Curt Brune
Curtis Chen
Custom Ideas
@ -144,6 +161,7 @@ Dave Airlie
David Brownell
David Greenman
David Hendricks
David Li
David Lin
David Milosevic
David Mosberger-Tang
@ -153,6 +171,7 @@ David Wu
Dawei Chien
Deepika Punyamurtula
Deepti Deshatty
Dehui Sun
Denis 'GNUtoo' Carikli
Denis Dowling
DENX Software Engineering
@ -166,6 +185,7 @@ Divya S Sasidharan
Dmitry Ponamorev
Dmitry Torokhov
DMP Electronics Inc.
Dolan Liu
Dominik Behr
Donghwa Lee
Drew Eckhardt
@ -186,6 +206,8 @@ ELSOFT AG
Eltan B.V
Eltan B.V.
Elyes Haouas
Emilie Roberts
Enzo Potenza
Eran Mitrani
Eren Peng
Eric Biederman
@ -199,17 +221,20 @@ Ethan Tsao
Eugene Myers
Evan Green
Evgeny Zinoviev
Evie (Ivi) Ballou
Fabian Groffen
Fabian Kunkel
Fabian Meyer
Fabio Aiuto
Fabrice Bellard
Facebook, Inc.
Federico Amedeo Izzo
Fei Yan
Felix Friedlander
Felix Held
Felix Singer
Fengquan Chen
Filip Brozovic
Filip Lewiński
Flora Fu
Florian Laufenböck
@ -225,8 +250,12 @@ Freescale Semiconductor, Inc.
Furquan Shaikh
Gaggery Tsai
Gang C Chen
Garen Wu
Gareth Yu
Garmin Chang
Gary Jennejohn
Gavin Liu
George Burgess
George Trudeau
Gerald Van Baren
Gerd Hoffmann
@ -234,6 +263,7 @@ Gergely Kiss
Google LLC
Greg Watson
Grzegorz Bernacki
Guangjie Song
Guennadi Liakhovetski
Guodong Liu
Gwendal Grignou
@ -241,6 +271,7 @@ Hal Martin
Hao Chou
Hao Wang
HardenedLinux
Harrie Paijmans
Harsha B R
Harshit Sharma
Henry C Chen
@ -248,11 +279,13 @@ Herbert Wu
Hewlett Packard Enterprise Development LP
Hewlett-Packard Development Company, L.P.
Himanshu Sahdev
Hope Wang
Housong Zhang
Hsiao Chien Sung
Hsin-hsiung wang
Hsin-Te Yuan
Hsuan Ting Chen
Hualin Wei
Huaqin Technology Co., Ltd
Huaqin Telecom Inc.
Hui Liu
@ -267,6 +300,7 @@ Igor Pavlov
Ikjoon Jang
Imagination Technologies
Infineon Technologies
Ingo Reitz
InKi Dae
INSPUR Co., Ltd
Intel Corporation
@ -284,11 +318,14 @@ Jakub Czapiga
James Chao
James Lo
James Ye
Jameson Thies
Jamie Chen
Jamie Ryu
Jan Dabros
Jan Philipp Groß
Jan Samek
Jan Tatje
Jarried Lin
Jason Glenesk
Jason Nein
Jason V Le
@ -297,7 +334,9 @@ Jason Zhao
jason-ch chen
Jason-jh Lin
Jay Patel
Jayvik Desai
Jean Lucas
Jędrzej Ciupis
Jeff Chase
Jeff Daly
Jeff Li
@ -318,10 +357,12 @@ Jingle Hsu
Jitao Shi
Joe Pillow
Joe Tessler
Joel Bueno
Joel Kitching
Joel Linn
Joey Peng
Johanna Schander
Johannes Hahn
John Su
John Zhao
Johnny Li
@ -339,7 +380,9 @@ Jörg Mische
Joseph Smith
Josie Nordrum
Juan José García-Castro Crespo
Julia Kittlinger
Julia Tsai
Julian Intronati
Julian Schroeder
Julian Stecklina
Julien Viard de Galbert
@ -348,9 +391,11 @@ Kacper Stojek
Kaiyen Chang
Kane Chen
Kangheui Won
KangMin Wang
Kapil Porwal
Karol Zmyslowski
Karthik Ramasubramanian
Ke Zheng
Kei Hiroyoshi
Keith Hui
Keith Packard
@ -362,10 +407,12 @@ Kevin Chowski
Kevin Cody-Little
Kevin Keijzer
Kevin O'Connor
Kevin Yang
Kevin3 Yang
kewei xu
Kilari Raasi
Kirk Wang
Kiwi Liu
Konrad Adamczyk
Kontron Europe GmbH
Kornel Dulęba
@ -375,6 +422,7 @@ Kshitij
Kshitiz Godara
Kulkarni. Srinivas
Kun Liu
KunYi Chen
Kyle Lin
Kyösti Mälkki
Lance Zhao
@ -397,10 +445,15 @@ linear
Linus Torvalds
Linux Networx, Inc.
LiPPERT ADLINK Technology GmbH
Liu Liu
Liya Li
Lu Tang
Lu. Pen-ChunX
Lubomir Rintel
Luc Verhaegen
Luca Lai
Lucas Chen
Lukas Wunner
Mac Chiang
Maciej Matuszczyk
Maciej Pijanowski
@ -420,6 +473,7 @@ Mario Scheithauer
Marius Gröger
Mariusz Szafranski
Mariusz Szafrański
Mark Chang
Mark Hasemeyer
Mark Hsieh
Mars Chen
@ -430,6 +484,7 @@ Martin Roth
Marvell International Ltd.
Marvell Semiconductor Inc.
Marx Wang
Masa Nakura
Masanori Ogino
Máté Kukri
Matei Dibu
@ -438,6 +493,7 @@ Matt Chen
Matt Delco
Matt DeVillier
Matt Papageorge
Matt Turner
Matthew Blecker
Matthew Ziegelbaum
Mattias Nissler
@ -450,6 +506,7 @@ Maximilian Brune
Mediatek Inc.
MediaTek Inc.
Meera Ravindranath
Melongmelong
Meng-Huan Yu
Meta Platforms, Inc
mgabryelski1
@ -462,15 +519,20 @@ Michael Strosche
Michael Walle
Michał Kopeć
Michal Suchanek
Michał Zieliński
Michał Żygowski
Micro-Star INT'L CO., LTD.
Mika Westerberg
Mike Banon
Mike Lin
Mike Shih
Mingjin Ge
Miriam Polzer
mkurumel
Moises Garcia
Momoko Hattori
Mondrian Nuessle
Monika A
Monikaanan
MontaVista Software, Inc.
Morgan Jang
@ -480,7 +542,7 @@ mtk15698
mturney mturney
Musse Abdullahi
Myles Watson
Nancy.Lin
Nancy Lin
Naresh Solanki
Nathan Lu
Naveen R. Iyer
@ -491,12 +553,14 @@ Nicholas Sielicki
Nicholas Sudsgaard
Nick Barker
Nick Chen
Nick Kochlowski
Nick Vaccaro
Nico Huber
Nico Rikken
Nicola Corna
Nicolas Boichat
Nicole Faerber
Nigel Tao
Nikolai Vyssotski
Nils Jacobs
Nina Wu
@ -510,6 +574,10 @@ Omar Pakker
Online SAS
Opal Voravootivat
Orion Technologies, LLC
Ot_chhao.chang
Ot_hao.han
Ot_song Fan
Pablo
Pablo Ceballos
Pablo Stebler
Pan Gao
@ -539,16 +607,19 @@ Philipp Bartsch
Philipp Degler
Philipp Deppenwiese
Philipp Hug
Pierce Chou
Piotr Kleinschmidt
Po Xu
Poornima Tom
Pranava Y N
Prasad Malisetty
Prashant Malani
Pratik Vishwakarma
Pratikkumar Prajapati
Pratikkumar V Prajapati
Protectli
Purism SPC
PugzAreCute
Purdea Andrei
Purism, SPC
Qii Wang
Qinghong Zeng
@ -566,6 +637,7 @@ Ravindra
Ravishankar Sarawadi
Ray Han Lim Ng
Raymond Chung
Reagan
Red Hat, Inc
ReddestDream
Rehan Ghori
@ -583,6 +655,7 @@ Richard Woodruff
Rick Lee
Ricky Chang
Riku Viitanen
Rishika Raj
Ritul Guru
Rizwan Qureshi
Rnhmjoj
@ -602,6 +675,7 @@ Roman Zippel
Ron Lee
Ron Minnich
Ronak Kanabar
Ronald Claveau
Ronald G. Minnich
Rory Liu
Rudolf Marek
@ -623,6 +697,7 @@ Samuel Holland
Sandeep Maheswaram
Sathya Prakash M R
Satya Priya Kakitapalli
Satya SreenivasL
Saurabh Mishra
SciTech Software, Inc.
Scott Chao
@ -650,6 +725,7 @@ Shiyu Sun
Shon Wang
Shou-Chieh Hsu
Shreesh Chhabbi
Shunxi Zhang
Shuo Liu
Siemens AG
SiFive, Inc
@ -662,10 +738,12 @@ Simon Zhou
Sindhoor Tilak
Solomon Alan-Dei
Song Fan
Sowmya Aralguppe
Sridhar Siricilla
Srinidhi N Kaushik
Srinivasa Rao Mandadapu
ST Microelectronics
Stanisław Kardach
Stanley Wu
Star Labs Online Ltd
Stefan Binding
@ -693,6 +771,7 @@ Tao Xia
Tarun Tuli
Teddy Shih
Terry Chen
Terry Cheong
Texas Instruments
The Android Open Source Project
The ChromiumOS Authors
@ -711,7 +790,9 @@ Timothy Pearson
tinghan shen
Tobias Diedrich
Tom Hiller
Tomasz Michalec
Tommie Lin
Tongtong Pan
Tony Huang
Tracy Wu
Trevor Wu
@ -728,10 +809,13 @@ Usha P
Uwe Hermann
Uwe Poeche
V Sowmya
Vladimir Epifantsev
Václav Straka
Vadim Bendebury
Valentyn Sudomyr
Van Chen
Varshit B Pandya
Varun Upadhyay
Veerabhadrarao Badiganti
Venkat Thogaru
Venkata Krishna Nimmagadda
@ -740,6 +824,7 @@ Victor Ding
Vidya Gopalakrishnan
Vikram Narayanan
Vikrant L Jadeja
Vince Liu
Vinod Polimera
Vipin Kumar
Vitaly Rodionov
@ -752,8 +837,10 @@ Ward Vandewege
Wayne Wang
Weimin Wu
Weiyi Lu
Wen Zhang
Wenbin Mei
Wentao Qin
Wenzhen Yu
Werner Zeh
Wilbert Duijvenvoorde
William Wei
@ -772,12 +859,16 @@ Wonkyu Kim
Wuxy
Xiang W
Xin Ji
Xiwen Shao
Xixi Chen
Xue Yao
Xueqi Zhang
Xuxin Xiong
YADRO
Yan Liu
Yang Wu
Yann Collet
Yanqiong Huang
Yaroslav Kurlaev
YH Lin
Yidi Lin
@ -792,14 +883,19 @@ Yu-Ping Wu
Yuanliding
Yuchen He
Yuchen Huang
Yuchiche
Yunlong Jia
Yuval Peress
Zachary Yedidia
Zanxi Chen
Zebreus
Zhanyong Wang
Zhaoming Luo
Zhaoqing Jiu
Zheng Bao
Zhenguo Li
Zhi7 Li
Zhigang Qin
Zhiqiang Ma
Zhixing Ma
Zhiyong Tao
@ -808,6 +904,7 @@ Zhuohao Lee
Ziang Wang
Zoey Wu
Zoltan Baldaszti
一颗小土豆
小田喜陽彦
忧郁沙茶
陳建宏
陳建宏

View file

@ -5,7 +5,7 @@ coreboot POST Codes
This is an (incomplete) list of POST codes emitted by coreboot v4.
0x10 Entry into protected mode
0x01 Entry into 'crt0.s' reset code jumps to here
0x01 Entry into 'entry16.S' reset code jumps to here
0x11 Start copying coreboot to RAM with decompression if compressed
0x12 Copy/decompression finished jumping to RAM
0x80 Entry into coreboot in RAM

View file

@ -204,7 +204,6 @@ Spec](https://uefi.org/specifications) for details, or run the tool
* CRLF - Carriage Return, Line Feed - \\r\\n - The standard window EOL
(End-of-Line) marker.
* crt0 - [**C Run Time 0**](https://en.wikipedia.org/wiki/Crt0)
* crt0s - crt0 Source code
* CRT - [**Cathode Ray Tube**](https://en.wikipedia.org/wiki/Cathode-ray_tube)
* CSE - Intel: Converged Security Engine
* CSI - MIPI: [**Camera Serial

View file

@ -6,91 +6,5 @@ This section contains documentation about coreboot on x86 architecture.
:maxdepth: 1
x86 PAE support <pae.md>
x86_64 support <x86_64.md>
```
## State of x86_64 support
Some SOCs now support 64bit mode. Search for HAVE_X86_64_SUPPORT in Kconfig.
In order to add support for x86_64 the following assumptions were made:
* The CPU supports long mode
* All memory returned by malloc must be below 4GiB in physical memory
* All code that is to be run must be below 4GiB in physical memory
* The high dword of pointers is always zero
* The reference implementation is qemu
* x86 payloads are loaded below 4GiB in physical memory and are jumped
to in *protected mode*
## Assumptions for all stages using the reference implementation
* 0-4GiB are identity mapped using 2MiB-pages as WB
* Memory above 4GiB isn't accessible
* page tables reside in memory mapped ROM
* A stage can install new page tables in RAM
## Page tables
A `pagetables` cbfs file is generated based on an assembly file.
To generate the static page tables it must know the physical address where to
place the file.
The page tables contains the following structure:
* PML4E pointing to PDPE
* PDPE with *$n* entries each pointing to PDE
* *$n* PDEs with 512 entries each
At the moment *$n* is 4, which results in identity mapping the lower 4 GiB.
## Basic x86_64 support
Basic support for x86_64 has been implemented for QEMU mainboard target.
## Reference implementation
The reference implementation is
```{toctree}
:maxdepth: 1
QEMU i440fx <../../mainboard/emulation/qemu-i440fx.md>
QEMU Q35 <../../mainboard/emulation/qemu-q35.md>
```
## TODO
* Identity map memory above 4GiB in ramstage
## Future work
1. Fine grained page tables for SMM:
* Must not have execute and write permissions for the same page.
* Must allow only that TSEG pages can be marked executable
2. Support 64bit PCI BARs above 4GiB
3. Place and run code above 4GiB
## Porting other boards
* Fix compilation errors
* Test how well CAR works with x86_64 and paging
* Improve mode switches
## Known problems on real hardware
Running VGA rom directly fails. Yabel works fine though.
## Known bugs on KVM enabled qemu
The `x86_64` reference code runs fine in qemu soft-cpu, but has serious issues
when using KVM mode on some machines. The workaround is to *not* place
page-tables in ROM, as done in
[CB:49228](https://review.coreboot.org/c/coreboot/+/49228).
Here's a list of known issues:
* After entering long mode, the FPU doesn't work anymore, including accessing
MMX registers. It works fine before entering long mode. It works fine when
switching back to protected mode. Other registers, like SSE registers, are
working fine.
* Reading from virtual memory, when the page tables are stored in ROM, causes
the MMU to abort the "page table walking" mechanism when the lower address
bits of the virtual address to be translated have a specific pattern.
Instead of loading the correct physical page, the one containing the
page tables in ROM will be loaded and used, which breaks code and data as
the page table doesn't contain the expected data. This in turn leads to
undefined behaviour whenever the 'wrong' address is being read.
* Disabling paging in compatibility mode crashes the CPU.
* Returning from long mode to compatibility mode crashes the CPU.
* Entering long mode crashes on AMD host platforms.

View file

@ -0,0 +1,109 @@
# x86_64 architecture documentation
This section documents coreboot's x86_64 support. When enabled,
every coreboot stage is built for x86_64, contrary to UEFI's implementation
that only runs some stages in x86_64.
On UEFI the PEI phase, which is x86_32, brings up DRAM and installs
page tables for the x86_64 DXE and BDS phases.
## Toolchain requirements for x86_64 support
* The compiler must support generating code for the *large memory model*
(-mcmodel=large). It's supported since GCC 4.4.
Page tables can be used to provide security benefits, such as by marking
memory as non-executable or removing it entirely. This could be useful
for SMM to mark regular DRAM as NX.
The large memory model causes the compiler to emit 64bit addressing
instructions, which increases code size. In theory, this is roughly
made up for by the faster execution of the x86_64 code.
* All x86 coreboot stages and payloads must be loaded below 4GiB in
physical memory. When jumping to the payload coreboot will drop from
long mode back to protected mode to keep compatibility with these payloads.
## Comparison to UEFI
On UEFI the SEC and PEI phases (similar to coreboot's bootblock and romstage)
are run in x86_32 mode. The following (guessed) reasons are likely:
* There's no need for x86_64 as memory hasn't been trained yet. The whole 4GiB
address space, including CAR, memory mapped SPI flash and PCI BARs, are
accessible in x86_32.
* When the EFI specification was written compilers did not support
*large memory model*, required in CAR when using a 1:1 page mapping
* Code is 20% bigger in x86_64 due to *large memory model* where pointers and
function calls always use 8 byte addressing. However flash size was very
limited, compared to today's flash chips, when the EFI spec was written.
## Current software constraints for x86_64 support
The following constraints are coreboot limitations as it was intended to run in
protected mode only. The code still assumes 32bit pointers in some places and thus:
* The high dword of pointers must always be zero.
* All memory returned by malloc must be below 4GiB in physical memory.
* All code that is to be run must be below 4GiB in physical memory.
* CBMEM must reside below 4GiB in physical memory.
Any software within coreboot must not access memory resources above 4GiB until
end of BS_DEV_RESOURCES in ramstage. Only at that point the full memory map is
known and identity mapped.
## Supported boards
On the supported boards you can enable x86_64 compilation by setting the
Kconfig `USE_X86_64_SUPPORT`. This config option is enabled if the SOC/CPU
selects `HAVE_X86_64_SUPPORT`.
## Protected mode wrappers
On some platforms binary blobs are run to initialize parts of the hardware.
When these binary blobs have been compiled for x86_32, then coreboot must
switch to protected mode in order to call and run the blobs. Once the invoked
blobs finish running, coreboot needs to switch back to long mode.
Since every BLOB is different a SoC must be enabled to support x86_64 mode
by providing the correct wrapper around the x86_32 BLOBs.
## TODO
* Support more platforms
* Fix running VGA Option ROMs
* Fix running MRC.bin (Sandy Bridge / Haswell boards)
* Identity map memory above 4GiB in ramstage
* Fine grained page tables for SMM:
* Must not have execute and write permissions for the same page.
* Must only allow TSEG pages to be marked as executable.
* Must reside in SMRAM.
* Must be placed together with SMM rmodule.
* Support 64bit PCI BARs above 4GiB
* Jump to compatible payloads in long mode
## Porting other boards
* Fix compilation errors
* Test how well CAR works with x86_64 and paging
* Improve mode switches
* Test libgfxinit / VGA Option ROMs / FSP
## Known bugs on real hardware
According to Intel x86_64 mode hasn't been validated in CAR environments.
However, coreboot developers working on x86_64 support have tried this on
various Intel platforms, and so far haven't found any issues with CAR when
running in x86_64 mode.
## Known bugs on KVM enabled QEMU
The `x86_64` reference code runs fine in QEMU's soft-cpu, but has serious issues
when using KVM mode on some machines. This is due to various mechanisms trying
to accelerate the code execution.
Known issues in QEMU:
* After entering long mode, the FPU doesn't work anymore, including accessing
MMX registers. It works fine before entering long mode. It works fine when
switching back to protected mode. Other registers, like SSE registers, are
working fine.
* Reading from virtual memory, when the page tables are stored in ROM, causes
the MMU to abort the "page table walking" mechanism when the lower address
bits of the virtual address to be translated have a specific pattern.
Instead of loading the correct physical page, the one containing the
page tables in ROM will be loaded and used, which breaks code and data as
the page table doesn't contain the expected data. This in turn leads to
undefined behaviour whenever the 'wrong' address is being read.
* Disabling paging in compatibility mode crashes the CPU.
* Returning from long mode to compatibility mode crashes the CPU.
* Entering long mode crashes on AMD host platforms.

View file

@ -0,0 +1,56 @@
# Cross-Project Collaboration
Open source firmware has become popular and important over the last several
decades and is currently anchored in multiple key applications like industry,
automotive, infrastructure and commodity PC systems. coreboot has a
long-reaching history in all these applications and has become a vital
alternative to proprietary firmware solutions. Since coreboot itself is
minimalistic, other open source projects like SeaBIOS and flashrom help complete
the overall user experience by providing a well established way to boot into an
OS and easily reprogram the firmware on demand.
Open source projects often lack funds and are heavily dependent on volunteer
work by enthusiasts. coreboot has made its way over the many years its been
running and is now able to operate its own paid infrastructure for various
services like git, Gerrit and Jenkins, all of them are key factors for a
worldwide collaboration and project success. Other small but still important
projects do not have such resources and face infrastructure issues more often.
Furthermore, often the same people do work for different open source projects.
Therefore, it is important to support such projects where feasible.
For instance, sharing the IT infrastructure can leverage quite some synergies
as the tasks for different projects are quite similar, e.g. push code to public,
review it in Gerrit, let Jenkins do a build and report back to Gerrit or provide
a bug tracker platform where users and developers can report bugs and issues.
The coreboot project already has servers providing such services and these have
a huge amount of headroom to execute such tasks for other projects.
Additionally, the developers working on multiple projects are supported as they
can do their work with the same mindset while interfacing with common services
among different projects. This not only improves cross-project collaboration but
also does improve code quality because the developers do not have to switch
between different project setups.
Therefore, the coreboot project explicitly encourages collaboration with other
open source projects in the firmware domain. Especially the already well
established partnership with flashrom, SeaBIOS, and EM100 should continue to be
maintained further on. This includes:
* Sharing of the IT infrastructure
* Sharing the critical services like git, Gerrit, Jenkins and the bugtracker
* Sharing of the established communication methods via mailing list, Slack, IRC
or Discord
* Sharing web services for web page or wikis and blog posts
If there is interest in a collaboration, please reach out to
coreboot@coreboot.org.
The coreboot project is still responsible and in charge of its offered services
to partner projects. The technical details of the collaboration will be
discussed on a case-by-case basis with affected parties where coreboot project
infrastructure maintainers have the lead.
Note that it is expected that everyone using the coreboot services is expected
to follow coreboot code-of-conduct policies at all times. In cases where the
coreboot CoC is broken by someone working only on other projects in the coreboot
infrastructure, the coreboot leadership will work with the leadership of the
other project on the issue.

View file

@ -7,4 +7,5 @@ Code of Conduct <code_of_conduct.md>
Language style <language_style.md>
Community forums <forums.md>
coreboot at conferences <conferences.md>
Cross-Project Collaboration <cross_project_collaboration.md>
```

View file

@ -522,7 +522,7 @@ The preferred style for *long* (multi-line) comments is:
```c
/*
 * This is the preferred style for multi-line
 * This is the preferred style for long multi-line
 * comments in the coreboot source code.
 * Please use it consistently.
 *

View file

@ -348,8 +348,8 @@ commit message itself:
* Tested-by:
* Reviewed-by:
The script `util/gitconfig/rebase.sh` can be used to help automate this.
Other tags such as 'Commit-Queue' can simply be removed.
The script `util/scripts/cross-repo-cherrypick` can be used to help
automate this. Other tags such as 'Commit-Queue' can simply be removed.
* Check if there's documentation that needs to be updated to remain current
after your change. If there's no documentation for the part of coreboot

View file

@ -0,0 +1,79 @@
# Git Commit messages
There are a number of different recommendations for git commit
messages, so this is another one.
It's expected that coreboot contributors already generally understand
the idea of writing good git commit messages, so this is not trying
to go over everything again. There are other tutorials that cover that.
- [Linux Kernel tip tree Handbook](https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-subject)
- [How to write a Git Commit Message](https://cbea.ms/git-commit/)
## Line length
- The subject line should be <= 65 characters, with an absolute maximum
of 72 characters
- Prose in the commit message should be <= 72 characters
- If reflowing prose to 72 characters can reduce the length of the
commit message by 2 or more lines, please reflow it. Using the entire
72 characters on a line when reasonable is recommended, but not
required.
- Non-prose text in the body in the commit message does not need to be
wrapped at 72 characters. Examples: URLs, compiler output, or poetry.
## Both Subject & body
- Use the present tense. (The for loop exits too early, so ...", not
"The for loop exited too early, so ...").
- When using acronyms, make sure they're explained in the commit
message itself or in the [acronyms list](https://doc.coreboot.org/acronyms.html).
## Commit message Subject Line
- Start the subject line with a prefix denoting the area of the change.
Often part of the path can be used by that. Looking through existing
commit messages summaries with `git log --oneline ...` gives a good
idea. Because this prefix takes space used by the rest of the subject,
it should be kept short while still uniquely describing the area.
- Don't include `src/`
- Use abbreviations where possible:
- mb: mainboard
- vc: vendorcode
- Don't end the subject line with a period.
- Use the imperative mood. ("Fix whitespace", not "whitespace fixes").
## Commit Message Body
- Make sure the problem being solved by the commit is described. While
it may be obvious to the committer, it may not be obvious to others.
- When referencing other commits use a 12 character hash and the subject
(e.g. `commit XXXXXXXXXXXX ("some commit")`). However, use `CB:XXXXX`
when referring to an open or abandoned change on Gerrit.
- When using a URL in a commit message, use archive.org when possible.
URLs often get changed or go stale, so this keeps them stable.
- Make sure that all changes in a patch are addressed in the commit
message.
- A TEST= tag is highly recommended, but not required. This lets people
know whether you tested it by booting the board or just by compiling.
- All but the most trivial of patches should generally have a body.
- A BUG= tag can be added when the author wants to indicate that the
patch is or is not related to a bug. This can be either in coreboot's
issue tracker, or a private issue tracker.
- `BUG=b:####` is used by the Google internal issue tracker.
- `BUG=chromium:####` indicates the Chromium public tracker at
https://issues.chromium.org/
- `BUG=CID ####` can be used to indicate coverity error fixes.
- `BUG=https://...` can be used to link directly to a public
tracker.
- The BRANCH= tag is used in cases where a patch needs to be added to a
specific downstream branch. This is never required by the coreboot
project.
## Footers
- The Signed-off-by line is required (Jenkins forces this).
- The Change ID is required (Gerrit forces this.)
- When adding a patch that has already gone through another git or
gerrit, the footers from those previous commits may be added, but
keep the list reasonable.

View file

@ -5,7 +5,25 @@
Coding Style <coding_style.md>
Gerrit Guidelines <gerrit_guidelines.md>
Commit Message Guidelines <git_commit_messages.md>
Project Ideas <project_ideas.md>
Documentation Ideas <documentation_ideas.md>
Google Summer of Code <gsoc.md>
```
The coreboot project uses the Developer Certificate of Origin as its
policy of accepting contributions. As such, a submitter bears the burden
that they have all necessary rights to submit their contribution to the
project under the project's licenses as appropriate. Violations of third
party rights will lead to the code's removal or replacement as suitable
to bring the project back into compliance.
This applies no matter under which circumstances a contribution has been
created: legal frameworks, work contracts, Generative Artificial
Intelligence ("AI") tooling, or other aspects that may affect the
ownership and copyright status of a contribution are outside the
project's control.
See the [Sign-off procedure] for more information.
[Sign-off procedure]: gerrit_guidelines.md#sign-off-procedure

View file

@ -0,0 +1,387 @@
# ACPI Active Cooling with Five-Level Fan Control
## Overview
This document describes an ACPI-based thermal management pattern used across multiple coreboot mainboards. The implementation uses ACPI thermal zones with active cooling policies to control fan speed based on CPU temperature through a five-level power resource state machine.
This pattern is particularly prevalent on Intel-based mainboards using SuperIO environmental controllers for fan PWM control.
## Mainboards Using This Pattern
The following mainboards implement this five-level ACPI fan control pattern:
### Google Chromebooks
- **google/beltino** - Haswell Chromebox
- All variants (mccloud, monroe, panther, tricky, zako) use a single implementation
- **google/jecht** - Broadwell Chromebox
- Each variant (jecht, rikku, guado, tidus) has a unique implementation
### Samsung
- **samsung/stumpy** - Sandy Bridge Chromebox
### Intel Reference Boards
- **intel/wtm2** - Haswell ULT reference board
- **intel/baskingridge** - Haswell desktop reference board
- **intel/emeraldlake2** - Ivy Bridge reference board
## Architecture
### Hardware Components
Common hardware elements across implementations:
- **Temperature Sensor**: SuperIO TMPIN3 reads CPU temperature via PECI (Platform Environment Control Interface)
- **Fan Controller**: SuperIO Environmental Controller (ENVC) with PWM output
- Fan2 (F2PS) on Google Chromebooks
- Fan3 (F3PS) on Intel/Samsung boards
- **CPU**: Provides temperature data as an offset from Tj_max (maximum junction temperature)
### ACPI Components
- **Thermal Zone**: `\_TZ.THRM` - Main thermal management zone
- **Fan Devices**: `FAN0` through `FAN4` - Five fan speed levels
- **Power Resources**: `FNP0` through `FNP4` - Control fan state transitions
- **Active Cooling Levels**: `_AC0` through `_AC4` - Temperature thresholds for each fan level
## Fan Speed Levels
The system implements **5 fan speed levels** (0-4), where:
- **Level 0**: Maximum fan speed (highest cooling, activated at highest temperature)
- **Level 1**: High fan speed
- **Level 2**: Medium fan speed
- **Level 3**: Low fan speed
- **Level 4**: Minimum fan speed (idle/baseline cooling, default state)
The system starts at **Level 4** (minimum speed) and increases to lower-numbered levels as temperature rises.
## Temperature Management
### Temperature Reading Process
1. **Raw PECI Reading**: Read from `\_SB.PCI0.LPCB.SIO.ENVC.TIN3`
- Returns a value representing offset from Tj_max
- Value 0x80 indicates "no reading available"
- Values 0 or 255 are invalid
2. **Temperature Calculation**:
```
actual_temperature = Tj_max - (255 - raw_value)
```
3. **Conversion to ACPI Format**: Convert from Celsius to deci-Kelvin:
```
deci_kelvin = (celsius * 10) + 2732
```
### Critical Temperature Handling
Most implementations include safety logic in the `_TMP` method:
- If temperature reaches `\TMAX` (Tj_max), logs a critical event
- Waits 1 second for sensor re-poll
- Re-reads temperature to confirm
- Reports the current temperature to the OS
### Temperature Thresholds
Thresholds are defined in board-specific headers (typically `thermal.h`):
- `FAN0_THRESHOLD_ON/OFF` - Trigger points for maximum fan speed
- `FAN1_THRESHOLD_ON/OFF` - Trigger points for high fan speed
- `FAN2_THRESHOLD_ON/OFF` - Trigger points for medium fan speed
- `FAN3_THRESHOLD_ON/OFF` - Trigger points for low fan speed
- `FAN4_PWM` - PWM value for minimum fan speed
Each level has hysteresis (different ON/OFF thresholds) to prevent rapid cycling.
## Active Cooling Implementation
### Active Cooling Methods (`_ACx`)
Each `_ACx` method returns a temperature threshold:
- When system temperature **exceeds** the threshold, the OS activates the corresponding fan level
- When temperature **falls below** the threshold, the OS may deactivate that level
**Hysteresis Logic**:
```
Method (_AC0) {
If (\FLVL <= 0) {
Return (CTOK (FAN0_THRESHOLD_OFF)) // Higher temp to turn off
} Else {
Return (CTOK (FAN0_THRESHOLD_ON)) // Lower temp to turn on
}
}
```
This prevents oscillation by requiring different temperatures to activate vs. deactivate a fan level.
### Active Cooling Lists (`_ALx`)
Each `_ALx` associates a cooling threshold with a fan device:
```
Name (_AL0, Package () { FAN0 }) // FAN0 activated at _AC0 threshold
Name (_AL1, Package () { FAN1 }) // FAN1 activated at _AC1 threshold
Name (_AL2, Package () { FAN2 }) // FAN2 activated at _AC2 threshold
Name (_AL3, Package () { FAN3 }) // FAN3 activated at _AC3 threshold
Name (_AL4, Package () { FAN4 }) // FAN4 activated at _AC4 threshold
```
## Power Resource State Machine
Each fan level has an associated power resource (`FNP0` through `FNP4`) that manages state transitions.
### State Transitions
**FNP0-FNP3** (Levels 0-3):
- `_STA`: Returns 1 (ON) if `\FLVL <= level`, else 0 (OFF)
- `_ON`: Transitions **to** this level from a higher-numbered level
- `_OFF`: Transitions **away** from this level to the next higher-numbered level
Example for FNP0 (maximum cooling):
```
PowerResource (FNP0, 0, 0) {
Method (_STA) {
If (\FLVL <= 0) { Return (1) } // Active if at max cooling
Else { Return (0) }
}
Method (_ON) {
If (!_STA ()) { // If not already active
\FLVL = 0 // Set to max cooling
\_SB.PCI0.LPCB.SIO.ENVC.F2PS = FAN0_PWM // Set fan PWM
Notify (\_TZ.THRM, 0x81) // Notify thermal zone
}
}
Method (_OFF) {
If (_STA ()) { // If currently active
\FLVL = 1 // Transition to level 1
\_SB.PCI0.LPCB.SIO.ENVC.F2PS = FAN1_PWM // Set corresponding PWM
Notify (\_TZ.THRM, 0x81) // Notify thermal zone
}
}
}
```
**FNP4** (Minimum cooling - Level 4):
- `_STA`: Returns 1 if `\FLVL <= 4` (always true in normal operation)
- `_ON`: Transitions to minimum cooling state
- `_OFF`: **No-op** - This is the minimum state, cannot transition lower
### Critical: FNP4._OFF Must Be a No-Op
This is **essential for Windows compatibility**:
**Problem**: Early implementations had `_OFF` setting `\FLVL = 4` and PWM values, identical to `_ON`. This violated ACPI power resource requirements:
- After `_ON` is called, `_STA` must eventually return 1 (ON)
- After `_OFF` is called, `_STA` must eventually return 0 (OFF)
Since both methods resulted in `\FLVL = 4`, and `_STA` returns 1 when `\FLVL <= 4`, the power resource could never properly transition to OFF state.
**Solution**: Make `_OFF` a no-op since FAN4 is the minimum cooling state:
```
PowerResource (FNP4, 0, 0) {
Method (_STA) {
If (\FLVL <= 4) { Return (1) }
Else { Return (0) }
}
Method (_ON) {
If (!_STA ()) {
\FLVL = 4
\_SB.PCI0.LPCB.SIO.ENVC.F2PS = FAN4_PWM
Notify (\_TZ.THRM, 0x81)
}
}
Method (_OFF) {
// FAN4 is the minimum cooling state (idle/lowest fan speed)
// There is no lower state to transition to, so _OFF is a no-op
// to maintain proper ACPI power resource state machine semantics
}
}
```
This maintains proper ACPI state machine semantics and ensures Windows compatibility while maintaining Linux compatibility.
## Passive Cooling
In addition to active (fan-based) cooling, most implementations support passive cooling:
- `_PSV`: Returns passive cooling threshold temperature
- `_PSL`: Returns list of processors to throttle
- `_TC1`, `_TC2`: Thermal constants for passive cooling algorithm
- `_TSP`: Thermal sampling period (typically 20 deciseconds = 2 seconds)
When temperature exceeds `_PSV` threshold, the OS throttles CPUs listed in `_PSL` to reduce heat generation.
## Polling and Notification
- `_TZP`: Thermal zone polling period (typically 100 deciseconds = 10 seconds)
- OS polls `_TMP` at this interval to check temperature
- `Notify (\_TZ.THRM, 0x81)`: Thermal zone change notification
- Sent whenever fan level changes
- Tells OS to re-evaluate thermal zone immediately
## Initialization
The `_INI` method runs when the thermal zone is initialized:
```
Method (_INI) {
\FLVL = 4 // Start at minimum cooling
\_SB.PCI0.LPCB.SIO.ENVC.F2PS = FAN4_PWM // Set initial fan PWM
Notify (\_TZ.THRM, 0x81) // Initial notification
}
```
## Operating System Interaction
### Thermal Policy Flow
1. **OS boots** → Executes `_INI` → Fan starts at Level 4
2. **OS polls `_TMP`** periodically → Gets current temperature
3. **Temperature rises** → Exceeds `_AC3` threshold
4. **OS calls `FAN3._ON`** → Power resource FNP3 activated → `\FLVL = 3`
5. **Temperature continues rising** → Exceeds `_AC2` threshold
6. **OS calls `FAN2._ON`** → Power resource FNP2 activated → `\FLVL = 2`
7. **Temperature drops** → Falls below `_AC2` threshold
8. **OS calls `FAN2._OFF`**`\FLVL = 3` → Returns to Level 3
9. **Cycle continues** based on temperature changes
### Critical Temperature
If temperature reaches `_CRT` threshold:
- OS initiates emergency shutdown
- Prevents hardware damage from overheating
## Global Variables
Standard variables used across implementations:
- `\FLVL`: Current fan level (0-4)
- `\TMAX`: Maximum junction temperature (Tj_max)
- `\TCRT`: Critical shutdown temperature
- `\TPSV`: Passive cooling threshold temperature
## Configuration
Fan thresholds and PWM values are defined in board-specific headers, typically:
```
src/mainboard/<vendor>/<board>/include/thermal.h
```
or
```
src/mainboard/<vendor>/<board>/variants/<variant>/include/variant/thermal.h
```
Example configuration:
```c
#define FAN0_THRESHOLD_ON 75 // Temperature to activate max fan (°C)
#define FAN0_THRESHOLD_OFF 65 // Temperature to deactivate max fan (°C)
#define FAN0_PWM 0xFF // PWM duty cycle value (max)
#define FAN1_THRESHOLD_ON 65
#define FAN1_THRESHOLD_OFF 55
#define FAN1_PWM 0xC0
#define FAN2_THRESHOLD_ON 55
#define FAN2_THRESHOLD_OFF 45
#define FAN2_PWM 0x80
#define FAN3_THRESHOLD_ON 45
#define FAN3_THRESHOLD_OFF 35
#define FAN3_PWM 0x40
#define FAN4_PWM 0x20 // Idle fan speed
```
## Implementation Variations
While the core pattern is consistent, there are some variations:
### PWM Output Selection
- **Google boards**: Use Fan2 PWM (`F2PS`)
- **Intel/Samsung boards**: Use Fan3 PWM (`F3PS`)
### Guard Checks
Some implementations wrap state changes with `_STA()` checks:
```
Method (_ON) {
If (!_STA ()) { // Only change state if not already active
// ... state change
}
}
```
Others omit the guard and always perform the state change.
### Temperature Reading
- Most implementations read from SuperIO TMPIN3 via PECI
- Some (like intel/wtm2) use simplified stub implementations for reference
### Dynamic Thermal Tables
The google/jecht/tidus variant includes multiple thermal tables that can be switched based on system temperature sensors, allowing more sophisticated thermal management.
## Compatibility Notes
### Linux
- More lenient ACPI parser
- Tolerates minor state machine violations
- Worked with buggy FNP4._OFF implementations
### Windows
- Stricter ACPI compliance checking
- Requires proper power resource state machine behavior
- **Requires the FNP4._OFF no-op fix** to function correctly
- May disable thermal zone entirely if ACPI violations detected
## Debugging
To debug fan control issues:
1. **Check ACPI errors**: Look for thermal zone errors in OS logs
- Linux: `dmesg | grep -i acpi` or check `/sys/class/thermal/`
- Windows: Event Viewer → System → ACPI errors
2. **Monitor temperature**: Use OS tools to check `_TMP` readings
- Linux: `/sys/class/thermal/thermal_zone*/temp`
- Windows: HWiNFO64, HWMonitor
3. **Check fan level**: Monitor `\FLVL` value (ACPI debugger or custom logging)
4. **Verify thresholds**: Ensure threshold values are appropriate for the hardware
5. **Test state transitions**: Verify each fan level activates at correct temperature
6. **ACPI table inspection**: Decompile DSDT/SSDT tables with `acpidump` and `iasl` to verify implementation
## Implementation Checklist
When implementing this pattern on a new board:
- [ ] Define all 5 fan threshold pairs (ON/OFF) with appropriate hysteresis
- [ ] Define PWM values for all 5 fan levels
- [ ] Implement temperature sensor reading (typically PECI via SuperIO)
- [ ] Implement CTOK conversion method (°C to deci-Kelvin)
- [ ] Create all 5 PowerResource objects (FNP0-FNP4)
- [ ] **Critical**: Ensure FNP4._OFF is a no-op (not setting state)
- [ ] Create all 5 Fan Device objects (FAN0-FAN4) with correct `_PR0` references
- [ ] Implement _ACx methods with hysteresis logic
- [ ] Define _ALx packages linking to fan devices
- [ ] Implement _INI to set initial state
- [ ] Implement _TMP with error handling
- [ ] Define _CRT, _PSV, _PSL for critical/passive cooling
- [ ] Set appropriate _TZP polling interval
- [ ] Test on both Linux and Windows
## References
- [ACPI Specification 6.5 - Thermal Management](https://uefi.org/specs/ACPI/6.5/)
- [ACPI Specification - ThermalZone Objects](https://uefi.org/specs/ACPI/6.5/11_Thermal_Management.html)
- [ACPI Specification - PowerResource Objects](https://uefi.org/specs/ACPI/6.5/07_Power_and_Performance_Mgmt.html#power-resources)
- Intel PECI Specification
- SuperIO vendor datasheets (ITE, Nuvoton, Winbond, etc.)
## See Also
- [Intel DPTF](dptf.md) - More sophisticated Intel Dynamic Platform and Thermal Framework
- [ACPI GPIO Documentation](../acpi/gpio.md)

View file

@ -23,6 +23,50 @@ In both cases you have to add `C` structs in ramstage to describe the
option and group them together into a form. CFR objects should reside
on the heap as they can be modified to match the current boot flow.
### Overriding default values
Mainboards often want to reuse CFR objects defined in SoC or common code
but with different default values. Rather than duplicating the entire object
definition, mainboards can declare an override table that maps option names
to new default values.
**Example:** Override defaults for several SoC-defined options:
```
#include <drivers/option/cfr_frontend.h>
#include <intelblocks/pcie_rp.h>
const struct cfr_default_override mb_cfr_overrides[] = {
CFR_OVERRIDE_BOOL("s0ix_enable", false),
CFR_OVERRIDE_ENUM("pciexp_aspm", ASPM_DISABLE),
CFR_OVERRIDE_NUMBER("igd_dvmt", 64),
CFR_OVERRIDE_END
};
void mb_cfr_setup_menu(struct lb_cfr *cfr_root)
{
/* Register overrides before writing menu */
cfr_register_overrides(mb_cfr_overrides);
cfr_write_setup_menu(cfr_root, sm_root);
}
```
When the CFR system writes the setup menu, it will check the override table
for each option and use the override value if one exists. All other object
metadata (name, help text, enum values, flags) comes from the original object.
The following helper macros are available to populate the table:
- `CFR_OVERRIDE_BOOL(name, value)`
- `CFR_OVERRIDE_ENUM(name, value)`
- `CFR_OVERRIDE_NUMBER(name, value)`
- `CFR_OVERRIDE_VARCHAR(name, value)`
- `CFR_OVERRIDE_END`
Each macro encodes the override type, and the CFR backend validates that the
override type matches the original object's type. If the types do not match,
the override is ignored and a warning is printed.
### Updating CFR options
The CFR options should be updated before tables are written.
@ -34,7 +78,7 @@ coreboot table.
EMI eeprom.
```
static void update_serial(const struct sm_object *obj, struct sm_object *new)
static void update_serial(struct sm_object *new)
{
new->sm_varchar.default_value = get_emi_eeprom_vpd()->serial_number;
}
@ -50,8 +94,9 @@ static const struct sm_object serial_number = SM_DECLARE_VARCHAR({
The CFR options can have a dependency that must be evaluated at runtime by
the OS/payload that parses the CFR record and displays the UI.
By using the `WITH_DEP()` macro you can specify another numberic option that
is checked to hide the current option.
By using the `WITH_DEP()` macro you can specify another numeric option that
is checked to hide the current option. The `WITH_DEP_VALUES()` macro allows
specifying one or more values that cause the dependent option to be displayed.
**Example:** Declares a dependency from `sata_disable_port0` to `sata_enable`.
The option `sata_disable_port0` will be hidden as long as "sata_enable" is 0.
@ -76,6 +121,37 @@ static struct sm_object sata_disable_port0 = SM_DECLARE_BOOL({
}, WITH_DEP(&sata_enable));
```
**Example:** Declares a dependency from `com1_termination` to `com1_mode`.
The option `com1_termination` will only be shown if `com1_mode` is set to RS-485.
```
#define COM_MODE_DISABLED 3
#define COM_MODE_RS232 0
#define COM_MODE_RS485 1
static struct sm_object com1_mode = SM_DECLARE_ENUM({
.flags = CFR_OPTFLAG_RUNTIME,
.opt_name = "com1_mode",
.ui_name = "COM1 Mode",
.ui_helptext = NULL,
.default_value = 1,
.values = (const struct sm_enum_value[]) {
{ "Disabled", COM_MODE_DISABLED },
{ "RS-232", COM_MODE_RS232 },
{ "RS-485", COM_MODE_RS485 },
SM_ENUM_VALUE_END },
});
static struct sm_object com1_termination = SM_DECLARE_BOOL({
.flags = CFR_OPTFLAG_RUNTIME,
.opt_name = "com1_termination",
.ui_name = "Enable COM1 termination resistors",
.ui_helptext = NULL,
.default_value = false,
}, WITH_DEP_VALUES(&com1_mode, COM_MODE_RS485));
```
### Providing mainboard custom options
A mainboard that uses CFR can provide a list of custom options
@ -111,4 +187,4 @@ static const __cfr_form struct sm_obj_form southbridge = {
NULL
},
};
```
```

View file

@ -0,0 +1,77 @@
# Generating signed UEFI capsules with EDK2
coreboot can cooperate with an EDK2 payload to support firmware updates via the UEFI
ESRT/FMP capsule mechanism.
This document covers generating a *signed* capsule during the coreboot build.
At present, capsule generation requires a compatible EDK2 tree with the
corresponding payload-side changes. Upstream support is being tracked in:
https://github.com/tianocore/edk2/pull/12053
Older EDK2 trees may be missing pieces required by this integration.
## Build-time capsule generation
Enable capsule support and use an EDK2 payload:
- `CONFIG_DRIVERS_EFI_UPDATE_CAPSULES`: enable coreboot capsule update support.
- `CONFIG_DRIVERS_EFI_GENERATE_CAPSULE`: generate `build/coreboot.cap` after the ROM is finalised.
- `CONFIG_PAYLOAD_EDK2`: build an EDK2 payload.
When enabled, the coreboot build generates `build/coreboot.cap` after the ROM image is
finalised. The capsule can also be generated explicitly with `make capsule`.
Configure the FMAP allowlist embedded into the ROM as a manifest:
- `CONFIG_DRIVERS_EFI_CAPSULE_REGIONS`: whitespace-separated FMAP region allowlist embedded into
the ROM as a manifest (e.g. `COREBOOT EC`).
Configure the ESRT/FMP firmware identity used by the capsule:
- `CONFIG_DRIVERS_EFI_MAIN_FW_GUID`: GUID of the firmware
- `CONFIG_DRIVERS_EFI_MAIN_FW_VERSION`: firmware version encoded in the capsule header;
if set to `0`, derive a value from the leading `<major>.<minor>` in
`CONFIG_LOCALVERSION` when possible
- `CONFIG_DRIVERS_EFI_MAIN_FW_LSV`: lowest supported firmware version; if set to `0`,
use the resolved firmware version
Reset behavior during capsule application:
- `CONFIG_DRIVERS_EFI_CAPSULE_INITIATE_RESET`: add the capsule `InitiateReset` flag.
This is disabled by default because Linux rejects capsules with `InitiateReset` when using
`/dev/efi_capsule_loader`.
## Embedded drivers (FmpDxe in capsule)
Some EDK2 capsule update flows use an embedded `FmpDxe.efi` driver inside the capsule.
To generate capsules with an embedded `FmpDxe.efi`, enable:
- `CONFIG_DRIVERS_EFI_CAPSULE_EMBED_FMP_DXE`: embed `FmpDxe.efi` into generated capsules.
- `CONFIG_DRIVERS_EFI_CAPSULE_ACCEPT_EMBEDDED_DRIVERS`: configure the EDK2 payload to accept
capsules with embedded drivers (sets `PcdCapsuleEmbeddedDriverSupport=TRUE`).
Note: if Secure Boot is enabled, the embedded driver must be signed by a key trusted by the
running firmware, otherwise capsule processing may fail when loading the embedded driver.
## Capsule signing certificates
`GenerateCapsule` can sign the FMP payload (PKCS#7). Many platforms require signed capsules.
coreboot exposes three Kconfig options for the certificate chain:
- `CONFIG_DRIVERS_EFI_CAPSULE_SIGNER_PRIVATE_CERT`: PEM containing the signing private key and
leaf certificate
- `CONFIG_DRIVERS_EFI_CAPSULE_OTHER_PUBLIC_CERT`: PEM intermediate certificate
- `CONFIG_DRIVERS_EFI_CAPSULE_TRUSTED_PUBLIC_CERT`: PEM trusted root certificate
If a configured path is relative, it is interpreted relative to the configured EDK2 repository
inside `payloads/external/edk2/workspace`.
The defaults use the EDK2 BaseTools test certificate chain. Do not use the test keys for
production firmware updates.
To generate your own certificate chain and convert it into the required PEM files, see:
`BaseTools/Source/Python/Pkcs7Sign/Readme.md` in the EDK2 tree.

View file

@ -18,13 +18,16 @@ Some of the drivers currently available include:
```{toctree}
:maxdepth: 1
ACPI Five-Level Fan Control <acpi_fan_control.md>
CFR <cfr.md>
CFR use within coreboot <cfr_internal.md>
Intel DPTF <dptf.md>
IPMI BT (Block Transfer) <ipmi_bt.md>
IPMI KCS <ipmi_kcs.md>
SMMSTORE <smmstore.md>
SMMSTOREv2 <smmstorev2.md>
SoundWire <soundwire.md>
USB4 Retimer <retimer.md>
CBFS SMBIOS hooks <cbfs_smbios.md>
EDK2 capsule generation <efi_capsule_generation.md>
```

View file

@ -0,0 +1,79 @@
# IPMI Block Transfer (BT) driver
The driver can be found in `src/drivers/ipmi/` (same as KCS). It works with BMC
that provides a BT I/O interface as specified in the [IPMI] standard. See
"Intelligent Platform Management Interface Specification", v2.0, Rev. 1.1 for
more details on the interface and IPMI in general.
The driver detects the IPMI version and reserves the I/O space in coreboot's
resource allocator.
## For developers
To use the driver, select the `IPMI_BT` Kconfig and add the following PNP
device (in example for the BT at 0xe4):
```
chip drivers/ipmi
device pnp e4.0 on end # IPMI BT
end
```
**Note:** The I/O base address must be aligned to 4.
The following settings can be set in a device tree:
```{eval-rst}
+------------------+--------------+-------------------------------------------+
| Setting | Type/Default | Description/Purpose |
+==================+==============+===========================================+
| wait_for_bmc | | Boolean | Wait for BMC to boot. This can be used if |
| | | false | the BMC takes a long time to boot after |
| | | PoR. |
+------------------+--------------+-------------------------------------------+
| bmc_boot_timeout | | Integer | The timeout in seconds to wait for the |
| | | 0 | IPMI service to be loaded. Will be used |
| | | if wait_for_bmc is true. |
+------------------+--------------+-------------------------------------------+
```
## Debugging/testing the driver
`ipmi_sim` from [OpenIPMI] project can be used by running `ipmi_sim -d` in one
console to watch what's being sent/received and starting QEMU like this in
another console:
```
qemu-system-x86_64 \
-M q35,smm=on \
-bios build/coreboot.rom \
-chardev socket,id=ipmichr0,host=localhost,port=9002,reconnect=10 \
-device ipmi-bmc-extern,chardev=ipmichr0,id=bmc0 \
-device isa-ipmi-bt,bmc=bmc0,irq=0 \
-serial stdio
```
A simpler alternative is to use QEMU's builtin BMC simulator:
```
qemu-system-x86_64 \
-M q35,smm=on \
-bios build/coreboot.rom \
-device ipmi-bmc-sim,id=bmc0 \
-device isa-ipmi-bt,bmc=bmc0,irq=0 \
-serial stdio
```
## References
Useful links on the subject:
* README of `ipmi_sim`:
<https://github.com/wrouesnel/openipmi/blob/master/lanserv/README.ipmi_sim>
* slides about OpenIPMI:
<https://www.linux-kvm.org/images/7/76/03x08-Juniper-Corey_Minyard-UsingIPMIinQEMU.ods.pdf>
* a usage example: <https://github.com/dhilst/qemu-ipmi>
* old docs (the options are still there, but no longer have a dedicated page in
modern documentation): <https://hskinnemoen.github.io/qemu/specs/ipmi.html>
[IPMI]: https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ipmi-intelligent-platform-mgt-interface-spec-2nd-gen-v2-0-spec-update.pdf
[OpenIPMI]: https://github.com/wrouesnel/openipmi

View file

@ -74,19 +74,30 @@ has to read the coreboot table with tag `0x0039`, containing:
struct lb_smmstorev2 {
uint32_t tag;
uint32_t size;
uint32_t num_blocks; /* Number of writeable blocks in SMM */
uint32_t block_size; /* Size of a block in byte. Default: 64 KiB */
uint32_t mmap_addr; /* MMIO address of the store for read only access */
uint32_t com_buffer; /* Physical address of the communication buffer */
uint32_t com_buffer_size; /* Size of the communication buffer in byte */
uint8_t apm_cmd; /* The command byte to write to the APM I/O port */
uint8_t unused[3]; /* Set to zero */
uint32_t num_blocks; /* Number of writable blocks in SMM */
uint32_t block_size; /* Size of a block in byte. Default: 64 KiB */
uint32_t mmap_addr_deprecated; /* 32-bit MMIO address of the store for read only access.
Prefer 'mmap_addr' for new software.
Zero when the address won't fit into 32-bits. */
uint32_t com_buffer; /* Physical address of the communication buffer */
uint32_t com_buffer_size; /* Size of the communication buffer in bytes */
uint8_t apm_cmd; /* The command byte to write to the APM I/O port */
uint8_t unused[3]; /* Set to zero */
uint64_t mmap_addr; /* 64-bit MMIO address of the store for read only access.
Introduced after the initial implementation. Users of
this table must check the 'size' field to detect if its
written out by coreboot. */
};
```
The absence of this coreboot table entry indicates that there's no
SMMSTOREv2 support.
`mmap_addr` is an optional field added after the initial implementation.
Users of this table must check the size field to know if it's written by coreboot.
In case it's not present 'mmap_addr_deprecated' is to be used as the SPI ROM MMIO
address and it must be below 4 GiB.
### Blocks
The SMMSTOREv2 splits the SMMSTORE FMAP partition into smaller chunks
@ -197,6 +208,45 @@ coreboot tables, there's no risk that a malicious application capable
of issuing SMIs could extract arbitrary data or modify the currently
running kernel.
## Capsule update API
Availability of this command is tied to `CONFIG_DRIVERS_EFI_UPDATE_CAPSULES`.
To allow updating full flash content (except if locked at hardware
level), few new calls were added. They reuse communication buffer, SMI
command, return values and calling arguments of SMMSTORE commands listed
above, with the exception of subcommand passed via `%ah`. If the
subcommand is to operate on full flash size, it has the highest bit set,
e.g. it is `0x85` for `SMMSTORE_CMD_RAW_READ` and `0x86` for
`SMMSTORE_CMD_RAW_WRITE`. Every `block_id` describes block relative to
the beginning of a flash, maximum value depends on its size.
Attempts to write the protected memory regions can lead to undesired
consequences ranging from system instability to bricking and security
vulnerabilities. When this feature is used, care must be taken to temporarily
lift protections for the duration of an update when the whole flash is
rewritten or the update must be constrained to affect only writable portions of
the flash (e.g., "BIOS" region).
There is one new subcommand that must be called before any other subcommands
with highest bit set can be used.
### - SMMSTORE_CMD_USE_FULL_FLASH = 0x80
This command can only be executed once and is done by the firmware.
Calling this function at runtime has no effect. It takes one additional
parameter that, contrary to other commands, isn't a pointer. Instead,
`%ebx` indicates requested state of full flash access. If it equals 0,
commands for accessing full flash are permanently disabled, otherwise
they are permanently enabled until the next boot.
The assumption is that if capsule updates are enabled at build time and
whole flash access is enabled at runtime, a UEFI payload (highly likely
EDK2 or its derivative) won't allow a regular OS to boot if the handler is
enabled without rebooting first. There could be a way of deactivating the
handler, but coreboot, having no way of enforcing its usage, might as well
permit access until a reboot and rely on the payload to do the right thing.
## External links
* [A Tour Beyond BIOS Implementing UEFI Authenticated Variables in SMM with EDK II](https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Implementing_UEFI_Authenticated_Variables_in_SMM_with_EDKII_V2.pdf)

View file

@ -41,7 +41,7 @@ The bootblock loads the romstage or the verstage if verified boot is enabled.
### Cache-As-Ram
The *Cache-As-Ram*, also called Non-Eviction mode, or *CAR* allows to use the
CPU cache like regular SRAM. This is particullary useful for high level
CPU cache like regular SRAM. This is particularly useful for high level
languages like `C`, which need RAM for heap and stack.
The CAR needs to be activated using vendor specific CPU instructions.

View file

@ -75,9 +75,7 @@ $(call add_intermediate, add_mrc_data)
Note that the second line must start with a tab, not spaces.
```{eval-rst}
See also :doc:`../tutorial/managing_local_additions`.
```
See also <project:../tutorial/managing_local_additions.md>.
#### FMAP region support
With the addition of FMAP flash partitioning support to coreboot, there was a

View file

@ -0,0 +1,361 @@
# CBMEM high table memory manager
## Introduction
CBMEM (coreboot memory) is a dynamic memory infrastructure used in
coreboot to store runtime data structures, logs, and other information
that needs to persist across different boot stages, and even across warm
boots. CBMEM is crucial for maintaining state and information through
the coreboot boot process.
Its key responsibilities include:
- Providing a stable storage area for critical boot data
- Managing console logging
- Storing configuration tables for hand off to payloads
- Maintaining timestamps for performance analysis
- Preserving boot state during S3 suspend/resume cycles
- Storing data such as ACPI tables, SMBIOS tables and coreboot tables
which are used at runtime
## Creation and Placement
CBMEM is initialized by coreboot during romstage, but is used mainly in
ramstage for storing any data that needs to be saved for more than a
short period of time.
For 32-bit builds, CBMEM is typically located at the highest usable DRAM
address below the 4GiB boundary. For 64-bit builds, while there is no
strict upper limit, it is advisable to follow the same guidelines to
prevent access or addressing issues. Regardless of the build type, the
CBMEM address must remain consistent between romstage and ramstage.
Each platform may need to implement its own method for determining the
`cbmem_top` address, as this can depend on specific hardware
configurations and memory layouts.
## Architecture Overview
Each CBMEM region is identified by a unique ID, allowing different
components to store and retrieve their data during runtime.
Upon creating an entry, a block of memory of the requested size is
allocated from the reserved CBMEM region. This region typically persists
across warm reboots, making it useful for debugging and passing
information to payloads.
CBMEM is implemented as a specialized in-memory database (IMD) system
that grows downward from a defined upper memory limit. This means that
only the latest added entry may be removed.
```text
High Memory
+----------------------+ <- cbmem_top
| Root Pointer |
|----------------------|
| Root Structure |
|----------------------|
| Entry 1 |
|----------------------|
| Entry 2 |
|----------------------|
| ... |
| (grows downward) |
+----------------------+
```
### Core Components
The CBMEM system consists of several key components:
1. **Root Pointer**: Located at the very top of CBMEM memory space,
contains a magic number and offset to the Root Structure
2. **Root Structure**: Contains metadata about the CBMEM region,
including:
- Entry alignment requirements
- Maximum number of entries
- Current number of entries
- Address of the lowest allocated memory
3. **Entries**: Individual allocations within CBMEM, identified by:
- 32-bit ID (often encoding ASCII characters for readability)
- Size information
- Magic validation value
4. **IMD Implementation**: The underlying memory management system
that handles allocation, deallocation, and entry management
## Memory Layout and Initialization
CBMEM is positioned at the top of available system RAM, typically
just below the 4GiB boundary for 32-bit builds. This placement
ensures compatibility with legacy code while allowing CBMEM to
retain its contents across warm resets.
### CBMEM Location Determination
Each platform must implement a `cbmem_top_chipset()` function
that returns the physical address where CBMEM should be located.
This address must be consistent across coreboot stages and is
determined based on:
- Available physical memory
- Architecture-specific constraints
- BIOS/chipset requirements
### Initialization Process
CBMEM is initialized in a multi-step process:
1. **Early Initialization**: A small console buffer is created in during
bootblock and romstage
2. **RAM Initialization**: The full CBMEM area is established in
ramstage
3. **Normal Operation**:
- In a normal boot, CBMEM is created fresh
- Size and alignment values are specified
- Initial entries are allocated
4. **Recovery Operation**:
- During S3 resume, CBMEM structure is recovered from memory
- Content is validated using magic numbers and checksums
- All existing entries remain accessible
## Entry Management
CBMEM entries are identified by a 32-bit ID, often encoding ASCII
characters to indicate their purpose (for example, "CNSL" for console).
### Entry Creation
```c
void *cbmem_add(u32 id, u64 size);
```
This function:
- Searches for an existing entry with the given ID
- If found, returns the existing entry (size is ignored)
- If not found, allocates a new entry of the requested size
- Returns a pointer to the entry's data area
### Entry Access
```c
void *cbmem_find(u32 id);
```
This function:
- Searches for an entry with the specified ID
- Returns a pointer to the entry's data area if found
- Returns NULL if the entry does not exist
### Entry Removal
```c
int cbmem_entry_remove(const struct cbmem_entry *entry);
```
This function:
- Removes the specified entry if it was the last one added
- Returns 0 on success, negative value on failure
- Note: Due to the downward-growing design, only the most recently
added entry can be removed
## CBMEM Console Implementation
The CBMEM console is a circular buffer used for capturing log messages
across all boot stages. It is one of the most widely used CBMEM
features. The size of this buffer is determined by the
`CONFIG_CBMEM_CONSOLE_SIZE` Kconfig option.
### Console Structure
```c
struct cbmem_console {
u32 size; // Size of the buffer
u32 cursor; // Current write position and flags
u8 body[]; // Actual data buffer
};
```
Key features:
- The high bit of `cursor` indicates overflow condition
- Only the lower 28 bits of `cursor` are used as position
- Supports ring-buffer operation when full
### Console Operation
1. **Initialization**: A console entry is created in CBMEM with ID
`CBMEM_ID_CONSOLE` (0x434f4e53 - 'CONS')
2. **Writing**: Log messages are written byte-by-byte using
`cbmemc_tx_byte()` which:
- Adds data to the current cursor position
- Advances the cursor
- Sets the overflow flag when wrapping around
3. **Stage Transition**: When transitioning between boot stages:
- Pre-RAM console contents are copied to the main CBMEM console
- Any overflow condition is preserved and noted
- The process ensures no log messages are lost
## Common CBMEM Entry Types
CBMEM contains various data structures used by different coreboot
components:
- **Console**: Log messages from all boot stages (`CBMEM_ID_CONSOLE`)
- **Timestamps**: Performance metrics (`CBMEM_ID_TIMESTAMP`)
- **ACPI Tables**: ACPI data for OS handoff (`CBMEM_ID_ACPI`)
- **coreboot Tables**: System information (`CBMEM_ID_CBTABLE`)
- **Memory Information**: RAM configuration (`CBMEM_ID_MEMINFO`)
- **Stage Cache**: Code/data for faster S3 resume
- **ROM/CBFS Cache**: Cached ROM content
- **Vendor-specific**: Platform-dependent structures
A complete list of IDs is defined in
`src/commonlib/bsd/include/commonlib/bsd/cbmem_id.h`.
## Integration with Boot Stages
CBMEM interacts differently with each coreboot boot stage.
### Bootblock/Romstage
- Uses cache-as-RAM for temporary console storage
- Limited CBMEM functionality before RAM initialization
- Sets up initial timestamp entries
### Ramstage
- Full CBMEM initialization or recovery
- All entries become accessible
- Most coreboot subsystems interact with CBMEM
- Console logging is fully operational
### Payload Handoff
- CBMEM contents are preserved when transferring to the payload
- Entries are made available via coreboot tables
- Common payloads (SeaBIOS, GRUB, etc.) can access CBMEM data
## Platform-Specific Considerations
Different platforms have unique requirements for CBMEM implementation.
### x86 Platforms
- CBMEM typically located just below 4GiB
- Often integrates with ACPI resume and SMM operations
- May need to accommodate memory reserved by legacy components
### ARM/RISC-V Platforms
- More flexibility in CBMEM placement
- Must coordinate with platform-specific memory controllers
- Memory topology can vary significantly between implementations
## CBMEM Hooks
CBMEM provides a hook mechanism to allow subsystems to perform
initialization or recovery operations when CBMEM becomes available:
```c
CBMEM_CREATION_HOOK(hook_function); // First-time creation only
CBMEM_READY_HOOK(hook_function); // Any CBMEM initialization
CBMEM_READY_HOOK_EARLY(hook_function); // Early CBMEM initialization
```
These macros register functions to be called when CBMEM is initialized,
allowing components to set up their CBMEM entries at the appropriate time.
## Debugging and Utilities
### CBMEM Utility
The `cbmem` utility provides direct access to CBMEM contents on a
running system. It needs to be built from the coreboot source tree using
`make -C util/cbmem`. Common uses include:
- Listing all CBMEM entries (`cbmem -l`)
- Viewing console logs (`cbmem -c`)
- Analyzing timestamps (`cbmem -t`)
- Extracting specific entries by ID (`cbmem -e <ID>`)
### Debugging Techniques
- CBMEM console contents can be dumped to UART for debugging if serial
output is enabled.
- The console overflow flag (`cbmem -c` output) helps identify if logs
were truncated.
- Size validation within CBMEM helps detect potential memory corruption.
- Magic numbers provide integrity validation for CBMEM structures.
- Enabling `CONFIG_CBMEM_CHECKS` in Kconfig adds extra sanity checks
that can help catch issues during development.
## Limitations
While CBMEM is a powerful tool, it has some inherent limitations:
- **Downward Growth**: The stack-like allocation (growing downwards)
means that only the most recently added entry can be removed. This
prevents fragmentation but limits flexibility in freeing memory.
- **Fixed Size**: Once CBMEM is initialized in ramstage, its total size
and top address (`cbmem_top`) are fixed. Entries cannot be resized
after allocation.
- **Platform Complexity**: Determining the correct `cbmem_top` can be
complex on some platforms due to varying memory maps and reserved
regions.
## Best Practices for Developers
When working with the CBMEM subsystem:
1. **Alignment**: Always respect the alignment requirements of the
CBMEM tier (`IMD_ROOT` vs `IMD_SMALL`) you are using.
2. **ID Selection**: Use unique, meaningful IDs for new entries,
preferably encoding ASCII characters for readability (see
`cbmem_id.h`).
3. **Size Estimation**: Allocate sufficient space initially, as
entries cannot be resized.
4. **Memory Conservation**: Be mindful of limited memory resources,
especially on constrained platforms. Avoid storing excessively large
data structures in CBMEM unless necessary.
5. **Persistence**: Remember that CBMEM contents persist across
warm reboots (like S3 resume) but not across full system resets
(cold boots).
6. **Entry Ordering**: Consider that only the most recently added
entry can be removed, which might influence your allocation strategy
if you anticipate needing to free space.

View file

@ -10,5 +10,6 @@ Kconfig <kconfig.md>
Writing Documentation <writing_documentation.md>
Setting up GPIOs <gpio.md>
Adding devices to a device tree <devicetree.md>
CBMEM <cbmem.md>
Frequently Asked Questions <faq.md>
```

View file

@ -14,18 +14,13 @@ coreboot uses [Sphinx] documentation tool. We prefer the markdown format
over reStructuredText so only embedded ReST is supported. Checkout the
[Markdown Guide] for more information.
### option 1: Use the docker image
### Option 1: Use the docker image
The easiest way to build the documentation is using a docker image.
To build the image run the following in the base directory:
make -C util/docker/ doc.coreboot.org
Before building the documentation make sure the output directory is given
the correct permissions before running docker.
mkdir -p Documentation/_build
To build the documentation:
make -C util/docker docker-build-docs
@ -36,30 +31,29 @@ To have the documentation build and served over a web server live run:
On the host machine, open a browser to the address <http://0.0.0.0:8000>.
### option 2: Install Sphinx
### Option 2: Install Sphinx
Please follow this official [guide] to install sphinx.
You will also need python-recommonmark for sphinx to be able to handle
markdown documentation.
Please follow this official [guide] to install sphinx. You will also need
myst-parser for sphinx to be able to handle markdown documentation.
Since some Linux distributions don't package every needed sphinx extension,
the installation via pip in a venv is recommended. You'll need these python3
modules:
* sphinx
* recommonmark
* sphinx_rtd_theme
* myst-parser
* sphinx-rtd-theme
The following combination of versions has been tested: sphinx 2.3.1,
recommonmark 0.6.0, and sphinx_rtd_theme 0.4.3.
The following combination of versions has been tested: sphinx 8.1.3,
myst-parser 4.0.0, and sphinx-rtd-theme 2.0.0.
Now change into the `Documentation` folder in the coreboot directory and run
this command in there
make sphinx
make
If no error occurs, you can find the generated HTML documentation in
`Documentation/_build` now.
`Documentation/_build/html` now.
### Optional
@ -88,15 +82,17 @@ Documentation:
12. Shouldn't cover implementation details; for details, the code is the
reference.
## Referencing markdown documents
Starting with Sphinx 1.6 recommonmark's *auto_doc_ref* feature is broken.
To reference documents use the TOC tree or inline RST code.
## Markdown and Tables
Under Sphinx markdown tables are not supported. Therefore you can use following
code block to write tables in reStructuredText and embed them into the markdown:
Markdown tables are supported:
| Header 1 | Header 2 | Header 3 |
|------------|-----------|-----------|
| body row 1 | column 2 | column 3 |
| body row 2 | column 2 | column 3 |
Tables can also be written using embedded reStructured Text, which provides
additional features like the ability to merge cells:
```{eval-rst}
+------------+------------+-----------+
@ -117,22 +113,20 @@ code block to write tables in reStructuredText and embed them into the markdown:
To make sure that all documents are included into the final documentation, you
must reference each document from at least one *toctree*. The *toctree* must
only reference files in the same folder or in subfolders !
To create a toctree, simply use a bullet list or numbered list with a single
reference. References in regular text aren't considered as *toctree* .
This feature is enabled by recommonmark's *enable_auto_toc_tree* .
To create a toctree, you must use the following syntax to invoke the
Sphinx toctree directive:
**Example toctree:**
```
* [Chapter 1](chapter1.md)
* [Chapter 2](chapter2.md)
* [Subchapter](sub/index.md)
```
```{toctree}
:maxdepth: 1
```
1. [Chapter 1](chapter1.md)
2. [Chapter 2](chapter2.md)
```
Chapter 1 <chapter1.md>
Chapter 2 <chapter2.md>
Subchapter <sub/index.md>
```
References in regular text aren't considered as *toctree* .
If you do only reference the document, but do not include it in any toctree,
you'll see the following warning:
@ -152,11 +146,9 @@ readable tables, using the following reStructuredText snipped:
Of course this can only be done from a markdown file that is included in the
TOC tree.
[coreboot]: https://coreboot.org
[Documentation]: https://review.coreboot.org/cgit/coreboot.git/tree/Documentation
[sphinx-autobuild]: https://github.com/GaretJax/sphinx-autobuild
[guide]: http://www.sphinx-doc.org/en/stable/install.html
[Sphinx]: http://www.sphinx-doc.org/en/master/
[sphinx-autobuild]: https://github.com/sphinx-doc/sphinx-autobuild
[guide]: https://www.sphinx-doc.org/en/master/usage/installation.html
[Sphinx]: https://www.sphinx-doc.org/en/master/
[Markdown Guide]: https://www.markdownguide.org/
[Gerrit Guidelines]: ../contributing/gerrit_guidelines.md
[review.coreboot.org]: https://review.coreboot.org

View file

@ -22,14 +22,14 @@ GMA: Framebuffer Configuration
*coreboot* supports two different framebuffer setups. The default
enables the legacy VGA plane in textmode. Due to legacy hardware
constraints, only the first found display is enabled in this mode.
(cf. `src/drivers/intel/gma/text_fb/gma.adb`).
(cf. `src/drivers/intel/gma/text_fb/gma-gfx_init.adb`).
The second option sets up a high-resolution framebuffer with the
native resolution of the display if only one is detected, or the
smallest of all resolutions (per dimension) if multiple displays
are detected. This option is selected by
`CONFIG_FRAMEBUFFER_KEEP_VESA_MODE`.
(cf. `src/drivers/intel/gma/hires_fb/gma.adb`).
(cf. `src/drivers/intel/gma/hires_fb/gma-gfx_init.adb`).
In any case, a smaller framebuffer is up-scaled to each display's
native resolution while keeping aspect ratio.

View file

@ -219,6 +219,7 @@ Community <community/index.md>
Payloads <payloads.md>
Distributions <distributions.md>
Technotes <technotes/index.md>
Internal APIs & Configuration <internals/index.md>
ACPI <acpi/index.md>
Native Graphics Initialization with libgfxinit <gfx/libgfxinit.md>
Display panel <gfx/display-panel.md>

View file

@ -0,0 +1,537 @@
# The `chip_operations` Structure in coreboot
## Introduction
The `chip_operations` structure is a fundamental component of coreboot's
chipset abstraction layer. It provides a standardized interface for chipset-
specific code to interact with coreboot's device initialization framework.
This structure enables coreboot to support a wide variety of chipsets
while maintaining a consistent initialization flow across different hardware
platforms.
In coreboot's architecture, a "chip" refers to a collection of hardware
components that form a logical unit, such as a System-on-Chip (SoC),
a CPU, or a distinct southbridge/northbridge. The `chip_operations`
structure provides the hooks necessary for coreboot to discover, configure,
and initialize these components during the boot process.
The `chip_operations` structure is particularly crucial for the ramstage
portion of coreboot, where it connects the static device tree definitions
with the actual hardware initialization code. It serves as the bridge
between the declarative device descriptions and the imperative code that
brings those devices to life.
## Structure Definition
The `chip_operations` structure is defined in `src/include/device/device.h`
as follows:
```c
struct chip_operations {
void (*enable_dev)(struct device *dev);
void (*init)(void *chip_info);
void (*final)(void *chip_info);
unsigned int initialized : 1;
unsigned int finalized : 1;
const char *name;
};
```
### Field Descriptions
- **enable_dev**: A function pointer that takes a `struct device*`
parameter. This function is called for each device associated with the
chip during the device enumeration phase (specifically, within the
`scan_bus` operations triggered by `dev_enumerate`). Its primary
purpose is to set up device operations (`dev->ops`) based on the
device's role in the system.
- **init**: A function pointer that takes a `void*` parameter pointing to
the chip's configuration data (typically cast to a chip-specific struct).
This function is called during the chip initialization phase
(`BS_DEV_INIT_CHIPS`), before device enumeration. It usually performs
early hardware setup needed before individual devices can be configured.
- **final**: A function pointer that takes a `void*` parameter pointing to
the chip's configuration data (typically cast to a chip-specific struct).
This function is called during the final table writing phase of coreboot
initialization (`BS_WRITE_TABLES`), after all devices have been
initialized. It performs any necessary cleanup or late initialization
operations.
- **initialized**: A bit flag indicating whether the chip's init function
has been called.
- **finalized**: A bit flag indicating whether the chip's final function
has been called.
- **name**: A string containing the human-readable name of the chip, used
for debugging and logging purposes.
## Initialization Sequence and `chip_operations`
The `chip_operations` structure integrates with coreboot's boot state
machine, which is defined in `src/lib/hardwaremain.c`. The functions in
this structure are called at specific points during the boot process:
1. **BS_DEV_INIT_CHIPS** state: The `init` function is called for each
chip in the device tree. This is handled by `dev_initialize_chips()`
which iterates through all devices, identifies unique chip instances,
and invokes their `init` functions.
2. **BS_DEV_ENUMERATE** state: During the execution of this state,
`dev_enumerate()` is called, which triggers bus scanning
(e.g., `pci_scan_bus`). Within these scan routines, the `enable_dev`
function is called for devices associated with a chip. This commonly
assigns the appropriate `device_operations` structure to each device
based on its type and purpose.
3. **BS_WRITE_TABLES** state: The `final` function is called for each
chip by `dev_finalize_chips()` after all devices have been initialized
and just before payloads are loaded.
This sequence ensures that chips can perform necessary setup before their
individual devices are configured, and also perform cleanup or finalization
after all devices have been initialized but before the final tables are
written and the payload is executed.
## Relationship Between `chip_operations` and `device_operations`
It's important to understand the distinction and relationship between
`chip_operations` and `device_operations`:
- **chip_operations**: Operates at the chipset or SoC level, providing
hooks for chip-wide initialization. It's responsible for the overall
setup of a collection of devices that belong to the same logical chip.
- **device_operations**: Operates at the individual device level,
providing functions to manage specific devices within a chip. These
operations include resource allocation, device initialization, and device-
specific functionality.
The key relationship is that `chip_operations.enable_dev` is typically
responsible for assigning the appropriate `device_operations` structure
to each device based on its type and function. This is where the bridge
between the chip-level and device-level abstractions occurs.
For example, a typical implementation of the `enable_dev` function might
look like this:
```c
static void soc_enable(struct device *dev)
{
if (dev->path.type == DEVICE_PATH_DOMAIN)
dev->ops = &pci_domain_ops;
else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER)
dev->ops = &cpu_bus_ops;
else if (dev->path.type == DEVICE_PATH_GPIO)
block_gpio_enable(dev);
else if (dev->path.type == DEVICE_PATH_PCI &&
dev->path.pci.devfn == PCH_DEVFN_PMC)
dev->ops = &pmc_ops;
}
```
This function examines each device's path type and assigns the appropriate
operations based on the device's role in the system.
## Integration with the Devicetree
The `chip_operations` structure is tightly integrated with coreboot's
devicetree mechanism. The devicetree is a hierarchical description of the
hardware platform, defined in `.cb` files (typically `chipset.cb`,
`devicetree.cb`, and optionally `overridetree.cb`).
In the devicetree, a `chip` directive starts a collection of devices
associated with a particular chip driver. The path specified with the
`chip` directive corresponds to a directory in the coreboot source tree
that contains the chip driver code, including a `chip.c` file that defines
the `chip_operations` structure for that chip.
For example, a devicetree might contain:
```
chip soc/intel/cannonlake
device domain 0 on
device pci 00.0 on end # Host Bridge
device pci 12.0 on end # Thermal Subsystem
# ... more devices ...
end
end
```
This connects the devices under this chip directive with the
`chip_operations` structure defined in
`src/soc/intel/cannonlake/chip.c`:
```c
struct chip_operations soc_intel_cannonlake_ops = {
.name = "Intel Cannonlake",
.enable_dev = &soc_enable,
.init = &soc_init_pre_device,
};
```
During coreboot's build process, the `sconfig` utility processes the
devicetree files and generates code that links the devices defined in the
devicetree with their corresponding `chip_operations` structures.
## Chip Configuration Data
Each chip typically defines a configuration structure in a `chip.h` file
within its source directory. This structure contains configuration settings
that can be specified in the devicetree using `register` directives.
For example, a chip might define a configuration structure like:
```c
/* In src/soc/intel/cannonlake/chip.h */
struct soc_intel_cannonlake_config {
uint8_t pcie_rp_aspm[CONFIG_MAX_ROOT_PORTS];
uint8_t usb2_ports[16];
uint8_t usb3_ports[10];
/* ... more configuration options ... */
};
```
In the devicetree, you would configure these options using register
directives:
```
chip soc/intel/cannonlake
register "pcie_rp_aspm[0]" = "ASPM_AUTO"
register "usb2_ports[5]" = "USB2_PORT_MID(OC_SKIP)"
# ... more register settings ...
device domain 0 on
# ... devices ...
end
end
```
These configuration values are made available to the chip's `init` and
`final` functions through the `chip_info` parameter, which points to
an instance of the chip's configuration structure (after appropriate
casting from `void *`).
## Implementation Examples
### Minimal Implementation
Some chips may not need extensive initialization and can provide a
minimal implementation of the `chip_operations` structure:
```c
struct chip_operations soc_ucb_riscv_ops = {
.name = "UCB RISC-V",
};
```
This implementation only provides a name for debugging purposes but
doesn't define any initialization functions.
### Basic Implementation with Initialization
A more typical implementation includes at least initialization hooks:
```c
struct chip_operations soc_amd_genoa_poc_ops = {
.name = "AMD Genoa SoC Proof of Concept",
.init = soc_init,
.final = soc_final,
};
```
The `init` function might perform chip-wide initialization:
```c
static void soc_init(void *chip_info)
{
default_dev_ops_root.write_acpi_tables = soc_acpi_write_tables;
amd_opensil_silicon_init();
data_fabric_print_mmio_conf();
fch_init(chip_info);
}
```
### Complete Implementation
A complete implementation includes all three function pointers:
```c
struct chip_operations soc_intel_xeon_sp_cpx_ops = {
.name = "Intel Cooper Lake-SP",
.enable_dev = chip_enable_dev,
.init = chip_init,
.final = chip_final,
};
```
The `enable_dev` function would typically assign device operations
based on device types:
```c
static void chip_enable_dev(struct device *dev)
{
/* PCI root complex */
if (dev->path.type == DEVICE_PATH_DOMAIN)
dev->ops = &pci_domain_ops;
/* CPU cluster */
else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER)
dev->ops = &cpu_cluster_ops;
/* PCIe root ports */
else if (dev->path.type == DEVICE_PATH_PCI &&
PCI_SLOT(dev->path.pci.devfn) == PCIE_PORT1_SLOT)
dev->ops = &pcie_rp_ops;
/* ... other device types ... */
}
```
### Mainboard Implementation
It's also common for the mainboard-specific code (e.g.,
`src/mainboard/vendor/board/mainboard.c`) to define its own
`chip_operations`, often named `mainboard_ops`. The `mainboard_ops.init`
can perform early board-level setup, and `mainboard_ops.enable_dev` can
assign operations for devices specific to the mainboard or set default
operations.
```c
/* Example from src/mainboard/google/zork/mainboard.c */
struct chip_operations mainboard_ops = {
.enable_dev = mainboard_enable,
.init = mainboard_init,
.final = mainboard_final,
};
```
## Device Registration and Discovery
The `chip_operations` structure plays a key role in device registration
and discovery within coreboot. Here's how it fits into this process:
1. **Static Device Definition**: Devices are statically defined in the
devicetree files (`chipset.cb`, `devicetree.cb`, `overridetree.cb`).
2. **Code Generation**: The `sconfig` utility processes these files and
generates code in `build/static.c` that creates the device structures
and links them to their corresponding chip configuration data.
3. **Chip Initialization**: During the `BS_DEV_INIT_CHIPS` boot state,
`dev_initialize_chips()` calls each chip's `init` function to perform
chip-wide setup.
4. **Device Enumeration and Enabling**: During the `BS_DEV_ENUMERATE`
boot state, `dev_enumerate()` initiates bus scanning. The scan
functions call the associated chip's `enable_dev` function for each
device, which assigns the appropriate device operations (`dev->ops`).
5. **Device Configuration and Initialization**: Subsequent boot states
(`BS_DEV_RESOURCES`, `BS_DEV_ENABLE`, `BS_DEV_INIT`) configure and
initialize the devices according to their assigned device operations.
6. **Chip Finalization**: After all devices have been initialized,
`dev_finalize_chips()` calls each chip's `final` function during the
`BS_WRITE_TABLES` boot state.
## Build Process Integration
The `chip_operations` structures are integrated into the coreboot build
process through several mechanisms:
1. **Devicetree Processing**: The `sconfig` utility processes the
devicetree files and generates code that creates and links the device
structures.
2. **Static Structure Declaration**: Each chip (and often the mainboard)
defines its `chip_operations` structure in its respective `.c` file.
These structures are collected during the build process.
3. **External References**: The generated code in `build/static.c`
includes external references to these `chip_operations` structures.
4. **Linking**: The linker collects all the `chip_operations` structures
and includes them in the final firmware image.
This process ensures that the appropriate chip operations are available
during the boot process for each chip included in the devicetree.
## Best Practices for Implementing `chip_operations`
When implementing the `chip_operations` structure for a new chip,
follow these best practices:
1. **Provide a Meaningful Name**: The `name` field should be descriptive
and identify the chip clearly for debugging purposes.
2. **Implement `enable_dev` Correctly**: The `enable_dev` function should
assign the appropriate device operations based on device types and
functions. It should handle all device types that might be part of the chip.
Consider interactions with the mainboard `enable_dev`.
3. **Use Configuration Data**: The `init` and `final` functions should
make use of the chip configuration data passed via the `chip_info`
parameter (casting it to the correct type) to configure the chip
according to the settings specified in the devicetree.
4. **Minimize Dependencies**: The `init` function should minimize
dependencies on other chips being initialized, as the order of chip
initialization is not guaranteed.
5. **Handle Resources Properly**: If the chip manages resources (memory
regions, I/O ports, etc.), ensure that these are properly allocated and
assigned to devices, usually within the associated `device_operations`.
6. **Implement Error Handling**: Include appropriate error handling in
the initialization functions to handle hardware initialization failures
gracefully.
7. **Document Special Requirements**: If the chip has special
requirements or dependencies, document these clearly in comments or
accompanying documentation.
## Troubleshooting `chip_operations` Issues
When implementing or debugging `chip_operations`, you might encounter
certain issues:
1. **Missing Device Operations**: If devices are not being initialized
properly, check that the `enable_dev` function is correctly
assigning device operations based on device types. Ensure it's being
called during bus scanning.
2. **Initialization Order Problems**: If a chip's initialization depends
on another chip being initialized first, you might need to adjust the
initialization sequence or add explicit dependencies, possibly using
boot state callbacks if necessary.
3. **Configuration Data Issues**: If chip configuration settings are not
being applied correctly, check that the configuration structure is
correctly defined in `chip.h`, that the register values in the
devicetree match the expected format, and that the `chip_info` pointer
is cast correctly in the `init`/`final` functions.
4. **Build Errors**: If you encounter build errors related to
`chip_operations`, check that the structure is correctly defined and
that all required symbols are properly exported and linked. Check for
conflicts if multiple files define the same symbol.
5. **Runtime Failures**: If the chip initialization fails at runtime,
add debug logging (using `printk`) to the `init`, `enable_dev`, and
`final` functions to identify the specific point of failure.
## Advanced `chip_operations` Patterns
### Hierarchical Chip Initialization
For complex chips with multiple components, you can implement a
hierarchical initialization pattern within the `init` function:
```c
static void soc_init(void *chip_info)
{
/* Initialize common components first */
common_init(chip_info);
/* Initialize specific blocks */
pcie_init(chip_info);
usb_init(chip_info);
sata_init(chip_info);
/* Final SoC-wide configuration */
power_management_init(chip_info);
}
```
### Variant Support
For chips with multiple variants, you can implement variant detection
and specific initialization within the `init` function:
```c
static void soc_init(void *chip_info)
{
uint32_t variant = read_chip_variant();
/* Common initialization */
common_init(chip_info);
/* Variant-specific initialization */
switch (variant) {
case VARIANT_A:
variant_a_init(chip_info);
break;
case VARIANT_B:
variant_b_init(chip_info);
break;
default:
printk(BIOS_WARNING, "Unknown variant %u\\n", variant);
break;
}
}
```
### Conditional Feature Initialization
You can conditionally initialize features based on configuration settings
passed via `chip_info`:
```c
static void soc_init(void *chip_info)
{
struct soc_config *config = chip_info;
/* Always initialize core components */
core_init();
/* Conditionally initialize optional features */
if (config->enable_xhci)
xhci_init(config);
if (config->enable_sata)
sata_init(config);
if (config->enable_pcie)
pcie_init(config);
}
```
## Conclusion
The `chip_operations` structure is a fundamental component of coreboot's
chipset abstraction layer. It provides a standardized interface for chipset-
specific code to interact with coreboot's device initialization framework,
enabling support for a wide variety of chipsets while maintaining a
consistent initialization flow.
By implementing the `chip_operations` structure for a specific chipset
(and often for the mainboard), developers can integrate their
hardware-specific code with coreboot's device enumeration, configuration,
and initialization process. This structure serves as the bridge between
the declarative device descriptions in the devicetree and the imperative
code that initializes the hardware.
Understanding the `chip_operations` structure and its role in the
coreboot boot process is essential for anyone working on chipset or
mainboard support in coreboot. By following the best practices and
patterns outlined in this document, developers can create robust and
maintainable hardware support code that integrates seamlessly with the
coreboot firmware ecosystem.

View file

@ -0,0 +1,696 @@
# Device Operations in coreboot Firmware
## Introduction
The `device_operations` structure is a cornerstone of coreboot's
hardware abstraction layer. It represents a set of function pointers
defining how the firmware interacts with a specific hardware device
during various boot stages. This structure lets the coreboot
architecture establish a consistent interface for device initialization,
configuration, resource allocation, and ACPI table generation, while
allowing device-specific implementations behind this common interface.
At its core, `device_operations` applies the strategy pattern in
systems programming. It decouples algorithms (device operations) from
the core boot sequence, allowing devices to define their own behavior
while the boot process follows a predictable flow. This pattern enables
coreboot to support a wide range of hardware platforms with minimal
changes to the core boot sequence code.
## Structure Definition
The `device_operations` structure, defined in
`src/include/device/device.h`, consists of several function pointers,
each representing a specific operation performed on a device during
boot:
```c
struct device_operations {
void (*read_resources)(struct device *dev);
void (*set_resources)(struct device *dev);
void (*enable_resources)(struct device *dev);
void (*init)(struct device *dev);
void (*final)(struct device *dev);
void (*scan_bus)(struct device *bus);
void (*enable)(struct device *dev);
void (*vga_disable)(struct device *dev);
void (*reset_bus)(struct bus *bus);
int (*get_smbios_data)(struct device *dev, int *handle,
unsigned long *current);
void (*get_smbios_strings)(struct device *dev, struct smbios_type11 *t);
unsigned long (*write_acpi_tables)(const struct device *dev,
unsigned long start, struct acpi_rsdp *rsdp);
void (*acpi_fill_ssdt)(const struct device *dev);
const char *(*acpi_name)(const struct device *dev);
const char *(*acpi_hid)(const struct device *dev);
const struct pci_operations *ops_pci;
const struct i2c_bus_operations *ops_i2c_bus;
const struct spi_bus_operations *ops_spi_bus;
const struct smbus_bus_operations *ops_smbus_bus;
const struct pnp_mode_ops *ops_pnp_mode;
const struct gpio_operations *ops_gpio;
const struct mdio_bus_operations *ops_mdio;
};
```
### Core Resource Management Functions
* `read_resources`: Discovers and collects resources required by the
device (I/O ports, memory regions, IRQs, etc.). This typically
involves reading configuration registers or static device tree
information.
* `set_resources`: Assigns finalized resources to the device after the
resource allocation phase. This writes the assigned base addresses,
lengths, and other parameters back to the device structure, but not
necessarily to hardware registers yet.
* `enable_resources`: Activates the assigned resources in the device's
hardware registers (e.g., writing to PCI BARs, enabling memory
decoding).
### Device Lifecycle Functions
* `init`: Performs device-specific initialization, often requiring
access to the device's assigned resources. This is called after
resources have been enabled.
* `final`: Executes final setup or cleanup operations before the
payload is loaded. This is useful for tasks that depend on other
devices being initialized.
* `enable`: Enables the device in the hardware, often setting bits in
configuration registers to make the device active. Called after
`enable_resources`.
### Bus Management Functions
* `scan_bus`: Enumerates child devices on a bus device (e.g., scanning
a PCI bus for devices, probing I2C devices). Only applicable to
devices that act as buses.
* `reset_bus`: Resets all devices on a specific bus.
* `vga_disable`: Disables VGA decoding on a PCI device when another VGA
device is active. Used to manage legacy VGA resources.
### System Table Generation Functions
* `get_smbios_data`: Provides SMBIOS data specific to the device for
Type 9 (System Slots) or Type 41 (Onboard Devices Extended
Information).
* `get_smbios_strings`: Supplies string information for SMBIOS tables,
often related to the data provided by `get_smbios_data`.
* `write_acpi_tables`: Generates device-specific ACPI tables (like SSDTs)
or contributes data to system-wide tables.
* `acpi_fill_ssdt`: Adds device-specific objects (scopes, methods, data)
to the Secondary System Description Table (SSDT).
* `acpi_name`: Returns the ACPI name for the device (e.g.,
`\_SB.PCI0.GFX0`). This defines the device's path in the ACPI
namespace.
* `acpi_hid`: Returns the ACPI Hardware ID (HID) for the device (e.g.,
`PNP0A08`). Used by the OS to match drivers.
### Bus-Specific Operation Pointers
These fields point to bus-specific operation structures when a device
functions as a bus controller (or exposes bus-like functionality). See
the "Bus-Specific Operations" section for details.
* `ops_pci`: Operations for PCI configuration space access.
* `ops_i2c_bus`: Operations for I2C bus transactions (read, write,
transfer).
* `ops_spi_bus`: Operations for SPI bus transactions.
* `ops_smbus_bus`: Operations for SMBus transactions.
* `ops_pnp_mode`: Operations for Plug-and-Play device configuration.
* `ops_gpio`: Operations for GPIO control (get, set, configure
direction/pulls).
* `ops_mdio`: Operations for MDIO (Management Data Input/Output) bus
access, used for Ethernet PHYs.
## Device Lifecycle in coreboot
The function pointers in `device_operations` are called at specific
stages during the boot process, following a sequence defined in
coreboot's boot state machine (`src/lib/hardwaremain.c`). Understanding
this lifecycle helps developers implement appropriate behavior for each
function pointer.
### Boot Sequence and Device Operations
coreboot's main device initialization sequence involves these boot
states:
1. **BS_DEV_INIT_CHIPS** (`dev_initialize_chips()`): Initializes chip
drivers (`chip_operations`).
2. **BS_DEV_ENUMERATE** (`dev_enumerate()`): Discovers and enumerates
devices.
* Calls `scan_bus()` for each bus to detect child devices.
3. **BS_DEV_RESOURCES** (`dev_configure()`): Allocates resources across
all enumerated devices.
* Calls `read_resources()` for each device to discover required
resources.
* Calls `set_resources()` for each device to assign allocated
resources back to the `struct device`.
4. **BS_DEV_ENABLE** (`dev_enable()`): Enables devices and their
resources.
* Calls `enable_resources()` for each device to activate assigned
resources in hardware.
* Calls `enable()` for each device to perform general hardware
enablement.
5. **BS_DEV_INIT** (`dev_initialize()`): Initializes devices.
* Calls `init()` for each device to perform device-specific setup.
6. **BS_POST_DEVICE** (`dev_finalize()`): Finalizes devices before
payload loading.
* Calls `final()` for each device for any final cleanup or setup.
The sequence is primarily driven by the `boot_states` array in
`src/lib/hardwaremain.c`:
```c
static struct boot_state boot_states[] = {
/* ... other states ... */
BS_INIT_ENTRY(BS_PRE_DEVICE, bs_pre_device),
BS_INIT_ENTRY(BS_DEV_INIT_CHIPS, bs_dev_init_chips),
BS_INIT_ENTRY(BS_DEV_ENUMERATE, bs_dev_enumerate),
BS_INIT_ENTRY(BS_DEV_RESOURCES, bs_dev_resources),
BS_INIT_ENTRY(BS_DEV_ENABLE, bs_dev_enable),
BS_INIT_ENTRY(BS_DEV_INIT, bs_dev_init),
BS_INIT_ENTRY(BS_POST_DEVICE, bs_post_device),
/* ... other states ... */
};
```
Later stages include ACPI and SMBIOS table generation, where functions
like `write_acpi_tables()`, `acpi_fill_ssdt()`, `get_smbios_data()`, and
`get_smbios_strings()` are invoked as part of the table construction
process.
## Inheritance and Code Reuse Patterns
The `device_operations` structure enables several patterns for code
reuse:
### 1. Default Implementations
coreboot provides default implementations for common device types (like
root devices, PCI devices, PCI bridges), which can be used directly or
extended. Chip or mainboard code often assigns these defaults if no
specific driver is found.
```c
/* From src/device/root_device.c */
struct device_operations default_dev_ops_root = {
.read_resources = noop_read_resources,
.set_resources = noop_set_resources,
.scan_bus = scan_static_bus,
.reset_bus = root_dev_reset,
#if CONFIG(HAVE_ACPI_TABLES)
.acpi_name = root_dev_acpi_name,
#endif
};
```
### 2. No-op Functions
Simple shim functions (often static inline) are provided for cases where
a device doesn't need to implement specific operations. Using these avoids
leaving function pointers NULL.
```c
/* From src/include/device/device.h */
static inline void noop_read_resources(struct device *dev) {}
static inline void noop_set_resources(struct device *dev) {}
```
### 3. Chain of Responsibility / Delegation
Some implementations delegate to parent devices or use helper functions
when they can't handle an operation themselves or when common logic can
be shared. For example, ACPI name generation often traverses up the
device tree.
```c
/* Simplified example logic */
const char *acpi_device_name(const struct device *dev)
{
const char *name = NULL;
const struct device *pdev = dev;
/* Check for device specific handler */
if (dev->ops && dev->ops->acpi_name) {
name = dev->ops->acpi_name(dev);
if (name)
return name; /* Device handled it */
}
/* Walk up the tree to find if any parent can provide a name */
while (pdev->upstream && pdev->upstream->dev) {
pdev = pdev->upstream->dev;
if (pdev->ops && pdev->ops->acpi_name) {
/* Note: Parent's acpi_name might handle the original child 'dev' */
name = pdev->ops->acpi_name(dev);
if (name)
return name; /* Parent handled it */
}
}
/* Fallback or default logic if needed */
return NULL;
}
```
This pattern allows parent devices (like buses) to provide default
behavior or naming schemes if a child device doesn't specify its own.
## Implementation Examples
These examples show typical `device_operations` assignments. Actual
implementations might involve more conditional compilation based on
Kconfig options.
### PCI Device Operations (Default)
```c
/* From src/device/pci_device.c */
struct device_operations default_pci_ops_dev = {
.read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
#if CONFIG(HAVE_ACPI_TABLES)
.write_acpi_tables = pci_rom_write_acpi_tables,
.acpi_fill_ssdt = pci_rom_ssdt,
#endif
.init = pci_dev_init,
/* Assigns PCI-specific operations */
.ops_pci = &pci_dev_ops_pci,
};
```
### CPU Cluster Operations
```c
/* From src/soc/intel/alderlake/chip.c (representative example) */
static struct device_operations cpu_bus_ops = {
.read_resources = noop_read_resources,
.set_resources = noop_set_resources,
.enable_resources = cpu_set_north_irqs,
#if CONFIG(HAVE_ACPI_TABLES)
.acpi_fill_ssdt = cpu_fill_ssdt,
#endif
/* CPU clusters often don't need scan_bus, init, etc. */
};
```
### GPIO Controller Operations
```c
/* From src/soc/intel/common/block/gpio/gpio_dev.c */
static struct gpio_operations gpio_ops = {
.get = gpio_get,
.set = gpio_set,
/* ... other GPIO functions ... */
};
struct device_operations block_gpio_ops = {
.read_resources = noop_read_resources,
.set_resources = noop_set_resources,
/* Assigns GPIO-specific operations */
.ops_gpio = &gpio_ops,
};
```
## Registration and Discovery
How are `device_operations` structures associated with `struct device`
instances?
### 1. Static Assignment (via `chip_operations`)
For devices known at build time (defined in devicetree.cb), the
`device_operations` structure is often assigned in the SOC's or
mainboard's `chip_operations->enable_dev()` function based on the
device path type or other properties.
```c
/* Example from src/soc/intel/alderlake/chip.c */
static void soc_enable(struct device *dev)
{
/* Assign ops based on the device's role in the tree */
if (dev->path.type == DEVICE_PATH_DOMAIN)
dev->ops = &pci_domain_ops; /* Handles PCI domain resources */
else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER)
dev->ops = &cpu_bus_ops; /* Handles CPU cluster setup */
else if (dev->path.type == DEVICE_PATH_GPIO)
block_gpio_enable(dev); /* Assigns block_gpio_ops */
/* ... other assignments for specific PCI devices, etc. ... */
}
```
The `enable_dev` function is part of `struct chip_operations`, which
handles broader chip-level initialization (see "Relationship with
`chip_operations`" section).
### 2. Dynamic Detection (PCI Drivers)
For PCI devices discovered during bus scanning (`scan_bus`), coreboot
looks through a list of registered PCI drivers (`_pci_drivers` array)
to find one matching the device's vendor and device IDs.
```c
/* Logic from src/device/pci_device.c::set_pci_ops() */
static void set_pci_ops(struct device *dev)
{
struct pci_driver *driver;
/* Check if ops already assigned (e.g., by chip_ops->enable_dev) */
if (dev->ops)
return;
/* Look through registered PCI drivers */
for (driver = &_pci_drivers[0]; driver != &_epci_drivers[0]; driver++) {
if ((driver->vendor == dev->vendor) &&
device_id_match(driver, dev->device)) {
/* Found a matching driver, assign its ops */
dev->ops = (struct device_operations *)driver->ops;
printk(BIOS_SPEW, "%s: Assigned ops from driver for %04x:%04x\n",
dev_path(dev), driver->vendor, driver->device);
return; /* Stop searching */
}
}
/* Fall back to default operations if no specific driver found */
if (!dev->ops) {
if ((dev->hdr_type & 0x7f) == PCI_HEADER_TYPE_BRIDGE) {
dev->ops = get_pci_bridge_ops(dev); /* Special ops for bridges */
} else {
dev->ops = &default_pci_ops_dev; /* Default for normal devices */
}
printk(BIOS_SPEW, "%s: Assigned default PCI ops\n", dev_path(dev));
}
}
```
## Build Process Integration
The `device_operations` structures are integrated into the coreboot
build process:
1. **Static Device Tree**: The mainboard's `devicetree.cb` defines the
initial device hierarchy. The build process converts this into C
code (`static.c`) containing `struct device` instances.
2. **PCI Driver Registration**: PCI drivers (containing their own
`device_operations`) register themselves using the `__pci_driver`
linker set macro.
```c
/* Example pattern */
struct pci_driver example_pci_driver __pci_driver = {
.ops = &example_device_ops, /* Pointer to device_operations */
.vendor = VENDOR_ID,
.device = DEVICE_ID, /* Or .devices for a list */
};
```
3. **Linking**: The build system collects all structures placed in the
`__pci_driver` section and creates the `_pci_drivers` array used by
`set_pci_ops()`. It ensures all necessary code (default ops, driver
ops, core device functions) is linked into the final firmware image.
## Relationship with `chip_operations`
It's important to distinguish `device_operations` from
`chip_operations` (defined in `src/include/chip.h`).
* `chip_operations`: Defines operations related to the overall chipset
or mainboard logic. It includes functions called earlier in the boot
process, like `enable_dev`, `init`, and `final`.
* `chip_operations->enable_dev()` is crucial as it often performs
initial setup for static devices and is the primary place where
`device_operations` pointers are *assigned* for non-PCI devices
based on their path or type.
* `chip_operations->init()` runs during `BS_DEV_INIT_CHIPS`, before
most `device_operations` functions.
* `device_operations`: Defines operations for *individual* devices
within the device tree. These are called *after* the corresponding
`chip_operations` stage and operate on a specific `struct device`.
Essentially, `chip_operations` sets the stage at the SoC/mainboard level,
including assigning the correct `device_operations` to static devices,
while `device_operations` handles the specific actions for each device
later in the boot process.
## Bus-Specific Operations
The `ops_*` pointers within `struct device_operations` (e.g., `ops_pci`,
`ops_i2c_bus`, `ops_spi_bus`, `ops_gpio`) provide a way for devices that
act as bus controllers or expose bus-like interfaces to offer
standardized access methods.
* **Purpose:** They abstract the low-level details of interacting with
that specific bus type. For example, a PCI host bridge device will
implement `struct pci_operations` via its `ops_pci` pointer,
allowing other code to perform PCI config reads/writes through it
without knowing the exact hardware mechanism. Similarly, an I2C
controller device implements `struct i2c_bus_operations` via
`ops_i2c_bus` to provide standard `read`, `write`, and `transfer`
functions for that bus segment.
* **Usage:** Code needing to interact with a bus first finds the
controller `struct device` in the tree, then accesses the relevant
bus operations through the appropriate `ops_*` pointer, passing the
target address or parameters. For instance, to talk to an I2C device
at address `0x50` on the bus controlled by `i2c_controller_dev`, one
might call:
`i2c_controller_dev->ops->ops_i2c_bus->transfer(...)`. Helper
functions often wrap this access pattern.
* **Implementation:** The structures like `struct pci_operations`,
`struct i2c_bus_operations`, etc., are defined in corresponding
header files (e.g., `src/include/device/pci_ops.h`,
`src/include/drivers/i2c/i2c_bus.h`). Devices acting as controllers
provide concrete implementations of these functions, tailored to their
hardware.
This mechanism allows coreboot to manage diverse bus types using a
consistent device model, where the controller device itself exposes the
necessary functions for interacting with devices on its bus.
## Best Practices
When implementing `device_operations`:
1. **Leverage Defaults/No-ops**: Use default or no-op implementations
whenever possible. Only override functions that require custom
behavior for your specific device.
2. **Error Handling**: Check return values from functions called within
your ops implementations and handle errors gracefully (e.g., log an
error, return an error code if applicable).
3. **Resource Management**: In `read_resources`, accurately declare all
resources (MMIO, I/O ports, IRQs) your device needs, specifying
flags like fixed vs. alignment, or bridge vs. standard device.
Incorrect resource declaration is a common source of issues.
4. **Initialization Order**: Be mindful of dependencies in `init`. If
your device relies on another device being fully initialized, consider
deferring that part of the initialization to the `final` callback,
which runs later.
5. **Minimal Implementation**: Only implement the functions relevant to
your device type. A simple MMIO device might only need
`read_resources`, `set_resources`, `enable_resources`, and perhaps
ACPI functions. A bus device additionally needs `scan_bus`.
6. **Bus Operations**: If implementing a bus controller, correctly
implement the corresponding bus operations structure (e.g.,
`struct pci_operations`, `struct i2c_bus_operations`) and assign it
to the appropriate `ops_*` field.
7. **ACPI/SMBIOS**: If the device needs OS visibility via ACPI or
SMBIOS, implement the relevant functions (`acpi_name`, `acpi_hid`,
`acpi_fill_ssdt`, `get_smbios_data`, etc.). Ensure ACPI names and
HIDs are correct according to specifications and platform needs.
## Logging and Debugging
Use coreboot's logging facilities (`printk`) within your `device_operations`
functions to provide visibility during development and debugging. Use
appropriate log levels (e.g., `BIOS_DEBUG`, `BIOS_INFO`, `BIOS_ERR`).
```c
static void example_device_init(struct device *dev)
{
printk(BIOS_DEBUG, "%s: Initializing device at %s\n", __func__,
dev_path(dev));
/* ... Device initialization code ... */
if (/* some condition */) {
printk(BIOS_SPEW, "%s: Condition met, applying setting X\n",
dev_path(dev));
/* ... */
}
if (/* error condition */) {
printk(BIOS_ERR, "%s: Failed to initialize feature Y!\n",
dev_path(dev));
/* Handle error */
}
printk(BIOS_DEBUG, "%s: Initialization complete for %s\n", __func__,
dev_path(dev));
}
```
Consistent logging helps trace the boot process and pinpoint where issues
occur.
## Common Troubleshooting
* **Missing Resource Declarations**:
* *Problem*: Device fails to function, or conflicts arise because a
required resource (MMIO range, I/O port, IRQ) was not declared
in `read_resources`. The resource allocator is unaware of the
need.
* *Solution*: Verify that `read_resources` correctly calls functions
like `pci_dev_read_resources` or manually adds all necessary
resources using functions like `mmio_resource()`,
`io_resource()`, etc. Check PCI BARs or device datasheets.
* **Initialization Order Issues**:
* *Problem*: `init()` fails because it depends on another device
that hasn't been fully initialized yet (e.g., accessing a shared
resource like SMBus before the SMBus controller is ready).
* *Solution*: Move the dependent initialization code to the `final`
callback if possible. Alternatively, ensure the dependency is met
by careful ordering in the device tree or using boot state
callbacks if necessary for complex scenarios.
* **Resource Conflicts**:
* *Problem*: Boot fails during resource allocation, or devices
misbehave because multiple devices requested the same
non-sharable resource (e.g., conflicting fixed MMIO regions).
* *Solution*: Review resource declarations in `read_resources` across
all relevant devices. Ensure fixed resources don't overlap. Check
if bridge windows are correctly defined and large enough. Use
coreboot's resource reporting logs to identify overlaps.
* **ACPI Table Generation Errors**:
* *Problem*: The operating system fails to recognize the device,
assigns the wrong driver, or the device doesn't function correctly
(e.g., power management issues).
* *Solution*: Double-check the `acpi_name`, `acpi_hid`, `_CRS`
(generated from assigned resources), and `acpi_fill_ssdt`
implementations. Verify names match the ACPI hierarchy and HIDs
match expected driver bindings. Ensure SSDT methods correctly
access hardware. Use OS debugging tools (e.g., `acpidump`, Device
Manager errors) to diagnose.
* **Incorrect `ops` Pointer Assigned**:
* *Problem*: Device behaves incorrectly because the wrong
`device_operations` structure was assigned (e.g., default PCI ops
assigned to a device needing a specific driver's ops).
* *Solution*: Check the logic in `chip_operations->enable_dev` (for
static devices) or the PCI driver registration (`__pci_driver`
macro and `set_pci_ops` fallback logic) to ensure the correct
`ops` structure is being selected and assigned based on device
type, path, or PCI ID. Add debug prints to verify which `ops`
structure is assigned.
## Advanced Usage
### Complex Device Hierarchies
For devices with non-standard interactions or complex initialization,
custom `device_operations` can be created, often inheriting from defaults
but overriding specific functions.
```c
static void advanced_device_init(struct device *dev)
{
/* First, perform standard PCI init */
pci_dev_init(dev);
/* Then, add custom initialization steps */
printk(BIOS_DEBUG, "%s: Performing advanced init\n", dev_path(dev));
/* ... custom register writes, configuration ... */
}
static const char *advanced_device_acpi_name(const struct device *dev)
{
/* Provide a custom ACPI name based on some property */
if (/* condition */)
return "ADV0001";
else
return "ADV0002";
}
/* Combine default and custom operations */
static struct device_operations advanced_device_ops = {
/* Inherit resource handling from default PCI ops */
.read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources,
.enable_resources = pci_dev_enable_resources,
/* Override init */
.init = advanced_device_init,
/* Override ACPI naming */
.acpi_name = advanced_device_acpi_name,
/* Other functions might use defaults or no-ops */
};
```
### Dynamic Configuration based on Probing
Some `init` or other op implementations might probe the device's
capabilities or read configuration data (e.g., from SPD, VPD, or straps)
and alter their behavior accordingly.
```c
static void conditional_device_init(struct device *dev)
{
uint8_t feature_flags;
/* Read capability register from the device */
feature_flags = pci_read_config8(dev, EXAMPLE_CAP_REG);
printk(BIOS_DEBUG, "%s: Feature flags: 0x%02x\n", dev_path(dev),
feature_flags);
/* Conditional initialization based on detected features */
if (feature_flags & FEATURE_X_ENABLED) {
printk(BIOS_INFO, "%s: Initializing Feature X\n", dev_path(dev));
init_feature_x(dev);
}
if (feature_flags & FEATURE_Y_ENABLED) {
printk(BIOS_INFO, "%s: Initializing Feature Y\n", dev_path(dev));
init_feature_y(dev);
}
}
```
## Conclusion
The `device_operations` structure is a powerful abstraction mechanism in
coreboot. It enables consistent handling of diverse hardware while
allowing for device-specific behavior. By providing a standard interface
for device operations throughout the boot process, it simplifies the
codebase, enhances maintainability, and provides the extensibility needed
to support new hardware platforms.
Understanding this structure, its relationship with `chip_operations`,
and its role in the boot process is essential for coreboot developers,
particularly when adding support for new devices or debugging hardware
initialization issues. By following the patterns and best practices
outlined here, developers can create robust and reusable device driver
implementations that integrate smoothly into the coreboot architecture.

View file

@ -0,0 +1,684 @@
# Devicetree
## Introduction to the coreboot devicetree
The first thing that may come to mind when one hears "DeviceTree" is a
different sort of description file that is generally passed to the Linux
kernel to describe a system's components. Both that devicetree and
coreboot's devicetree serve fundamentally the same purpose, but are
otherwise unrelated and have completely different syntax. The term
devicetree was used long before either version was created, and was
initially used in coreboot as a generic term.
coreboot's devicetree's main use is to define and describe the runtime
configuration and settings of the hardware on a board, chip or device
level. It defines which of the functions of the chips on the board are
enabled, and how they're configured.
The devicetree file is parsed during the build process by a utility
named `sconfig`, which translates the devicetree into a tree of C
structures containing the included devices. This code is placed in the
file `static.c` and a couple of header files, all under the `build`
directory. This file is then built into the binaries for the various
coreboot stages and is referred to during the coreboot boot process.
For the early stages of the coreboot boot process, the data that is
generated by `sconfig` is a useful resource, but this structure is the
critical architectural glue of ramstage. This structure gets filled in
with pointers to every chip's initialization code, allowing ramstage to
find and initialize those devices through the `chip_operations`
structures.
### History of coreboot's devicetree
The initial devicetree in coreboot was introduced in 2003 by Ron Minnich
as a part of the linuxbios config file, 'config.lb'. At this point both
the devicetree and config options were in the same file. In 2009,
when Kconfig was added into the coreboot build, devicetree was split
out into its own file for each mainboard in a commit with this message:
```text
devicetree.cb
The devicetree that formerly resided in src/mainboard/*/*/Config.lb.
Just without the build system crap
```
The devicetree structure was initially mainly used only in ramstage for
PCI device enumeration, configuration and resource allocation. It has
since expanded for use in the pre-ram stages as a read-only structure.
The language used in the devicetree has been expanded greatly since it
was first introduced as well, adding new features every year or so.
### Devicetree Registers
In coreboot, the devicetree register setting is one of the two main
methods used to configure a board's properties. In this way, devicetree
is similar in function to Kconfig. It's more flexible in many ways as
it can specify not only single values, but also arrays or structures.
It's also even more static than Kconfig because there's no update
mechanism for it other than editing the devicetree files.
Chip-specific configuration values are often set using `register`
definitions within a `chip` block, corresponding to a `struct` defined
in the chip's `chip.h` file.
For example, in a `chip drivers/gpio/acpi` block, you might set a GPE:
```text
register "gpe0_sts" = "0x42"
```
### Adding new static configuration options: Devicetree or Kconfig
When adding options for a new board or chip, there is frequently a
decision that needs to be made about how the option should be added.
Using the devicetree or Kconfig are the two typical methods of
build-time configuration. Below are some general guidelines on when to
use each.
Kconfig should be used if the option configures the build in a Makefile,
or if the option is something that should be user selectable. Kconfig
is also preferred if the configuration is a global option and not limited
to a single chip. Another thing Kconfig excels at is handling decisions
based on other configuration options, which devicetree cannot do.
Devicetree should obviously be used to define the hardware hierarchy.
It's also preferred if the option is only used in C code and is static
for a mainboard, or if the option is chip-specific. As mentioned
earlier, devicetree registers can also define structures or arrays,
which Kconfig cannot.
Both Kconfig and devicetree can be used in C code for runtime
configuration, but there's a significant difference in how they are
handled. Because Kconfig generates a `#define` for the choice, the
compiler can eliminate code paths not used by the option. Devicetree
options, however, are actual runtime selections, and the code for all
choices remains in the final build.
## Basic Devicetree Syntax
The coreboot devicetree uses a custom language parsed by the `sconfig`
utility. Here's a brief overview of the main keywords and concepts:
* **`chip <directory>`**: Defines a collection of devices associated
with the code in the specified directory. `sconfig` may also parse a
`chip.h` file within this directory for register definitions.
* **`device <type> <id> [on|off] [alias <name>] ... end`**: Defines a
specific hardware device.
* `<type>`: Specifies the device type (e.g., `pci`, `cpu_cluster`,
`i2c`).
* `<id>`: A unique identifier for the device within its type/bus
(e.g., PCI BDF `17.0`, I2C address `0x50`).
* `on`/`off`: Enables or disables the device definition.
* `alias <name>`: Assigns a human-readable alias for referencing
this device elsewhere (often used in `chipset.cb`).
* `end`: Marks the end of the device definition block. Registers
and other properties are defined between `device` and `end`.
* **`register "<name>" = <value>`**: Sets the value of a configuration
register defined in the corresponding `chip.h` structure. The value
can be a number, string, or complex structure initialization.
* **`probe <field> <option>`**: Used for firmware configuration
(`fw_config`), indicating a setting should be probed at runtime.
* **`ops "<identifier>"`**: Associates a `chip_operations` structure
with the device, used primarily in ramstage for device initialization.
* **`fw_config field <name> size <bits> ... end`**: Defines a firmware
configuration field, often used for passing board-specific data to
payloads. Options within the field are defined using `option`.
* **`ref <alias>`**: Used within `device` definitions in `devicetree.cb`
or `overridetree.cb` to refer to a device defined (usually via an
`alias`) in a lower-level file like `chipset.cb`.
* **`# <comment text>`**: Single-line comments.
Device definitions can be nested within `chip` blocks. `end` keywords
close the current block (`device` or `chip`).
## Three levels of devicetree files
There are currently three different levels of devicetrees used to build
up the structure of components and register values in coreboot. From
the lowest, most general level to the highest and most specific, they
are `chipset.cb`, `devicetree.cb`, and `overridetree.cb`.
Unless there's a specific reason to name them something other than these
names, they should be used.
For newer SoCs and chipsets, there will generally be a `chipset.cb` file.
Every mainboard requires a `devicetree.cb` file, although it can be empty
if everything is inherited from the `chipset.cb`. An `overridetree.cb`
file is only required if variants have differences from the primary
mainboard's `devicetree.cb`.
### SoC / chipset level, `chipset.cb`
The `chipset.cb` file was added in October 2020, allowing a single
chipset or SoC to provide a "base level" devicetree, reducing
duplication between mainboards.
The `chipset.cb` file also typically defines human-readable "aliases"
for particular devices so that mainboards can use those instead of PCI
device/function numbers or other hardware identifiers.
The use of the `chipset.cb` file is specified in Kconfig by the
`CHIPSET_DEVICETREE` symbol, which provides the path to the file.
In a `chipset.cb` file, you might see lines like this:
```text
# Chip definition for the SoC/chipset itself
chip soc/intel/common/block
# Define PCI device 17.0, alias it to "sata", and default it off
device pci 17.0 alias sata off end
# Define PCI device 1e.0, alias it to "uart0", and default it off
device pci 1e.0 alias uart0 off end
end # chip soc/intel/common/block
```
This defines the devices, assigns aliases, and sets their default state.
### Primary mainboard level, `devicetree.cb`
Each mainboard must have a `devicetree.cb` file. The filename and path are
typically set by the `DEVICETREE` Kconfig symbol, defaulting to
`src/mainboard/<VENDOR>/<BOARD>/devicetree.cb`.
If a mainboard using the above `chipset.cb` wanted both devices enabled,
its `devicetree.cb` might contain:
```text
# Reference the SATA device by its alias and enable it
device ref sata on end
# Reference the UART0 device by its alias and enable it
device ref uart0 on end
```
The `ref` keyword looks up the device (usually by alias) defined in a
lower-level file (`chipset.cb` in this case) and modifies its properties.
### Mainboard variant level, `overridetree.cb`
Introduced in 2018 to reduce duplication and maintenance for board
variants, the `overridetree.cb` file is the most specific level.
This allows a base `devicetree.cb` at the top mainboard level shared by
all variants. Each variant then only needs an `overridetree.cb` to
specify its differences.
The override tree filename is set in Kconfig with the
`OVERRIDE_DEVICETREE` symbol and is typically named `overridetree.cb`.
Finally, if one variant of the mainboard lacked a SATA connector, it
could disable the SATA device again using the following in its specific
`overridetree.cb`:
```text
# Reference the SATA device by alias and disable it for this variant
device ref sata off end
```
## Additional files
### `chip.h` files
coreboot looks at a "chip" as a collection of devices. This collection
can be a single logical device or multiple different ones. The `chip`
keyword starts this collection. Following the `chip` keyword is a
directory path (relative to `src/`) containing the code for that chip
or logical block of hardware.
There may optionally be a `chip.h` file in that directory. If present,
`sconfig` parses this file to define a C structure containing the
"register definitions" for the chip. The values for this structure's
members are set using the `register` keyword in one of the devicetree
files (`chipset.cb`, `devicetree.cb`, `overridetree.cb`). If not
explicitly set, members typically default to 0 or follow standard C
initialization rules. The `chip.h` file frequently also contains C
macros, enums, and sub-structures used for setting the members of the
main register structure.
The C structure for the chip's register definition is named after the
directory containing the `chip.h` file, with slashes (`/`) changed to
underscores (`_`), and `_config` appended. The leading `src/` is omitted.
This means that a line in a devicetree file like:
`chip drivers/i2c/hid`
would cause `sconfig` to look for `src/drivers/i2c/hid/chip.h`. If found,
the register definition structure it contains would be named
`drivers_i2c_hid_config`.
Here is the content of `src/drivers/i2c/hid/chip.h`:
```c
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __DRIVERS_I2C_HID_CHIP_H__
#define __DRIVERS_I2C_HID_CHIP_H__
#include <drivers/i2c/generic/chip.h>
#define I2C_HID_CID "PNP0C50"
struct drivers_i2c_hid_config {
struct drivers_i2c_generic_config generic;
uint8_t hid_desc_reg_offset;
};
#endif /* __I2C_HID_CHIP_H__ */
```
In a devicetree, you could set `hid_desc_reg_offset` like this:
```text
chip drivers/i2c/hid
device i2c 0x2c on
# Set the HID descriptor register offset
register "hid_desc_reg_offset" = "0x01"
end
end
```
## The `sconfig` utility and generated files
### `util/sconfig`
`sconfig` is the tool that parses the coreboot devicetrees and turns
them into a collection of C structures. This is a coreboot-specific
tool, built using flex & bison to define and parse the domain-specific
language used by coreboot's devicetree.
`sconfig` is called by the makefiles during the build process and doesn't
generally need to be run directly. If run manually (e.g.,
`build/util/sconfig/sconfig --help`), it shows its command-line options.
The exact options might vary slightly, but typically include:
```text
usage: sconfig <options>
-c | --output_c : Path to output static.c file (required)
-r | --output_h : Path to header static.h file (required)
-d | --output_d : Path to header static_devices.h file (required)
-f | --output_f : Path to header static_fw_config.h file (required)
-m | --mainboard_devtree : Path to mainboard devicetree file (required)
-o | --override_devtree : Path to override devicetree file (optional)
-p | --chipset_devtree : Path to chipset/SOC devicetree file (optional)
```
### `sconfig` inputs
The `sconfig` input files `chip.h`, `chipset.cb`, `devicetree.cb`, and
`overridetree.cb` were discussed previously. As the usage above shows,
the only required input file is the mainboard devicetree (`-m`). The
additional devicetree files, `chipset.cb` (`-p`) and `overridetree.cb`
(`-o`), are optional. The `chip.h` files do not need to be specified on
the command line; their locations are determined by the `chip` directory
paths within the `.cb` files.
Constructing the devicetree input files will be discussed later.
### `sconfig` outputs
#### `static.c`
This is the primary C file generated by `sconfig`. It contains the static
definitions of the device tree structures, including device nodes, bus
links, and register configuration data.
For historic reasons, `static.c` is generated in the
`build/mainboard/<VENDOR>/<BOARD>` directory.
#### `static.h`
The `static.h` file is the main header file included by most coreboot C
files that need access to the devicetree data. It is included by
`src/include/device/device.h`, which provides the primary API
(definitions, structures, function prototypes) for interacting with the
devicetree-generated output.
`static.h` used to contain all generated declarations directly. As of
October 2020, it simply includes the other two generated header files
(`static_devices.h` and `static_fw_config.h`). This separation allows
the firmware config options (`fw_config`) to be used independently, for
example, by a payload.
#### `static_devices.h`
The file `static_devices.h` contains `extern` declarations for all the
device structures (`struct device`) defined in `static.c`. This allows
other C files to reference the generated device tree nodes.
#### `static_fw_config.h`
`static_fw_config.h` contains only the `FW_CONFIG_FIELD_*` macro results,
derived from `fw_config` entries in the devicetree. This makes it easily
consumable by payloads or other components needing platform `FW_CONFIG`
data without pulling in the full device tree structure.
## Devicetree Example
### A very simple devicetree
This is the `devicetree.cb` file from
`src/mainboard/sifive/hifive-unleashed`, with line numbers added for
reference. Non-x86 devicetree files are often simpler than their x86
counterparts.
```text
1 # SPDX-License-Identifier: GPL-2.0-only
2 chip soc/sifive/fu540
3 device cpu_cluster 0 on end
4 end
```
This can be broken down as follows:
Line 1: Comments start with `#`. This line is the SPDX license
identifier for the file.
Line 2: `chip soc/sifive/fu540` starts a block for the SiFive FU540 SoC.
`sconfig` will look for code and potentially a `chip.h` in
`src/soc/sifive/fu540/`.
Line 3: `device cpu_cluster 0 on end` defines a device of type
`cpu_cluster` with ID `0`. It's marked as enabled (`on`). Since there are
no registers or other properties defined between `device` and `end`, this
is a simple enablement entry.
Line 4: `end` closes the block started by the `chip` keyword on line 2.
### Generated files
Continuing with the simple `sifive/hifive-unleashed` mainboard example,
these are the files generated by `sconfig` from the devicetree above (as
of mid-2022; exact output can change). Because the input devicetree is
minimal, the generated files are also quite sparse.
#### `build/static.h`
```c
#ifndef __STATIC_DEVICE_TREE_H
#define __STATIC_DEVICE_TREE_H
#include <static_fw_config.h>
#include <static_devices.h>
#endif /* __STATIC_DEVICE_TREE_H */
```
(Includes the other generated headers.)
#### `build/static_devices.h`
```c
#ifndef __STATIC_DEVICES_H
#define __STATIC_DEVICES_H
#include <device/device.h>
/* expose_device_names */
#endif /* __STATIC_DEVICE_NAMES_H */
```
(Includes `device/device.h` but contains no actual device externs beyond
the implicit root device, as the simple example didn't define complex
devices requiring separate structs.)
#### `build/static_fw_config.h`
```c
#ifndef __STATIC_FW_CONFIG_H
#define __STATIC_FW_CONFIG_H
#endif /* __STATIC_FW_CONFIG_H */
```
(Empty because the example `devicetree.cb` did not use `fw_config`.)
#### `build/mainboard/sifive/hifive-unleashed/static.c`
##### Includes
```text
1 #include <boot/coreboot_tables.h>
2 #include <device/device.h>
3 #include <device/pci.h>
4 #include <fw_config.h>
5 #include <static.h>
```
Lines 1-5: Includes header files required for the following structure
definitions and macros.
##### Declarations for chip-ops
```text
6
7 #if !DEVTREE_EARLY
8 __attribute__((weak)) struct chip_operations mainboard_ops = {};
9 extern struct chip_operations soc_sifive_fu540_ops;
10 #endif
```
Lines 7 & 10: The `ops` structures inside this `#if !DEVTREE_EARLY` block
are only relevant and linked in ramstage.
Lines 8-9: Declarations for `chip_operations` structures. This section
expands as more chips are added to the devicetree.
* Line 8: `mainboard_ops` is always present. It's defined as `weak`
because the mainboard C code may or may not provide this structure.
* Line 9: This `extern` is generated by the `chip soc/sifive/fu540`
declaration in the `devicetree.cb`. There will be a similar line for
every `chip` declared.
##### `STORAGE` definition
```text
11
12 #define STORAGE static __unused DEVTREE_CONST
```
Line 12: This macro conditionally adds `const` based on the build stage.
It resolves to `static __unused const` in early stages (pre-RAM) and
`static __unused` in ramstage, where the structures might be modified.
##### Structure definitions
```text
13
14
15 /* pass 0 */
16 STORAGE struct bus dev_root_links[];
17 STORAGE struct device _dev_0;
18 DEVTREE_CONST struct device * DEVTREE_CONST last_dev = &_dev_0;
```
Lines 16-18: Forward declarations of the static structures generated by
`sconfig` based on the devicetree input. `_dev_0` corresponds to the
`cpu_cluster 0` device.
##### Register Structures
```text
19
20 /* chip configs */
```
Line 20: This section is empty for this mainboard because the
`soc/sifive/fu540/chip.h` file (if it exists) does not define a register
structure, or the devicetree did not instantiate it using `register`.
Otherwise, this section would contain the static initialization of chip
configuration structures based on `register` entries.
##### `dev_root` structure
Lines 21-44: `dev_root`. This structure represents the root of the
coreboot device tree. It is always generated, regardless of the content
of the `devicetree.cb` file. It serves as the entry point for traversing
the tree.
```text
21
22 /* pass 1 */
23 DEVTREE_CONST struct device dev_root = {
24 #if !DEVTREE_EARLY
25 .ops = &default_dev_ops_root,
26 #endif
27 .bus = &dev_root_links[0],
28 .path = { .type = DEVICE_PATH_ROOT },
29 .enabled = 1,
30 .hidden = 0,
31 .mandatory = 0,
32 .on_mainboard = 1,
33 .link_list = &dev_root_links[0],
34 .sibling = NULL,
35 #if !DEVTREE_EARLY
36 .chip_ops = &mainboard_ops,
37 .name = mainboard_name,
38 #endif
39 .next=&_dev_0,
40 #if !DEVTREE_EARLY
41 #if CONFIG(GENERATE_SMBIOS_TABLES)
42 #endif
43 #endif
44 };
```
* Lines 24-26: Points to a default ramstage `device_operation`
structure (`default_dev_ops_root`) found in
`src/device/root_device.c`. This structure typically does little by
default but can be overridden or utilized by mainboard code via the
`chip_operations->enable_dev()` hook for tasks like ACPI table
generation.
* Line 27: `.bus`: Pointer to the bus structure associated with this
device. For the root device, this points to its own bus structure.
* Line 28: `.path`: The unique path identifier for this device. The type
is `DEVICE_PATH_ROOT`.
* Lines 29-32: Device status flags.
* `enabled`: Set based on `on`/`off` in the devicetree (always on
for `dev_root`). Can be modified later (e.g., during enumeration
in ramstage).
* `hidden`, `mandatory`: Set only by corresponding keywords in the
devicetree (not used here).
* `on_mainboard`: Indicates the device was defined in the static
devicetree, as opposed to being discovered dynamically (e.g., via
PCI enumeration). Always true for `dev_root`.
* Line 33: `.link_list`: Pointer to the list of child buses attached to
this device.
* Line 34: `.sibling`: Pointer to the next device at the same level in
the tree. Should always be `NULL` for `dev_root`.
* Line 36: `.chip_ops`: Pointer to the mainboard's `chip_operations`
structure (the `weak` `mainboard_ops`). Although not a physical
chip, the mainboard gets this to hook into the boot process like
other chips.
* Line 37: `.name`: A string identifier, typically the mainboard name,
set at build time (from `src/device/root_device.c`).
* Line 39: `.next`: Pointer used internally by `sconfig` during tree
construction. Points to the next device structure processed (`_dev_0`).
##### `dev_root_links`
Lines 45-52: The `dev_root` bus structure array.
This array (`struct bus`) holds pointers defining the bus topology. Each
element represents a link on a bus. `dev_root` acts as the bridge for the
top-level bus.
A new bus structure array is typically created for each distinct bus type
or domain originating from a bridge device in the devicetree (e.g., PCI
domain 0, LPC bus).
```text
45 STORAGE struct bus dev_root_links[] = {
46 [0] = {
47 .link_num = 0,
48 .dev = &dev_root,
49 .children = &_dev_0,
50 .next = NULL,
51 },
52 };
```
* Line 47: `.link_num`: Index of this link within the bus array.
* Line 48: `.dev`: Pointer back to the bridge device structure for this
bus (`dev_root`).
* Line 49: `.children`: Pointer to the first child device structure on
this bus (`_dev_0`).
* Line 50: `.next`: Pointer to the next bridge device on the *parent*
bus. Since `dev_root` has no parent bus, this is `NULL`.
##### `_dev_0`
Lines 53-72: The `cpu_cluster` device structure (`_dev_0`).
This structure corresponds directly to the
`device cpu_cluster 0 on end` line in the `devicetree.cb`.
```text
53 STORAGE struct device _dev_0 = {
54 #if !DEVTREE_EARLY
55 .ops = NULL,
56 #endif
57 .bus = &dev_root_links[0],
58 .path = {.type=DEVICE_PATH_CPU_CLUSTER,{.cpu_cluster={ .cluster = 0x0 }}},
59 .enabled = 1,
60 .hidden = 0,
61 .mandatory = 0,
62 .on_mainboard = 1,
63 .link_list = NULL,
64 .sibling = NULL,
65 #if !DEVTREE_EARLY
66 .chip_ops = &soc_sifive_fu540_ops,
67 #endif
68 #if !DEVTREE_EARLY
69 #if CONFIG(GENERATE_SMBIOS_TABLES)
70 #endif
71 #endif
72 };
```
* Lines 54-56: `.ops`: Pointer to a `device_operations` structure. This
is `NULL` because this entry represents the `chip` itself, not a
specific functional sub-device requiring device-level operations. The
chip-level operations are handled by `chip_ops`.
* Line 57: `.bus`: Pointer to the bus structure this device resides on.
Since it's directly under `dev_root`, it points to `dev_root_links[0]`.
* Line 58: `.path`: The unique device path structure (defined in
`src/include/device/path.h`). Type is `DEVICE_PATH_CPU_CLUSTER`,
and the cluster ID is `0`, matching the devicetree entry. This path
is used when searching the tree (e.g., with `dev_find_path()`).
* Lines 59-62: Enumeration Status. Similar to `dev_root`. `enabled = 1`
comes from the `on` keyword.
* Line 63: `.link_list`: Pointer to child buses. `NULL` because this
`cpu_cluster` device doesn't bridge to any further buses in this
simple example.
* Line 64: `.sibling`: Pointer to the next device at the same level
(i.e., another device directly under `dev_root`). `NULL` as it's the
only child.
* Lines 65-67: `.chip_ops`: Pointer to the processor's `chip_operations`
structure (`soc_sifive_fu540_ops`), used in ramstage for SoC/CPU
initialization steps. This link comes from the `chip soc/sifive/fu540`
declaration.
* Lines 68-71: Placeholder for SMBIOS information, enabled by Kconfig.
Not used in this example.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,15 @@
# coreboot internals
This section contains documentation about the configuration and
programming APIs internal to coreboot
## Configuration
```{toctree}
:maxdepth: 1
coreboot devicetree <devicetree.md>
coreboot devicetree language <devicetree_language.md>
Chip Operations <chip_operations.md>
Device Operations <device_operations>
```

View file

@ -2,225 +2,284 @@
## Motivation
The firmware configuration interface in coreboot is designed to support a wide variety of
configuration options in that are dictated by the hardware at runtime. This allows a single
BIOS image to be used across a wide variety of devices which may have key differences but are
otherwise similar enough to use the same coreboot build target.
The firmware configuration interface in coreboot is designed to support
a wide variety of configuration options in that are dictated by the
hardware at runtime. This allows a single BIOS image to be used across a
wide variety of devices which may have key differences but are otherwise
similar enough to use the same coreboot build target.
The initial implementation is designed to take advantage of a bitmask returned by the Embedded
Controller on Google ChromeOS devices which allows the manufacturer to use the same firmware
image across multiple devices by selecting various options at runtime. See the ChromiumOS
The initial implementation is designed to take advantage of a bitmask
returned by the Embedded Controller on Google ChromeOS devices which
allows the manufacturer to use the same firmware image across multiple
devices by selecting various options at runtime. See the ChromiumOS
[Firmware Config][1] documentation for more information.
This firmware configuration interface differs from the CMOS option interface in that this
bitmask value is not intended as a user-configurable setting as the configuration values must
match the actual hardware. In the case where a user was to swap their hardware this value
would need to be updated or overridden.
This firmware configuration interface differs from the CMOS option
interface in that this bitmask value is not intended as a
user-configurable setting as the configuration values must match the
actual hardware. In the case where a user was to swap their hardware
this value would need to be updated or overridden.
## Device Presence
One common example of why a firmware configuration interface is important is determining if a
device is present in the system. With some bus topologies and hardware mechanisms it is
possible to probe and enumerate this at runtime:
One common example of why a firmware configuration interface is
important is determining if a device is present in the system. With some
bus topologies and hardware mechanisms it is possible to probe and
enumerate this at runtime:
- PCI is a self-discoverable bus and is very easy to handle.
- I2C devices can often be probed with a combination of bus and address.
- The use of GPIOs with external strap to ground or different voltages can be used to detect
presence of a device.
- The use of GPIOs with external strap to ground or different voltages
can be used to detect presence of a device.
However there are several cases where this is insufficient:
- I2C peripherals that require different drivers but have the same bus address cannot be
uniquely identified at runtime.
- A mainboard may be designed with multiple daughter board combinations which contain devices
and configurations that cannot be detected.
- While presence detect GPIOs are a convenient way for a single device presence, they are
unable to distinguish between different devices so it can require a large number of GPIOs to
support relatively few options.
- I2C peripherals that require different drivers but have the same bus
address cannot be uniquely identified at runtime.
- A mainboard may be designed with multiple daughter board combinations
which contain devices and configurations that cannot be detected.
- While presence detect GPIOs are a convenient way for a single device
presence, they are unable to distinguish between different devices so
it can require a large number of GPIOs to support relatively few
options.
This presence detection can impact different stages of boot:
### ACPI
Devices that are not present should not provide an ACPI device indicating that they are
present or the operating system may not be able to handle it correctly.
Devices that are not present should not provide an ACPI device
indicating that they are present or the operating system may not be able
to handle it correctly.
The ACPI devices are largely driven by chips defined in the mainboard
`devicetree.cb` and the variant overridetree.cb. This means it is
important to be able to specify when a device is present or not directly
in `devicetree.cb` itself. Otherwise each mainboard needs custom code to
parse the tree and disable unused devices.
The ACPI devices are largely driven by chips defined in the mainboard `devicetree.cb` and
the variant overridetree.cb. This means it is important to be able to specify when a device
is present or not directly in `devicetree.cb` itself. Otherwise each mainboard needs custom
code to parse the tree and disable unused devices.
### GPIO
GPIOs with multiple functions may need to be configured correctly depending on the attached
device. Given the wide variety of GPIO configuration possibilities it is not feasible to
specify all combinations directly in `devicetree.cb` and it is best left to code provided by
the mainboard.
GPIOs with multiple functions may need to be configured correctly
depending on the attached device. Given the wide variety of GPIO
configuration possibilities it is not feasible to specify all
combinations directly in `devicetree.cb` and it is best left to code
provided by the mainboard.
### FSP UPD
Enabling and disabling devices may require altering FSP UPD values that are provided to the
various stages of FSP. These options are also not easy to specify multiple times for
different configurations in `devicetree.cb` and can be provided by the mainboard as code.
Enabling and disabling devices may require altering FSP UPD values that
are provided to the various stages of FSP. These options are also not
easy to specify multiple times for different configurations in
`devicetree.cb` and can be provided by the mainboard as code.
## Firmware Configuration Interface
The firmware configuration interface can be enabled by selecting `CONFIG_FW_CONFIG` and also
providing a source for the value by defining an additional Kconfig option defined below.
The firmware configuration interface can be enabled by selecting
`CONFIG_FW_CONFIG` and also providing a source for the value by defining
an additional Kconfig option defined below.
If the firmware configuration interface is disabled via Kconfig then all
probe attempts will return true.
If the firmware configuration interface is disabled via Kconfig then all probe attempts will
return true.
## Firmware Configuration Value
The 64-bit value used as the firmware configuration bitmask is meant to be determined at runtime
but could also be defined at compile time if needed.
The 64-bit value used as the firmware configuration bitmask is meant to
be determined at runtime but could also be defined at compile time if
needed.
There are two supported sources for providing this information to
coreboot.
There are two supported sources for providing this information to coreboot.
### CBFS
The value can be provided with a 64-bit raw value in CBFS that is read by coreboot. The value
can be set at build time but also adjusted in an existing image with `cbfstool`.
The value can be provided with a 64-bit raw value in CBFS that is read
by coreboot. The value can be set at build time but also adjusted in an
existing image with `cbfstool`.
To enable this select the `CONFIG_FW_CONFIG_CBFS` option in the build configuration and add a
raw 64-bit value to CBFS with the name of the current prefix at `CONFIG_FW_PREFIX/fw_config`.
To enable this select the `CONFIG_FW_CONFIG_CBFS` option in the build
configuration and add a raw 64-bit value to CBFS with the name of the
current prefix at `CONFIG_FW_PREFIX/fw_config`.
When `fw_config_probe_device()` or `fw_config_probe()` is called it will
look for the specified file in CBFS use the value it contains when
matching fields and options.
When `fw_config_probe_device()` or `fw_config_probe()` is called it will look for the specified
file in CBFS use the value it contains when matching fields and options.
### Embedded Controller
Google ChromeOS devices support an Embedded Controller interface for reading and writing the
firmware configuration value, along with other board-specific information. It is possible for
coreboot to read this value at boot on systems that support this feature.
Google ChromeOS devices support an Embedded Controller interface for
reading and writing the firmware configuration value, along with other
board-specific information. It is possible for coreboot to read this
value at boot on systems that support this feature.
This option is selected by default for the mainboards that use it with
`CONFIG_FW_CONFIG_CHROME_EC_CBI` and it is not typically necessary to adjust the value. It is
possible by enabling the CBFS source and coreboot will look in CBFS first for a valid value
before asking the embedded controller.
`CONFIG_FW_CONFIG_CHROME_EC_CBI` and it is not typically necessary to
adjust the value. It is possible by enabling the CBFS source and
coreboot will look in CBFS first for a valid value before asking the
embedded controller.
It is also possible to adjust the value in the embedded controller *(after disabling write
protection)* with the `ectool` command in a ChromeOS environment.
It is also possible to adjust the value in the embedded controller
*(after disabling write protection)* with the `ectool` command in a
ChromeOS environment.
For more information on the firmware configuration field on ChromeOS devices see the Chromium
documentation for [Firmware Config][1] and [Board Info][2].
For more information on the firmware configuration field on ChromeOS
devices see the Chromium documentation for [Firmware Config][1] and
[Board Info][2].
[1]: http://chromium.googlesource.com/chromiumos/docs/+/HEAD/design_docs/firmware_config.md
[2]: http://chromium.googlesource.com/chromiumos/docs/+/HEAD/design_docs/cros_board_info.md
## Firmware Configuration Table
The firmware configuration table itself is defined in the mainboard `devicetree.cb` with
special tokens for defining fields and options.
The firmware configuration table itself is defined in the mainboard
`devicetree.cb` with special tokens for defining fields and options.
The table itself is enclosed in a `fw_config` token and terminated with `end` and it contains
a mix of field and option definitions.
The table itself is enclosed in a `fw_config` token and terminated with
`end` and it contains a mix of field and option definitions.
Each field is defined by providing the field name and the start and end bit marking the exact
location in the bitmask. Field names must be at least three characters long in order to
satisfy the sconfig parser requirements and they must be unique with non-overlapping masks.
Each field is defined by providing the field name and the start and end
bit marking the exact location in the bitmask. Field names must be at
least three characters long in order to satisfy the sconfig parser
requirements and they must be unique with non-overlapping masks.
field <name> <start-bit> <end-bit> [option...] end
```text
field <name> <start-bit> <end-bit> [option...] end
```
For single-bit fields only one number is needed:
field <name> <bit> [option...] end
```text
field <name> <bit> [option...] end
```
A field definition can also contain multiple sets of bit masks, which can be dis-contiguous.
They are treated as if they are contiguous when defining option values. This allows for
extending fields even after the bits after its current masks are occupied.
A field definition can also contain multiple sets of bit masks, which
can be dis-contiguous. They are treated as if they are contiguous when
defining option values. This allows for extending fields even after the
bits after its current masks are occupied.
field <name> <start-bit0> <end-bit0> | <start-bit1> <end-bit1> | ...
```text
field <name> <start-bit0> <end-bit0> | <start-bit1> <end-bit1> | ...
```
For example, if more audio options need to be supported:
field AUDIO 3 3
option AUDIO_0 0
option AUDIO_1 1
end
field OTHER 4 4
...
end
```text
field AUDIO 3 3
option AUDIO_0 0
option AUDIO_1 1
end
field OTHER 4 4
...
end
```
the following can be done:
field AUDIO 3 3 | 5 5
option AUDIO_FOO 0
option AUDIO_BLAH 1
option AUDIO_BAR 2
option AUDIO_BAZ 3
end
field OTHER 4 4
...
end
```text
field AUDIO 3 3 | 5 5
option AUDIO_FOO 0
option AUDIO_BLAH 1
option AUDIO_BAR 2
option AUDIO_BAZ 3
end
field OTHER 4 4
...
end
```
In that case, the AUDIO masks are extended like so:
#define FW_CONFIG_FIELD_AUDIO_MASK 0x28
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_FOO_VALUE 0x0
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_BLAH_VALUE 0x8
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_BAR_VALUE 0x20
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_BAz_VALUE 0x28
```c
#define FW_CONFIG_FIELD_AUDIO_MASK 0x28
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_FOO_VALUE 0x0
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_BLAH_VALUE 0x8
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_BAR_VALUE 0x20
#define FW_CONFIG_FIELD_AUDIO_OPTION_AUDIO_BAz_VALUE 0x28
```
Each `field` definition starts a new block that can be composed of zero or more field options,
and it is terminated with `end`.
Each `field` definition starts a new block that can be composed of zero
or more field options, and it is terminated with `end`.
Inside the field block the options can be defined by providing the option name and the field
value that this option represents when the bit offsets are used to apply a mask and shift.
Option names must also be at least three characters for the sconfig parser.
Inside the field block the options can be defined by providing the
option name and the field value that this option represents when the bit
offsets are used to apply a mask and shift. Option names must also be at
least three characters for the sconfig parser.
option <name> <value>
```text
option <name> <value>
```
It is possible for there to be multiple `fw_config` blocks and for subsequent `field` blocks
to add additional `option` definitions to the existing field. These subsequent definitions
should not provide the field bitmask as it has already been defined earlier in the file and
It is possible for there to be multiple `fw_config` blocks and for
subsequent `field` blocks to add additional `option` definitions to the
existing field. These subsequent definitions should not provide the
field bitmask as it has already been defined earlier in the file and
this is just matching an existing field by name.
field <name> [option...] end
```text
field <name> [option...] end
```
This allows a baseboard to define the major fields and options in `devicetree.cb` and a board
variant to add specific options to fields in or define new fields in the unused bitmask in
`overridetree.cb`.
This allows a baseboard to define the major fields and options in
`devicetree.cb` and a board variant to add specific options to fields in
or define new fields in the unused bitmask in `overridetree.cb`.
It is not possible to redefine a field mask or override the value of an
existing option this way, only to add new options to a field or new
fields to the table.
It is not possible to redefine a field mask or override the value of an existing option this
way, only to add new options to a field or new fields to the table.
### Firmware Configuration Table Example
In this example a baseboard defines a simple boolean feature that is enabled or disabled
depending on the value of bit 0, and a field at bits 1-2 that indicates which daughter board
is attached.
In this example a baseboard defines a simple boolean feature that is
enabled or disabled depending on the value of bit 0, and a field at bits
1-2 that indicates which daughter board is attached.
The baseboard itself defines one daughter board and the variant adds two
more possibilities. This way each variant can support multiple possible
daughter boards in addition to the one that was defined by the
baseboard.
The baseboard itself defines one daughter board and the variant adds two more possibilities.
This way each variant can support multiple possible daughter boards in addition to the one
that was defined by the baseboard.
#### devicetree.cb
fw_config
field FEATURE 0
option DISABLED 0
option ENABLED 1
end
field DAUGHTER_BOARD 1 2
option NONE 0
option REFERENCE_DB 1
end
```text
fw_config
field FEATURE 0
option DISABLED 0
option ENABLED 1
end
field DAUGHTER_BOARD 1 2
option NONE 0
option REFERENCE_DB 1
end
end
```
#### overridetree.cb
fw_config
field DAUGHTER_BOARD
option VARIANT_DB_ONE 2
option VARIANT_DB_TWO 3
end
```text
fw_config
field DAUGHTER_BOARD
option VARIANT_DB_ONE 2
option VARIANT_DB_TWO 3
end
end
```
The result of this table defined in `devicetree.cb` is a list of
constants that can be used to check if fields match the firmware
configuration options determined at runtime with a simple check of the
field mask and the option value.
The result of this table defined in `devicetree.cb` is a list of constants that can be used
to check if fields match the firmware configuration options determined at runtime with a
simple check of the field mask and the option value.
#### static.h
@ -246,73 +305,96 @@ simple check of the field mask and the option value.
#define FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_TWO_VALUE 0x00000006
```
## Device Probing
One use of the firmware configuration interface in devicetree is to allow device probing to be
specified directly with the devices themselves. A new `probe` token is introduced to allow a
device to be probed by field and option name. Multiple `probe` entries may be present for
each device and any successful probe will consider the device to be present.
One use of the firmware configuration interface in devicetree is to
allow device probing to be specified directly with the devices
themselves. A new `probe` token is introduced to allow a device to be
probed by field and option name. Multiple `probe` entries may be present
for each device and any successful probe will consider the device to be
present.
### Probing Example
Continuing with the previous example this device would be considered present if the field
`DAUGHTER_BOARD` was set to either `VARIANT_DB_ONE` or `VARIANT_DB_TWO`:
Continuing with the previous example this device would be considered
present if the field `DAUGHTER_BOARD` was set to either `VARIANT_DB_ONE`
or `VARIANT_DB_TWO`:
#### overridetree.cb
chip drivers/generic/example
device generic 0 on
probe DAUGHTER_BOARD VARIANT_DB_ONE
probe DAUGHTER_BOARD VARIANT_DB_TWO
end
```text
chip drivers/generic/example
device generic 0 on
probe DAUGHTER_BOARD VARIANT_DB_ONE
probe DAUGHTER_BOARD VARIANT_DB_TWO
end
end
```
If the field were set to any other option, including `NONE` and
`REFERENCE_DB` and any undefined value then the device would be
disabled.
If the field were set to any other option, including `NONE` and `REFERENCE_DB` and any
undefined value then the device would be disabled.
### Probe Overrides
When a device is declared with a probe in the baseboard `devicetree.cb` and the same device
is also present in the `overridetree.cb` then the probing information from the baseboard
is discarded and the override device must provide all necessary probing information.
When a device is declared with a probe in the baseboard `devicetree.cb`
and the same device is also present in the `overridetree.cb` then the
probing information from the baseboard is discarded and the override
device must provide all necessary probing information.
In this example a device is listed in the baseboard with `DAUGHTER_BOARD` field probing for
`REFERENCE_DB` as a field option, It is also defined as an override device with the field
probing for the `VARIANT_DB_ONE` option instead.
In this example a device is listed in the baseboard with
`DAUGHTER_BOARD` field probing for `REFERENCE_DB` as a field option, It
is also defined as an override device with the field probing for the
`VARIANT_DB_ONE` option instead.
In this case only the probe listed in the override is checked and a
field option of `REFERENCE_DB` will not mark this device present. If
both options are desired then the override device must list both. This
allows an override device to remove a probe entry that was defined in
the baseboard.
In this case only the probe listed in the override is checked and a field option of
`REFERENCE_DB` will not mark this device present. If both options are desired then the
override device must list both. This allows an override device to remove a probe entry that
was defined in the baseboard.
#### devicetree.cb
chip drivers/generic/example
device generic 0 on
probe DAUGHTER_BOARD REFERENCE_DB
end
end
```text
chip drivers/generic/example
device generic 0 on
probe DAUGHTER_BOARD REFERENCE_DB
end
end
```
#### overridetree.cb
chip drivers/generic/example
device generic 0 on
probe DAUGHTER_BOARD VARIANT_DB_ONE
end
end
```text
chip drivers/generic/example
device generic 0 on
probe DAUGHTER_BOARD VARIANT_DB_ONE
end
end
```
### Automatic Device Probing
At boot time the firmware configuration interface will walk the device tree and apply any
probe entries that were defined in `devicetree.cb`. This probing takes effect before the
`BS_DEV_ENUMERATE` step during the boot state machine in ramstage.
At boot time the firmware configuration interface will walk the device
tree and apply any probe entries that were defined in `devicetree.cb`.
This probing takes effect before the `BS_DEV_ENUMERATE` step during the
boot state machine in ramstage.
Devices that have a probe list but do do not find a match are disabled by setting
`dev->enabled = 0` but the chip `enable_dev()` and device `enable()` handlers will still
be executed to allow any device disable code to execute.
Devices that have a probe list but do do not find a match are disabled
by setting `dev->enabled = 0` but the chip `enable_dev()` and device
`enable()` handlers will still be executed to allow any device disable
code to execute.
The result of this probe definition is to provide an array of structures
describing each field and option to check.
The result of this probe definition is to provide an array of structures describing each
field and option to check.
#### fw_config.h
@ -325,40 +407,43 @@ field and option to check.
* @value: Value of the option within the mask.
*/
struct fw_config {
const char *field_name;
const char *option_name;
uint64_t mask;
uint64_t value;
const char *field_name;
const char *option_name;
uint64_t mask;
uint64_t value;
};
```
#### static.c
```c
STORAGE struct fw_config __devN_probe_list[] = {
{
.field_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_NAME,
.option_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_ONE_NAME,
.mask = FW_CONFIG_FIELD_DAUGHTER_BOARD_MASK,
.value = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_ONE_VALUE
},
{
.field_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_NAME,
.option_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_TWO_NAME,
.mask = FW_CONFIG_FIELD_DAUGHTER_BOARD_MASK,
.value = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_TWO_VALUE
},
{ }
{
.field_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_NAME,
.option_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_ONE_NAME,
.mask = FW_CONFIG_FIELD_DAUGHTER_BOARD_MASK,
.value = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_ONE_VALUE
},
{
.field_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_NAME,
.option_name = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_TWO_NAME,
.mask = FW_CONFIG_FIELD_DAUGHTER_BOARD_MASK,
.value = FW_CONFIG_FIELD_DAUGHTER_BOARD_OPTION_VARIANT_DB_TWO_VALUE
},
{ }
};
```
### Runtime Probing
The device driver probing allows for seamless integration with the mainboard but it is only
effective in ramstage and for specific devices declared in devicetree.cb. There are other
situations where code may need to probe or check the value of a field in romstage or at other
points in ramstage. For this reason it is also possible to use the firmware configuration
interface directly.
The device driver probing allows for seamless integration with the
mainboard but it is only effective in ramstage and for specific devices
declared in devicetree.cb. There are other situations where code may
need to probe or check the value of a field in romstage or at other
points in ramstage. For this reason it is also possible to use the
firmware configuration interface directly.
```c
/**
@ -372,18 +457,21 @@ bool fw_config_probe(const struct fw_config *match);
The argument provided to this function can be created from a macro for easy use:
FW_CONFIG(field, option)
```text
FW_CONFIG(field, option)
```
This example has a mainboard check if a feature is disabled and set an FSP UPD before memory
training. This example expects that the default value of this `register` is set to `true` in
`devicetree.cb` and this code is disabling that feature before FSP is executed.
This example has a mainboard check if a feature is disabled and set an
FSP UPD before memory training. This example expects that the default
value of this `register` is set to `true` in `devicetree.cb` and this
code is disabling that feature before FSP is executed.
```c
#include <fw_config.h>
void mainboard_memory_init_params(FSPM_UPD *mupd)
{
if (fw_config_probe(FW_CONFIG(FEATURE, DISABLED))
mupd->ExampleFeature = false;
if (fw_config_probe(FW_CONFIG(FEATURE, DISABLED))
mupd->ExampleFeature = false;
}
```

View file

@ -11,4 +11,7 @@ ABI data consumption <abi-data-consumption.md>
Timestamps <timestamp.md>
Firmware Configuration Interface <fw_config.md>
Relocatable Modules <rmodules.md>
Timers, Stopwatch, and Delays <stopwatch.md>
Threads <threads.md>
Ramstage Bootstates & Bootstate Callbacks <ramstage_bootstates.md>
```

View file

@ -0,0 +1,514 @@
# coreboot Ramstage Bootstates & Bootstate Callbacks
## Introduction
The coreboot boot process is divided into several discrete phases, one
of which is **ramstage**. Ramstage is the phase where the main hardware
initialization and device setup occurs after memory initialization.
Within ramstage, a state machine called the **bootstate machine**
manages the sequence of operations needed to initialize the system,
configure devices, and prepare to load and execute the payload (such as
a bootloader, operating system, or firmware utility).
The bootstate machine provides a structured and extensible way to
organize code execution during the boot process. It allows for clear
separation of concerns between different initialization phases and
provides hooks for component-specific code to run at well-defined
points.
**Important Note:** The exact execution order of multiple callbacks
registered for the same state and sequence (entry/exit) is not
guaranteed. This means that you cannot depend on one call for the
state/sequence in any other calls to the same state/sequence. If this
ordering is required, join the calls to the two functions into a single
function which specifies the order and create a callback to call the
top-level function instead of the two individual callbacks.
## Bootstate Machine Architecture
The bootstate machine's public API is defined in
`src/include/bootstate.h`, and its core implementation resides in
`src/lib/hardwaremain.c`. At its core, it consists of:
1. A series of sequential states that represent phases of the boot process
2. A mechanism for callback registration to execute code during state transitions
3. A framework for blocking and unblocking state transitions
4. Timing and debugging facilities to measure and report performance during boot
### Key Data Structures
The primary public data structure for interacting with the bootstate
machine is `struct boot_state_callback`. The internal implementation
also uses `struct boot_state` and `struct boot_phase`.
#### Boot State Callback (Public API)
Callbacks that run during state transitions are defined by this
structure in `src/include/bootstate.h`:
```c
struct boot_state_callback {
void *arg; // Argument to pass to the callback
void (*callback)(void *arg); // Function pointer to the callback
struct boot_state_callback *next; // Next callback in linked list (internal use)
#if CONFIG(DEBUG_BOOT_STATE)
const char *location; // Source location for debugging
#endif
};
```
#### Boot State Sequence (Public API)
The boot state sequence type, defined in `src/include/bootstate.h`,
specifies when a callback should run relative to the state's main
action:
```c
typedef enum {
BS_ON_ENTRY, // Execute before state function
BS_ON_EXIT // Execute after state function
} boot_state_sequence_t;
```
#### Boot State (Internal Implementation)
The main internal data structure in `src/lib/hardwaremain.c` is
`struct boot_state`, which defines a single state in the bootstate
machine:
```c
struct boot_state {
const char *name; // Human-readable name of the state
boot_state_t id; // Enumerated identifier for the state
u8 post_code; // POST code to output during state execution
struct boot_phase phases[2]; // Entry and exit phases (internal use)
boot_state_t (*run_state)(void *arg); // Function to execute during the state
void *arg; // Argument to pass to the run_state function
int num_samples; // Counter for timing samples (internal use)
bool complete; // Flag indicating if state has completed (internal use)
};
```
#### Boot Phase (Internal Implementation)
Each boot state has two internal phases ("entry" and "exit") represented
by `struct boot_phase` in `src/lib/hardwaremain.c`:
```c
struct boot_phase {
struct boot_state_callback *callbacks; // Linked list of callbacks
int blockers; // Counter for blocking state transition
};
```
## Bootstate Sequence
The bootstate machine defines the following sequence of states, executed
in order by the `bs_walk_state_machine` function in
`src/lib/hardwaremain.c`. The sequence is defined by the `boot_state_t`
enum in `src/include/bootstate.h`:
1. **BS_PRE_DEVICE**: Initial state before any device operations begin
2. **BS_DEV_INIT_CHIPS**: Early chip initialization for critical components
3. **BS_DEV_ENUMERATE**: Device enumeration (discovering devices on buses)
4. **BS_DEV_RESOURCES**: Resource allocation for devices
5. **BS_DEV_ENABLE**: Enabling devices that were discovered
6. **BS_DEV_INIT**: Device initialization
7. **BS_POST_DEVICE**: All device operations have been completed
8. **BS_OS_RESUME_CHECK**: Check if we're resuming from a sleep state
9. **BS_OS_RESUME**: Handle OS resume process (if needed)
10. **BS_WRITE_TABLES**: Write system tables (e.g., ACPI, SMBIOS)
11. **BS_PAYLOAD_LOAD**: Load the payload into memory
12. **BS_PAYLOAD_BOOT**: Boot the payload
This sequence forms the backbone of the ramstage execution flow. Each
state performs a specific task, runs associated callbacks, and
transitions to the next state upon completion, unless blocked.
## Bootstate Details
### BS_PRE_DEVICE
**Purpose**: Serves as the initial state before any device tree
operations begin.
**Key Functions**:
- `bs_pre_device()`: Sets up initial environment and transitions to next
state.
**Usage**: This state is used for initializing core components that need
to be set up before any device operations. Examples include:
- Setting up global NVRAM variables
- Initializing debugging facilities
- Preparing ACPI tables or other critical system structures
### BS_DEV_INIT_CHIPS
**Purpose**: Initializes critical chips early in the boot process.
**Key Functions**:
- `bs_dev_init_chips()`: Calls `dev_initialize_chips()` to initialize
all chips in the device tree.
**Notes**: Chip initialization can disable unused devices, which is why
it happens before device enumeration.
### BS_DEV_ENUMERATE
**Purpose**: Discovers devices in the system.
**Key Functions**:
- `bs_dev_enumerate()`: Calls `dev_enumerate()` to probe and identify
devices.
**Notes**: During this phase, the system scans buses and detects
connected devices.
### BS_DEV_RESOURCES
**Purpose**: Allocates and assigns resources (I/O, memory, IRQs) to
devices.
**Key Functions**:
- `bs_dev_resources()`: Calls `dev_configure()` to compute and assign
bus resources.
**Notes**: Resource allocation resolves conflicts and ensures each
device has the resources it needs.
### BS_DEV_ENABLE
**Purpose**: Enables devices in the system.
**Key Functions**:
- `bs_dev_enable()`: Calls `dev_enable()` to enable devices on the bus.
**Notes**: Some devices may be selectively disabled based on hardware
configuration or policy.
### BS_DEV_INIT
**Purpose**: Initializes enabled devices.
**Key Functions**:
- `bs_dev_init()`: Calls `dev_initialize()` to initialize devices on the
bus.
**Notes**: This state performs device-specific initialization routines
for all enabled devices.
### BS_POST_DEVICE
**Purpose**: Final state after all device operations have completed.
**Key Functions**:
- `bs_post_device()`: Calls `dev_finalize()` to complete any final
device operations.
**Notes**: This state serves as a checkpoint that all device
initialization is complete.
### BS_OS_RESUME_CHECK
**Purpose**: Checks if the system should resume from a sleep state.
**Key Functions**:
- `bs_os_resume_check()`: Looks for a wake vector to determine if resume
is needed.
**Notes**: This state branches the boot flow based on whether the system
is resuming from a sleep state.
### BS_OS_RESUME
**Purpose**: Handles the OS resume process.
**Key Functions**:
- `bs_os_resume()`: Calls `acpi_resume()` with the wake vector to resume
the OS.
**Notes**: After successful resume, control is transferred to the OS and
does not return to coreboot.
### BS_WRITE_TABLES
**Purpose**: Writes configuration tables for the payload or OS.
**Key Functions**:
- `bs_write_tables()`: Calls `write_tables()` to generate system tables.
**Notes**: Tables include ACPI, SMBIOS, and other system configuration
data.
### BS_PAYLOAD_LOAD
**Purpose**: Loads the payload into memory.
**Key Functions**:
- `bs_payload_load()`: Calls `payload_load()` to load the payload.
**Notes**: The payload could be a bootloader, an operating system kernel,
or a firmware utility.
### BS_PAYLOAD_BOOT
**Purpose**: Final state that boots the loaded payload.
**Key Functions**:
- `bs_payload_boot()`: Calls `payload_run()` to execute the payload.
**Notes**: After successful execution, control is transferred to the
payload and does not return to coreboot. If execution returns (which
indicates an error), a boot failure message is printed.
## Driving the State Machine
The state machine is driven by the `main()` function in
`src/lib/hardwaremain.c`. After initial setup (like initializing the
console and CBMEM), it calls `bs_walk_state_machine()`.
`bs_walk_state_machine()` loops through the defined boot states:
1. It identifies the current state.
2. Runs all `BS_ON_ENTRY` callbacks for that state.
3. Executes the state's specific function (e.g., `bs_dev_enumerate()`).
4. Runs all `BS_ON_EXIT` callbacks for that state.
5. Transitions to the next state returned by the state function.
This loop continues until the final state (`BS_PAYLOAD_BOOT` or
`BS_OS_RESUME`) transfers control away from coreboot.
## External Functions (Public API)
The bootstate machine provides several functions in
`src/include/bootstate.h` for interacting with states:
### Callback Registration
```c
int boot_state_sched_on_entry(struct boot_state_callback *bscb, boot_state_t state_id);
```
Schedules a callback to run when entering a state (`BS_ON_ENTRY`).
```c
int boot_state_sched_on_exit(struct boot_state_callback *bscb, boot_state_t state_id);
```
Schedules a callback to run when exiting a state (`BS_ON_EXIT`).
### State Transition Control
```c
int boot_state_block(boot_state_t state, boot_state_sequence_t seq);
```
Blocks a state transition from occurring after the specified sequence
(entry or exit callbacks). The transition will pause until the block is
removed.
```c
int boot_state_unblock(boot_state_t state, boot_state_sequence_t seq);
```
Removes a previously set block on a state transition.
### Static Callback Registration
For registering callbacks at compile time, use the `BOOT_STATE_INIT_ENTRY`
macro defined in `src/include/bootstate.h`:
```c
BOOT_STATE_INIT_ENTRY(state, when, func, arg)
```
This macro creates a static entry in a special section (`.bs_init`) of
the binary. These entries are processed early in `main()` by
`boot_state_schedule_static_entries()` to register the callbacks before
the state machine starts running.
## Configuration Options
The bootstate machine behavior can be modified through Kconfig options:
### DEBUG_BOOT_STATE
```
config DEBUG_BOOT_STATE
bool "Debug boot state machine"
default n
help
Control debugging of the boot state machine. When selected displays
the state boundaries in ramstage.
```
When enabled, this option causes the bootstate machine to output
debugging information via `printk`, including:
- State transition notifications (`Entering/Exiting <state> state.`)
- Callback execution details (address, source location, execution time)
- Timing information for state execution phases (entry, run, exit)
## Examples
### Adding a New Bootstate Callback
To register a function to be called when entering a specific state using
the static registration method:
```c
// Function to be called
static void my_init_function(void *arg)
{
// Initialization code
printk(BIOS_DEBUG, "My initialization running...\n");
}
// Register the callback at compile time
BOOT_STATE_INIT_ENTRY(BS_DEV_INIT, BS_ON_ENTRY, my_init_function, NULL);
```
### Runtime Callback Registration
For dynamic callback registration during runtime (e.g., within another
callback or state function):
```c
static void runtime_init(void *arg)
{
// Do something
}
void register_my_callbacks(void)
{
// Allocate or define a static callback structure
static struct boot_state_callback bscb = {
.callback = runtime_init,
.arg = NULL,
// .location is automatically handled if DEBUG_BOOT_STATE=y
};
// Schedule it
boot_state_sched_on_entry(&bscb, BS_DEV_ENABLE);
}
```
### Blocking State Transition
To temporarily block a state from progressing until a condition is met,
often used with timers:
```c
#include <timer.h> // Required for timer functions
static void wait_for_device(void *arg)
{
if (!device_is_ready()) {
// Block the transition *after* BS_DEV_INIT exits
boot_state_block(BS_DEV_INIT, BS_ON_EXIT);
// Schedule a function to check again later (e.g., after 100us)
// Assume schedule_timer exists and works appropriately
schedule_timer(check_device_ready, NULL, 100);
}
}
static void check_device_ready(void *arg)
{
if (device_is_ready()) {
// Device is ready, unblock the transition
boot_state_unblock(BS_DEV_INIT, BS_ON_EXIT);
} else {
// Still not ready, check again later
schedule_timer(check_device_ready, NULL, 100);
}
}
// Register the initial check to run when entering BS_DEV_INIT
BOOT_STATE_INIT_ENTRY(BS_DEV_INIT, BS_ON_ENTRY, wait_for_device, NULL);
```
## Best Practices
### When Working with Bootstates
1. **Choose the appropriate state**: Register callbacks at the earliest
state where all dependencies are guaranteed to be initialized, but no
earlier. Check the state descriptions and the functions called by
each state function (`bs_*`) in `hardwaremain.c`.
2. **Keep callbacks focused**: Each callback should perform a specific,
related task and avoid complex operations that might significantly
delay the boot process.
3. **Consider dependencies carefully**: Ensure any hardware, data
structures, or other resources your callback needs are available and
initialized at the chosen state and sequence (`BS_ON_ENTRY` vs.
`BS_ON_EXIT`).
4. **Do not rely on callback order**: Remember that the execution order
of callbacks within the same state and sequence is not guaranteed.
Callbacks should be self-contained and not depend on side effects from
other callbacks that might run before or after them in the same phase.
5. **Use blocking sparingly**: The blocking mechanism is powerful for
synchronization but can complicate the boot flow and make debugging
harder if overused. Always ensure a corresponding `boot_state_unblock`
call will eventually run.
6. **Leverage compile-time registration**: Prefer using
`BOOT_STATE_INIT_ENTRY` for callbacks whenever possible. It makes the
registration explicit and easier to find. Runtime registration is
necessary only when the need for the callback is determined dynamically.
7. **Debug with timestamps and `DEBUG_BOOT_STATE`**: Use the timestamp API
(`timestamp_add_now()`) and enable `DEBUG_BOOT_STATE` to measure
callback execution time, identify bottlenecks, and understand the
flow during development.
8. **Document state-specific behavior**: When adding callbacks, add
comments explaining why they are placed in a particular state and
sequence.
9. **Be careful with late states**: Avoid registering non-essential
callbacks in `BS_PAYLOAD_BOOT` or `BS_OS_RESUME`. Callbacks on
`BS_ON_EXIT` for these states are disallowed by compile-time asserts,
as coreboot is about to transfer control.
## Related Documentation
- [Boot Stages in coreboot](https://doc.coreboot.org/getting_started/architecture.html):
Overview of all coreboot boot stages.
## References
- `src/include/bootstate.h`: Public API definitions (callbacks, enums,
scheduling/blocking functions, static registration macro).
- `src/lib/hardwaremain.c`: Internal implementation (state machine driver,
state definitions, state functions).
- `src/ec/google/wilco/chip.c`: Example of bootstate callback usage.
- `src/mainboard/prodrive/hermes/mainboard.c`: Examples of mainboard-specific
bootstate callbacks.

View file

@ -35,8 +35,24 @@ One can split the rmodules in two different kinds:
1. coreboot stages (postcar, ramstage)
2. simple binaries (smm, smmstub, sipi\_vector)
They are actually handled the same by the build system and only differ
in the fact, that they are either coreboot stages or they are not.
There is one important difference in how they are handled:
The simple binaries are compiled into rmodules the same as coreboot
stages are, but the simple binaries are always directly linked to a
stage. Since rmodules are ELF files as well, we can easily link them
to the stages in which we need them (usually postcar or ramstage).
So they are not really separate modules anymore, but still retain
the ability to accept rmodule\_parameters.
Since the simple binaries are usually very small, linking them directly
into the stage (e.g. ramstage or postcar) avoids having to fetch them
from CBFS and running all that code to fetch a few hundred bytes of
code. So the build system handles them as follows:
1. create rmodule (which is an ELF file) from source files
2. remove all the ELF headers and sections that are not loadable using
`objcopy -O binary`
3. from this, create an object file, which usually has the self invented
.manual file extension, which can be linked to the appropriate stage
4. add the generated .manual file as "source" file to the stage we want
to link it to
In the end the ELF files will have three different ELF sections,
which are all created by the rmodtool.

View file

@ -0,0 +1,910 @@
# coreboot Timers, Stopwatch, Delays, and Associated Callbacks
## Introduction
coreboot provides several mechanisms for handling time, including
high-precision stopwatches for profiling, simple delay functions for
hardware timing, and a monotonic timer system that forms the foundation
for these features. It also supports scheduling timer callbacks for
deferred execution. These tools are crucial for performance
optimization, debugging, ensuring proper hardware timing, and managing
asynchronous events during the boot process.
This document describes the core monotonic timer, the delay functions
(`udelay`, `mdelay`, `delay`), the stopwatch API (`struct stopwatch`),
and the timer callback mechanism.
## Architecture Overview
The timing facilities are layered:
- **Platform Timer:** Hardware-specific implementations provide a raw
time source (e.g., LAPIC timer, Time Base register). These are often
abstracted by `timer_monotonic_get()`.
- **Monotonic Timer:** (`src/include/timer.h`, `src/lib/timer.c`)
Provides a consistent time source (`struct mono_time`) counting
microseconds since timer initialization. Requires
`CONFIG(HAVE_MONOTONIC_TIMER)`.
- **Delay Functions:** (`src/include/delay.h`, `src/lib/delay.c`,
`src/lib/timer.c`) Simple blocking delays (`udelay`, `mdelay`,
`delay`). The generic `udelay` uses the stopwatch API if yielding via
`thread_yield_microseconds()` is not performed.
- **Stopwatch API:** (`src/include/timer.h`) A lightweight wrapper
around the monotonic timer for measuring durations and handling
timeouts (`struct stopwatch`,`wait_us`,`wait_ms`).
- **Timer Callbacks:** (`src/include/timer.h`) Allows scheduling
functions to be called after a specified delay
(`struct timeout_callback`, `timer_sched_callback()`, `timers_run()`).
These APIs are generally designed to be thread-safe and usable across
different boot stages.
## Core Monotonic Timer
The foundation is the monotonic timer, enabled by
`CONFIG(HAVE_MONOTONIC_TIMER)`. It provides a time source that
continuously increases from an arbitrary starting point (usually near
timer initialization).
### Data Structures
#### struct mono_time
```c
struct mono_time {
uint64_t microseconds; // Time in microseconds since timer init
};
```
Represents a point in monotonic time. Direct field access outside core
timer code is discouraged; use helper functions.
### API Functions
#### timer_monotonic_get
```c
void timer_monotonic_get(struct mono_time *mt);
```
Retrieves the current monotonic time.
**Parameters:**
- `mt`: Pointer to a `struct mono_time` to store the current time.
**Preconditions:**
- `CONFIG(HAVE_MONOTONIC_TIMER)` must be enabled.
- The underlying platform timer must be functional. Platform
implementations may require an `init_timer()` call.
**Postconditions:**
- `mt` contains the current monotonic time in microseconds.
**Note:** If `CONFIG(HAVE_MONOTONIC_TIMER)` is *not* enabled, functions
relying on it (like stopwatch functions) will generally fall back to
basic behavior (e.g., returning 0 durations, immediate expiration
checks).
#### init_timer
```c
void init_timer(void);
```
Platform-specific timer initialization. The generic version in
`src/lib/timer.c` is a weak empty function
`__weak void init_timer(void) { /* do nothing */ }`. Platforms needing
explicit timer setup (e.g., configuring frequency, enabling the
counter) must provide their own strong implementation. Check platform
code (`src/cpu/`, `src/soc/`) for details.
#### `mono_time` Helper Functions
`src/include/timer.h` also provides several inline helper functions for
manipulating `struct mono_time` values:
- `mono_time_set_usecs()`, `mono_time_set_msecs()`: Set time.
- `mono_time_add_usecs()`, `mono_time_add_msecs()`: Add duration.
- `mono_time_cmp()`: Compare two times.
- `mono_time_after()`, `mono_time_before()`: Check time ordering.
- `mono_time_diff_microseconds()`: Calculate difference between two
times.
Refer to `src/include/timer.h` for their exact definitions.
## Delay Functions
coreboot provides simple functions for introducing delays.
### udelay
```c
void udelay(unsigned int usecs);
```
Delays execution for *at least* the specified number of microseconds.
**Parameters:**
- `usecs`: Number of microseconds to delay.
**Implementation Notes:**
- The generic implementation in `src/lib/timer.c` first attempts to
yield using `thread_yield_microseconds()` if `CONFIG(HAS_THREADS)` is
enabled. If yielding handles the required delay (function returns 0),
`udelay` returns immediately, allowing other threads to run.
- If `thread_yield_microseconds()` does not handle the delay (returns
non-zero), or if threading is disabled, the generic `udelay` falls
back to a busy-wait using the stopwatch API
(`stopwatch_init_usecs_expire()` and
`stopwatch_wait_until_expired()`).
- Architecture-specific implementations (e.g., in `src/arch/`) may
override the generic one for better precision or efficiency.
- Adds 1 microsecond internally to ensure the delay is *at least* the
requested duration.
**Preconditions:**
- If relying on the stopwatch fallback,
`CONFIG(HAVE_MONOTONIC_TIMER)` is needed.
- Underlying timer (if used) must be initialized (potentially via a
platform `init_timer()`).
- The delay value should be reasonable (overly large values might cause
issues or unexpected behavior depending on the implementation).
**Example:**
```c
#include <delay.h>
// Wait for 100 microseconds
udelay(100);
```
### mdelay
```c
void mdelay(unsigned int msecs);
```
Delays execution for *at least* the specified number of milliseconds.
**Parameters:**
- `msecs`: Number of milliseconds to delay.
**Implementation Notes:**
- The generic implementation in `src/lib/delay.c` simply calls
`udelay(1000)` in a loop `msecs` times.
- Therefore, it inherits the behavior of `udelay`, including the attempt
to yield first if `udelay` supports it.
**Preconditions:**
- Same as `udelay`.
**Example:**
```c
#include <delay.h>
// Wait for 50 milliseconds
mdelay(50);
```
### delay
```c
void delay(unsigned int secs);
```
Delays execution for *at least* the specified number of seconds.
**Parameters:**
- `secs`: Number of seconds to delay.
**Implementation Notes:**
- The generic implementation in `src/lib/delay.c` simply calls
`mdelay(1000)` in a loop `secs` times.
- Inherits the behavior of `mdelay` and `udelay`.
**Preconditions:**
- Same as `udelay`.
**Example:**
```c
#include <delay.h>
// Wait for 2 seconds
delay(2);
```
## Stopwatch API
The stopwatch API provides a convenient way to measure time durations
and implement timeouts based on the monotonic timer.
### Data Structures
#### struct stopwatch
```c
#include <timer.h> // For struct stopwatch and struct mono_time
struct stopwatch {
struct mono_time start; // Time when stopwatch was started or initialized
struct mono_time current; // Time when stopwatch was last ticked
struct mono_time expires; // Expiration time for timeout operations
};
```
Holds the state for a stopwatch instance.
### API Functions
#### Initialization Functions
##### stopwatch_init
```c
#include <timer.h>
static inline void stopwatch_init(struct stopwatch *sw);
```
Initializes a stopwatch structure. `start`, `current`, and `expires` are
all set to the current monotonic time. Use this when you only need to
measure elapsed duration from initialization.
**Parameters:**
- `sw`: Pointer to the stopwatch structure to initialize.
**Preconditions:**
- `sw` must point to valid memory.
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled for meaningful
timing.
**Postconditions:**
- The stopwatch is initialized.
##### stopwatch_init_usecs_expire
```c
#include <timer.h>
static inline void stopwatch_init_usecs_expire(struct stopwatch *sw, uint64_t us);
```
Initializes a stopwatch and sets an expiration time `us` microseconds
from now.
**Parameters:**
- `sw`: Pointer to the stopwatch structure.
- `us`: Timeout duration in microseconds.
**Preconditions:**
- `sw` must point to valid memory.
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
**Postconditions:**
- The stopwatch is initialized, and `expires` is set `us` microseconds
after `start`.
##### stopwatch_init_msecs_expire
```c
#include <timer.h>
static inline void stopwatch_init_msecs_expire(struct stopwatch *sw, uint64_t ms);
```
Initializes a stopwatch and sets an expiration time `ms` milliseconds
from now.
**Parameters:**
- `sw`: Pointer to the stopwatch structure.
- `ms`: Timeout duration in milliseconds.
**Preconditions:**
- `sw` must point to valid memory.
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
**Postconditions:**
- The stopwatch is initialized, and `expires` is set `ms` milliseconds
after `start`.
#### Time Measurement Functions
##### stopwatch_tick
```c
#include <timer.h>
static inline void stopwatch_tick(struct stopwatch *sw);
```
Updates the `current` time field in the stopwatch structure to the
current monotonic time. This is often called implicitly by other
stopwatch functions like `stopwatch_expired()` and
`stopwatch_duration_usecs()`.
**Parameters:**
- `sw`: Pointer to the stopwatch structure.
**Preconditions:**
- The stopwatch must be initialized.
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
##### stopwatch_expired
```c
#include <timer.h>
static inline int stopwatch_expired(struct stopwatch *sw);
```
Checks if the stopwatch's expiration time (`expires`) has passed. It
implicitly calls `stopwatch_tick()` to get the current time for
comparison.
**Parameters:**
- `sw`: Pointer to the stopwatch structure.
**Returns:**
- Non-zero (true) if `current` time >= `expires` time.
- Zero (false) otherwise.
**Preconditions:**
- The stopwatch must be initialized (preferably with an expiration
time).
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
##### stopwatch_wait_until_expired
```c
#include <timer.h>
static inline void stopwatch_wait_until_expired(struct stopwatch *sw);
```
Blocks (busy-waits) until the stopwatch expires by repeatedly calling
`stopwatch_expired()`.
**Parameters:**
- `sw`: Pointer to the stopwatch structure.
**Preconditions:**
- The stopwatch must be initialized with an expiration time.
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
**Postconditions:**
- The function returns only after the stopwatch has expired.
#### Duration Measurement Functions
##### stopwatch_duration_usecs
```c
#include <timer.h>
static inline int64_t stopwatch_duration_usecs(struct stopwatch *sw);
```
Returns the elapsed time in microseconds between `start` and `current`.
If `current` hasn't been updated since `stopwatch_init`, it implicitly
calls `stopwatch_tick()` first.
**Parameters:**
- `sw`: Pointer to the stopwatch structure.
**Returns:**
- Elapsed time in microseconds (`current` - `start`).
**Preconditions:**
- The stopwatch must be initialized.
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled for a meaningful
duration.
##### stopwatch_duration_msecs
```c
#include <timer.h>
static inline int64_t stopwatch_duration_msecs(struct stopwatch *sw);
```
Returns the elapsed time in milliseconds since the stopwatch was
started. It calls `stopwatch_duration_usecs()` and divides by 1000.
**Parameters:**
- `sw`: Pointer to the stopwatch structure.
**Returns:**
- Elapsed time in milliseconds.
**Preconditions:**
- The stopwatch must be initialized.
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
### Utility Macros
These macros combine stopwatch initialization and expiration checking with
a user-provided condition.
#### wait_us
```c
#include <timer.h>
#define wait_us(timeout_us, condition) ...
```
Waits until a condition becomes true or a timeout elapses, whichever
comes first. Internally uses a `struct stopwatch`.
**Parameters:**
- `timeout_us`: Timeout duration in microseconds.
- `condition`: A C expression that evaluates to true or false. The loop
continues as long as the condition is false and the timeout has not
expired.
**Returns:**
- 0: If the condition was still false when the timeout expired.
- >0: If the condition became true before the timeout. The return value
is the approximate number of microseconds waited (at least 1).
**Preconditions:**
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
#### wait_ms
```c
#include <timer.h>
#define wait_ms(timeout_ms, condition) ...
```
Similar to `wait_us`, but the timeout is specified in milliseconds.
**Parameters:**
- `timeout_ms`: Timeout duration in milliseconds.
- `condition`: C expression to wait for.
**Returns:**
- 0: If the condition was still false after the timeout.
- >0: If the condition became true before the timeout. The return value
is the approximate number of milliseconds waited (rounded up, at
least 1).
**Preconditions:**
- `CONFIG(HAVE_MONOTONIC_TIMER)` should be enabled.
## Key differences between `mdelay` and `wait_ms`
While both can be used to wait, they serve different purposes:
### Purpose and Use Case
- `mdelay`: Provides an *unconditional* delay for a fixed duration. The
generic implementation attempts to yield to other threads first (if
`CONFIG(HAS_THREADS)` is enabled via `udelay`), but it always waits
for (at least) the specified time, potentially using a busy-wait if
yielding doesn't occur. Primarily used for hardware timing
requirements or pacing operations.
- `wait_ms`: Provides a *conditional* wait. It waits for a specific C
expression (`condition`) to become true, but *only up to* a maximum
timeout duration. Used when polling for a status change or event, with
a safeguard against waiting indefinitely.
### When to Use Which
#### Use `mdelay` when:
- You need a guaranteed minimum delay (e.g., waiting for hardware to
settle after a register write).
- You are implementing a hardware initialization sequence with specific
timing requirements between steps.
- You want a simple pause, potentially allowing other threads to run if
the underlying `udelay` yields.
**Example:**
```c
#include <delay.h>
#include <arch/io.h> // For write_reg hypothetical function
// Initialize hardware with specific timing requirements
write_reg(REG_A, value);
mdelay(10); // Must wait (at least) 10ms after writing REG_A
write_reg(REG_B, another_value);
```
#### Use `wait_ms` when:
- You are waiting for a hardware status bit to change or a condition to
become true.
- You need to implement a timeout for an operation that might fail or
take too long.
- You want to know approximately how long you waited for the condition
to become true (via the return value).
**Example:**
```c
#include <timer.h>
#include <console/console.h>
#include <arch/io.h> // For read_reg hypothetical function
// Wait for hardware to become ready, but not forever
#define STATUS_REG 0x100
#define READY_BIT (1 << 0)
int64_t waited_ms = wait_ms(100, (read_reg(STATUS_REG) & READY_BIT));
if (waited_ms > 0) {
printk(BIOS_INFO, "Hardware ready after ~%lld ms\n", waited_ms);
} else {
printk(BIOS_ERR, "Timeout: Hardware failed to become ready within 100 ms\n");
}
```
### Performance Considerations
- `mdelay`: Generally simpler if the underlying `udelay` performs a
busy-wait. If it yields (`thread_yield_microseconds`), overhead depends
on the scheduler. Always waits for the full duration (approximately).
- `wait_ms`: Involves repeated condition checking and stopwatch
management (`stopwatch_expired`, which calls `timer_monotonic_get`),
adding overhead within the loop. However, it can return early if the
condition becomes true, potentially saving time compared to a fixed
`mdelay`.
### Error Handling / Feedback
- `mdelay`: Provides no feedback. It simply waits.
- `wait_ms`: Returns whether the condition was met within the timeout
and provides the approximate wait time if successful. This allows for
explicit timeout handling.
### Summary
Use `mdelay` for fixed, unconditional delays, potentially allowing
thread yielding. Use `wait_ms` for conditional waits with a timeout and
feedback on success or failure. Choose based on whether you need to poll
for a condition or simply need to pause execution.
## Timer Callbacks
coreboot provides a mechanism to schedule functions (callbacks) to be
executed after a certain time has elapsed. This requires
`CONFIG(TIMER_QUEUE)`.
### Data Structures
#### struct timeout_callback
```c
#include <timer.h>
struct timeout_callback {
void *priv; // Private data for the callback
void (*callback)(struct timeout_callback *tocb); // Function to call
/* Internal use by timer library: */
struct mono_time expiration; // Calculated expiration time
};
```
Represents a scheduled callback. The user initializes `priv` and
`callback`.
### API Functions
#### timer_sched_callback
```c
#include <timer.h>
int timer_sched_callback(struct timeout_callback *tocb, uint64_t us);
```
Schedules a callback function to run after a specified delay.
**Parameters:**
- `tocb`: Pointer to a `struct timeout_callback`. The `priv` and
`callback` fields must be set by the caller. The structure must
persist until the callback runs or is canceled (cancellation not
directly supported by API).
- `us`: Delay in microseconds from the time of this call until the
callback should run.
**Returns:**
- 0: Success.
- <0: Error (e.g., timer queue full, invalid arguments).
**Preconditions:**
- `CONFIG(TIMER_QUEUE)` and `CONFIG(HAVE_MONOTONIC_TIMER)` must be
enabled.
- `tocb` must point to a valid structure with `callback` assigned.
**Postconditions:**
- The callback is added to a queue, to be executed when `timers_run()`
is called after the expiration time.
#### timers_run
```c
#include <timer.h>
int timers_run(void);
```
Checks the timer callback queue and executes any callbacks whose
expiration time has passed. This function needs to be called
periodically from the main execution flow (e.g., in a boot state loop
or idle task) for callbacks to be processed.
**Returns:**
- 1: If callbacks were run or are still pending in the queue.
- 0: If the queue is empty and no callbacks were run.
**Preconditions:**
- `CONFIG(TIMER_QUEUE)` and `CONFIG(HAVE_MONOTONIC_TIMER)` must be
enabled.
**Usage:**
Typically called in loops where deferred work might need processing:
```c
#include <timer.h>
// Example main loop structure
while (some_condition) {
// ... do other work ...
// Process any expired timer callbacks
timers_run();
// ... potentially yield or sleep ...
}
```
## Usage Examples
### Basic Timing Measurement Example
```c
#include <timer.h>
#include <console/console.h>
struct stopwatch sw;
stopwatch_init(&sw);
// ---> Code section to measure start
// ... perform some operations ...
// ---> Code section to measure end
// stopwatch_duration_usecs implicitly ticks the stopwatch if needed
int64_t duration_us = stopwatch_duration_usecs(&sw);
printk(BIOS_INFO, "Operation took %lld microseconds\n", duration_us);
// Or in milliseconds
int64_t duration_ms = stopwatch_duration_msecs(&sw);
printk(BIOS_INFO, "Operation took %lld milliseconds\n", duration_ms);
```
### Timeout Operation (Polling) Example
```c
#include <timer.h>
#include <console/console.h>
#include <stdint.h> // For uint8_t example
// Hypothetical hardware status check
extern uint8_t check_hardware_status(void);
#define HW_READY (1 << 0)
struct stopwatch sw;
// Initialize stopwatch with a 100 millisecond timeout
stopwatch_init_msecs_expire(&sw, 100);
uint8_t status = 0;
while (!(status & HW_READY)) {
status = check_hardware_status();
if (stopwatch_expired(&sw)) {
printk(BIOS_ERR, "Operation timed out waiting for HW_READY\n");
// Handle timeout error...
status = 0; // Indicate failure perhaps
break;
}
// Optional: Add a small delay here to avoid busy-spinning the CPU excessively
// udelay(10); // e.g., wait 10us between checks
}
if (status & HW_READY) {
printk(BIOS_DEBUG, "Hardware became ready.\n");
// Continue with operation...
}
```
### Waiting for a Condition (Using `wait_ms`) Example
```c
#include <timer.h>
#include <console/console.h>
#include <stdint.h> // For uint8_t example
// Hypothetical hardware status check
extern uint8_t check_hardware_status(void);
#define HW_READY (1 << 0)
// Wait up to 100ms for the HW_READY bit
int64_t waited_ms = wait_ms(100, (check_hardware_status() & HW_READY));
if (waited_ms > 0) {
printk(BIOS_INFO, "Condition met: HW_READY asserted after ~%lld ms\n", waited_ms);
// Continue...
} else {
printk(BIOS_ERR, "Timeout: HW_READY not asserted within 100 ms\n");
// Handle timeout error...
}
```
### Scheduling a Timer Callback Example
```c
#include <timer.h>
#include <console/console.h>
// Data structure for our callback context
struct my_callback_data {
int counter;
const char *message;
};
// The callback function
static void my_callback_handler(struct timeout_callback *tocb)
{
struct my_callback_data *data = tocb->priv;
printk(BIOS_INFO, "Callback executed! Message: %s, Counter: %d\n",
data->message, data->counter);
// Note: 'tocb' can be reused here to reschedule if needed,
// or the memory it points to can be freed if dynamically allocated.
}
// Somewhere in initialization code:
static struct timeout_callback my_timer;
static struct my_callback_data my_data;
void schedule_my_task(void)
{
my_data.counter = 42;
my_data.message = "Hello from timer";
my_timer.priv = &my_data;
my_timer.callback = my_callback_handler;
// Schedule the callback to run after 500 milliseconds (500,000 us)
int rc = timer_sched_callback(&my_timer, 500 * 1000);
if (rc == 0) {
printk(BIOS_DEBUG, "Scheduled my_callback_handler successfully.\n");
} else {
printk(BIOS_ERR, "Failed to schedule callback!\n");
}
}
// Remember that timers_run() must be called periodically elsewhere
// for the callback to actually execute after the delay.
```
## Best Practices
1. **Enable Monotonic Timer:** For accurate timing and stopwatch
functionality, ensure `CONFIG(HAVE_MONOTONIC_TIMER)` is enabled and a
suitable platform timer is configured.
2. **Minimize Stopwatch Overhead:** While lightweight, frequent calls,
especially `timer_monotonic_get()` implicitly called by stopwatch
functions, can add up. Measure larger, significant code blocks rather
than tiny ones in tight loops unless absolutely necessary.
3. **Use Appropriate Time Units:** Choose `usecs` or `msecs` variants
based on the scale of time you are dealing with.
4. **Handle Timeouts Gracefully:** When using expiration or
`wait_ms`/`wait_us`, always check the result and handle the timeout
case appropriately. Don't assume success.
5. **Process Timer Callbacks:** If using `timer_sched_callback`, ensure
`timers_run()` is called regularly in your main processing loops or
idle states.
6. **Avoid `mdelay` for Polling:** Prefer `wait_ms` or manual polling
with `stopwatch_expired` when waiting for conditions, as `mdelay`
offers no timeout handling or feedback.
7. **Consider Platform Accuracy:** Timer resolution and accuracy vary
between platforms. Don't assume microsecond precision unless verified
for the target hardware.
## Limitations
1. **Monotonic Timer Dependence:** Stopwatch and timer callbacks rely
heavily on `CONFIG(HAVE_MONOTONIC_TIMER)`. Without it, their
behavior is limited.
2. **Timer Resolution:** Accuracy is limited by the underlying platform
timer's resolution and the frequency of `timer_monotonic_get()`
updates internally.
3. **64-bit Microsecond Counter:** While large, the
`uint64_t microseconds` counter will eventually wrap around
(after ~584,000 years), though this is not a practical concern for
boot times. More relevant is the potential rollover of the
*underlying hardware counter* between `timer_monotonic_get` calls,
which the implementation must handle correctly (typically ok for
intervals up to several seconds).
4. **Busy Waiting:** `stopwatch_wait_until_expired` and the internal
loops of `wait_us`/`wait_ms` (and potentially the fallback in
`udelay`/`mdelay`) perform busy-waits, consuming CPU cycles. Consider
alternatives like interrupt-driven timers or yielding
(`thread_yield_microseconds`) if power consumption or concurrency is
critical.
5. **Callback Queue Size:** The timer callback queue has a fixed size
defined by `CONFIG(TIMER_QUEUE_SIZE)`, limiting the number of pending
callbacks.
## Troubleshooting
Common issues and solutions:
1. **Inaccurate Timing / Durations are Zero:**
- Verify `CONFIG(HAVE_MONOTONIC_TIMER)` is enabled.
- Check if a platform-specific `init_timer()` is required and being
called.
- Ensure the platform timer frequency is correctly configured.
- Check for potential timer hardware issues or conflicts.
2. **Timeouts Not Working / `wait_ms` Never Returns > 0:**
- Verify the timeout value is appropriate (not too short).
- Double-check the `condition` logic in `wait_ms`/`wait_us`. Is it
actually capable of becoming true?
- Ensure the stopwatch (`sw` or the internal one in `wait_ms`) is
properly initialized before the check loop.
- Confirm `CONFIG(HAVE_MONOTONIC_TIMER)` is enabled.
3. **Timer Callbacks Not Running:**
- Verify `CONFIG(TIMER_QUEUE)` is enabled.
- Ensure `timer_sched_callback()` returned success (0).
- **Crucially:** Check that `timers_run()` is being called
periodically in a suitable loop after the callback was scheduled.
- Make sure the `struct timeout_callback` structure persists in memory
until the callback runs.
4. **Performance Impact:**
- Reduce frequency of stopwatch checks or `wait_ms`/`wait_us` calls if
possible.
- Measure larger code blocks.
- Investigate if the underlying `udelay` implementation is
busy-waiting excessively; yielding (`thread_yield_microseconds`)
might be preferable if available and appropriate.
## Platform-Specific Considerations
The core APIs are generic, but the underlying implementation relies on
platform code:
- **Timer Source:** Platforms implement `timer_monotonic_get` (often
weakly linked) or provide the necessary hooks for it, using hardware
like the APIC timer (x86), Time Base (PPC), architectural timers
(ARM), etc.
- **`init_timer()`:** Platforms may need a custom `init_timer` to set up
clocks, dividers, or enable the timer hardware.
- **`udelay`:** Platforms might provide optimized `udelay`
implementations.
Refer to the documentation and code within specific `src/soc/`,
`src/cpu/`, or `src/arch/` directories for platform details.
## References
- `src/include/timer.h`: Monotonic timer, stopwatch, and callback
declarations.
- `src/include/delay.h`: `udelay`, `mdelay`, `delay` declarations.
- `src/lib/timer.c`: Generic `udelay` (using stopwatch/yield), weak
`init_timer`.
- `src/lib/delay.c`: Generic `mdelay` and `delay` implementations
(calling `udelay`).
- `src/lib/hardwaremain.c`: Example usage of `timers_run()` in boot
state machine.
- Platform timer implementations: Search for `timer_monotonic_get` or
`init_timer` in `src/cpu/`, `src/soc/`, `src/arch/` directories
(e.g., `src/cpu/x86/lapic/apic_timer.c`,
`src/arch/arm64/timer.c`).

View file

@ -0,0 +1,310 @@
# coreboot Threads
## Thread Management
coreboot provides a cooperative threading system that allows for
concurrent execution of tasks during the boot process. The thread API is
particularly useful for implementing asynchronous operations and
managing hardware initialization sequences.
### Thread Creation and Management
#### thread_run
```c
int thread_run(struct thread_handle *handle, enum cb_err (*func)(void *), void *arg)
```
Creates and starts a new thread to execute the specified function.
**Parameters:**
- `handle`: Pointer to a thread handle structure to track thread state
(Note: `struct thread_handle` is an opaque structure used by the API
to manage the thread's state.)
- `func`: Function to execute in the new thread
- `arg`: Argument to pass to the function
**Returns:**
- 0 on success
- < 0 on failure
**Example:**
```c
struct thread_handle th;
enum cb_err thread_func(void *arg) {
// Thread work here
return CB_SUCCESS;
}
if (thread_run(&th, thread_func, NULL) < 0) {
printk(BIOS_ERR, "Failed to create thread\n");
} else {
// Wait for the thread to complete and check its status
enum cb_err err = thread_join(&th);
if (err != CB_SUCCESS) {
printk(BIOS_ERR, "Thread failed with error %d\n", err);
}
}
```
#### thread_run_until
```c
int thread_run_until(struct thread_handle *handle, enum cb_err (*func)(void *), void *arg,
boot_state_t state, boot_state_sequence_t seq)
```
Creates a thread that blocks boot state transitions until completion.
**Parameters:**
- `handle`: Pointer to a thread handle structure
- `func`: Function to execute
- `arg`: Argument to pass to the function
- `state`: Boot state to block
- `seq`: Boot state sequence to block
**Returns:**
- 0 on success
- < 0 on failure
**Example:**
```c
struct thread_handle th;
enum cb_err init_func(void *arg) {
// Hardware initialization
return CB_SUCCESS;
}
// Block BS_DEV_ENABLE until initialization completes
thread_run_until(&th, init_func, NULL, BS_DEV_ENABLE, 0);
```
### Thread Synchronization
#### thread_join
```c
enum cb_err thread_join(struct thread_handle *handle)
```
Waits for a thread to complete and returns its error code.
**Parameters:**
- `handle`: Thread handle to wait for
**Returns:**
- Thread's error code (e.g., `CB_SUCCESS`, `CB_ERR`). See
`src/include/cb_err.h` for details.
**Example:**
```c
struct thread_handle th;
// ... create thread ...
enum cb_err err = thread_join(&th);
if (err != CB_SUCCESS) {
printk(BIOS_ERR, "Thread failed with error %d\n", err);
}
```
### Thread Yielding
Yielding is crucial in a cooperative multitasking system like
coreboot's. Threads must explicitly yield control using `thread_yield`
or `thread_yield_microseconds` to allow other threads to run. Failure to
yield can lead to a single thread monopolizing the CPU, preventing other
tasks from executing.
#### thread_yield
```c
int thread_yield(void)
```
Yields the current thread's execution to allow other threads to run.
**Returns:**
- 0 on success
- < 0 if thread cannot yield
**Example:**
```c
while (!condition) {
if (thread_yield() < 0) {
printk(BIOS_ERR, "Failed to yield thread\n");
break;
}
}
```
#### thread_yield_microseconds
```c
int thread_yield_microseconds(unsigned int microsecs)
```
Yields the current thread for a specified number of microseconds.
**Parameters:**
- `microsecs`: Number of microseconds to yield
**Returns:**
- 0 on success
- < 0 if thread cannot yield
**Example:**
```c
// Wait for 100 microseconds
if (thread_yield_microseconds(100) < 0) {
printk(BIOS_ERR, "Failed to yield thread\n");
}
```
### Thread Cooperation Control
#### thread_coop_enable
```c
void thread_coop_enable(void)
```
Enables cooperative behavior for the current thread.
**Example:**
```c
thread_coop_enable(); // Allow thread to yield
```
#### thread_coop_disable
```c
void thread_coop_disable(void)
```
Disables cooperative behavior for the current thread.
**Example:**
```c
thread_coop_disable(); // Prevent thread from yielding
```
### Thread Mutexes
#### thread_mutex_lock
```c
void thread_mutex_lock(struct thread_mutex *mutex)
```
Acquires a mutex lock, waiting if necessary.
**Parameters:**
- `mutex`: Mutex to lock
**Example:**
```c
struct thread_mutex mtx = THREAD_MUTEX_INITIALIZER; // Or = { .locked = false };
thread_mutex_lock(&mtx);
// Critical section
thread_mutex_unlock(&mtx);
```
#### thread_mutex_unlock
```c
void thread_mutex_unlock(struct thread_mutex *mutex)
```
Releases a mutex lock.
**Parameters:**
- `mutex`: Mutex to unlock
## Best Practices
1. **Thread Safety**:
- Use mutexes to protect shared resources
- Be careful with global variables in threaded code
- Consider thread cooperation when implementing critical sections
2. **Resource Management**:
- Always join threads that you create using `thread_run` to check
their completion status and clean up resources. Threads started
with `thread_run_until` are implicitly managed by the boot state
machine and typically do not require explicit joining.
- Consistently check return values from thread creation and operation
functions (like `thread_run`, `thread_yield`, `thread_join`) to
detect errors early.
- Clean up resources allocated or used within thread functions before
they exit.
3. **Performance Considerations**:
- Use thread_yield_microseconds for precise timing
- Minimize time spent in critical sections
- Consider using thread_run_until for hardware initialization
4. **Error Handling**:
- Check thread creation and operation return values (as noted in
Resource Management).
- Implement proper error handling within thread functions, returning
appropriate `cb_err` values.
- Use `thread_join` (for `thread_run` threads) to check the final
completion status.
## Common Patterns
### Hardware Initialization
```c
struct thread_handle init_th;
enum cb_err init_hardware(void *arg) {
// Initialize hardware
if (hardware_init() != 0)
return CB_ERR;
return CB_SUCCESS;
}
// Run initialization in a thread
thread_run_until(&init_th, init_hardware, NULL, BS_DEV_ENABLE, 0);
```
### Asynchronous Operation
```c
struct thread_handle async_th;
enum cb_err async_operation(void *arg) {
// Perform async operation
while (!operation_complete()) {
if (thread_yield() < 0)
return CB_ERR;
}
return CB_SUCCESS;
}
// Start async operation
thread_run(&async_th, async_operation, NULL);
```
### Critical Section Protection
```c
struct thread_mutex resource_mtx = { .locked = false };
void access_shared_resource(void) {
thread_mutex_lock(&resource_mtx);
// Access shared resource
thread_mutex_unlock(&resource_mtx);
}
```
## Limitations
1. The thread system is cooperative, not preemptive.
2. Threads must explicitly yield to allow other threads to run.
3. Thread operations are typically only available after RAM
initialization (in ramstage and later). Check specific environment
constraints if unsure.
4. Thread count is limited by the `CONFIG_NUM_THREADS` Kconfig option.
5. Thread stack size is fixed by the `CONFIG_STACK_SIZE` Kconfig option.

View file

@ -2,175 +2,408 @@
## Introduction
The aim of the timestamp library is to make it easier for different boards
to save timestamps in cbmem / stash (until cbmem is brought up) by
providing a simple API to initialize, add and sync timestamps. In order
to make the timestamps persistent and accessible from the kernel, we
need to ensure that all the saved timestamps end up in cbmem under
The aim of the timestamp library is to make it easier for different
boards to save timestamps in cbmem / stash (until cbmem is brought up)
by providing a simple API to initialize, add, and sync timestamps. In
order to make the timestamps persistent and accessible from the kernel,
we need to ensure that all the saved timestamps end up in cbmem under
the CBMEM_ID_TIMESTAMP tag. However, until the cbmem area is available,
the timestamps can be saved to a SoC-defined \_timestamp region or in a
local stage-specific stash. The work of identifying the right location for
storing timestamps is done by the library and is not exposed to the user.
the timestamps can be saved to a SoC-defined `_timestamp` region if one
is defined in the board's `memlayout.ld`. The work of identifying the
right location for storing timestamps is done by the library and is not
exposed to the user.
Timestamps in coreboot are a critical feature for performance analysis,
debugging, and optimization of the boot process. They provide precise
timing information about various stages and operations during system
initialization, allowing developers to identify bottlenecks and optimize
boot performance. The timestamp system is designed to be lightweight,
accurate, and persistent across different boot stages.
Working of timestamp library from a user perspective can be outlined in
the following steps:
1. Initialize the base time and reset cbmem timestamp area
2. Start adding timestamps
1. Initialize the base time and reset cbmem timestamp area using
`timestamp_init()`.
2. Start adding timestamps using `timestamp_add()` or
`timestamp_add_now()`.
Behind the scenes, the timestamp library takes care of:
1. Identifying the correct location for storing timestamps (cbmem or timestamp
region or local stash).
2. Once cbmem is up, ensure that all timestamps are synced from timestamp
region or local stash into the cbmem area.
3. Add a new cbmem timestamp area based on whether a reset of the cbmem
1. Identifying the correct location for storing timestamps (`_timestamp`
region before cbmem is ready, then cbmem region).
2. Add a new cbmem timestamp area based on whether a reset of the cbmem
timestamp region is required or not.
3. Once cbmem is ready, ensuring that all timestamps are synced from the
`_timestamp` region into the cbmem area.
### Transition from cache to cbmem
To move timestamps from the cache to cbmem (and initialize the cbmem area in
the first place), we use the CBMEM_INIT_HOOK infrastructure of coreboot.
When cbmem is initialized, the hook is called, which creates the area,
copies all timestamps to cbmem and disables the cache.
After such a transition, timestamp_init() must not be run again.
Note that if `CONFIG_COLLECT_TIMESTAMPS` is disabled, all timestamp
functions are implemented as no-ops, and no timestamps will be
collected.
## Data structures used
## Background
The main structure that maintains information about the timestamp cache is:
The timestamp implementation in coreboot has evolved over time to meet
the needs of the firmware development and performance analysis.
Initially designed as a simple timing mechanism, it has grown into a
sophisticated system that:
```c
struct __packed timestamp_cache {
uint16_t cache_state;
struct timestamp_table table;
struct timestamp_entry entries[MAX_TIMESTAMP_CACHE];
};
```
### cache_state
The state of the cache is maintained by `cache_state` attribute which can
be any one of the following:
```c
enum {
TIMESTAMP_CACHE_UNINITIALIZED = 0,
TIMESTAMP_CACHE_INITIALIZED,
TIMESTAMP_CACHE_NOT_NEEDED,
};
```
By default, if the cache is stored in local stash (bss area), then
it will be reset to uninitialized state. However, if the cache is
stored in timestamp region, then it might have garbage in any of the
attributes. Thus, if the timestamp region is being used by any board, it is
initialized to default values by the library.
Once the cache is initialized, its state is set to
`CACHE_INITIALIZED`. Henceforth, the calls to cache i.e. `timestamp_add`
know that the state reflected is valid and timestamps can be directly
saved in the cache.
Once the cbmem area is up (i.e. call to `timestamp_sync_cache_to_cbmem`),
we do not need to store the timestamps in local stash / timestamp area
anymore. Thus, the cache state is set to `CACHE_NOT_NEEDED`, which allows
`timestamp_add` to store all timestamps directly into the cbmem area.
- Tracks boot stages and critical operations
- Supports multiple hardware platforms (x86, ARM, RISC-V)
- Provides persistent storage across boot stages
- Enables post-boot analysis of boot performance
- Integrates with vendor-specific firmware components
### table
## Timestamp Architecture
This field is represented by a structure which provides overall
information about the entries in the timestamp area:
### Transition from cache (`_timestamp` region) to cbmem
```c
struct timestamp_table {
uint64_t base_time;
uint32_t max_entries;
uint32_t num_entries;
struct timestamp_entry entries[0]; /* Variable number of entries */
} __packed;
```
To move timestamps from the early `_timestamp` region to cbmem (and
initialize the cbmem area in the first place), we use the
`CBMEM_READY_HOOK` infrastructure of coreboot.
It indicates the base time for all timestamp entries, maximum number
of entries that can be stored, total number of entries that currently
exist and an entry structure to hold variable number of entries.
When cbmem is initialized (`cbmem_initialize` or `cbmem_recovery`), the
hook calls the `timestamp_reinit` function. This function allocates or
finds the `CBMEM_ID_TIMESTAMP` area in cbmem, copies all timestamps from
the `_timestamp` region (if used) using `timestamp_sync_cache_to_cbmem`,
and updates an internal global pointer (`glob_ts_table`) to point to the
cbmem table. Subsequent calls to `timestamp_add` will then write
directly to cbmem.
After such a transition, `timestamp_init()` must not be run again (it is
asserted to only run in `ENV_ROMSTAGE_OR_BEFORE`).
### entries
### Data structures used
Timestamps are stored using instances of `struct timestamp_table`. A
global pointer, `glob_ts_table`, points to the currently active table,
which is either the `_timestamp` memory region (during early boot) or
the CBMEM area.
The `_timestamp` region acts as an early cache before cbmem is ready.
Its size is determined by `REGION_SIZE(timestamp)` defined in the linker
script (`memlayout.ld`) and dictates the maximum number of entries that
can be stored early on.
For timestamps stored in the cbmem area, a `timestamp_table` is
allocated with space for a fixed number of entries (currently 192)
defined by `MAX_TIMESTAMPS` in `src/lib/timestamp.c`.
This field holds the details of each timestamp entry, up to a maximum
of `MAX_TIMESTAMP_CACHE` which is defined as 16 entries. Each entry is
defined by:
```c
struct timestamp_entry {
uint32_t entry_id;
uint64_t entry_stamp;
uint32_t entry_id;
int64_t entry_stamp;
} __packed;
```
`entry_id` holds the timestamp id corresponding to this entry and
`entry_stamp` holds the actual timestamp.
>>> _Source: `/src/commonlib/include/commonlib/timestamp_serialized.h`_
For timestamps stored in the cbmem area, a `timestamp_table` is allocated
with space for `MAX_TIMESTAMPS` equal to 30. Thus, the cbmem area holds
`base_time`, `max_entries` (which is 30), current number of entries and the
actual entries represented by `timestamp_entry`.
```c
struct timestamp_table {
uint64_t base_time;
uint16_t max_entries;
uint16_t tick_freq_mhz;
uint32_t num_entries;
struct timestamp_entry entries[]; /* Variable number of entries */
} __packed;
```
>>> _Source: `/src/commonlib/include/commonlib/timestamp_serialized.h`_
- `base_time`: Indicates the base time (offset) for all timestamp
entries in this table.
- `max_entries`: Maximum number of entries that can be stored in this
table instance.
- `tick_freq_mhz`: Timestamp tick frequency in MHz. Populated later in
boot.
- `num_entries`: Total number of entries that currently exist in this
table instance.
- `entries`: Array holding the actual timestamp entries.
### Memory Layout
Timestamps are stored in two locations during the boot process:
1. **`_timestamp` Region**: Used during early boot stages (before CBMEM
is available), *if* defined in `memlayout.ld`.
- Located at the `_timestamp` symbol.
- Persists across stage transitions within `ENV_ROMSTAGE_OR_BEFORE`.
- Size determined by `REGION_SIZE(timestamp)` in the linker script,
which limits the number of entries.
2. **CBMEM**: Used after CBMEM is initialized.
- Identified by `CBMEM_ID_TIMESTAMP`.
- Provides persistent storage across warm reboots.
- Supports a fixed maximum number of entries.
- Automatically synchronized from the `_timestamp` region when CBMEM
becomes available via `timestamp_reinit`.
## Function APIs
### timestamp_init
### Core Functions
This function initializes the timestamp cache and should be run as early
as possible. On platforms with SRAM, this might mean in bootblock, on
x86 with its CAR backed memory in romstage, this means romstage before
memory init.
#### timestamp_init
### timestamp_add
```c
void timestamp_init(uint64_t base);
```
>>> _Source: `/src/include/timestamp.h`_
This function accepts from user a timestamp id and time to record in the
timestamp table. It stores the entry in the appropriate table in cbmem
or `_timestamp` region or local stash.
Initializes the timestamp system with a base time. This function sets up
the timestamp cache (`_timestamp` region) and should be run in
bootblock. It must be called once in *one* of the
`ENV_ROMSTAGE_OR_BEFORE` stages. It will fail if no `timestamp` region
is defined in `memlayout.ld`.
Note that platform setup code on x86 or the decompressor on Arm can
measure some timestamps earlier and pass them in to
bootblock_main_with_timestamp().
### timestamp_add_now
#### timestamp_add
This function calls `timestamp_add` with user-provided id and current time.
```c
void timestamp_add(enum timestamp_id id, int64_t ts_time);
```
>>> _Source: `/src/include/timestamp.h`_
Adds a new timestamp with the specified ID and time value. It stores the
timestamp in the currently active table (either `_timestamp` region or
cbmem). The time value must be an absolute time value (typically
obtained from `timestamp_get()`), as it will be adjusted by subtracting
the table's `base_time` before being stored as an entry.
#### timestamp_add_now
```c
void timestamp_add_now(enum timestamp_id id);
```
>>> _Source: `/src/include/timestamp.h`_
Adds a new timestamp with the current time. This function calls
`timestamp_add` with user-provided id and current time obtained from
`timestamp_get()`.
#### timestamp_rescale_table
```c
void timestamp_rescale_table(uint16_t N, uint16_t M);
```
>>> _Source: `/src/include/timestamp.h`_
Applies a scaling factor N/M to all recorded timestamps (including the
`base_time`).
#### get_us_since_boot
```c
uint32_t get_us_since_boot(void);
```
>>> _Source: `/src/include/timestamp.h`_
Returns the time since boot (relative to `base_time`) in microseconds.
Requires `tick_freq_mhz` to be populated.
#### timestamp_get
```c
uint64_t timestamp_get(void);
```
>>> _Source: `/src/include/timestamp.h`_
Returns the current raw timestamp value from the underlying hardware
timer (platform-specific weak implementation).
#### timestamp_tick_freq_mhz
```c
int timestamp_tick_freq_mhz(void);
```
>>> _Source: `/src/include/timestamp.h`_
Returns the timestamp tick frequency in MHz (platform-specific weak
implementation).
### Timestamp IDs
The system uses predefined timestamp IDs to mark various boot stages and
operations. These are organized in ranges:
- 1-500: Miscellaneous coreboot operations (e.g., `TS_POSTCAR_START`,
`TS_DELAY_START`, `TS_READ_UCODE_START`)
- 500-600: Google/ChromeOS specific (e.g., `TS_VBOOT_START`,
`TS_EC_SYNC_START`).
Note many of the existing timestamps here are no longer
Google-specific since many features originally added for Google
vendorcode have since been migrated into general coreboot code.
- 900-940: AMD specific (e.g., `TS_AGESA_INIT_EARLY_START`)
- 940-950: Intel ME specific (e.g., `TS_ME_INFORM_DRAM_START`)
- 950-989: Intel FSP specific (e.g., `TS_FSP_MEMORY_INIT_START`)
- 990-999: Intel ME specific (continued) (e.g., `TS_ME_ROM_START`)
- 1000+: Payload specific
- Depthcharge: 1000-1199
- ChromeOS Hypervisor: 1200-1299
Refer to `src/commonlib/include/commonlib/timestamp_serialized.h` for
the complete list and descriptions.
## Use / Test Cases
The following cases have been considered while designing the timestamp
library. It is important to ensure that any changes made to this library satisfy
each of the following use cases:
The following cases describe the behavior based on the presence of the
`timestamp` region and when cbmem is initialized.
### Case 1: Timestamp Region Exists (Fresh Boot / Resume)
In this case, the library needs to call `timestamp_init` as early as possible to
enable the timestamp cache. Once cbmem is available, the values will be
transferred automatically.
### Case 1: Timestamp Region Exists
All regions are automatically reset on initialization.
This is the standard configuration for collecting early timestamps.
`timestamp_init` must be called in an `ENV_ROMSTAGE_OR_BEFORE` stage to
initialize the `_timestamp` region. When the `CBMEM_READY_HOOK` runs
`timestamp_reinit`, the contents of the `_timestamp` region are copied
to the cbmem table, and subsequent timestamps go directly to cbmem. The
cbmem table is reset on fresh boot or resume.
### Case 2: No timestamp region, fresh boot, cbmem_initialize called after timestamp_init
`timestamp_init` will set up a local cache. cbmem must be initialized before that
cache vanishes - as happens when jumping to the next stage.
### Case 2: No Timestamp Region Defined
### Case 3: No timestamp region, fresh boot, cbmem_initialize called before timestamp_init
If no `timestamp` region is defined in `memlayout.ld`, attempts to call
`timestamp_init` will fail (specifically, `timestamp_cache_get()` will
return NULL). No timestamps can be collected before cbmem is ready.
Timestamps added after `timestamp_reinit` has run (via the
`CBMEM_READY_HOOK`) will be added directly to the cbmem table, but there
will be no `base_time` established from early boot.
This case is not supported right now, just don't call `timestamp_init` after
`cbmem_initialize`. (Patches to make this more robust are welcome.)
### Case 4: No timestamp region, resume, cbmem_initialize called after timestamp_init
### Case 3: Resume
We always reset the cbmem region before using it, so pre-suspend timestamps
will be gone.
On resume (e.g., x86 S3), `timestamp_reinit` is typically called again.
If `ENV_CREATES_CBMEM` is true for the resume path (as it is for x86
S3), a new cbmem table is allocated by `timestamp_alloc_cbmem_table`,
effectively clearing any pre-suspend timestamps. The `_timestamp` region
content (if any) is copied over, but this usually contains stale data
from the previous boot's early stages.
### Case 5: No timestamp region, resume, cbmem_initialize called before timestamp_init
We always reset the cbmem region before using it, so pre-suspend timestamps
will be gone.
## Configuration
### Kconfig Options
- `CONFIG_COLLECT_TIMESTAMPS`: Enable/disable timestamp collection
globally. If disabled, timestamp functions become no-ops.
- `CONFIG_TIMESTAMPS_ON_CONSOLE`: Print timestamps to console during
boot as they are added.
### Memory Layout
Collecting timestamps before cbmem is ready requires an `_timestamp`
region in the memory layout, defined in the `memlayout.ld` linker
script. Depending on the platform, the memory layout can be for the
board, the SOC, or the Architecture. Any of them will typically follow
the following pattern:
```text
#include <memlayout.h>
...
TIMESTAMP(., 0x200)
...
```
The size allocated to this region determines the maximum number of
timestamps that can be stored before cbmem is available.
The cbmem timestamp table (`CBMEM_ID_TIMESTAMP`) has a fixed size,
currently allowing up to 192 entries. This limit is defined by
`MAX_TIMESTAMPS` in `src/lib/timestamp.c`.
### Hardware Considerations
- x86: `timestamp_init` must be called before CAR (Cache-as-RAM) is torn
down if called from bootblock or separate romstage. The library
includes checks (`timestamp_should_run`) to ensure timestamps are only
added by the primary processor during early boot on AP systems.
- ARM: No special considerations noted in the code.
- RISC-V: No special considerations noted in the code.
## Examples
### Initializing Timestamps (in bootblock)
```c
/* In src/mainboard/$(MAINBOARDDIR)/bootblock.c */
#include <timestamp.h>
#include <timer.h> /* For timestamp_get() default implementation */
void bootblock_mainboard_init(void)
{
/* Initialize timestamp region with current time as base. */
timestamp_init(timestamp_get());
/* Add first timestamp */
timestamp_add_now(TS_BOOTBLOCK_START);
/* ... other bootblock code ... */
}
```
Note: `timestamp_get()` here provides the initial base time. Requires
`CONFIG_COLLECT_TIMESTAMPS=y` and a `timestamp` region.
### Adding Custom Timestamps
```c
#include <timestamp.h>
void my_custom_function(void)
{
timestamp_add_now(TS_DEVICE_INITIALIZE); /* Use a relevant ID */
// ... perform initialization ...
timestamp_add_now(TS_DEVICE_DONE); /* Use a relevant ID */
}
```
## Best Practices
1. **Initialization**:
- Enable `CONFIG_COLLECT_TIMESTAMPS` if needed.
- Define a `timestamp` region in `memlayout.ld` if early
timestamps (before cbmem) are required. Ensure it's large enough
for the expected number of early entries.
- Call `timestamp_init()` exactly once in the earliest possible
`ENV_ROMSTAGE_OR_BEFORE` stage (e.g., `bootblock`).
- Use a consistent base time, typically `timestamp_get()`.
2. **Adding Timestamps**:
- Use appropriate predefined timestamp IDs from
`timestamp_serialized.h` whenever possible. Add custom IDs if
necessary, avoiding conflicts.
- Add timestamps for significant operations or stage transitions
using `timestamp_add_now()`.
- Be mindful of the entry limits: the size of the `_timestamp`
region for early timestamps, and the fixed limit for the cbmem
table. Check for "Timestamp table full" errors in the log.
3. **Analysis**:
- Use the `cbmem -t` utility in the OS (if using LinuxBoot/NERF)
to read and display timestamps stored in CBMEM.
- Consider the `tick_freq_mhz` (also available in the `cbmem -t`
output) when converting raw timestamp differences (`entry_stamp`)
to time units. The raw values are offsets from `base_time`.

View file

@ -122,10 +122,8 @@ $ sudo flashrom \
-w coreboot.rom
```
```{eval-rst}
In addition to the information here, please see the
:doc:`../../tutorial/flashing_firmware/index`.
```
<project:../../tutorial/flashing_firmware/index.md>.
### External flashing

View file

@ -130,5 +130,5 @@ facing towards the bottom of the board.
[ASRock H110M-DVS]: https://www.asrock.com/mb/Intel/H110M-DVS%20R2.0/
[MX25L6473E]: http://www.macronix.com/Lists/Datasheet/Attachments/7380/MX25L6473E,%203V,%2064Mb,%20v1.4.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[H110M-DVS manual]: https://web.archive.org/web/20191023230631/http://asrock.pc.cdn.bitgravity.com/Manual/H110M-DVS%20R2.0.pdf

View file

@ -115,10 +115,8 @@ $ sudo flashrom --noverify-all --ifd -i bios -p internal -w coreboot.rom
The use of `--noverify-all` is required since the Management Engine
region is not readable even by the host.
```{eval-rst}
In addition to the information here, please see the
:doc:`../../tutorial/flashing_firmware/index`.
```
<project:../../tutorial/flashing_firmware/index.md>.
## Hardware monitoring and fan control

View file

@ -4,9 +4,7 @@ This page describes how to run coreboot on the [ASRock H81M-HDS].
## Required proprietary blobs
```{eval-rst}
Please see :doc:`../../northbridge/intel/haswell/mrc.bin`.
```
Please see <project:../../northbridge/intel/haswell/mrc.bin.md>.
## Building coreboot
@ -75,9 +73,8 @@ facing towards the bottom of the board.
in coreboot. The `coretemp` driver can still be used for accurate CPU
temperature readings from an OS.
```{eval-rst}
Please also see :doc:`../../northbridge/intel/haswell/known-issues`.
```
Please also see
<project:../../northbridge/intel/haswell/known-issues.md>.
## Untested
@ -129,5 +126,5 @@ Please also see :doc:`../../northbridge/intel/haswell/known-issues`.
[ASRock H81M-HDS]: https://www.asrock.com/mb/Intel/H81M-HDS/
[W25Q32FV]: https://www.winbond.com/resource-files/w25q32fv%20revi%2010202015.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[Board manual]: https://web.archive.org/web/20191231093418/http://asrock.pc.cdn.bitgravity.com/Manual/H81M-HDS.pdf

View file

@ -5,24 +5,24 @@ This page describes how to run coreboot on the [ASRock IMB-1222].
## Technology
```{eval-rst}
+------------+---------------------------------------------------------------+
| CPU | Intel 10th Gen (Comet lake-S) Core Processors (LGA-1200) |
| | CPUs over 80W will be limited due to power design |
+------------+---------------------------------------------------------------+
| DRAM | 2 SO-DIMM slots, DDR4 2933/2666/2400 MHz |
+------------+---------------------------------------------------------------+
| Chipset | Intel Q470E |
+------------+---------------------------------------------------------------+
| Super I/O | Fintek F81966 |
+------------+---------------------------------------------------------------+
| TPM | Infineon SLB 9670VQ2.0 |
+------------+---------------------------------------------------------------+
| Boot | USB, SATA, NVMe |
+------------+---------------------------------------------------------------+
| Power | Laptop Power Supply: |
| | - 12V DC-in (IMB-1222) |
| | - 12V~28V DC-in (IMB-1222-WV) |
+------------+---------------------------------------------------------------+
+---------+---------------------------------------------------------------+
| CPU | | Intel 10th Gen (Comet lake-S) Core Processors (LGA-1200) |
| | | CPUs over 80W will be limited due to power design |
+---------+---------------------------------------------------------------+
| DRAM | 2 SO-DIMM slots, DDR4 2933/2666/2400 MHz |
+---------+---------------------------------------------------------------+
| Chipset | Intel Q470E |
+---------+---------------------------------------------------------------+
| SuperIO | Fintek F81966 |
+---------+---------------------------------------------------------------+
| TPM | Infineon SLB 9670VQ2.0 |
+---------+---------------------------------------------------------------+
| Boot | USB, SATA, NVMe |
+---------+---------------------------------------------------------------+
| Power | | Laptop Power Supply: |
| | | - 12V DC-in (IMB-1222) |
| | | - 12V~28V DC-in (IMB-1222-WV) |
+---------+---------------------------------------------------------------+
```
```text
@ -70,7 +70,7 @@ This page describes how to run coreboot on the [ASRock IMB-1222].
| ALC122 | | LPC
+--------------+ +--------------+
+-----------------------+ +--------------+ | | +------------+
| 2 x COM RS232/422/482 |---| ST3243E |---| Fintek |----| CPU FAN x1 |
| 2 x COM RS232/422/485 |---| ST3243E |---| Fintek |----| CPU FAN x1 |
+-----------------------+ +--------------+ | F81966 | +------------+
+-----------------------+ +--------------+ | SuperIO | +------------+
| 2 x COM RS232 |---| ST3243E |---| |----| NCT 3941SA |
@ -85,6 +85,48 @@ This page describes how to run coreboot on the [ASRock IMB-1222].
This port was created without a schematic/boardview, reverse engineering only.
Feel free to make changes.
## Required proprietary blobs
To build full working image of coreboot, the following blobs are required:
```{eval-rst}
+-----------------+-------------------------------------------+-------------------------+
| Binary file | Apply | Required/Optional |
+=================+===========================================+=========================+
| FSP-M & FSP-S | | Intel Firmware Support Package 2.1 | Required |
| | | 10th Generation Intel® Core™ processors | |
| | | and chipsets (formerly Comet Lake) | |
+-----------------+-------------------------------------------+-------------------------+
| IFD | Intel Flash Descriptor | Required |
+-----------------+-------------------------------------------+-------------------------+
| ME | Intel Management Engine | Required |
+-----------------+-------------------------------------------+-------------------------+
| GBE | Gigabit Ethernet Configuration | | Optional |
| | | | (if LAN2 is enabled) |
+-----------------+-------------------------------------------+-------------------------+
```
### FSP
Intel company provides [Firmware Support Package (2.1)](../../soc/intel/fsp/index.md)
to initialize this generation silicon. Please see this
[document](../../soc/intel/code_development_model/code_development_model.md).
### IFD, ME, GBE
Use the [vendor's firmware] version 1.80 to extract the IFD, ME, GBE blobs from it, according to
the [Intel IFD Binary Extraction Tutorial](../../util/ifdtool/binary_extraction.md).
```bash
wget --tries=5 "https://web.archive.org/web/20250413105432/https://download.asrock.com/IPC/BIOS/IMB-1222(1.80)ROM.zip"
unzip "IMB-1222(1.80)ROM.zip"
ifdtool --platform cnl -x IM12221.80
File IM12221.80 is 33554432 bytes
flashregion_0_flashdescriptor.bin Flash Region 0 (Flash Descriptor): 00000000 - 00000fff
flashregion_2_intel_me.bin Flash Region 2 (Intel ME): 00003000 - 01002fff
flashregion_3_gbe.bin Flash Region 3 (GbE): 00001000 - 00002fff
```
## Building coreboot
The following commands will help quickly configure and build a project for this board:
@ -110,6 +152,8 @@ make
+---------------+------+---------+-----------+
| Windows 10 | V | | |
+---------------+------+---------+-----------+
| Windows 11 | V | | |
+---------------+------+---------+-----------+
| Android 13 | | V | |
+---------------+------+---------+-----------+
```
@ -118,9 +162,12 @@ make
- SeaBIOS (1.16.3);
- edk2 [MrChromebox fork] (uefipayload_2408).
### Additional information
- Ubuntu 22.04 (Linux 6.5.0-15-generic);
- Ubuntu 24.04 (Linux 6.8.0-41-generic);
- Microsoft Windows 10 Pro (10.0.19045.4780, 22H2 2022);
- Microsoft Windows 11 Pro (10.0.26100.3194, 24H2 2024);
- Andoid 13, [Bliss OS] x86_64 (16.9.7, Linux 6.1.112-gloria-xanmod1).
## Flashing coreboot
@ -131,8 +178,8 @@ make
+=====================+==========================+
| Socketed flash | yes |
+---------------------+--------------------------+
| Model | W25Q256JV |
| | MX25L25673G |
| Model | | W25Q256JV |
| | | MX25L25673G |
+---------------------+--------------------------+
| Size | 32 MiB |
+---------------------+--------------------------+
@ -171,7 +218,7 @@ information about this [here](../../tutorial/flashing_firmware/index.md).
- USB 2.0 ports;
- USB 3.2 ports;
- M.2 Key-E 2230 slot for Wireless (PCIe x1, USB 2.0 and CNVi);
- M.2 Key-B 3042/3052 slot for 4G/5G modem (PCIe x1);
- M.2 Key-B 3042/3052 WWAN slot for 4G/5G modem (PCIe x1, USB 3.0);
- M.2 Key-M 2242/2260/2280 for SSD/NVMe (PCIE x4, SATA3);
- LAN1 Intel I225LM/I225V, 10/100/1000/2500 Mbps;
- LAN2 Intel I219LM, 10/100/1000 Mbps;
@ -185,14 +232,14 @@ information about this [here](../../tutorial/flashing_firmware/index.md).
## Unknown/untested
- USB 3.0 in M.2 Key-B 3042/3052 slot (currently disabled);
- eDP/LVDS (currently disabled);
- PCIe riser cards;
- SPDIF;
- SATA RAID.
[ASRock IMB-1222]: https://web.archive.org/web/20220924171403/https://www.asrockind.com/en-gb/IMB-1222
[flashrom]: https://flashrom.org/Flashrom
[vendor's firmware]: https://web.archive.org/web/20250413105432/https://download.asrock.com/IPC/BIOS/IMB-1222(1.80)ROM.zip
[flashrom]: https://flashrom.org/
[MrChromebox fork]: https://github.com/MrChromebox/edk2
[XutaxKamay fork]: https://github.com/XutaxKamay/me_cleaner
[Bliss OS]: https://blissos.org/

View file

@ -162,7 +162,7 @@ Tested even with/without the Bolton and Hudson blobs.
[ASUS A88XM-E]: https://www.asus.com/Motherboards/A88XME/
[Board manual]: https://dlcdnets.asus.com/pub/ASUS/mb/SocketFM2/A88XM-E/E9125_A88XM-E.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[GD25Q64]: http://www.elm-tech.com/ja/products/spi-flash-memory/gd25q64/gd25q64.pdf
[Piledriver]: https://en.wikipedia.org/wiki/Piledriver_%28microarchitecture%29#APU_lines
[Sea Islands]: https://en.wikipedia.org/wiki/Graphics_Core_Next#GCN_2nd_generation

View file

@ -192,7 +192,7 @@ This version is usable for all the GPUs.
[ASUS F2A85-M]: https://web.archive.org/web/20160320065008/http://www.asus.com/Motherboards/F2A85M/
[Board manual]: https://web.archive.org/web/20211028063105/https://dlcdnets.asus.com/pub/ASUS/mb/SocketFM2/F2A85-M/E8005_F2A85-M.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[Piledriver]: https://en.wikipedia.org/wiki/Piledriver_%28microarchitecture%29#APU_lines
[TeraScale 3]: https://en.wikipedia.org/wiki/TeraScale_%28microarchitecture%29#TeraScale_3
[W25Q64FV]: https://web.archive.org/web/20220127184640/https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf

View file

@ -0,0 +1,49 @@
# ASUS PRIME H610i-PLUS
This is a Mini-ITX LGA1700 (Alder Lake/Raptor Lake) motherboard, using the H610 chipset and
DDR4 RAM. It's a close relative of the H610M-K, and like it is also sold in DDR4 and DDR5
variants.
## Variants
- *ASUS PRIME H610i-PLUS **D4***: uses DDR4 RAM, supported
- *ASUS PRIME H610i-PLUS* (no "D4"): uses DDR5 RAM, not currently supported by this port
## Flashing
This mainboard uses a standard 3.3V SOIC-8 SPI flash chip. The vendor firmware enables write
protection, thus for initial installation an external programmer is required. Thereafter,
coreboot can be updated internally using `flashrom -p internal`.
An external programmer can be connected using an ordinary chip clip, but for development or
testing, it can be more convenient to flash via the TPM header. A pinout can be found on Page
1-4 of the board's User's Manual - to select the flash chip, connect your CS line to
F_SPI_CS0#_R. An adapter cable can be made using a 2x7-pin 2.0mm female header, or a set of
2.0mm jumper wires. Beware, despite its similar appearance, this TPM header pinout is NOT
compatible with the pinout found on the MSI Z690A and Z790P boards (adapters for flashing those
boards over the SPI TPM header will not work on ASUS boards).
## Feature Support
### Working:
- Console over onboard serial port
- PS/2 keyboard
- Port 80 POST codes over ASUS debug header
- All USB ports, including USB3 working, except front USB2
- All outputs (DP, HDMI, VGA) for iGPU
- M.2 slot
- PCIe WiFi card in WiFi slot
- Onboard Ethernet
- PCIe ASPM and clock power management for all devices
- x16 PCIe slot
- All SATA ports
- Hard drive indicator LED
- All audio including front panel
- Fan control
- ME disable with HAP bit in IFD
- HSPHY-in-FMAP when ME is disabled
### Untested:
- CNVi WiFi card in WiFi slot
- SPI TPM
- Front USB2 ports (did not have an adapter on hand to test)
- Status LEDs in actual error states (they do show a normal status normally)
### Not working:
- S3 sleep

View file

@ -105,4 +105,4 @@ for only CPU models that the board will actually be run with.
## Extra resources
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -103,4 +103,4 @@ for only CPU models that the board will actually be run with.
## Extra resources
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -91,4 +91,4 @@ flash externally.
[ASUS P8C WS]: https://www.asus.com/supportonly/p8c_ws/helpdesk_knowledge/
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -107,5 +107,5 @@ region is not readable even by the host.
[ASUS P8H61-M LX]: https://www.asus.com/Motherboards/P8H61M_LX/
[W25Q32BV]: https://web.archive.org/web/20211002141814/https://www.winbond.com/resource-files/w25q32bv_revi_100413_wo_automotive.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[Board manual]: http://dlcdnet.asus.com/pub/ASUS/mb/LGA1155/P8H61_M_LX/E6803_P8H61-M_LX.zip

View file

@ -100,4 +100,4 @@ region is not readable even by the host.
[ASUS P8H61-M Pro]: https://www.asus.com/Motherboards/P8H61M_Pro/
[W25Q32BV]: https://www.winbond.com/resource-files/w25q32bv_revi_100413_wo_automotive.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -78,4 +78,4 @@ work. The flash chip is socketed, so it's easy to remove and reflash.
[ASUS P8H77-V]: https://www.asus.com/supportonly/p8h77v/helpdesk_knowledge/
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -169,4 +169,4 @@ The board has two onboard buttons, each with a related LED nearby.
[ASUS P8Z77-M]: https://www.asus.com/supportonly/p8z77-m/helpdesk_manual/
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -165,4 +165,4 @@ easy to remove and reflash.
[ASUS P8Z77-M PRO]: https://www.asus.com/Motherboards/P8Z77M_PRO/
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -108,5 +108,5 @@ See [Asus Wi-Fi Go! v1].
[ASUS P8Z77-V]: https://www.asus.com/supportonly/p8z77v/helpdesk_knowledge/
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[Asus Wi-Fi Go! v1]: ./wifigo_v1.md

View file

@ -0,0 +1,258 @@
# ASUS P8Z77-V LE PLUS
This page describes how to run coreboot on the [ASUS P8Z77-V LE PLUS].
## Flashing coreboot
```{eval-rst}
+---------------------+----------------+
| Type | Value |
+=====================+================+
| Socketed flash | yes |
+---------------------+----------------+
| Model | W25Q64FVA1Q |
+---------------------+----------------+
| Size | 8 MiB |
+---------------------+----------------+
| Package | DIP-8 |
+---------------------+----------------+
| Write protection | yes |
+---------------------+----------------+
| Dual BIOS feature | no |
+---------------------+----------------+
| Internal flashing | yes |
+---------------------+----------------+
```
### How to flash
The main SPI flash cannot be written because the vendor firmware disables BIOSWE
and enables BLE/SMM_BWP flags in BIOS_CNTL for their latest BIOSes. An external
programmer is required. You must flash standalone, flashing in-circuit doesn't
work. The flash chip is socketed, so it's easy to remove and reflash.
See page 2-2 of user's manual for flash chip location.
### Extra preparations for changing PCIe slot configuration
On vendor firmware, the black PCIEX16_3 slot can be configured as x2 or x4.
If set for x4, PCIEX1_1 and PCIEX1_2 are disabled.
Before flashing coreboot for the first time, decide how you want to use the PCIe slots.
If you want to be able to choose between using the two PCIEX1 slots and the PCIEX16_3 slot at
x4 bandwidth, you need to do some preparation, namely make two backups of the whole flash
chip, specifically the flash descriptor under both configurations.
Enter vendor UEFI setup and check the PCIEX16_3 (black) slot bandwidth setting. You'll back up
under this setting first. Once one backup is made, come back and change the setting
from x2 to x4 (or vice versa) and reboot once, then make the other backup.
With PCIEX16_3 (black) slot bandwidth at x2, run these commands:
```bash
flashrom -p internal -r pciex163_x2.bin
dd if=pciex163_x2.bin of=ifd-pciex163_x2.bin bs=4096 count=1
```
With PCIEX16_3 (black) slot bandwidth at x4, run these commands:
```bash
flashrom -p internal -r pciex163_x4.bin
dd if=pciex163_x4.bin of=ifd-pciex163_x4.bin bs=4096 count=1
```
(`dd` needs not be run as root.)
Save the shortened `ifd-pciex163_*.bin` files for when you want to change the configuration.
Keep one of the full backups as well.
See "PCIe config" section below for more details.
## Working
- Core i5-3570K and i7-3770K CPUs
- Corsair CMZ16GX3M2A1600C10 2x8GB memory kit
- SeaBIOS 1.16.3
- edk2 mrchromebox fork uefipayload_2501
- Kernel 6.12.7
- All USB2 ports (mouse, keyboard)
- All USB3 ports
- Z77 SATA ports (WD Blue SA510, Liteon LH-20A1L)
- nVidia 8800GT GPU in PCIEX16_1 slot running x16
- PCI slots (Sound Blaster Live! Value)
- RTL8111F LAN
- CPU temperature sensors and hardware monitor
(see [below](#hardware-monitoring-and-fan-speed-control))
- Integrated graphics with libgfxinit and VBT
(all ports tested and working)
- Both PCIe x1 slots when properly configured
(see [How to flash](#how-to-flash) above and [PCIe config](#pcie-config);
Atheros 928x miniPCIe Wifi on adapter & MSI Herald-BE Wifi7 adapter)
- PCIe x4 slot with Intel Octane H10 1TB NVMe at x2 mode
- Serial port
- PS/2 keyboard
- Analog 7.1 audio out the 3.5mm jacks on rear panel
- Front HDA audio panel
- Digital audio out (Optical, internal SPDIF header, HDMI, DisplayPort)
Although a `spdif_dest` option is provided for feature parity with vendor firmware,
it doesn't seem to matter and digital audio out is available through all ports.
It does, however, change how the ports are presented to the OS.
- S3 suspend from Linux
## Known issues
- For 7.1 analog audio to work, at least the front channel (green jack) must be connected.
## Untested
- Hotplug of Z77 SATA ports
- EHCI debugging
## Not working
- Wake-on-LAN
- PS/2 mouse (requires a patch currently under review)
- Asmedia USB 3.0 battery charging support (for USB 3 ports on the LAN stack)
- USB Charger+ (When the bottom USB 3 port on the eSATA stack, also used for BIOS flashback,
remains powered while the rest of the system is off. Both features are controlled by the same
AI1314 controller.)
- Marvell SATA ports are brought up in IDE mode, pata_marvell driver is loaded,
but are effectively unusable.
## PCIe config
See [Extra preparations](#extra-preparations-for-changing-pcie-slot-configuration) section above.
Changing the PCIe slot configuration requires manipulating a PCH GPIO line and a soft strap in
the flash chip's descriptor section, which is read-only at runtime. coreboot programs the GPIO
to match the soft strap, but how it can update the soft strap itself is to be determined. Until
then, to make this change you have to re-flash the descriptor yourself, with one of the two
copies you previously saved per above:
```bash
flashrom -p internal --ifd -i fd -w ifd-pciex163_x2.bin
```
## Hardware monitoring and fan speed control
Although all fan ports are 4-pin for PWM fans, only CPU_FAN has actual PWM control;
all other fan speed control is by voltage only.
Write 1 into `/sys/class/hwmon/hwmon1/pwm1_mode` to enable CHA_FAN1 control, otherwise it
runs at full speed.
`fan5`/`pwm5` is not implemented and should be ignored.
These are the sensors.conf settings for this board:
```
label fan1 "CHA_FAN1"
label fan2 "CPU_FAN"
label fan3 "CHA_FAN2"
label fan4 "CHA_FAN3"
ignore fan5
label in1 "+12V"
label in4 "+5V"
compute in1 @*12, @/12
compute in4 @*5, @/5
set temp1_type 4
set temp2_type 4
```
## Extra onboard switches and LEDs
- `BIOS_FLBK`:
Vendor firmware uses this button to facilitate a simple update mechanism
via a USB drive plugged into the bottom USB port of the USB/ESATA6G stack.
It connects to the proprietary AI1314 controller, along with `FLBK_LED`.
- `MemOK!`:
OEM firmware uses this button for memory tuning related to overclocking.
It connects to pin 74 of super I/O.
- `DRAM_LED` lights up when there is a memory problem or when vendor MemOK! feature is
operating. Connects to GP07 line of super I/O. coreboot lights it up during memory init
similar to vendor firmware.
- `EPU`: When enabled, lights up `EPU_LED` and takes PCH GPIO44 low.
- `TPU`: When enabled, lights up `TPU_LED` and takes PCH GPIO45 low.
`EPU` and `TPU` are cues to vendor firmware to enable two embedded controllers for
overclocking features. coreboot is not yet able to make use of these two signals.
- `SB_PWR` lights up whenever board is receiving power. It's all hardware
and does not concern coreboot.
- `DRCT` is an undocumented 2-pin header next to the front panel connector block. It
connects to both the power button circuit and Z77's intruder detection input. Shorting this
header triggers both. With coreboot it currently works the same as the power button.
## Extra exposed GPIOs at `TB_HEADER`
A number of GPIO lines are broken out to `TB_HEADER` to support the ThunderboltEX adapter,
which never took off. Now they're yours to play with. Additional programming may be required such
as enabling GPIO by I/O for maximum effect.
This may be safely ignored for most normal uses.
**Be careful not to apply more than 3.3v to these pins!** And do not touch the two pins
labeled "NOT A GPIO".
Pinout:
```
+---+---+---+---+---+
| 2 | 4 | 5 | 7 | 9 |
+---+---+---+---+---+
| 1 | 3 | | 6 | 8 |
+---+---+---+---+---+
```
```{eval-rst}
+-----+-----------------------+----------+--------+
| Pin | Name | Source | GPIO # |
+=====+=======================+==========+========+
| 1 | S_DP_DDC_CLK_TO_TB | **NOT A GPIO** |
+-----+-----------------------+----------+--------+
| 2 | TB_GPIO_6 | NCT6779D | 14 |
+-----+-----------------------+----------+--------+
| 3 | S_DP_DDC_DATA_TO_TB | **NOT A GPIO** |
+-----+-----------------------+----------+--------+
| 4 | TB_GPIO_7 | NCT6779D | 13 |
+-----+-----------------------+----------+--------+
| 5 | TB_FWUPDATE | NCT6779D | 11 |
+-----+-----------------------+----------+--------+
| 6 | TB_DEV_HPD | Z77 | 0 |
+-----+-----------------------+----------+--------+
| 7 | TB_GO2SX | NCT6779D | 17 |
+-----+-----------------------+----------+--------+
| 8 | TB_GO2SX#_ACK | NCT6779D | 16 |
+-----+-----------------------+----------+--------+
| 9 | Not connected |
+-----+-------------------------------------------+
```
Pins 2, 4, 6, 8 have 1M ohm pulldowns.
## Technology
```{eval-rst}
+------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+
| Southbridge | bd82x6x |
+------------------+--------------------------------------------------+
| CPU | model_206ax |
+------------------+--------------------------------------------------+
| Super I/O | Nuvoton NCT6779D |
+------------------+--------------------------------------------------+
| EC | TPU (ENE KB3722), AI1314 |
+------------------+--------------------------------------------------+
| Coprocessor | Intel Management Engine |
+------------------+--------------------------------------------------+
```
## Extra resources
- [Flash chip datasheet][W25Q64FVA1Q]
[ASUS P8Z77-V LE PLUS]: https://www.asus.com/supportonly/p8z77-v%20le%20plus/helpdesk_manual/
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/
[rtnicpg]: https://github.com/redchenjs/rtnicpg

View file

@ -142,6 +142,6 @@ the cables or not being populated on the board case.
- Intruder detection
- Wake-on-Lan from ACPI S3
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[Dell OptiPlex 9010 specifications]: https://www.dell.com/downloads/global/products/optix/en/dell_optiplex_9010_spec_sheet.pdf
[UEFITool]: https://github.com/LongSoft/UEFITool

View file

@ -20,29 +20,23 @@ To build full working image of coreboot, the following blobs are required:
+-----------------+---------------------------------+----------------------+
```
Microcode for those SoCs cannot be generated from the tree.
While boards with D1 (production) stepping may work, microcode Intel had
included in their tree is too old, which causes issues with APIC
(Advanced Programmable Interrupt Controller), resulting in overall instability.
Microcode for D0 stepping cannot be generated from the tree.
Therefore, including external microcode is **mandatory** for boards sold with
D0 stepping (Engineering Sample).
This is **required** for boards sold with D0 SoC revision (Engineering Sample).
Maintainer of this port had included publicly-available [microcodes] in
`3rdparty/blobs` coreboot repository, which are being pulled as submodule.
To choose appropriate microcode for your system, you should choose:
1. If your motherboard uses Engineering Sample (D0) stepping:
- `cpu806D0_platC2_ver00000054_2021-05-07_PRD_B0F9E245.bin`
2. If your motherboard uses retail (D1) stepping:
- `cpu806D1_platC2_ver00000046_2023-02-27_PRD_08E6188A.bin`
Microcode binary for D0 stepping is called
`cpu806D0_platC2_ver00000054_2021-05-07_PRD_B0F9E245.bin`.
By going to `Chipset -> Include CPU microcode in CBFS
(Include external microcode binary)`
It should be selected by going to:
`Chipset -> Include CPU microcode in CBFS (Include external microcode binary)`.
Failure to choose an appropriate microcode may result in:
- Bricked (unbootable) board
- Issues with APIC, resulting in random freezes
- MCE (Machine Check Exception) errors
- Unstable system RAM, leading to bit flips and data corruption
Failure to choose an appropriate microcode will result in:
- MCE (Machine Check Exception) errors.
- Issues with APIC, resulting in random hangs.
- Unstable system RAM, leading to bit flips and data corruption.
There are no extra steps required for FSP.
Both SKUs work perfectly with FSP Intel publishes in their public repository.
@ -88,7 +82,7 @@ despite using mobile SoC and PCH.
- RS232 serial output from IT8613E for debugging (cbmem, Linux)
- Fan control from userspace (IT8613E Environment Controller)
- USB2.0 and 3.0
- HDMI (iGPU, including audio)
- HDMI, DisplayPort (iGPU, including audio)
- Realtek RTL8111 (GbE NIC)
- Realtek ALC897 (integrated audio)
- PCIe x16 4.0 (SoC)
@ -106,19 +100,14 @@ despite using mobile SoC and PCH.
- XMP Profiles (some people reported issues, despite successful tests).
You can enable it by setting `SpdProfileSelected` in `romstage_fsp_params.c`.
See [FSP XMP flags] for configuration options, proceed with caution.
- GOP init on external GPUs (most EDK2 branches do not include module
necessary to load external Option ROMs)
- Sleep states (which were broken on stock as well)
- USB3.2 might take few tries to get detected at full speed
- iGPU DisplayPort (very simple fix, did not have time to fix GPIO)
- Automatic fan control (fans will always spin at 50% - see below)
- 2x USB2.0 FP and M.2 NGFF USB2.0 not mapped (yet)
- PCIe ASPM (results in AER spam in dmesg)
- Sleep states (which were broken on stock as well, RAM loses power in S3).
- Automatic fan control (fans will always spin at 50% - see below).
- PCIe ASPM (results in AER spam in dmesg).
Please ensure to:
- Disable sleep state in your OS to prevent data loss
- Disable sleep state in your OS.
- Configure automatic fan control using pwmconfig
(`modprobe it87 force_id=0x8603`)
(`modprobe it87 force_id=0x8603`).
- Append `pcie_aspm=off` to your kernel commandline to avoid dmesg spam.
## Notes
@ -126,7 +115,7 @@ Please ensure to:
1. Required blobs, if flashing the entire flash chip.
They can be skipped safely if you are planning on flashing
only the `SI_BIOS` region.
- Intel Flash Descriptor (IFD): `descriptor.bin`
- Intel Flash Descriptor (IFD): `fd.bin`
- Intel Management Engine (ME): `me.bin`
Both blobs included in `3rdparty/blobs` repository were extracted
@ -151,29 +140,21 @@ Please ensure to:
- U-Boot
- LinuxBoot (U-Root + Linux kernel)
If you would like to see output on your iGPU before that stage
(for picking a different boot medium or toggling Secure Boot setting),
you need to use [MrChromebox's EDK2] fork and include [GOP driver] for
TigerLake iGPU in your build.
This will allow you to see output of EDK2 (payload, boot picker)
on your monitor connected to iGPU.
If you're planning to primarly use an external card, disable iGPU by
enabling `Chipset -> Disable Integrated GFX Controller (0:2:0)`
and use [elly's EDK2] tree.
and use [MrChromebox's EDK2] tree.
In order to enable loading Option ROMs from PCIe devices, go to:
`Payload -> edk2 additional custom build parameters`
and add the string: `-D LOAD_OPTION_ROMS=TRUE`
In order to enable loading Option ROMs from PCIe devices, enable:
`Payload -> Load and Execute OpROMs on PCIe devices`
This functionality has been tested with following graphics cards,
with following results:
- Nvidia GeForce RTX3080, RTX3090: Works perfectly
- AMD Radeon RX6600XT, RX7800XT: Works with ReBAR disabled,
no output in EDK2 with ReBAR enabled
- Intel Arc A580: Works with ReBAR disabled,
corrupted framebuffer before modprobing with ReBAR enabled
- Nvidia GeForce RTX3080, RTX3090: Works perfectly.
- AMD Radeon RX6600XT, RX7800XT: Works, but requires
`Extend resource window for PCIe devices above 4G` if `Support PCIe
Resizable BARs` is enabled.
- Intel Arc A580: Works, but option
`Extend resource window for PCIe devices above 4G` is **mandatory**.
## Specification
@ -197,7 +178,5 @@ corrupted framebuffer before modprobing with ReBAR enabled
[microcodes]: https://github.com/platomav/CPUMicrocodes/tree/master/Intel
[FSP XMP Flags]: https://github.com/intel/FSP/blob/master/TigerLakeFspBinPkg/Client/Include/FspmUpd.h#L586-L591
[MrChromebox's EDK2]: https://github.com/MrChromebox/edk2
[elly's EDK2]: https://github.com/ellyq/edk2
[GOP driver]: https://github.com/MrChromebox/blobs/blob/master/soc/intel/tgl/IntelGopDriver.efi
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[flashprog]: https://flashprog.org/wiki/Flashprog

View file

@ -77,4 +77,4 @@ Specifically, it's a Winbond W25Q64FV (3.3V), whose datasheet can be found
[W25Q64FW]: https://www.winbond.com/resource-files/w25q64fw%20revn%2005182017%20sfdp.pdf
[W25Q64FV]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -130,4 +130,4 @@ output.
[W25Q128JVSIQ]: https://www.winbond.com/resource-files/w25q128jv%20revf%2003272018%20plus.pdf
[W25Q128JVSIM]: https://www.winbond.com/resource-files/w25q128jv%20dtr%20revb%2011042016.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -72,4 +72,4 @@ To do this gently take the SPI flash out of its socket and flash with your progr
[FOXCONN D41S]: http://www.foxconnchannel.com/ProductDetail.aspx?T=motherboard&U=en-us0000481
[FOXCONN]: http://www.foxconnchannel.com
[Flashrom]: https://flashrom.org/Flashrom
[Flashrom]: https://flashrom.org/

View file

@ -30,9 +30,7 @@ This motherboard [also works with Libreboot](https://libreboot.org/docs/install/
## Preparation
```{eval-rst}
For more datails how to get sources and build the toolchain, see :doc:`../../tutorial/part1`.
```
For more datails how to get sources and build the toolchain, see <project:../../tutorial/part1.md>.
### Devuan 4 Chimaera
@ -140,10 +138,8 @@ Built gigabyte/ga-g41m-es2l (GA-G41M-ES2L)
## Flashing coreboot
```{eval-rst}
In addition to the information here, please see the
:doc:`../../tutorial/flashing_firmware/index`.
```
<project:../../tutorial/flashing_firmware/index.md>.
### Do backup

View file

@ -77,4 +77,4 @@ However, this makes DualBIOS unable to recover from a bad flash for some reason.
[Gigabyte GA-H61M-S2PV]: https://www.gigabyte.com/us/Motherboard/GA-H61M-S2PV-rev-10
[Gigabyte]: https://www.gigabyte.com
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -146,4 +146,4 @@ as otherwise there's not enough space near the flash.
[IFD Hack]: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/changes/70/38770/4/Documentation/flash_tutorial/int_macbook.md/
[Compaq 8200 Elite SFF]: https://support.hp.com/us-en/document/c03414707
[HP]: https://www.hp.com/
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -39,8 +39,8 @@ The following things are still missing from this coreboot port:
Internal flashing is possible. The SPI flash can be accessed using [flashrom],
but you have to short the FDO pins located near the rear USB3 ports on the
motherboard using a jumper, to temporarily disable write protections while on the
stock firmware. Once the coreboot rom is flashed, one should remove the jumper.
motherboard using a jumper to temporarily disable write protections while on the
stock firmware. Remove the jumper once coreboot is installed.
### External programming
@ -70,4 +70,4 @@ as otherwise there's not enough space near the flash.
[Compaq 8300 Elite SFF]: https://support.hp.com/us-en/document/c03345460
[HP]: https://www.hp.com/
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -59,7 +59,8 @@ Wake on LAN is active works great.
### SuperIO
This board has a Nuvoton NPCD379 SuperIO chip. Fan speed and PS/2 keyboard work
fine using coreboot's existing code for :doc:`../../superio/nuvoton/npcd378`.
fine using coreboot's existing code for
<project:../../superio/nuvoton/npcd378.md>.
[Compaq Elite 8300 USDT]: https://support.hp.com/gb-en/product/hp-compaq-elite-8300-ultra-slim-pc/5232866
[HP]: https://www.hp.com/

View file

@ -0,0 +1,109 @@
# HP Compaq Pro 6300 Series
This page describes how to run coreboot on the HP [Compaq Pro 6300 Series] desktop.
These come in two versions: Microtower or Small Form Factor (SFF). They share the same
mainboard (657239-001) and Maintenance and Service Guide (690362-003/c04034127). This port has
been tested on a SFF unit.
## Working
- i3-3220 / e3-1225v2 CPUs
- SeaBIOS (version rel-1.16.3-0-ga6ed6b70)
- EDK2 (MrChromebox/2502)
- Fedora-mate with Linux kernels 6.11.4, 6.13.6; KDE neon with Linux kernel 6.8.0 / 6.11.0
- Mixed memory configurations from single 4GB to 24GB total with 1.35v & 1.5v modules
- Integrated Ethernet
- Serial port
- PS/2 keyboard and mouse
- Integrated graphics over DisplayPort and VGA port
- libgfxinit textmode (SeaBIOS) / framebuffer (EDK2)
- discrete GPU's show boot screen using SeaBIOS / EDK2 (LOAD_OPTION_ROMS=TRUE)
- All SATA ports
- All USB2 & USB3 ports
- PCI slot (Realtek RTL8169 GbE card)
- PCIe 3.0 x16 using 2.0 8x 10Gb Intel X540-AT2 / 1.0 16x nVidia GeForce(6200 LE / GT640-2GD3)
- PCIe 2.0 x1 using 2.0 1x 2.5Gb Realtek RTL8125
- PCIe 2.0 x1 using 1.0 1x 1Gb Intel 82574L (SeaBIOS loads option rom)
- Audio built-in speaker (plays music in OS compared to legacy bleep pc-speaker)
- Front panel audio ports (front headphone port overrides built-in speaker; only microphone
works with combo mic/headphone with TRRS plug)
- Back panel audio ports
- Sensors CPU and 4 DIMM jc42-i2c sensors
- Booting USB / SATA(HDD/DVD)
- LEDs HDD, Power(blinks on suspend)
- Shutdown, Reboot, Suspend & Wake (USB keyboard & LAN)
- Strip down Intel ME/TXE firmware and hide MEI device
## Untested
- Parallel port
## Not working
- Simultaneous use of discrete and integrated graphics
## TODO
The following things are still missing from this coreboot port:
- Extended HWM reporting
- Advanced LED control
- Advanced power configuration in S3
## Flashing coreboot
```{eval-rst}
+---------------------+------------+
| Type | Value |
+=====================+============+
| Socketed flash | no |
+---------------------+------------+
| Model | MT25Q128A |
+---------------------+------------+
| Size | 16 MiB |
+---------------------+------------+
| In circuit flashing | yes |
+---------------------+------------+
| Package | SOIC-16 |
+---------------------+------------+
| Write protection | Yes |
+---------------------+------------+
| Dual BIOS feature | No |
+---------------------+------------+
| Internal flashing | yes |
+---------------------+------------+
```
### Internal programming
Internal flashing is possible. The SPI flash can be accessed using [flashrom],
but you have to short the FDO pins located near the rear USB3 ports on the
motherboard using a jumper to temporarily disable write protections while on the
stock firmware. Remove the jumper once coreboot is installed.
### External programming
External programming with an SPI adapter and [flashrom] does work, but it powers the
whole southbridge complex. You need to supply enough current through the programming adapter.
If you want to use a SOIC Pomona test clip, you have to cut the 2nd DRAM DIMM holder,
as otherwise there's not enough space near the flash.
## Technology
```{eval-rst}
+------------------+--------------------------------------------------+
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
+------------------+--------------------------------------------------+
| Southbridge | bd82x6x (Q75) |
+------------------+--------------------------------------------------+
| CPU | model_206ax |
+------------------+--------------------------------------------------+
| SuperIO | Nuvoton NPCD379 |
+------------------+--------------------------------------------------+
| EC | |
+------------------+--------------------------------------------------+
| Coprocessor | Intel ME |
+------------------+--------------------------------------------------+
```
[Compaq Pro 6300 Series]: https://support.hp.com/us-en/product/details/hp-compaq-pro-6300-small-form-factor-pc/model/5232884
[flashrom]: https://flashrom.org/Flashrom

View file

@ -7,6 +7,9 @@ It is implemented in HP notebooks since 2013, and desktops since 2015.
This document talks about some mechanism of HP Sure Start on some machines, and
the method to bypass it.
The method may no longer be applicable to more recent boards. HP has a later
[revision of the whitepaper] from 2019 and there may be others.
## Laptops with SMSC MEC1322 embedded controller
Haswell EliteBook, ZBook and ProBook 600 series use SMSC MEC1322 embedded controller.
@ -57,4 +60,5 @@ located at the high address of the flash chip (and in the protected region),
we can leave it untouched, and do not need to extract the EC firmware to put it in
the coreboot image.
[HP Sure Start Technical Whitepaper]: http://h10032.www1.hp.com/ctg/Manual/c05163901
[HP Sure Start Technical Whitepaper]: https://h10032.www1.hp.com/ctg/Manual/c05163901.pdf
[revision of the whitepaper]: https://h10032.www1.hp.com/ctg/Manual/c06216928.pdf

View file

@ -1,43 +1,53 @@
# HP Pro 3500 Series
# HP Pro 3x00 Series
This page describes how to run coreboot on the [Pro 3500 Series]
desktop from [HP].
This page describes how to run coreboot on the [Pro 3400 Series] and [Pro 3500 Series]
desktops from [HP].
## State
All peripherals should work. Automatic fan control as well as S3 are
working. The board was tested to boot Linux and Windows. EHCI debug
is untested. When using MrChromebox edk2 with secure boot build in, the
board will hang on each boot for about 20 seconds before continuing.
With disabled ME, the SuperIO will not get CPU temperatures via PECI and
therefore the automatic fan control will not increase the fan speed.
is untested. With disabled ME, the SuperIO will not get CPU
temperatures via PECI and therefore the automatic fan control
will not increase the fan speed.
## Flashing coreboot
```{eval-rst}
+---------------------+-------------------------+
| Type | Value |
+=====================+=========================+
| Socketed flash | No |
+---------------------+-------------------------+
| Model | W25Q64FVSIG |
+---------------------+-------------------------+
| Size | 8 MiB |
+---------------------+-------------------------+
| In circuit flashing | Yes |
+---------------------+-------------------------+
| Package | SOIC-8 |
+---------------------+-------------------------+
| Write protection | See below |
+---------------------+-------------------------+
| Dual BIOS feature | No |
+---------------------+-------------------------+
| Internal flashing | Yes |
+---------------------+-------------------------+
+---------------------+-----------------------------------------+
| Type | Value |
+=====================+=========================================+
| Socketed flash | No |
+---------------------+-----------------------------------------+
| Model | W25Q32BVSIG (3400) / W25Q64FVSIG (3500) |
+---------------------+-----------------------------------------+
| Size | 4 MiB (3400) / 8 MiB (3500) |
+---------------------+-----------------------------------------+
| In circuit flashing | Yes |
+---------------------+-----------------------------------------+
| Package | SOIC-8 |
+---------------------+-----------------------------------------+
| Write protection | See below |
+---------------------+-----------------------------------------+
| Dual BIOS feature | No |
+---------------------+-----------------------------------------+
| Internal flashing | Yes |
+---------------------+-----------------------------------------+
```
### Flash layout
The original layout of the flash should look like this:
#### Pro 3400
```
00000000:00000fff fd
00180000:003fffff bios
00001000:0017ffff me
00fff000:00000fff gbe
00fff000:00000fff pd
```
#### Pro 3500
```
00000000:00000fff fd
00400000:007fffff bios
@ -48,8 +58,7 @@ The original layout of the flash should look like this:
### Internal programming
The SPI flash can be accessed using [flashrom] (although it reports as
"N25Q064..3E", it works fine).
The SPI flash can be accessed using [flashrom].
With a missing FDO jumper, `fd` region is read-only, `bios` region is
read-write and `me` region is locked. Vendor firmware will additionally
@ -62,9 +71,7 @@ region will be modified on shutdown. Cut the AC power or do a restart
from the OS.
**Position of FDO jumper (E2) close to the F_USB3**
![][pro_3500_jumper]
[pro_3500_jumper]: pro_3500_series_jumper.avif
![FDO jumper position](pro_3x00_series_jumper.avif)
### External programming
@ -76,9 +83,7 @@ The supply needs to quickly reach 3V3 or else the chip is also unstable
until cleanly power cycled.
**Position of SOIC-8 flash and pin-header near ATX power connector**
![][pro_3500_flash]
[pro_3500_flash]: pro_3500_series_flash.avif
![Flash position](pro_3x00_series_flash.avif)
## Technology
@ -98,6 +103,7 @@ until cleanly power cycled.
+------------------+--------------------------------------------------+
```
[Pro 3500 Series]: https://support.hp.com/us-en/document/c03364089
[Pro 3400 Series]: https://support.hp.com/us-en/product/details/hp-pro-3400-microtower-pc/5160137
[Pro 3500 Series]: https://support.hp.com/us-en/product/details/hp-pro-3500-microtower-pc/5270849
[HP]: https://www.hp.com/
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before After
Before After

View file

@ -77,4 +77,4 @@ even interchangeable, so should do coreboot images built for them.
[HP Z220 SFF Workstation]: https://support.hp.com/za-en/document/c03386950
[HP Compaq Elite 8300 SFF]: https://support.hp.com/us-en/document/c03345460
[HP]: https://www.hp.com/
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -43,6 +43,7 @@ IMB-1222 <asrock/imb-1222.md>
A88XM-E <asus/a88xm-e.md>
F2A85-M <asus/f2a85-m.md>
H610i-PLUS D4 <asus/h610i-plus-d4>
P2B-LS <asus/p2b-ls.md>
P3B-F <asus/p3b-f.md>
P5Q <asus/p5q.md>
@ -53,6 +54,7 @@ P8H77-V <asus/p8h77-v.md>
P8Z77-M <asus/p8z77-m.md>
P8Z77-M Pro <asus/p8z77-m_pro.md>
P8Z77-V <asus/p8z77-v.md>
P8Z77-V LE PLUS <asus/p8z77-v_le_plus.md>
wifigo_v1 <asus/wifigo_v1.md>
```
@ -139,7 +141,8 @@ GA-H61M-S2PV <gigabyte/ga-h61m-s2pv.md>
Compaq 8200 Elite SFF <hp/compaq_8200_sff.md>
Compaq 8300 Elite SFF <hp/compaq_8300_sff.md>
Compaq Elite 8300 USDT <hp/compaq_8300_usdt.md>
Pro 3500 Series <hp/pro_3500_series.md>
Compaq Pro 6300 Series Microtower/SFF <hp/compaq_pro_6300_series.md>
Pro 3x00 Series <hp/pro_3x00_series.md>
Z220 Workstation SFF <hp/z220_sff.md>
```
@ -184,6 +187,8 @@ mAL-10 <kontron/mal10.md>
Mainboard codenames <lenovo/codenames.md>
Hardware Maintenance Manual of ThinkPads <lenovo/thinkpad_hmm.md>
R60 <lenovo/r60.md>
ThinkCentre M710s <lenovo/thinkcentre_m710s.md>
ThinkCentre M700 / M900 Tiny <lenovo/thinkcentre_m900_tiny.md>
T4xx common <lenovo/t4xx_series.md>
X2xx common <lenovo/x2xx_series.md>
M920 Tiny <lenovo/m920q.md>
@ -238,6 +243,13 @@ Internal flashing <lenovo/ivb_internal_flashing.md>
T440p <lenovo/t440p.md>
```
### Skylake/Kabylake series
```{toctree}
:maxdepth: 1
T470s/T480/T480s/T580/X280 <lenovo/skylake.md>
```
## Libretrend
```{toctree}
@ -346,8 +358,10 @@ StarBook Mk V <starlabs/starbook_tgl.md>
StarBook Mk VI <starlabs/starbook_adl.md>
StarBook Mk VII (N200) <starlabs/starbook_adl_n.md>
StarBook Mk VII (165H) <starlabs/starbook_mtl.md>
Byte Mk II <starlabs/byte_adl.md>
StarBook Horizon <starlabs/adl_horizon.md>
Byte Mk II <starlabs/byte.md>
StarFighter Mk I <starlabs/starfighter_rpl.md>
StarFighter Mk II <starlabs/starfighter_mtl.md>
Building coreboot <starlabs/common/building.md>
Flashing devices <starlabs/common/flashing.md>

View file

@ -96,4 +96,4 @@ The layout of the header is:
```
[Intel DG43GT]: https://ark.intel.com/products/41036/Intel-Desktop-Board-DG43GT
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -104,11 +104,9 @@ the PCI configuration space of the LPC Interface Bridge, is set.
It is possible to program the chip is to attach an external programmer
with an SOIC-8 clip.
```{eval-rst}
Another way is to boot the vendor firmware in UEFI mode and exploit the
unpatched S3 Boot Script vulnerability. See this page for a similar procedure:
:doc:`../lenovo/ivb_internal_flashing`.
```
<project:../lenovo/ivb_internal_flashing.md>.
On this specific board it is possible to prevent the BLE bit from being set
when it resumes from S3. One entry in the S3 Boot Script must be modified,
@ -126,12 +124,10 @@ The boot script contains an entry that writes 0x02 to memory at address
Interface Bridge [0][1]. The value 0x02 sets the BLE bit, and the modification
prevents this by making it write a 0 instead.
```{eval-rst}
After suspending and resuming the board, the BIOS region can be flashed with
a coreboot image, e.g. using flashrom. Note that the ME region is not readable,
so the `--noverify-all` flag is necessary. Please refer to the
:doc:`../../tutorial/flashing_firmware/index`.
```
<project:../../tutorial/flashing_firmware/index.md>.
## Hardware monitoring and fan control

View file

@ -76,4 +76,4 @@ $ flashrom -p internal --ifd -i bios -w coreboot.rom --noverify-all
```
[W25Q128FV]: https://www.winbond.com/resource-files/w25q128fv%20rev.m%2005132016%20kms.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -95,6 +95,6 @@ close to the CPU.
[mAL10]: https://www.kontron.com/products/iot/iot-industry-4.0/iot-ready-boards-and-modules/com-express/com-express-mini/come-mal10-e2-.html
[W25Q128FV]: https://www.winbond.com/resource-files/w25q128fv%20rev.m%2005132016%20kms.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[NCT7802Y]: https://www.nuvoton.com/products/cloud-computing/hardware-monitors/desktop-server-series/nct7802y/?__locale=en
[crashes]: https://pastebin.com/cpCfrPCL

View file

@ -37,9 +37,7 @@ This information is valid for all supported models, except T430s, [T431s](t431s.
exceed 4MiB in size, which means CONFIG_CBFS_SIZE must be smaller than 4MiB.
* ROM chip size should be set to 12MiB.
```{eval-rst}
Please also have a look at :doc:`../../tutorial/flashing_firmware/index`.
```
Please also have a look at <project:../../tutorial/flashing_firmware/index.md>.
## Splitting the coreboot.rom

View file

@ -98,5 +98,5 @@ Tested with edk2 payload (mrchromebox) and Ubuntu 22.04 (Linux 6.2.0):
- another riser with PCIe x4 connector remains untested - please modify this
page if you do test it!
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[Lenovo M920 Tiny specifications]: https://psref.lenovo.com/syspool/Sys/PDF/ThinkCentre/ThinkCentre_M920_Tiny/ThinkCentre_M920_Tiny_Spec.PDF

View file

@ -0,0 +1,232 @@
# Lenovo ThinkPad T470s/T480/T480s/T580/X280
This page describes how to run coreboot on the Lenovo [Thinkpad T470s], [ThinkPad T480],
[Thinkpad T480s], [Thinkpad T580], and [Thinkpad X280].
## Important Notes
### EC UART
The T480 (but not T480s) supports the use of the EC UART for debugging. If you want to use this
feature, you need to downgrade the vendor firmware to a version with a compatible EC firmware
*before flashing* for the EC UART to work properly. The EC firmware version needs to be 1.22
(N24HT37W), which means any BIOS from 1.39 (N24ET64W) to 1.54 (N24ET79W) is acceptable.
The mapping can be seen here [on Lenovo's site].
### Boot Guard
Most Thinkpads newer than the xx30 models except machines with swappable CPUs (T440p, W541) and
some models in the E series (E460, E470) have Intel Boot Guard enabled. This prevents these
laptops from running custom firmware which is not cryptographically signed with the manufacturer's
key.
The [deguard utility](../../soc/intel/deguard) will need to be used in order to bypass Boot Guard
on these devices.
### Thunderbolt
Older versions of Thunderbolt 3 controller firmware are buggy on these laptops.
The issue is that the TB3 firmware writes its logging data to the TB3's own 4M flash chip, and
when the flash chip fills up, the device fails to boot.
Lenovo has addressed this in a TB3 firmware update, which is recommended be be applied before
installing coreboot to ensure long-term reliability of the device. That said, most laptops that
still work likely have this fix already applied, and you can always externally flash the TB3
firmware update at the same time as flashing coreboot.
If your device becomes bricked due to this issue, the only resolution is to externally flash the
updated/fixed TB3 firmware flash (which is located on a separate flash IC from the main firmware).
The Lenovo TB3 FW update can be obtained [from Lenovo's site].
The Libreboot project has some more information about the issue and [how to externally flash the
TB3 firmware].
## Initial Setup
Follow the coreboot [tutorial](../../tutorial/part1) to:
* install dependencies/prerequisites
* clone the coreboot repo
* build the coreboot toolchain
You will also need to clone the [deguard](https://review.coreboot.org/deguard) repository in
order to bypass Boot Guard.
## Required proprietary blobs
When flashing the laptop for the first time, the following blobs are required for a full
flash image:
* Flash Descriptor (IFD)
* Management Engine (ME)
* Gigabit Ethernet (GBE)
These will either be extracted from the vendor firmware on the device or downloaded as needed.
Additionally, all Skylake/Kabylake machines require Intel's Firmware Support Package (FSP) for
hardware initialization. FSP is provided by default as part of the coreboot build, no user
intervention is required.
## Reading the vendor firmware
The Skylake Thinkpads have a single BIOS flash chip (16 MiB serial flash in a SOIC-8 package).
The flash chip uses the following layout:
00000000:00000fff flash descriptor (fd)
00001000:00002fff gbe
00003000:006fffff me
00700000:00ffffff bios
To read the vendor firmware, disconnect external power and remove the back of the laptop
as described in the [hardware maintenance manual](thinkpad_hmm).
Disconnect/remove all batteries (and CMOS battery if equipped). Attach a chip clip to the flash.
Use an external SPI programmer (ch341a, raspberry Pi, etc) to read the chip `bios.bin`.
## Preparing the binaries
The IFD and GBE need to be extracted from the vendor firmware backup read from the flash chip.
See [Extract IFD binaries](../../util/ifdtool/binary_extraction).
ifdtool -x -p sklkbl bios.bin
Rename the extracted files to `ifd.bin` and `gbe.bin` and move them to the `binaries` folder
you created per the instructions.
### Preparing the ME with deguard
Please review the documentation on the use of the [deguard utility](../../soc/intel/deguard).
All Skylake/Kabylake Thinkpads supported by coreboot are also supported in deguard. Hence, we
simply need to download/extract the donor image, then generate the "deguarded" ME firmware
image.
The donor ME binary required for use with the deguard utility can be downloaded as part of the
[Dell firmware updater]. After downloading, use [Dell_PFS_Extract.py] to extract the required ME
firmware image from the updater:
python Dell_PFS_Extract.py Inspiron_5468_1.3.0.exe
The resulting binary should be renamed `me_donor.bin` (file size 0x1f0000 bytes, sha256
`912271bb3ff2cf0e2e27ccfb94337baaca027e6c90b4245f9807a592c8a652e1`) and moved to the `binaries`
folder with the IFD and GBE binaries.
Then, generate the deguarded ME firmware image adjusting the `--delta` argument according to
your laptop's model:
./finalimage.py --delta data/delta/thinkpad_t480 --version 11.6.0.1126 --pch LP --sku 2M --fake-fpfs data/fpfs/zero --input ../coreboot/binaries/me_donor.bin --output ../coreboot/binaries/me_deguarded.bin
The command above assumes you are running deguard from the root of the deguard repo, that the
deguard and coreboot repos are checked out under the same parent directory, and that your ME
donor firmware is in the `binaries` subdirectory of coreboot (along with the IFD/GBE binaries).
Adjust the paths as necessary if that is not the case.
Please be careful with [me_cleaner](../../northbridge/intel/sandybridge/me_cleaner). While
me_cleaner is generally expected to work, truncating the ME binary can have unintended side
effects like disabling PCIe devices on Thinkpad T470s (NVMe, WLAN, WWAN, etc.).
### Preparing the IFD
In order to use the modified ME firmware binary generated by deguard above, we need to set the
HAP bit in the IFD using `ifdtool`:
util/ifdtool/ifdtool -p sklkbl -M 1 binaries/ifd.bin
The modified IFD will be saved as `ifd.bin.new`. Rename the original file to `ifd.bin.orig` and
the HAP-enabled one to `ifd.bin`
If you want to allocate the space that has become available from truncating the ME firmware to
corebios, you can modify the IFD layout. First, save the layout below into a text file
`layout.txt`:
00000000:00000fff fd
001f4000:00ffffff bios
00003000:001f3fff me
00001000:00002fff gbe
Then run ifdtool again:
util/ifdtool/ifdtool -p sklkbl -n layout.txt binaries/ifd.bin
Once again, the modified IFD will be saved as `ifd.bin.new`. Rename `ifd.bin.new` to `ifd.bin`.
The layout above allows you to maximize the CBFS size in your coreboot `.config`:
CONFIG_CBFS_SIZE=0xE0C000
## Building coreboot
You can use `make menuconfig` or `make nconfig` to select the mainboard matching your machine,
enable the inclusion of the IFD/ME/GBE binaries, and select your payload and options.
For example, you can also just use the following defconfig for a Thinkpad T480 with EDK2/UEFI
as a payload:
CONFIG_VENDOR_LENOVO=y
CONFIG_BOARD_LENOVO_T480=y
CONFIG_IFD_BIN_PATH="binaries/ifd.bin"
CONFIG_ME_BIN_PATH="binaries/me_deguarded.bin"
CONFIG_GBE_BIN_PATH="binaries/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
CONFIG_HAVE_ME_BIN=y
CONFIG_HAVE_GBE_BIN=y
CONFIG_PAYLOAD_EDK2=y
Save the above to a file called `defconfig` in your coreboot directory, then run:
make defconfig
make -j"$(nproc)"
Upon successful compilation, you will have a file `coreboot.rom` in the `build` directory ready
to flash.
## Flashing instructions
The initial flash of coreboot with the modified IFD and deguarded ME must be done using an
external programmer:
sudo flashrom -p <programmer> -w coreboot.rom
Subsequent flashes can be done internally and need only modify the `bios` region of the flash:
sudo flashrom -p internal -w coreboot.rom --ifd -i bios -N
The `coreboot.rom` flashed on subsequent flashes does not need to contain the IFD/ME/GBE
binaries if only flashing the `bios` region.
## Known Issues
- Some Fn+F{1-12} keys aren't handled correctly
- Nvidia dGPU is finicky
- Needs option ROM
- Power enable code is buggy
- Proprietary driver does not work at all
- Nouveau only works on linux 6.8-6.9
- Headphone jack detection
- Both headphone jack and speakers work when manually selected via pulseaudio
## Verified Working
- Alpine Ridge Thunderbolt 3 controller
- Integrated graphics init with libgfxinit
- video output: internal (eDP), miniDP
- ACPI support
- keyboard and trackpoint
- SATA
- M.2 SATA SSD
- NVMe
- USB
- Ethernet
- WLAN
- WWAN
- Bluetooth
- Virtualization: VT-x and VT-d
- Internal flashing (after initial flash with unlocked IFD)
[Thinkpad T470s]: https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t470s/
[ThinkPad T480]: https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480-type-20l5-20l6/
[ThinkPad T480s]: https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480s-type-20l7-20l8/
[Thinkpad T580]: https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t580-type-20l9-20la/
[Thinkpad X280]: https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x280-type-20kf-20ke/
[on Lenovo's site]: https://support.lenovo.com/us/en/downloads/ds502355-bios-update-utility-bootable-cd-for-windows-10-64-bit-linux-thinkpad-t480
[from Lenovo's site]: https://pcsupport.lenovo.com/gb/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480s-type-20l7-20l8/solutions/ht508988-critical-intel-thunderbolt-software-and-firmware-updates-thinkpad
[how to externally flash the TB3 firmware]: https://libreboot.org/docs/install/t480.html#thunderbolt-issue-read-this-before-flashing
[Dell firmware updater]: https://web.archive.org/web/20241110222323/https://dl.dell.com/FOLDER04573471M/1/Inspiron_5468_1.3.0.exe
[Dell_PFS_Extract.py]: https://github.com/vuquangtrong/Dell-PFS-BIOS-Assembler/blob/master/Dell_PFS_Extract.py

View file

@ -0,0 +1,81 @@
# Lenovo ThinkCentre M710s
This page provides technical documentation on [Lenovo ThinkCentre M710s].
## Flash chip
```{eval-rst}
+----------+-------------+
| Type | Value |
+==========+=============+
| Socketed | yes |
+----------+-------------+
| Model | W25Q64JV-.Q |
+----------+-------------+
| Size | 8MiB |
+----------+-------------+
| Package | SOIC-8 |
+----------+-------------+
```
The flash chip is divided into the following regions.
00000000:00000fff fd
00200000:007fffff bios
00003000:001fffff me
00001000:00002fff gbe
## Flashing
The flash chip cannot be flashed internally when running vendor firmware, and must
be flashed externally using a programmer of your choice.
Steps on how to open the chassis and get access to the mainboard are described
in the [hardware maintenance manual]. Follow the steps shown from
"[Removing the computer cover]" until step 1 of "[Replacing the storage drive]".
The SPI flash should be easy to identify and the location is shown in the image
below. See the [datasheet] and [flashing firmware tutorial] for more information.
![](thinkcentre_m710s_spi_location.jpg)
## Status
### Working
* Ubuntu 22.04.1 (Linux 6.5.0) using payloads:
* SeaBIOS
* MrChromebox's EDK 2 fork
* Tianocore's EDK 2
* Internal flashing (from coreboot)
* PEG (PCIe Graphics)
* PCIe
* SATA
* M.2 SSD
* M.2 WLAN (+ Bluetooth)
* LAN
* USB
* Memory card reader
* CPU fan
* VGA
* Display ports
* Audio (output)
* COM1
* TPM
### Not working
* Super I/O not well supported (there may be some minor issues)
* Power button LED
* ME cleaner
### Untested
* Audio (input)
* COM2 header
* LPT header
* PS/2 keyboard and mouse
[Lenovo ThinkCentre M710s]: https://www.lenovo.com/us/en/p/desktops/thinkcentre/m-series-sff/thinkcentre-m710s/11tc1md710s
[hardware maintenance manual]: https://download.lenovo.com/pccbbs/thinkcentre_pdf/m710s_ug_hmm_en.pdf
[Removing the computer cover]: https://download.lenovo.com/pccbbs/thinkcentre_pdf/m710s_ug_hmm_en.pdf#page=28
[Replacing the storage drive]: https://download.lenovo.com/pccbbs/thinkcentre_pdf/m710s_ug_hmm_en.pdf#page=31
[datasheet]: https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&partNo=W25Q64JV
[flashing firmware tutorial]: ../../tutorial/flashing_firmware/index.md

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View file

@ -0,0 +1,88 @@
# Lenovo ThinkCentre M700 / M900 Tiny
This page provides technical documentation on [Lenovo ThinkCentre M700 / M900 Tiny].
M700 Tiny and M900 Tiny are twin designs using the same exact mainboard, with
the following differences:
```{eval-rst}
+------------------------+------+------+
| Feature | M700 | M900 |
+========================+======+======+
| Chipset | B150 | Q170 |
+------------------------+------+------+
| Intel AMT | No | Yes |
+------------------------+------+------+
| Intel TXT | No | Yes |
+------------------------+------+------+
| PCIe lanes in M.2 slot | No | Yes |
+------------------------+------+------+
```
## Flash chip
```{eval-rst}
+----------+--------------------------+
| Type | Value |
+==========+==========================+
| Socketed | no |
+----------+--------------------------+
| Model | W25Q128.V or MX25L12873F |
+----------+--------------------------+
| Size | 16MiB |
+----------+--------------------------+
| Package | SOIC-8 |
+----------+--------------------------+
```
The flash chip is divided into the following regions.
00000000:00000fff fd
00001000:00002fff gbe
00003000:007fffff me
00800000:00ffffff bios
## Flashing
The flash chip cannot be flashed internally when running vendor firmware, and must
be flashed externally using a programmer of your choice.
Steps on how to open the chassis and get access to the mainboard are described
in the [hardware maintenance manual]. Follow the steps shown from
"[Removing the computer cover]" until "[Replacing the M.2 storage drive]".
The SPI flash should be easy to identify and the location is shown in the image
below. See the [datasheet] and [flashing firmware tutorial] for more information.
![](thinkcentre_m900_tiny_spi_location.jpg)
## Status
### Working
* Debian 12 (Linux 6.1.0) using MrChromebox' EDK II fork (uefipayload_2502)
* M.2 SATA + NVMe slot
* M.2 Wi-Fi slot
* Display ports
* USB
* Audio
* LAN
* CPU fan
* Discrete TPM 1.2
* Internal flashing (from coreboot)
* COM1 header
* DisplayPort header
* Power LED
* S3 Suspend
### Untested
* PS/2 header
* PCIe + SATA "2L" expansion header
[Lenovo ThinkCentre M700 / M900 Tiny]: https://psref.lenovo.com/syspool/Sys/PDF/ThinkCentre/ThinkCentre_M900_Tiny/ThinkCentre_M900_Tiny_Spec.PDF
[hardware maintenance manual]: https://download.lenovo.com/pccbbs/thinkcentre_pdf/m700_m900_m900x_tiny_hmm.pdf
[Removing the computer cover]: https://download.lenovo.com/pccbbs/thinkcentre_pdf/m700_m900_m900x_tiny_hmm.pdf#page=119
[Replacing the M.2 storage drive]: https://download.lenovo.com/pccbbs/thinkcentre_pdf/m700_m900_m900x_tiny_hmm.pdf#page=134
[datasheet]: https://www.mouser.com/datasheet/2/949/w25q128jv_revf_03272018_plus-1489608.pdf
[flashing firmware tutorial]: ../../tutorial/flashing_firmware/index.md

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

View file

@ -112,6 +112,6 @@ not publicly available.
[Libretrend LT1000]: https://libretrend.com/specs/librebox/
[W25Q64FV]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[baseboard site]: http://www.minicase.net/product_LR-i7S65T1.html
[custom module]: https://shop.3mdeb.com/product/tpm2-module-for-librebox/

View file

@ -219,7 +219,7 @@ and [u-root] as initramfs.
[The Wiwynn's Yosemite-V3 product in OCP market place]: https://www.opencompute.org/products/423/wiwynn-yosemite-v3-server
[osf-builder]: https://github.com/facebookincubator/osf-builder
[OCP virtual summit 2020]: https://www.opencompute.org/summit/virtual-summit/schedule
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[All about u-root]: https://github.com/linuxboot/book/tree/master/u-root
[u-root]: https://u-root.org/
[ChromeOS VPD]: https://chromium.googlesource.com/chromiumos/platform/vpd/+/master/README.md

View file

@ -90,7 +90,7 @@ u-root.
+------------------------+---------------------------------------------+
```
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[OCP]: https://www.opencompute.org/
[OCP Tioga Pass]: http://files.opencompute.org/oc/public.php?service=files&t=6fc3033e64fb029b0f84be5a8faf47e8
[OCP Market Place]: https://www.opencompute.org/products/109/wiwynn-tioga-pass-advanced-2u-ocp-server-up-to-768gb-12-dimm-slots-4-ssds-for-io-performance

View file

@ -81,4 +81,4 @@ Dediprog compatible pinout.
[Elgon]: https://github.com/Telecominfraproject/OpenCellular
[OpenCellular]: https://code.fb.com/connectivity/introducing-opencellular-an-open-source-wireless-access-platform/
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -94,4 +94,4 @@ site. Depending on the configuration:
[apu1c1_flash]: apu1c1.jpg
[spi_header]: apu1_spi.jpg
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -113,4 +113,4 @@ are available for free on PC Engines official site. Both configurations
[apu2_flash]: apu2.jpg
[spi_header]: apu2_spi.jpg
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/

View file

@ -75,5 +75,5 @@ serial/video/pcie ports might be available.
[Portwell PQ7-M107]: http://portwell.com/products/detail.php?CUSTCHAR1=PQ7-M107
[W25Q64FW]: https://www.winbond.com/resource-files/w25q64fw%20revn%2005182017%20sfdp.pdf
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[Board manual]: www.portwell.com/pdf/embedded/PQ7-M107.pdf

View file

@ -48,7 +48,7 @@ The board features:
## Extra links
[flashrom]: https://flashrom.org/Flashrom
[flashrom]: https://flashrom.org/
[flashing tutorial]: ../../tutorial/flashing_firmware/ext_power.md
[Intel FSP2.0]: ../../soc/intel/fsp/index.md
[AST2500]: https://www.aspeedtech.com/products.php?fPath=20&rId=440

Some files were not shown because too many files have changed in this diff Show more