Commit graph

62,395 commits

Author SHA1 Message Date
Angel Pons
91fe658714 drivers/option: Add forms in cbtables
Introduce a mechanism so that coreboot can provide a list of options to
post-coreboot code. The options are grouped together into forms and
have a meaning name and optional help text. This can be used to let
payloads know which options should be displayed in a setup menu,
for instance. Although this system was written to be used with edk2,
it has been designed with flexibility in mind so that other payloads
can also make use of this mechanism. The system currently lacks a way
to describe where to find option values.

This information is stored in a set of data structures specifically
created for this purpose. This format is known as CFR, which means
"coreboot forms representation" or "cursed forms representation".
Although the "forms representation" is borrowed from UEFI, CFR can
be used in non-UEFI scenarios as well.

The data structures are implemented as an extension of cbtables records
to support nesting. It should not break backwards compatibility because
the CFR root record (LB_TAG_CFR_ROOT) size includes all of its children
records. The concept of record nesting is borrowed from the records for
CMOS options. It is not possible to reuse the CMOS records because they
are too closely coupled with CMOS options; using these structures would
needlessly restrict more capable backends to what can be done with CMOS
options, which is undesired.

Because CFR supports variable-length components, directly transforming
options into CFR structures is not a trivial process. Furthermore, CFR
structures need to be written in one go. Because of this, abstractions
exist to generate CFR structures from a set of "setup menu" structures
that are coreboot-specific and could be integrated with the devicetree
at some point. Note that `struct sm_object` is a tagged union. This is
used to have lists of options in an array, as building linked lists of
options at runtime is extremely impractical because options would have
to be added at the end of the linked list to maintain option order. To
avoid mistakes defining `struct sm_object` values, helper macros exist
for supported option types. The macros also provide some type checking
as they initialise specific union members.

It should be possible to extend CFR support for more sophisticated
options like fan curve points. Feedback about this is highly
appreciated.

Change-Id: I304de7d26d79245a2e31a6d01f6c5643b31cb772
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74121
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-18 18:16:51 +00:00
Maximilian Brune
4d4776f320 mb/emulation/qemu-sbsa: Configure flash region for MMU
Since QEMU commit 728b923f548d
("target/arm: Do memory type alignment check when translation enabled")
alignment is checked for device memory. That causes exceptions during
bootup of coreboot trying to load things (e.g. stages) from the memory
mapped flash.

To fix it the memory mapped flash region will be marked as MA_MEM
(normal memory) instead of MA_DEV (device memory). Technically that
isn't 100% correct, but avoids having to write a custom memory mapped
flash driver that checks for alignment on all accesses. Since it is
emulation and therefore always normal memory anyway, there shouldn't be
any side effects.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I98bd1a18495e3d153ce53abec8686c7871ee12c5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85147
Reviewed-by: David Milosevic <David.Milosevic@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2024-12-18 13:20:06 +00:00
Mark Chang
dfef1895f2 mainboard: Add MiTAC Computing Whitestone-2 (LGA-4677)
The MiTAC Computing Whitestone2 O-RAN CU/DU Edge Server is a compact
and highly efficient 1U rackmount solution designed for edge computing
in O-RAN (Open Radio Access Network) environments. Featuring support
for the 4th Gen Intel® Xeon® Scalable Processor Edge Enhanced Product
Family, it delivers robust performance with a single socket (LGA-4677)
that supports up to 205W TDP. The server provides excellent memory
capabilities with 8 DDR5 RDIMM slots supporting 4400 MHz speeds across
8 channels per CPU.

Working:
 - All eight DIMM slots
 - Serial port to emit spam
 - POST code display
 - Front USB 2.0 port
 - Front Intel E810 CAM1 (25Gbps x 4)
 - Front Intel E810 CAM2 (25Gbps x 4 / 10Gbps x 8)
 - M.2 2280/22110 slot x 2 (Gen3 x4)
 - Flashing internally with flashrom

Untested for now (i.e. should work, will eventually test):
 - Riser PCIe Gen.4 x16 slots x 2 (FHHL)

Others:
 - The board boots to Ubuntu 22.04.2 (5.15.0-1032-realtime) with all
   40 cores (Intel 5433n) available.
 - FlexRAN 23.11 + DPDK 22.11.1 + ACC200 O-RU + O-DU long-run test
   pass.

