Commit Graph
175 Commits
Author SHA1 Message Date
Pastorcici, Mariano-paulX c50658ae6b feat: [common] Enable PCIe resizable BAR support
This commit adds support for PCIe resizable BARsupport.
The feature can be enabled by setting PcdResizableBarSupport
for the board build script and its disabled by default.

Signed-off-by: pastorcx <mariano-paulx.pastorcici@intel.com>
2024-09-09 10:30:57 -07:00
Bejean Mosher 04132381bd feat: Add BoardConfig field to control Stage1B remap
Adding new Board Config item REMAP_STAGE1B to control remapping Stage1B
into permanent memory after FSP-M. Decouple this from ENABLE_FAST_BOOT
and STAGE1B_XIP. This makes it simpler to enable this remap when the
slight performance boost may be needed, and leave it disabled by default.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2024-06-04 13:07:16 -07:00
bejeanmo 6a1da85c9f fix: FSP 2.4 issues (#2171)
1) Some FSP 2.4 implementations are non-conforming and use FSPM_ARCH_UPD
instead of FSPM_ARCH2_UPD as indicated by the specification. Logic is
changed to check FSPM UPD header revision for structure version instead
of FSP spec revision.

2) MultiPhase FSP PhaseIndex is one-based so loop comparisons need to take
this into account. Side effect is that the last phase may be missed. No
current platform FSP is utilizing this.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2024-05-03 08:26:03 -04:00
Yi Li 6adb9072d5 Let Stage1B run in memory accoss all stages in fast boot mode
This will increase time of Board PostMemoryInit hook and TempRamExit,
but improve the performance of PostTempRamExit hook, PreSiliconInit hook
and FSP-S.

In total, the boot time can be reduced by ~20ms.

