Commit graph

8,281 commits

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