Change-Id: Icf625cf8e9c76ef08411614c15ee43d0c459b905
Signed-off-by: Mark Chang <mark.chang@mitaccomputing.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85532
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-18 09:07:50 +00:00
John Su
caf8f9f60f mb/google/brya/var/uldrenite: Enable PMC, HECI and SRAM devices
Referencing the baseboard PnP settings for Uldrenite.

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: Icd537fd5b6bfa589931633b72477414098523b54
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85597
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
2024-12-18 04:43:13 +00:00
John Su
b668c756bf mb/trulo/var/uldrenite: Configure audio (max9360a, rt5682)
1. Enable HDA driver
2. Add spkr_tplg = max98360a
3. Add jack_tplg = rt5682

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: I8f78a8641de23eadb03348a31574045702b40554
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85600
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>
2024-12-18 04:43:05 +00:00
John Su
941f994809 mb/trulo/var/uldrenite: Configure Network
1. Enable CNVi WiFI and BT
2. Enable WWAN driver

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: I2fd292550700817f15813dabfbaf9ccab3a907d8
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85583
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>
2024-12-18 04:42:54 +00:00
John Su
600e7810fb mb/trulo/var/uldrenite: Configure USB ports and mapping
Based on the schematic_20241203, configure USB ports and their
mappings.

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: I8fa3bf958faaf17b35e33fe93e2a11e0d2eb48d6
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85582
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <ericllai@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>
2024-12-18 04:42:43 +00:00
John Su
0261cbe8e9 mb/trulo/var/uldrenite: Configure serial_io and I2C
1. Configure serial_io and I2C
2. Add I2C devices

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: I3c1b6028c7e4392a2142851d5fd0199954e2272d
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85581
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-18 04:42:33 +00:00
John Su
113205bcd1 mb/trulo/var/uldrenite: Enable eMMC and DLL tuning parameters
Enable eMMC and add DLL tuning parameters.

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: I5f0fdb31ce4eaad5537df36c4165c404239a7bd4
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85579
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: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
2024-12-18 04:42:24 +00:00
John Su
0dd227f9c1 mb/trulo/var/uldrenite: Enable DPTF, S0ix and configure FIVR setting
1. Enable DPTF
2. Enable S0ix
3. Configure external fivr setting

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: Id7777b7560b40c1427df9645d991240c027e58e4
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85578
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
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>
2024-12-18 04:42:16 +00:00
Rui Zhou
0ce153c8df mb/google/nissa/var/rull: For probe, change unprovisioned to unknown
The nissa project fw branch is more suitable for compatibility with unknown, so the compatible methods of wifi and ssd are replaced.

BUG=b:383675207
BRANCH=None
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Id2415d18c635dece94500f511bccdc9d2b69d1b4
Signed-off-by: Rui Zhou <zhourui@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85566
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>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2024-12-18 03:36:34 +00:00
Jarried Lin
b57308f437 mb/google/rauru: Add SD card configurations
Rauru reference design has SD card interfaces, so we configure it in
mainboard_init() in ramstage.

BUG=b:317009620
TEST=Build pass. Check storage in depthcharge.
firmware-shell: storage init
*  0: UFS LUN 0
   1: removable mtk_mmc

Change-Id: Ia9f12df85c5f9f9d134990edcf82bf0df9ea995d
Signed-off-by: Andy-ld Lu <andy-ld.lu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85565
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-18 02:44:19 +00:00
Jarried Lin
e969a3df87 soc/mediatek/mt8196: Add SD card configurations
Rauru reference design has SD card interfaces, so we have to configure
it in ramstage.

Implement msdc.c (memory and SD Card controller) to place the SD card
drivers.

This implementation is based on chapter 10.3 in MT8196 Functional
Specification.

TEST=Build pass
BUG=b:317009620

Change-Id: Ibb6a075d0f1b5a647e93a58b3ea1029b7676c765
Signed-off-by: Andy-ld Lu <andy-ld.lu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85564
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-18 02:44:11 +00:00
Xiwen Shao
8be835ce3c soc/mediatek/mt8196: Add tracker driver
Tracker is a debugging tool, including AP/INFRA/PERI tracker. When bus
timeout occurs, the system reboots and latches some values which could
be used for debug.

Rename VLPCFG_BASE to VLP_CFG_BASE.