Signed-off-by: Yi Li <yi1.li@intel.com>
2024-04-02 09:45:30 -07:00
bejeanmo 9c527d99c8 fix: Only register root bridges with actual devices, not empty ones. (#2142)
Registering logical root bridges with no devices can cause unexpected
behavior for platforms that use _PCI_ENUM_BUS_SCAN_TYPE = "range", since
all empty buses in the range will be compared against the resource
allocation table entries.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2024-02-16 10:34:49 -07:00
bejeanmo fed94258ac fix: Remove check for physical root bridge device before scanning. (#2140)
Not all root bridges have a physical device at dev 0 func 0 of the root
bus, and this requirement prevents some platforms from being fully scanned.
From this point, PciEnumerationLib doesn't access the root bridge
configuration space at all, so this is an unnecessary check.

Instead, root bus scanning will continue without dev 0 func 0 present. If
no devices are found on the root bus, scanning will continue to the next
root bridge.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2024-02-15 13:49:02 -07:00
Bejean Mosher 1d38f8e69f feat: Validate BMP headers to protect against LogoFAIL.
The SBL logo is verified as part of Stage2 verification, so untrusted
logos won't be parsed, but it's still good to prevent dereferencing BMP
header pointers that may fall outside of BMP file.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2024-01-08 15:04:47 -07:00
Chirag Vijay Kolhe 7e3a4cb601 fix: [Common] Fix debug message to print cpu state
Fixed debug message to print cpu index, APIC ID and cpu state in order.

Signed-off-by: Chirag Vijay Kolhe <chirag.vijay.kolhe@intel.com>
2023-12-14 15:57:57 -07:00
Guo Dong 6570aa9037 Update FPDT Table
Update the FPDT header length to include the length
of boot records. This way we could easily get all the
boot records from dumped ACPI FPDT table.

Signed-off-by: Guo Dong <guo.dong@intel.com>
2023-10-12 08:35:13 -07:00
cshur 83e3f07c9d feat: Update # of X2Apic Processor Local APIC
Since # of PROCESSOR_LOCAL_APICs are
Madt Local Apic # is 1.
Madt X2 Local Apic # is 9.

Need to update # of structure type of X2Apic.

Signed-off-by: cshur <cs.hur@intel.com>
2023-09-05 15:48:55 -07:00
Sachin Kamat 2e2ceabafd fix: [PCIe] Fix assert check
Assert check was one off causing problem for corner cases.
Upated the check.

Signed-off-by: Sachin Kamat <sachin.kamat@intel.com>
2023-08-03 11:28:39 -07:00
Kevin Tsai 877ac9ffc9 fix: [Common] Fix Coverity issues
Resolved below issues.
Untrusted pointer read(CWE 129)
Operands don't affect result(CWE 569)
Unchecked return value(CWE 252)
Logically dead code(CWE 561)
Unused value(CWE 563)
Unintended sign extension(CWE 194)
Out-of-bounds access(CWE 119)

Signed-off-by: Kevin Tsai <kevin.tsai@intel.com>
2023-07-27 15:51:26 -07:00
Guo Dong 2b8ca86087 feat: fix Klocwork issue (#1947)
Fix the issue - Uninitialized Variable ResetVectorTime

Signed-off-by: Guo Dong <guo.dong@intel.com>
2023-06-29 11:45:42 -07:00
Guo Dong 475ff9daca feat: Fix ACPI FPDT SBL boot performance (#1935)
In current code, BoardNotifyPhase() would update FPDT SBL performance
table in S3 path. It could cause S3 issue since PcdAcpiTablesRsdp is
not updated.
Move the FPDT related code to AcpiFpdt.c
Update FPDT SBL performance table in stage2 so that this table
could be updated for all payloads.

Signed-off-by: Guo Dong <guo.dong@intel.com>
2023-06-25 21:06:43 -07:00
Atharva Lele 1d2e75b5be fix: resolve FPDT related Klocwork issues
- Add a null check for Rsdp pointer before accessing it
- Initialize ResetVectorTime, Time to some value before using it
- Add debug print for success / failure

Signed-off-by: Atharva Lele <atharva.lele@intel.com>
2023-06-18 16:42:21 -07:00
koktong-ong d7727bc60c fix: [Common] Fix KW issues (#1920)
Fixed Klocwork issues

Signed-off-by: Kobe <kok.tong.ong@intel.com>
2023-06-12 09:09:25 -04:00
bejeanmo a34e54e175 feat: [FSP2.4] Added FSP variable serivices, Multi Phase Mem and SI. (#1901)
FSP 2.4 adds a requirement for Bootloader to respond to FSP Variable
requests in a way that is similar to UEFI variable services. This
implementation adds support for using the updated SBL VariableLib so that
the FspVariableServicesLib wrapper is no longer needed.

Additionally, support for Multi-Phase mem and SI init is added. FSP 2.4
introduces the mandatory MultiPhaseMemInit call, and makes the
MultiPhaseSiInit call mandatory where it was previously optional.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2023-05-24 14:36:35 -04:00
Atharva Lele 3422681785 feat: add SBL boot performance data to FPDT (#1890)
Adds SBL boot performance data (Stage1 time, Stage 2 time, OsLoader time)
to the FPDT with type 0x3000 (Reserved for platform firmware Vendor usage)

Other fixes:
- Move logging of measure point 40F0 inside the condition for measured boot
- Add missing call to log measure point 40E0 used to log kernel setup print
  time

Signed-off-by: Atharva Lele <atharva.lele@intel.com>
2023-05-23 10:26:34 -07:00
koktong-ong c7fbc86eb3 Added FspNonVolatileStorageHob2 support in FspSupportLib (#1850)
Support FSP 2.3 FSP_NON_VOLATILE_STORAGE_HOB2

Signed-off-by: Kobe <kok.tong.ong@intel.com>
2023-03-24 08:33:10 -04:00
Bejean Mosher 7942790d76 fix: [ADL/RPL] Move NVME boot option update to PCI Enumeration hook.
Re-scanning PCI devices to find NVME controllers was adding an additional
~20ms to the end of Stage 2. Moving this to the existing PCI scan that
is part of PCI enumeration saves this time. However, this
EfiPciBeforeResourceCollection phase was not actually getting called and
needed to be added.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2023-02-22 15:19:56 -07:00
bejeanmo b9057d0bd1 feat: Add support for FSP Reset request value in ResetSystemLib. (#1825)
Silicon Reset Lib needs to know the FSP reset request status since some
FSPs will utilize Reset values besides warm/cold.

Added support for ADl/RPL global reset request from FSP.

Signed-off-by: Bejean Mosher <bejean.mosher@intel.com>
2023-02-03 16:49:18 -05:00
Sean McGinn f816438ef1 Halt boot retries when SG02 is failing on both partitions
When SG02 is failing on both partitions, a shutdown is supposed
to occur after trying to boot from each partition 3 times. However,
it was noticed that this was not occurring as the shutdown function
was left empty. This caused dead loops and further ACM active timer
expirations.

This change resolves this issue by moving the TCO timer check and start
until after the ACM active timer has been stopped. This change also converts
the shutdown to a CPU halt for further clarity.

Signed-off-by: Sean McGinn <sean.mcginn@intel.com>
2023-01-04 10:21:47 -07:00
Sean McGinn 46621a7534 Shutdown when unrecoverable failure occcurs
There is no way to recover from failure in the following scenarios:
1) Both BP0 and BP1 are corrupted
2) The configured PLD is not found

A CPU halt does not prevent the TCO timer from rebooting.

This change makes it so that the SUT shuts down whenever a
unrecoverable failure occurs, so that it does not incorrectly enter
the recovert loop.

Signed-off-by: Sean McGinn <sean.mcginn@intel.com>
2022-12-02 12:50:59 -07:00
Sean McGinn a4c02d61eb Move TCO timer start and TCO status check to SG1B
It was discovered that the ACM active timer monitors
boot progress across all of SG1A and the beginning of
SG1B (through FSP-M), flipping the TS if it times out.

This change makes it so that the 2 timers have less
overlap.

This change also consolidates the set and start TCO timer
APIs as well as renames the TCO status check API.

Signed-off-by: Sean McGinn <sean.mcginn@intel.com>
2022-12-02 12:50:59 -07:00
Guo Dong 66a8d7d141 [ADL] Update SMBIOS strings (#1757)
Code are shared for AlderLake and RaptorLake.
Just update the SMBIOS strings to reflect it.

Signed-off-by: Guo Dong <guo.dong@intel.com>

Signed-off-by: Guo Dong <guo.dong@intel.com>
2022-11-16 16:18:08 -05:00