Commit graph

62,698 commits

Author SHA1 Message Date
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