TEST=Build pass, When we encounter a bus hang and HW watchdog triggers
a reset to the platform, the tracker will print the
latched information:
[INFO ]  **Dump %s aw debug register start**
[INFO ]  xxxxxx, 0x1c600000, 0x0, 63
This means that the 63rd entry latch accessing 0x1c600000 has a bus
timeout.

BUG=b:317009620

Signed-off-by: Xiwen Shao <xiwen.shao@mediatek.corp-partner.google.com>
Change-Id: Ib9784a370acec45ce36a800f3955b9cf96651298
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84929
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-12-18 02:43:59 +00:00
Xueqi Zhang
78560f9958 soc/mediatek/mt8196: Add MMinfra driver support
MMinfra is the Multimedia Infrastructure. All the Multimedia modules
depend on it. This file adds some initial settings for MMinfra.

Test=Build pass
BUG=b:317009620

Signed-off-by: Xueqi Zhang <xueqi.zhang@mediatek.corp-partner.google.com>
Change-Id: Ie86f141a0957fc60d4973875c0dbcbdb57be1f75
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85188
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-12-18 02:43:39 +00:00
Vince Liu
0b252ef8b4 util/mtkheader: Add GFH header for mt8189 bootblock code
Set bootblock load address for bootROM.

BUG=b:379008996
BRANCH=none
TEST=Build Pass.

Change-Id: I47078272880a89e81c851ede307cdc306b1c79ac
Signed-off-by: Vince Liu <vince-wl.liu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85598
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2024-12-18 02:08:42 +00:00
Patrick Rudolph
540eb5ba73 cpu/qemu: Enable IDT_IN_EVERY_STAGE
Enable IDT_IN_EVERY_STAGE in qemu to easily debug HW breakpoints.

TEST: Can use breakpoints in pre RAM stages to debug invalid
      memory accesses on QEMU.

Change-Id: If4a386d1adc788ff717899027881590b7c8b3369
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85593
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2024-12-17 17:37:54 +00:00
Patrick Rudolph
f9d6fd4e0f soc/intel/xeon_sp: Enable IDT_IN_EVERY_STAGE
Make use of exception handling in every stage. Additionally this
enables breakpoints in all stages, making NULL dereferences and
stack overflows easier to detect.

TEST: Stack canary exceptions are seen in romstage on ibm/sbp1.

Change-Id: I8a9f12b9ae041ce47c14f2ef7f09b029d408260e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85569
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-17 17:37:29 +00:00
Patrick Rudolph
c3dee9eaba cpu/intel/car/romstage: Fix false-positive stack corruption
Fix regression introduced in commit 0351872731
("arch/x86: Add breakpoint to stack canary").

romstage_main writes to the stack-canary, but since that's expected
temporarily disable the breakpoint. This only caused a warning on
platforms that do select IDT_IN_EVERY_STAGE, since those install the
stack canary breakpoint.

TEST: No more exceptions are printed in romstage when IDT_IN_EVERY_STAGE
      is enabled.

Change-Id: I7ebf0a5e8eaad49af77ab4d5f6b58fc849013b14
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85568
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2024-12-17 17:36:47 +00:00
Patrick Rudolph
b659fb5cea mb/ocp/tiogapass: Wait for BMC
The mainboard code relies on IPMI communication with the BMC.

Since the x86 and BMC start booting at the same time on ACPI G3
exit and the x86 is a bit faster, wait for the BMC to signal it's
done booting by pulling GPP_F4 low.

Fixes lots of error messages in coreboot about not working IPMI:
[ERROR]  wait_ibf timeout!
[ERROR]  IPMI START WRITE failed
[ERROR]  ipmi_kcs_send_message failed

TEST: Once GPP_F4 is low IPMI communication over the KCS is also
      working on ocp/tiogapass.
      The log contains the line:
      [DEBUG]  BMC ready after 125560 ms

Change-Id: I925aff1ff1ffd3d7388835e62aad2ba339e52472
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85492
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-17 17:35:23 +00:00
Jeremy Compostella
7c0556244d drivers/wifi: Update Drive Strength BRI Rsp Table revision
According to document 559910 Intel Connectivity Platforms BIOS
Guideline revision 8.2 and 9.2 specifications, both revision 0 and 1
are supported and share the same structure.

BUG=b:346600091

Change-Id: Id0e05a9db48445b9254701d2a09c19bfbd477284
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85586
Reviewed-by: YH Lin <yueherngl@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-12-17 17:27:54 +00:00
Jeremy Compostella
70bdd2e1fa cpu/x86/topology: Simplify CPU topology initialization
This commit rewrites the CPU topology initialization code to simplify
it and make it more maintainable.

