Attention is currently required from: Jérémy Compostella.

Jérémy Compostella uploaded patch set #3 to this change.

View Change

The following approvals got outdated and were removed: Verified-1 by build bot (Jenkins)

vendorcode/intel: Add uGOP support

This patch introduces code to load and execute uGOP (microGOP). uGOP
is a pre-memory Pre-EFI Initialization Module (PEIM) capable of
bringing graphics in VGA legacy mode. This a version of the Intel
Graphics PEIM driver usually included in FSP silicon and generally
referred as the GOP (Graphics Output Protocol) driver. Compared to
GOP, uGOP is designed to run in pre-memory environment and therefore
can be use to provide on screen information in pre-memory coreboot
stages.

uGOP dependency to the PEI environment is limited to:
1. InstallPpi() to install uGOP interfaces
2. LocatePpi() to find optional protocols
3. AllocatePool() to perform some dynamic memory allocation
4. CreateHob() and GetHobList() to handle global variables
5. ReportStatusCode() to report debug information

These services are implemented in a very simple fashion in pei.c.

pei.c also installs the PEI services pointer in the architecture size
word immediately preceding the Interrupt Descriptor Table (IDT) to
comply with Platform Initialization (PI) specification 5.4 PEI
Services Table Retrieval.

This patch introduces the `CONFIG_UGOP_EARLY_GRAPHICS' boolean
configuration flag to enable this feature along with the following
additional settings:
- CONFIG_UGOP_FILE: uGOP PEIM binary path and filename
- CONFIG_UGOP_CBFS: The filename of the uGOP PEIM binary in CBFS.
- CONFIG_UGOP_ALIGNMENT: uGOP binary alignment in CBFS
- CONFIG_UGOP_LIMIT_TO_REGIONS: To restrict uGOP to certain regions.
This options can be used to restrict the regions in which the uGOP
PEIM binary is included. For instance, it can be used to exclude uGOP
support in WP_RO region.
- CONFIG_UGOP_REGIONS: This options specifies in which region(s) the
uGOP PEIM binary should be included. Example: FW_MAIN_A,FW_MAIN_B

BUG=b:279173035
TEST=If CONFIG_UGOP_EARLY_GRAPHICS is set to y, ugop.c and pei.c are
compiled and the ugop.efi is included in CBFS.

Change-Id: I66ae5f1948474330bfa41c42cda7cc0738f7b9cd
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
---
A Documentation/soc/intel/ugop/code-flow.svg
A Documentation/soc/intel/ugop/ugop.md
M src/vendorcode/intel/Kconfig
M src/vendorcode/intel/Makefile.inc
A src/vendorcode/intel/ugop/Kconfig
A src/vendorcode/intel/ugop/Makefile.inc
A src/vendorcode/intel/ugop/pei.c
A src/vendorcode/intel/ugop/pei.h
A src/vendorcode/intel/ugop/ugop.c
A src/vendorcode/intel/ugop/ugop.h
10 files changed, 749 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/31/77231/3

To view, visit change 77231. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I66ae5f1948474330bfa41c42cda7cc0738f7b9cd
Gerrit-Change-Number: 77231
Gerrit-PatchSet: 3
Gerrit-Owner: Jérémy Compostella <jeremy.compostella@intel.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-Attention: Jérémy Compostella <jeremy.compostella@intel.com>
Gerrit-MessageType: newpatchset