Commit Graph

530 Commits

Author SHA1 Message Date
Randy Lin 071686dacd [CML] Fix ACPI GPE 0x6F interrupt storm
RTD3 table isn't ready so that comment _L6F out.

Signed-off-by: Randy Lin <randy.lin@intel.com>
2022-01-05 12:01:05 -08:00
Randy Lin 4a436f44ab [CFL] Fix Klocwork scanning issue
Fix Expression 'BootMode' can never reach the value

Signed-off-by: Randy Lin <randy.lin@intel.com>
2022-01-04 13:32:16 -08:00
Guo Dong bf4a56033f
Move DSO update/check to TccLib (#1444)
IsMarkedBadDso and InvalidateBadDso would be required for all
the platforms that support TCC. And the implementation is also
common, so just move them to common TccLib.
Also updated the implementation to remove SPI flash erase for
InvalidateBadDso().

Signed-off-by: Guo Dong <guo.dong@intel.com>
2021-12-23 15:11:03 -08:00
Vincent Chen 62b5d48e6c [TGL] Update FSP, UCODE and platform version since MR4 is released
- update FSP/VBT version to UP3 IoT FSP MR4
- update TGLU microcode version to 9A
- update TGL platform version to 1.4
- remove redundant files in case of files not being updated

Signed-off-by: Vincent Chen <vincent.chen@intel.com>
2021-12-22 17:11:28 -07:00
Stanley Chang d66202f25d [TGL] Invalidate bad DSO region
This patch invalidates the DSO region with a marker after
a DSO hang (caused by corrupted DSO) is detected (by WDT timeout).
With the marker, stage1b can know the DSO tuning should be skipped.

The bad DSO mark is defined as both Signature and Size in the
TCCT component header are zero.

With this patch, the previous defined WDT scratchpad bit,
WDT_FLAG_TCC_BAD_DSO, is removed.

TEST=Verified on TGL-U RVP

Signed-off-by: Stanley Chang <stanley.chang@intel.com>
2021-12-22 06:11:29 -08:00
Guo Dong 16d7d22040 Update BtgSign tool
Currently StitchLoader.py is under platform package, and
the common tool BtgSign.py should not depend on that tool.
And BtgSign.py indeed doesn't depend on it, so just update
it to make it could work without StitchLoader.py.

Signed-off-by: Guo Dong <guo.dong@intel.com>
2021-12-16 08:11:53 -07:00
Maurice Ma 4a9390c3f8 [CFL][CML] Fix board hook call sequence issue
On CFL and CML, the board hook PostMemoryInit was called before
FspMemoryInit API. This should be called afterwards instead.

This patch fixed this issue. It is because of missing "break"
statement. It fixed #1435.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-12-15 10:15:17 -07:00
Ong Kok Tong 6737caaed0 [EHL] UP2 6000 support
Aaeon UP2 6000 board first boot

1. Added platform ID support
2. Added BoardID read from GPIO
3. Added UP2 6000 dlt file

Signed-off-by: Ong Kok Tong <kok.tong.ong@intel.com>
2021-12-10 23:10:18 -08:00
Ong Kok Tong 6ebcc6971c [EHL] Fix ASL compiler warnings
Fixed ASL warning for SBL EHL

Signed-off-by: Ong Kok Tong <kok.tong.ong@intel.com>
2021-12-10 23:08:04 -08:00
Stanley Chang bfbc7943e0 [TGL] Fix infinite reset loop caused by bad DSO
This patch solves an infinite reset loop issue caused
by bad DSO with the scenario:
  After platform reset (due to WDT timeout), FSPm asks
  for another reset, but before that, WDT_FLAG_TCC_DSO_IN_PROGRESS
  is already cleaned. As a result, in the thrid reset, stage1B
  will have no idea about the DSO is corrupted and it
  continues boot with Tcc Tuning flow, which causes WDT
  timeout reset again.

This patch introduces a WDT_FLAG_TCC_BAD_DSO flag in WDT
scrachpad (bit 18). The flag is a marker that is set when
a bad DSO is detected. The new booting flow for "bad DSO" case
if Tcc_Tuning enabled will be:

  1st boot: (after fwupdate)
     - TCC_DSO and WDT set by stage1b and stage2
     - FSP hangs and trigger WDT reset
  2nd boot:
     - Stage1b detects "bad DSO" because of WDT and
       TCC_DSO_IN_PROGRESS. For this case:
         Clear TCC_DSO_IN_PROGRESS and WDT.
         Set TCC_BAD_DSO.
       Then it continues boot that will skip Tcc Tuning
       (because of TCC_DSO_IN_PROGRESS unset)
     - FSPm asks for a reset
  3rd boot:
     - Stage1b detects "bad DSO" because of TCC_BAD_DSO
       It continues boot that will skip Tcc Tuning
       (because of TCC_DSO_IN_PROGRESS unset)

The patch does not remove the 200-sec abnormal boot-up symptom
because the symptom is noticeable to user. So user can be aware
of something wrong (bad DSO).

The "bad DSO" flag will be clear before fwupdate, so a fwupdate
with a correct DSO can solve the 200 sec abnormal boot up time.

Signed-off-by: Stanley Chang <stanley.chang@intel.com>
2021-12-10 23:07:48 -08:00
Randy Lin 1e5a04030c [TGL] Add stitch option to support TGL-H RVP Config 3
Config 1/3 RVP boards can't share same IFWI image
and it is required to adjust the FIT parameters.
Add -o cfg3 to support this.

Signed-off-by: Randy Lin <randy.lin@intel.com>
2021-12-03 07:20:47 -08:00
Randy Lin fb0a4aec22 Fix ASL compile warnings.
Signed-off-by: Randy Lin <randy.lin@intel.com>
2021-11-30 07:57:32 -08:00
Ong Kok Tong e4a00293f4 [EHL] Removed hardcoded PSE PWM pin enable
Removed hardcoded PSE PWM pin enable and adapt from
CfgData in Stage2.

Signed-off-by: Ong Kok Tong <kok.tong.ong@intel.com>
2021-11-29 15:35:30 -08:00
James Gutbub fe6cf32721 Add common GPIO payload selection CFG
GPIO payload selection settings can be made
into a platform optional common config. This
will ensure that the options display the same
across all platforms which add support for
the GPIO payload selection feature. Each
platform will need to include the
CfgData_PayloadSelection.yaml and needs to
create their own CfgData_GpioPadGroups.yaml
to provide the list of GPIO pad groups to
select from.

Signed-off-by: James Gutbub <james.gutbub@intel.com>
2021-11-18 13:49:44 -07:00
Kok Tong Ong 18fc9592a8 [EHL] Enable Gbe TSN config in yaml
Enable Gbe TSN config in silicon yaml file below:
- PchTsnGbeSgmiiEnable
- PseTsnGbeSgmiiEnable
- PseTsnGbePhyInterfaceType

Signed-off-by: Kok Tong Ong <kok.tong.ong@intel.com>
2021-11-17 11:43:00 -08:00
Sai T b9422c7969 Enhance Smbios Init Lib
This patch does the following updates to SmBiosInitLib:

  1. Provide AddSmbiosType() to add a SmBios Type header.
  2. Provide AddSmbiosString() to append strings to Type header.
  3. Move Finalize() to after 'PrePayloadLoading' board init phase.
     All Smbios related calls need to be done before this.
  4. Modified TGL project to adjust to these changes.

Signed-off-by: Sai T <sai.kiran.talamudupula@intel.com>
2021-11-16 12:35:12 -08:00
Ong Kok Tong 97fbf9349c [EHL] Increase epayload size
Increase epayload size to 0x00162000 for compilation
error with latest debug version of uefi-payload

Signed-off-by: Ong Kok Tong <kok.tong.ong@intel.com>
2021-11-15 19:06:24 -08:00
Maurice Ma d424a15994 Add boot from multiple USB devices
When multiple USB devices are attached, current SBL will try to
boot the device with index specified by HwPart in the boot option.
However, it is hard to determine the USB device index order since
it depends on which port the device is connected to. Instead, for
USB devices, SBL can try to boot from each of them until the boot
image is loaded successfully or all USB devices have been tried out.
This patch added this support.

To enable this feature, it is required to set the USB boot option
HwPart to 0xFF.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-11-10 14:28:31 -08:00
Maurice Ma d94ff784bd Remove trailing whitespace/tabs from source files
Current PatchChecker.py still complains lots of files with
trailing whitespace and tabs. This patch addressed these
error reporting.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-11-10 13:15:04 -08:00
Mike Crowe 990e3e81e6 Use LF line endings in the repository
Convert the line endings stored for all text files in the repository to
LF. The majority previously used DOS-style CRLF line endings. Add a
.gitattributes file to enforce this and treat certain extensions as
never being text files.

Update PatchCheck.py to insist on LF line endings rather than CRLF.
However, its other checks fail on this commit due to lots of
pre-existing complaints that it only notices because the line endings
have changed.

Silicon/QemuSocPkg/FspBin/Patches/0001-Build-QEMU-FSP-2.0-binaries.patch
needs to be treated as binary since it contains a mixture of line
endings.

This change has implications depending on the client platform you are
using the repository from:

* Windows

The usual configuration for Git on Windows means that text files will
be checked out to the work tree with DOS-style CRLF line endings. If
that's not the case then you can configure Git to do so for the entire
machine with:

 git config --global core.autocrlf true

or for just the repository with:

 git config core.autocrlf true

Line endings will be normalised to LF when they are committed to the
repository. If you commit a text file with only LF line endings then it
will be converted to CRLF line endings in your work tree.

* Linux, MacOS and other Unices

The usual configuration for Git on such platforms is to check files out
of the repository with LF line endings. This is probably the right thing
for you. In the unlikely even that you are using Git on Unix but editing
or compiling on Windows for some reason then you may need to tweak your
configuration to force the use of CRLF line endings as described above.

* General

For more information see
https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings .

Fixes: https://github.com/slimbootloader/slimbootloader/issues/1400
Signed-off-by: Mike Crowe <mac@mcrowe.com>
2021-11-10 12:46:42 -08:00
Ong Kok Tong 8c75111faa [EHL] Disabled AC split lock by default
Disabled AC split lock by default in CfgData yaml file.

Signed-off-by: Ong Kok Tong <kok.tong.ong@intel.com>
2021-11-08 18:02:37 -08:00
Jim c035269a4a [TGL] Remove SGX Configurability
This patch removes SGX configurability from Slim Bootloader as
SGX is not supported on TGL.

Signed-off-by: Jim <jim.pelner@intel.com>
2021-11-08 11:02:43 -08:00
Aiden Park 95f335b6b0
Fix variable not initialized KW issue (#1398)
This is to initialize a Boolean variable to fix KW issue

Signed-off-by: Aiden Park <aiden.park@intel.com>
2021-11-04 20:29:53 -07:00
Maurice Ma 5996369705 Enable GFX framebuffer as WC by BAR parsing
In order to improve the UEFI payload display performance, it is
desirable to have the framebuffer as write-combining for cache
attribute. This patch added a common API to enable this and it
enabled the GFX framebuffer cache for QEMU and TGL. Other
platforms still need porting.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-11-04 11:46:13 -07:00
Maurice Ma f67122518c SBL clean up to split core private data out
This patch moved SBL core private data strctures and definitions
into a private header file so that other packages cannot refer
to the private structures.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-11-04 10:49:49 -07:00
Maurice Ma 505c484600 [TGL] Fix incorrect pin index in GPIO CFGDATA
On TGL, current GPIO CFGDATA used incorrect pin index for GPIO
group J and G. This patch fixed it.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-11-04 10:49:14 -07:00
Stanley Chang 383500eee7 [TGL] Fix SaGv CfgData to align with FSP
The patch updates CfgData yaml to align with FSP:

1. correct value range for SaGv

2. remove unused variables: FreqSaGvLow and FreqSaGvMid

Signed-off-by: Stanley Chang <stanley.chang@intel.com>
2021-11-04 08:21:55 -07:00
Sai T acccaea853 Add RxRaw field to Gpio config template
Current GpioLib uses 2 bits from OtherSettings to
configure RxRaw field in GPIO PAD CFG DWORD 0. But
Gpio config templates are missing the option to configure
this feature. This patch adds the option in template.

Signed-off-by: Sai T <sai.kiran.talamudupula@intel.com>
2021-11-03 16:18:42 -07:00
Maurice Ma fe5067e5b9 [TGL] Fix the GPIO group ID overriding issue
Current SBL uses DLT file to override the GPIO group id in the
GPIO CFGDATA table because the group ID used in CFGDATA needs to
match the group ID used by GPIO library. This patch decoupled the
GPIO group id with the GPIO library. Instead, a translation was
added to convert the group ID to the value required by the GPIO
library.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-11-02 10:55:04 -07:00
Maurice Ma 56d63ca01c Add API to set fixed display mode in VBT table
In certain condition, it is required to use fixed display mode. This
path added a new API SetVbtFixedMode() in BoardSupportLib to provide
such function. It can be used to request a fixed resolution at runtime
to run an application, such as setup screen.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-11-01 12:55:11 -07:00
Maurice Ma aa219ecd67 [QEMU] Enable CFGDATA update test using CfgDataStitch tool
This patch added test cases to verify CfgDataStitch flow for
CFGDATA modification.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-29 16:17:39 -07:00
Maurice Ma 2e9cdbf5a7 [QEMU] Add GPIO fields to enable more tests
This patch added more fields in QEMU GPIO so that more CFGDATA
related tests can be done on QEMU platform.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-29 16:17:39 -07:00
Maurice Ma 0e0eb047e3 Add UpdateMemoryInfo implementation for all open platforms
This patch implemented SOC specific hook to update the memory
map info through UpdateMemoryInfo() API.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-29 07:49:55 -07:00
Raghava Gudla 02e06c48b0 [EHL] Increase Fwupdate payload size
This patch increased fwupdate payload size to 0x1B000 to resolve
build issue.

Signed-off-by: Raghava Gudla <raghava.gudla@intel.com>
2021-10-26 16:50:36 -07:00
Maurice Ma 4936832cde [TGL] Add SOC specific memory info
This patch updated the memory info for TGL platform using the SOC
specific memory map registers.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-26 14:32:20 -07:00
Guo Dong 2064c1f003 [TGL] Enabling WDT for TCC DSO
When some settings from DSO caused system hang, the WDT
would cause the system reboot. And in the next boot,
SBL would use the default setting by not apply the DSO
values.

Signed-off-by: Guo Dong <guo.dong@intel.com>
2021-10-26 13:58:26 -07:00
Maurice Ma d0594faf84 [QEMU] Enable SMBIOS support
This patch enable SMBIOS support for QEMU. It allows to test SMBIOS
on QEMU platform.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-25 16:46:33 -07:00
Maurice Ma c62e24eb8c Add PCD to let platform control the ACPI processor ID base
This patch added PcdAcpiProcessorIdBase to allow platform to
customize the processor ID start base within MADT APIC entry.
Current EHL and TGL declared PR00 processor object in ACPI
with unique ID value 0, but other projects used vlaue 1
instead. This patch will help fix this issue.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-25 16:43:20 -07:00
Maurice Ma 4c443f15fd [TGL] Enable PCI 64bit resource in X64 build
This patch enabled several config options for TGL x64 build so that
64 bit PCI resource can be allocated properly. As part of it, the
related GFX bar read/write has been extended to handle 64bit address.

This has been tested on UPX i11 board. X64 SBL can boot to Ubuntu
properly.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-21 10:14:03 -07:00
Maurice Ma 21917377c8 Change GetSerialPortBase() API to return 64bit address
When UART bar is alloaced to 64 bit address, the current SBL API
GetSerialPortBase() only returns the lower 32 bit address, which will
cause problem for UART access. This patch fixed this issue.

Please note the patch did not change the payload HOB interface for
UART info. That needs to be updated to 64bit base address too. But this
patch does not cover that.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-21 10:09:20 -07:00
Jim 06b5292c20 [TGLU] Expand LPDDR4 DDI Config Array to 16 Entries
The DDI config array for LPDDR4 was incorrectly defined as 13 entries.
There are 16 UPDs that are programmed in UpdateFspConfig, resulting in
random UPD assignments.

This addresses issue
https://github.com/slimbootloader/slimbootloader/issues/1365#issue-1031580997

Signed-off-by: Jim <jim.pelner@intel.com>
2021-10-20 09:50:04 -07:00
Ong Kok Tong 9807395a57 [EHL] Check the existance PSE FW
To check the existance of PSE FW in Binaries folder to
prevent the infinite FSP reboot issue.

Signed-off-by: Ong Kok Tong <kok.tong.ong@intel.com>
2021-10-20 06:00:21 -07:00
Stanley Chang 519ec079be [TGL] Fix S0ix issues
This patch fixes three S0ix issues:

1. a regression caused by commit 20889 where the
   FspsConfig->SerialIoUartMode missed configuring for legacy UART

2. failed s0ix when assigning uart port2 as debug port: root caused
   by Maurice. He pointed out that several uart properties should
   not be reset
   This fixed #1314.

3. conflict with TCC/TSN: In TGL, S0ix should be disabled when either
   TCC or TSN is enabled. If s0ix is enabled, the patch checks TCC/TSN
   enabling status and forces turning off S0ix if TCC/TSN is enabled.

Signed-off-by: Stanley Chang <stanley.chang@intel.com>
2021-10-18 21:25:47 -07:00
Maurice Ma 4f2e81e4be [UPX i11] Clear boot flags in the default USB boot option
By default, the boot option 0 has mender OS boot flag set, and it causes
"root=" to be appended to the Linux boot command line. For Ubuntu OS,
it will cause the wrong root fs parameter and prevent it from booting.
This patch fixed this issue.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-18 10:01:54 -07:00
Maurice Ma cf71b4557d [TGL] Report PCI 64bit resource to OS
This patch added PCI MEM64 resource in ACPI table so that OS can
re-allocate 64bit PCI resource if required.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-18 09:14:52 -07:00
Maurice Ma ee9e09f96d Clean up GPIO DEBUG message level
There are too much ERROR level debug message in GPIO library. Since
ERROR level debug message will be stored in final release binary,
it increases the image size. This patch changed the GPIO DEBUG
level to VERBOSE by default to reduce binary size. When debug is
needed, we can change the debug level in the header file to allow
more detailed info.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-18 08:16:04 -07:00
Sai T 4d17d55a21 Move PchPcrLib to CommonSocPkg
Make PchPcrLib common. Remove redundant headers
not used by some platforms and link the new common
lib with the platforms currently using it.

Signed-off-by: Sai T <sai.kiran.talamudupula@intel.com>
2021-10-18 08:02:42 -07:00
Ong Kok Tong 3157d851ac [EHL] Enabled AC Split Lock
Removal of disabling AcSplitLock FSP UPD.
The FSP UPD is commented out due to the Yocto hang
issue previously which no longer occured.

Signed-off-by: Ong Kok Tong <kok.tong.ong@intel.com>
2021-10-18 06:47:03 -07:00
Maurice Ma 145d71041a [TGL] Skip CPU replacement check to allow MRC fast boot
This patch will skip ME CPU replacement check on SBL to always
allow MRC fast boot flow.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-15 22:20:54 -07:00
Maurice Ma 05592150d8 [TGL] Fix MRC full training issue on warm reset flow
On TGL warm reset flow, current MRC will always do full MRC training.
It is because of wrong PMC rigster was used in platform code to set
and clear the MRC scratch pad bit.

This fixed #1346.

Signed-off-by: Maurice Ma <maurice.ma@intel.com>
2021-10-14 15:19:56 -07:00