The previous code used a complex set of if-else statements to
initialize the CPU topology based on the CPUID leaves that were
supported. This has been replaced with a simpler and more readable
function that follows the Intel Software Developer Manual
recommendation by prioritizing CPUID EAX=0x1f over CPUID EAX=0xb if
available.

The new code removes the need for separate functions to handle the
topology initialization for different CPUID leaves. It uses a static
array of bitfield descriptors to store the APIC ID descriptor
information for each level of the CPU topology. This simplifies the
code and makes it easier to add new levels of topology in the future.

The code populates the node ID based on the package ID, eliminating
the need for an extra function call.

Change-Id: Ie9424559f895af69e79c36b919e80af803861148
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85576
Reviewed-by: Jincheng Li <jincheng.li@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
2024-12-17 17:24:15 +00:00
Patrick Rudolph
3a2ffba231 soc/intel/xeon_sp: Introduce early_pch_init
Stop using platform_fsp_memory_init_params_cb() as SoC specific romstage
hook and introduce early_pch_init() to do PCH init in romstage before
FSP-M runs.

Move PCH specific code into early_pch_init and call it from common code.

Change-Id: Id31a2018f5820098e83782b19a1672d2e35bdb83
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85505
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-17 12:08:36 +00:00
Patrick Rudolph
48ed4b0f85 soc/intel/xeon_sp/lbg: Add support to hide HDA
The azalia audio device is usually unused on server platforms.

Add code to hide it since FSP lacks this option and there's no
official bit in the IFD to disable it. The device is disabled
early to:
1. Prevent FSP from seeing the device being present. It could keep
   an internal state that the device is working.
2. Prevent FSP-M from trying to detect codecs. This would increase
   boot time.
3. Prevent FSP from becoming confused or crash when the device is
   suddently missing as disabled by a ramstage PCI driver.

TEST: No HDA PCI device visible on ocp/tiogapass.

Change-Id: I84ac53621b2dcf7baa68f2efb30d0b7e77595c8d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85496
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-17 12:04:50 +00:00
Patrick Rudolph
a857c81122 arch/x86: Disable DEBUG_STACK_OVERFLOW_BREAKPOINTS_IN_ALL_STAGES
Disable the debug code as there were unexplainable stack corruptions
detected on some platforms.

No problems were observed on:
- QEMU
- Xeon-SP

Change-Id: I1f1b9f01af7fbb0c19becf6ea53d436898584c5e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85594
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-17 08:37:10 +00:00
Ren Kuo
45dabe846d mb/google/brox: Apply ISH_FW_VERSION in Kconfig
Apply ISH_FW_VERSION in Kconfig to improve boot time.
It won't do some ISH init task without the config on UFS sku and
cause boot to kernel time over 1.55 sec from G3 boot.

BUG=b:364971947
BRANCH=firmware-brox-16080.B
TEST=cbmem -c | grep "ISH version" -> ISH version: 5.4.2.7780
     Boot to OS on jubilant, run bootperf test of G3 boot.
     Confirm the test result is pass.

Change-Id: I31db0925a81b6ec68ee6afcb262e540ba7db206a
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85580
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2024-12-17 07:53:54 +00:00
alokagar
e0b1a0dbec vc/intel/fsp/mtl: Update MTL fsp header files from 3471_91 to 4122_21
Update header files for FSP for Meteor Lake platform to version 4122_21,
previous version being 3471_91.

FSPS:
1. Added UPD's ThcMode, ThcWakeOnTouch
2. Reserved bit changes
FSPM:
1 Added PchHdaSubSystemIds

BUG=b:329548127
TEST=Able to build and boot google/rex to ChromeOS.

Change-Id: I4a1164060f7e91f8fa4ada60421bf87fb17ad541
Signed-off-by: alokagar <alok.agarwal@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84656
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>
2024-12-17 06:16:07 +00:00
Felix Singer
c20fd2fc3f 3rdparty/fsp: Update submodule to upstream master
Updating from commit id d7931859bfb1:
2024-10-14 15:15:03 +0800 - (NEX MTL-UH_MTL-PS MR1 (4053_58) FSP)

to commit id 851f7105d803:
2024-11-22 14:59:29 +0800 - (NEX TGL IPU 2025.1 (7341_01) FSP)

