Current Execute32BitCode() passes in 64bit arguments into stack.
It should use 32bit arguments instead according to 32bit calling
convention. This patch fixed this issue.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
During firmware update svn check for SBL region, Current code
assumes that Stage1A base does not change, because of this when
Stage1A base changed in capsule image, getting svn version from
the capsule fails and firmware update is failing.
This patch addressed above issue by reading stage1A base from
capsule image, this way even if stage1A base changes, code will
be able to read it and get svn version from capsule.
Signed-off-by: Raghava Gudla <raghava.gudla@intel.com>
SBL support to load PreOS and normal OS in a single boot option.
This patch tries to standardize the PreOS support.
The PreOS could be TrustyOS, PreOsChecker or others.
As long as PreOS flag is set in boot option, SBL will load and
boot PreOS before normal OS. If the preOS has specific requirement,
it could be addressed using PreOS image type.
Signed-off-by: Guo Dong <guo.dong@intel.com>
Corrected declaration of _PSD methods (ApPsd.asl) and _TPC, _PTC,
_TSS and _TSD methods (ApTst.asl) under index 10. Indexes 8 and 9
were declared 08 and 09, respectively, which represent invalid
"octal" constants. These were not flagged as errors in the currently
supported ASL compiler, but these the ACPI specification clearly
indicates these were invalid, and they would actually flag an error
when the recommended ASL compiler is updated to a newer version.
Signed-off-by: Jim Pelner <jim.pelner@intel.com>
Tools as MEU used for signing and generating key manifests
expects to pass abosulte openssl paths. Updating
get_openssl_path to return paths for linux cases.
Signed-off-by: Subash Lakkimsetti <subash.lakkimsetti@intel.com>
Different projects might use different repo to get binaries.
or different project might be built at same time. so change
to use different workspace for different project to avoid
potential conflict.
Signed-off-by: Guo Dong <guo.dong@intel.com>
BGRT can be used by bootloader to pass logo to OS. But BGRT can
only support 24bit or 32bit BMP format. If the bootloader uses
other bit format or indexed color format, the image has to be
converted before passing it to BGRT. This patch added support
to convert other BMP image format into 32bit format required by
BGRT.
This has been tested with Windows on Leafhill board. The SBL
logo was dispalyed properly while booting Windows.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Adding the EFIAPI modifier to make sure all lib
function calls follow correct calling convention.
Signed-off-by: Talamudupula <stalamudupula@gmail.com>
This patch adds a common GpioLib that all platforms
can link to. Common GpioLib requires platforms to
implement the GpioInfoLib to provide platform-specific
information like GroupInfo etc.
Signed-off-by: Sai Talamudupula <sai.kiran.talamudupula@intel.com>
WHL CRB board is configured to boot different payload based on GPIO pin
status, which is not working currenly.
this patch ensures to boot to Osloader payload when PayloadSelGpioData=1
otherwise boot to UEFI payload.
TEST= Boot test on WHL CRB and verified board able to switch between
OSloader & UEFI payload based on DIP switch R4H1B_4 status.
Signed-off-by: Praveen Hp <praveen.hodagatta.pranesh@intel.com>
After GenContainer script was created, there ware more changes
introduced for signing and compression. However, GenContainer
was not updated to match those new changes. This patch addressed
this issue.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
As per TCG spec, if a Tpm2Startup(TPM_SU_STATE) fails during
S3 resume, a host reset should be done.
When BootGuard is enabled, ACM will notify of this failure via Bit46 in
BootGuardBootStatus register.
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com>
ProgramBar() routine uses 'OrgBarType' field to
determine BarType. So, if a BarType is valid, copy
it to OrgBarType for VF also.
Signed-off-by: Talamudupula <stalamudupula@gmail.com>
run_process is used several places. Sometime
the extension name is not given for windows build.
In this case, if same file without file extension
exist (e.g. fit and fit.exe), then fit will be used
for windows build. It is not expected, so this patch
will add the missing .exe extension for this case.
Signed-off-by: Guo Dong <guo.dong@intel.com>
Python 3.4 and above have deprecated imp module in favor of
importlib. This patch removed imp module usage from SBL, and
used importlib instead.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
o MBP is platform specific data which may be different for derivative
platforms, so, the handling is moved back to platform code
Signed-off-by: Divneil Rai Wadhawan <divneil.r.wadhawan@intel.com>
To avoid any dependency on non-standard python modules
it is preferred to make the binary Lz4 compression the
default flow and try the python module as a backup. Also
recommend to use a known working version of the lz4
python module, 3.1.1.
Signed-off-by: James Gutbub <james.gutbub@intel.com>
To make SBL scripts/tools more OS-agnostic the
lz4 (de)compression module can be used instead of
relying on the BaseTools LZ4 package/executable.
Need to update the azure pipeline to install
the python lz4 module before running the builds.
TEST=Confirmed that the python lz4.block.compress
routine is compatible with Lz4DecompressLib
during SBL runtime to decompress LZ4 binaries.
Signed-off-by: James Gutbub <james.gutbub@intel.com>
Openssl 1.1.1 is an installable and it creates
openssl.exe in a bin folder.
default slimboot path: c:\Openssl\bin\openssl.exe
Added support to populate OPENSSL_PATH
from bin dir incase its available.
Signed-off-by: Subash Lakkimsetti <subash.lakkimsetti@intel.com>
Print MRC status to defferentiate first flash boot and MRC fast boot.
if Debug logs print status as 'Already started', it means MRC data in
SPI flash is matched and saving is skipped.
for example,
First flash boot:
MRC data successfully cached to 0x1FF000
Save MRC Training Data (0x8D131480 0x0018E0) ...Success
MRC fast boot:
Save MRC Training Data (0x8D131398 0x0018E0) ...Already started
Signed-off-by: Praveen Hp <praveen.hodagatta.pranesh@intel.com>
This introduces a new PCD 'PcdPciResAllocTableBase' to allow a platform
to provide its specific PCI resource allocation pool at runtime.
PCI Enumerator will allocate required resources in the range.
If the PCD is not provided, a default range will be used.
Signed-off-by: Aiden Park <aiden.park@intel.com>
This will fix an invalid data size of HECI_REQ_IFWI_PREPARE_FOR_UPDATE
command. Due to the invalid data sent, CSE rejected the IFWI prepare
update request and it caused infinite reboot issue.
The Issue #925 will be addressed with this patch.
Signed-off-by: Aiden Park <aiden.park@intel.com>
As per board design the DDI ports are routed as per below,
CFL-S:
DDI1-->PORTB-->LSPCON-->HDMI
DDI2-->PORTC-->DP
CFL-H:
DDI1-->PORTB-->DP1
DDI2-->PORTC-->DP2
DDI3-->PORTC-->LSPCON-->HDMI
Hence add separate VBT binaries accordingly.
-Set HPD of DDI port F to disable as default since it's not used by
H/S/U processor line.
TEST: verified onboard display's ports booting to UEFI shell & Yocto.
Signed-off-by: Praveen Hp <praveen.hodagatta.pranesh@intel.com>
Since the EXT library we have in OS Loader
supports 2, 3, and 4 it will help to reduce
confusion for users who have noticed that
only 2 and 3 are currently printed.
Signed-off-by: James Gutbub <james.gutbub@intel.com>
Current CFL SBL build with DEBUG FSP will fail due to size issue.
This patch fixed this issue by adjusting size properly when DEBUG
FSP is used.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
This patch fixed one issue on the WORKSPACE path. The current
script used "realpath" instead of "abspath". It will cause issue
if "subst" is used for the drive path since it returns the real
path before "subst". The expected behavior is to use the
path after "subst".
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
This patch enabled ACPI BGRT support. It is used to pass splash
display information from bootloader to payload and OS.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
The master build trigger does not have PullRequest variable.
This will allow PatchCheck to be run only in PR condition.
Signed-off-by: Aiden Park <aiden.park@intel.com>
The current PatchCheck does not work properly in Azure Pipelines.
Synced up with EDK2 to update script to address this issue.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
User experience improvement:
If there is no yaml found in current directory
then default to start browsing at platform directory
Signed-off-by: Chin Keong Ang <chin.keong.ang@intel.com>
Removed the Oy- flag for DEBUG_VS2017_IA32_CC_FLAGS
which was introduced recently in commit 9f3d2b5fc3
it causes hang when calculating SHA384 by CryptoLib call by SecureBootLib driver
Signed-off-by: Chin Keong Ang <chin.keong.ang@intel.com>
CentOS live CD iso image has different path for grub.cfg file. It
also used "linuxefi" and "initrdefi" for keywords. This patch added
support for it. With this patch, verified it can boot to CentOS
live-cd on APL platform.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Current SBL used AllocatePool to allocae space for Linux files
including Kernel and InitRd. However, since InitRd is required to
be aligned at page boundary, it needs to use AllocatePages instead.
This patch addressed this issue. It fixed#908.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Migrated to Azure Pipelines for SBL CI to align with EDK2 project.
This is an initial commit to enable basic check. Currently it will
verify patch format and QEMU GCC build and test.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
For UEFI Linux boot, a new parameter was added into BOOT_PARAMS.
This patch added this parameter support so that ACPI base can
be passed directly to kernel.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Current SBL code will build pointers in E/F segment for ACPI
and SMBIOS table. On some platforms, E/F segment is not supported.
So a new configuration ENABLE_LEGACY_EF_SEG is added. When
it is enabled, SBL will not use legacy E/F segment memory.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
In current SBL BootloaderCorePkg dsc and fdf files, it contains
hard-coded INF file path for SOC or board, such as ACPI INF
file and SOC/Board init library INF file. It makes it hard for
platform to provide its own overriding using different path.
This patch addressed this issue by allowing platform to override
the default paths in BoardConfig.py.
Signed-off-by: Maurice Ma <maurice.ma@intel.com>