This brings in 8 new commits:
851f7105d803 NEX TGL IPU 2025.1 (7341_01) FSP
d9d0cfbdf26b NEX RPL-S MR5/RPL-S Refresh MR3 (5401_01) FSP
360733f79a2f NEX RPL-P MR3 (5401_01) FSP
51caa72d5df6 NEX ADL-PS IPU 2025.1 (5401_01) FSP
fea3c6643c2f NEX ADL-S IPU 2025.1 (5401_01) FSP
507145c279de NEX ADL-P IPU 2025.1 (5401_01) FSP
bd5df1993f52 Merge branch 'master' of https://github.com/intel/FSP
e26be9c400db Elkhart Lake IPU2025.1 FSP

Change-Id: I56f0179301af7894ed854ed87a4b7a09a8cf11cc
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85295
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-16 21:09:14 +00:00
Shuo Liu
e5b5fc345a soc/intel/xeon_sp: Improve PCI INTx IRQ routing for Gen6
1. Route IRQ for on-chip end-points only (e.g. 00:1f.4
   i801_smbus)

   IRQ routing for devices under root ports needs additional
   swizzle per decided by root port configurations, which will
   postponed to later till there is actual usage.

2. Route IRQ based on FSP programmed end-point device ID <->
   PIRQ mapping.

TESTED=Build and boot on intel/avenuecity CRB

Change-Id: Ibeb7c8fb3432e5cb240ac3b09c19d2c361e4b45a
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85153
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2024-12-16 14:53:39 +00:00
Dinesh Gehlot
673075f102 util/cbfstool: Add eventLog support for ELOG_TYPE_FW_CSE_SYNC
This patch introduces logging for the ELOG_TYPE_FW_CSE_SYNC event. This
event logs data related to CSE synchronization, along with the relevant
boot stage information.

BUG=b:305898363
TEST=boot verified on google/rex0 and google/rex64

Change-Id: I4d6d3c4e07ab8677feb6a8acf8d4c6604ab704b8
Signed-off-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85218
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-16 03:30:21 +00:00
Dinesh Gehlot
3235b7c6d5 commonlib: Add ELOG_TYPE_FW_CSE_SYNC eventLog type
This patch adds a new event log type, ELOG_TYPE_FW_CSE_SYNC. The
purpose of this event type is to log successful completion of CSE
synchronization.

BUG=b:379585294
TEST=boot verified on google/rex0 and google/rex64

Change-Id: Id73fa3a77e5fbbae5c61dfb30ae26b4ba3dca6ab
Signed-off-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85217
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-16 03:29:53 +00:00
Subrata Banik
4a0c49e671 soc/intel/pantherlake: Keep image clock configuration enable
The ImguClkOutEn parameters are required in pantherlake, therefore,
avoid disabling the IMGU CLKOUT FSP UPDs.

BUG=b:381044394
TEST=Able to see FSP-M UPDs for google/fatcat where IMGU CLKOUTs are
not disabled with this patch.

Change-Id: Ieb022e6dc0b64106ff30f56cd17f9f219276785f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85588
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-14 14:09:50 +00:00
Subrata Banik
51cc2bacb6 soc/intel/pantherlake: Disable stack overflow debug options
This patch disables the `DEBUG_STACK_OVERFLOW_BREAKPOINTS` and
`DEBUG_STACK_OVERFLOW_BREAKPOINTS_IN_ALL_STAGES` Kconfig options
for the Pantherlake SOC.

These options are causing false positive stack overflow detections,
leading to unnecessary debugging.

w/o this patch:

stack corruption before for verstage and romstage early.

    Failed to create address zero instruction fetch breakpoint
    Failed to create stack canary breakpoint
    ...
    ...
    Stack corruption detected at rip: 0xf983007a
    Stack corruption detected at rip: 0xf983007a

Change-Id: I31b99a7b6de221d3ec23f6538c078d0797a6084f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85584
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
2024-12-14 14:09:39 +00:00
Nicholas Chin
eeb6f67eec Docs: Convert bare URLs into hyperlinks
Format bare URLs as links so that they are rendered as hyperlinks
instead of plain text.

Change-Id: I234d395cddd58f3d3dfb4b4ddccb6efc70d4dd9e
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85433
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-14 06:23:13 +00:00
Jarried Lin
2609519704 mb/google/rauru: Implement regulator interface
Control regulator more easily with regulator interface.

TEST=build pass
BUG=b:317009620

Change-Id: I3cad68dbb2c5873c4e00066da18b1593b88ff499
Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85563
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-12-13 12:01:24 +00:00
Jarried Lin
8c6426c1b4 soc/mediatek/mt8196: Add PMIC MT6373 driver
1. Add MT6373 driver in soc folder
2  Add regulator API for powering on SD card
3. Add regulator API for VCN33_3
4. Add MT6373 LDO enable API

TEST=build pass, check boot log with:
[INFO ]  mt6373_init_setting done
[INFO ]  pmic_protect_key_setting done
BUG=b:317009620

Change-Id: Icbcd1f5a22388093781fd92c31889dd55a0ed9a3
Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85129
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-12-13 04:01:54 +00:00
John Su
bda5b83661 mb/google/brya/var/uldrenite: update gpio settings
Configure GPIOs according to schematic_20241203.

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: I3c5cb298fd0a4108af8f65abd9eeddbfe5b7afc4
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85522
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.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>
2024-12-13 03:30:02 +00:00
John Su
afb11d05b9 mb/google/trulo/var/uldrenite: Add memory config
Fill in memory config based on the schematic_20241203.

BUG=b:380476928, b:380789023
TEST=emerge-nissa coreboot

Change-Id: I28865fb3787b8195504fb890e05447fbc4d55ddf
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85542
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
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>
2024-12-13 03:29:46 +00:00
Subrata Banik
46df9e1d38 mb/google/brya/var/marasov: Enable GPP_F9 GPIO for early panel power-on
This change enables the GPP_F9 GPIO, which controls the SLP_S0_GATE_R
signal and subsequently the SYS_SLP_S0IX_L signal.

By enabling GPP_F9 early in the boot process, we ensure the panel is
powered on correctly and able to render the eSOL message.

BUG=b:372737590
TEST=Verified panel power-on by observing eSOL during build on
google/marasov.

Change-Id: I727a72d9583575b2bbebe2c3b75c980170dd36b9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85574
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
2024-12-13 03:28:08 +00:00
Li Feng
04d33b90ec mb/google/fatcat: config GPP_F23 as ISH gpio pin
The GPP_F23/ISH_GP_9A pin receives the lid open/close signal from
SMC_LID. This pin is not utilized in the AP firmware stack; however
the ISH firmware requires this signal for its tablet mode support.
Therefore, we configure this pin as an ISH GPIO.

BUG=b:370984186
TEST=Build and flash CB; run ISH main firmware; read this pin and
verified it returned the correct value.

fatcat-rev257 ~ # ectool --name=cros_ish gpioget lid_open
GPIO lid_open = 1

Change-Id: I19a4d6967acf96aefe2f38d628f898811d8a6e6d
Signed-off-by: Li Feng <li1.feng@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85464
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-12 22:04:10 +00:00
Jarried Lin
16ab83b34a soc/mediatek/mt8196: Initialize SSPM
SSPM is "Secure System Power Manager" that provides power control in
secure domain. The initialization flow is to load SSPM firmware to its
SRAM space and then enable it.

It takes 20 ms to load sspm.bin.

coreboot logs:
CBFS: Found 'sspm.bin' @0x62c00 size 0x21ab6 in mcache @0xfffdd314
mtk_init_mcu: Loaded (and reset) sspm.bin in 20 msecs (256212 bytes)

TEST=can see the sspm logs.
BUG=b:372173976

Change-Id: Ic56f0bad2f4cbf11d5711425d57c3b5b6bf283f0
Signed-off-by: Kenji Yu <kenji.yu@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85516
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2024-12-12 11:04:16 +00:00
Ren Kuo
b793209b80 mb/google/brox/var/jubilant: Disable Tccold Handshake
The patch disables Tccold Handshake to prevent possible display
flicker issue for jubilant board. Please refer to Intel doc#723158
for more information.

BUG=b:383433239
BRANCH=firmware-brox-16080.B
TEST=Boot to OS on jubilant, verify the display is without flicker.

Change-Id: I4f22067b81fa1b1b9addd7d1f49de59136d221c0
Signed-off-by: Ren Kuo <ren.kuo@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85555
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2024-12-12 05:34:28 +00:00
Daniel Peng
2f1e67bbc7 mb/google/nissa/var/glassway: Modify touch screen ILIT2901 sequence
After modified the settings, it could be met the time sequence for
this ILIT2901 touchscreen specification via our EE's measurements.
1. ILIT2901 Specification: ILI2901A-A202 Data Sheet_V1.2_20240128.pdf.
2. Double delay RST time to 12ms.
3. F/W calibration delay time is about 700ms after RST high.
   The tuned firmware version is 005c_0700.0000.0000.0006.bin.

BUG=b:375986645
BRANCH=firmware-nissa-15217.B
TEST=1. emerge-nissa coreboot chromeos-bootimage
     2. Verified the sequence correctly by EE.

Change-Id: I15e30ee72541b4f12b3ec4ea509cb09dc29659ca
Signed-off-by: Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85363
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: Daniel Peng <daniel_peng@pegatron.corp-partner.google.com>
2024-12-12 03:25:48 +00:00
Jarried Lin
a1c50f233d soc/mediatek/mt8196: Add PMIC MT6363 ADC driver
Add MT6363 AUXADC driver support, which is essential for handling the
Analog-to-Digital Conversion (ADC) functionalities in the MT8196 SoC.

TEST=build pass
BUG=b:317009620

Change-Id: Ice3c286cd207e445392d5f0126a07ce4f40dcf8a
Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85128
Reviewed-by: Yidi Lin <yidilin@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-12-12 01:16:49 +00:00
Jarried Lin
8910b6ba7d soc/mediatek/mt8196: Add PMIC MT6363 driver
1. Add MT6363 driver in SoC folder
2. Add vtref18 set/get api
3. Add MT6363 LDO/BUCK enable api
4. Add pmif_arb for MT6363

TEST=build pass
BUG=b:317009620

Change-Id: Iaf493b802522deba575d98c2ed69a93e94ce3d4e
Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85127
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-12-12 01:16:24 +00:00
Yidi Lin
c215889442 soc/mediatek/mt8196: Add PMIF and PMIC driver support
Implement PMIF driver for communication between SoC and PMIC. Develop
SPMI driver for communication over the SPMI bus. Add necessary
configurations and base addresses to support PMIF.

TEST=build pass, check boot log with:
[INFO ]  mtk_pmif_init: SPMI_MASTER_1, 0
[INFO ]  mtk_pmif_init: SPMI_MASTER_0, 0
BUG=b:317009620

Change-Id: I232015f45735ee5278b09d0352410617a1565177
Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85126
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
2024-12-12 01:16:04 +00:00
Guangjie Song
27fa0595de soc/mediatek/mt8196: Add mtcmos init support
Add mtcmos init code and APIs for controlling power domain.

TEST=build pass and driver init ok
BUG=b:317009620

Signed-off-by: Guangjie Song <guangjie.song@mediatek.corp-partner.google.com>
Change-Id: I44f2bb10453377a8412e80ac0c100760ebfbaff9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84497
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Yidi Lin <yidilin@google.com>
2024-12-12 01:15:46 +00:00
Ana Carolina Cabral
61a00269a2 mb/amb/birman*/gpio: remove configuration for VDD_MEM_VID[0,1]
Fix VDD_MEM_VID[0,1] pin assignments that was causing boot issues.

Change-Id: Ie5634575aff6dad210928c9c9af808e245322b99
Signed-off-by: Ana Carolina Cabral <ana.cabral@amd.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85498
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2024-12-11 22:13:14 +00:00
Rob Barnes
38b59164ca ec/google/chromeec: Define ACPI_NOTIFY_CROS_EC_MKBP constant
This change simply replaces 0x80 with a top level constant called
ACPI_NOTIFY_CROS_EC_MKBP. There are no functional changes.

BUG=b:343288326
TEST=Build

Change-Id: Ia476263620acc269f9dd8a6b3c9e5e247b403aee
Signed-off-by: Rob Barnes <robbarnes@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85461
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Reviewed-by: Boris Mittelberg <bmbm@google.com>
2024-12-11 16:07:57 +00:00
Sean Rhodes
50c9747d87 drivers/usb/intel_bluetooth: Add GBTR Method
Add GBTR Method, which gets the state of the RF Kill pin. Unlike
the VGPIO, this can be used for both CNVi and full PCI wireless
cards.

Change-Id: I8d025f63192218399b8d5e60e847853e54a8353c
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84992
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
2024-12-11 14:05:06 +00:00