Commit Graph

35 Commits

Author SHA1 Message Date
Leahy, Leroy P 24ca2f3507 CorebootPayloadPkg/PlatformBdsLib: Pass more serial parameters
Pass the serial port baudrate, register stride, input clock rate and
ID from coreboot to CorebootPayloadPkg.

Change-Id: I37111d23216e4effa2909337af7e8a6de36b61f7
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-10 10:13:40 -07:00
Leahy, Leroy P deac23ab96 CorebootPayloadPkg/PciBusNoEnumerationDxe: Skip disabled devices
Skip non-bridge devices which are not enabled either for memory or I/O
access.

Change-Id: I1a39c69a8556b6b9cefd1a2bb191f7e0744ddfb0
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-10 10:12:56 -07:00
Leahy, Leroy P a4fdb495db CorebootModulePkg/PciBusNoEnumerationDxe: Remove white space
Remove trailing white space from PciEnumeratorSupport.c.

Change-Id: Ia2f354151d46c09b140e2b42609d76fbbf8333f9
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-10 10:12:39 -07:00
Leahy, Leroy P bb0831670f CorebootModulePkg/BaseSerialPortLib: Set DTR and RTS
Ensure communication between the host and the UEFI system running
CorebootPayloadPkg.  In cases where the host has flow control enabled
and the serial connection is providing the flow control signals, the
host will not be able to send data to the UEFI system because DTR and
RTS are not present.  The host may also discard all output data from
the UEFI system because DTR is not present.  By setting DTR and RTS
in the UART initialization code this case works properly.

Change-Id: I393f57104d111472cafcae01d4e43d4ea837be3b
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-10 10:12:15 -07:00
Leahy, Leroy P b08993bd13 CorebootModulePkg/BaseSerialPortLib16550: Remove white-space
Remove trailing white space.

Change-Id: I73c3a3e1e55eec20b09443de1966573c97fa74f8
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-10 10:11:49 -07:00
Leahy, Leroy P 12460e227f CorebootModulePkg: Add BaseSerialPortLib16550
Copy MdeModulePkg/Library/BaseSerialPortLib16550 revision
89ecd4cf80.

Change-Id: Ie2fd0123bdd7aaba4335afdb1cb017f3690455c6
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-10 10:10:19 -07:00
Leahy, Leroy P 248c30bbd4 CorebootModulePkg/SerialDxe: Use PlatformHookLib
Copy the driver from MdeModulePkg/Universal/SerialDxe.  Add
PlatformHookLib to the Library section of the .inf file to adjust the
PCDs for the UART.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-05 16:12:18 -07:00
Leahy, Leroy P 7cac40ba83 CorebootModulePkg/PciSioSerialDxe: Use PlatformHookLib
Copy the driver from MdeModulePkg/Bus/Pci/PciSioSerialDxe.  Add
PlatformHookLib to the Library section of the .inf file to adjust the
PCDs for the UART.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-05 16:11:55 -07:00
Leahy, Leroy P 81a23a0fee CorebootModulePkg: Remove DuetPkg references
Remove the references to DuetPkg.  Copy the files from revision
ffea0a2ce2 of DuetPkg into
CorebootModulePkg.  The components include:
* PciBusNoEnumerationDxe
* PciRootBridgeNoEnumerationDxe
* SataControllerDxe

TEST=Build and run on Galileo Gen2

Change-Id: Id07185f7e226749e5f7c6b6cb427bcef7eac8496
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-05-02 15:46:44 -07:00
Leahy, Leroy P d1986e7566 CorebootModulePkg-CbParseLib: Fix bad reference in CbParseLib
Dereferencing pMemTableSize in debug statement displays bad values when
it is set to NULL.  Display the actual table size value instead.

TEST=Build and run on Galileo Gen2

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-02-26 10:02:41 -08:00
Leahy, Leroy P 79f4f6f0c9 CorebootModulePkg-CbParseLib: Add ACPI table verification
Verify the register address in the FADT.

TEST=Build and run on Galileo Gen2 when the FADT was not present.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>
2016-02-26 10:02:25 -08:00
Scott Duplichan 1d7258fa53 CorebootModulePkg:Removing EFI_RESOURCE_ATTRIBUTE_TESTED
Remove EFI_RESOURCE_ATTRIBUTE_TESTED when reporting lower 640KB memory 
so that the coreboot header is not erased before being processed 
by CbParseMemoryInfo. This change is needed for compatibility 
with SVN revision 18146.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18234 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-18 16:08:22 +00:00
Guo Dong 05de9ab296 CorebootModulePkg: Get power management register addresses.
This patch will get power management event register address and power management GPE enable register address. 
Add missing code in CbParseLib.c.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17791 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-01 09:41:58 +00:00
Guo Dong cb3e201f02 CorebootModulePkg: Get power management register addresses.
This patch will get power management event register address and power management GPE enable register address.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17714 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-25 16:00:29 +00:00
Maurice Ma 5930f541b7 CorebootModulePkg/CbSupportPei: Relace tabs with whitespaces
Replace tabs with whitespaces and remove the trailing whitespaces
at the end of lines to conform to the coding style.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17551 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-03 02:48:07 +00:00
Maurice Ma 7b7fc3e783 CorebootModulePkg/CbSupportPei: Mask off all legacy 8259 interrupt sources
The current coreboot UEFI payload has an assumption that all interrupt
sources should be masked off before transferring control to the payload.
However, it is not the case on some platforms, such as QEMU. It will
cause boot failure due to unexpected pending interrupt in the payload.

To resolve it all legacy 8259 interrupt sources need to be masked
piror to the DXE phase. The fix was tested on QEMU virtual platform.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17550 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-03 02:44:28 +00:00
Guo Dong 2e1fffcec7 CorebootModulePkg: Fix GCC build failure.
This patch fixed a GCC build failure issue.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17519 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-27 05:33:14 +00:00
Guo Dong 63bdd27a4f CorebootModulePkg/CbParseLib: Coding style update
This patch update file CbParseLib.c to make it consistent with EDKII coding style:
1) Add function comments.
2) Add {} for if statement.
3) Compare with NULL for pointer and compare with 0 for integer instead of using them like a BOOLEAN.
4) For debug information only, use EFI_D_INFO instead of EFI_D_ERROR
5) Correct IN, OUT modifier

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17487 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-20 08:32:55 +00:00
Guo Dong 1e6c931b52 CorebootModulePkg/CbParseLib: Fix coding issue in ACPI
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17486 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-20 08:29:11 +00:00
Guo Dong 11e058ec75 CorebootModulePkg/CbParseLib: Remove tab and spaces
Replace tab with space. Remove the sapce at the end of lines.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17485 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-20 08:26:19 +00:00
Guo Dong 165c00599e CorebootModulePkg/CbParseLib: Support current Coreboot IMD
The latest coreboot use IMD (In Memory Database) to report Tables. This patch adds IMD support in UEFI payload.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17484 6f19259b-4bc3-4df7-8a09-765794883524
2015-05-20 08:21:18 +00:00
Jordan Justen 85a468290e Coreboot*Pkg/Contributions.txt: Update example email address
Use the example.com domain as recommended in RFC 2606.

This was changed for the other EDK II packages in r16724.

NOTE: This does not modify the wording of the "TianoCore Contribution
      Agreement 1.0" section

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17169 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-14 00:23:29 +00:00
Scott Duplichan 6d577625ed CorebootModulePkg/CbSupportDxe: Add EFIAPI to CbDxeEntryPoint
All image entry point functions must use EFIAPI.

Some GCC toolchains will have a build error without this fix.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17154 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:42:08 +00:00
Scott Duplichan 42e548a846 CorebootModulePkg: DEBUG print format corrections
Fix DEBUG print formats so that pointers and 64-bit integer values
display correctly for both 32-bit and 64-bit builds.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17153 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:42:04 +00:00
Scott Duplichan 08248f4543 CorebootModulePkg: Avoid gcc compile fail caused by unrecognized pragma
Prevent gcc from preprocessing Microsofrt specific  pragma. Otherwise
compile will fail with error: -Werror=unknown-pragma.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17152 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:41:59 +00:00
Scott Duplichan b6242db90a CorebootModulePkg: Reformat asm constant to avoid gcc assembler fail
The gnu assembler doesn't allow multiple '$' in an expression.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17146 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:41:14 +00:00
Scott Duplichan c3911fd851 CorebootModulePkg: Add 'ULL' suffix to avoid gcc 4.4 compile fail
Add ULL siffix to 64-bit constants, otherwise gcc44 reports error:
integer constant is too large for 'long' type

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Bruce Cran <bruce.cran@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17145 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:41:10 +00:00
Scott Duplichan 3b17ae9e51 CorebootModulePkg: Change CbParseAcpiTable prototype to avoid gcc fail
Use of void** as a generic pointer to pointer is a Microsoft extension
to the C language and is not supported by gcc. Without this change, gcc
compile fails with error:
passing argument 1 of 'CbParseAcpiTable' from incompatible pointer type
note: expected 'void **' but argument is of type
'struct EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER **'

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17144 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:41:01 +00:00
Scott Duplichan 7b0f636452 CorebootModulePkg: Remove unused static functions to prevent gcc build fail
The gcc build will fail with -Werror=unused-function when a compilation
unit defines a static function but never calls it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17143 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:05:57 +00:00
Scott Duplichan 5451fff49c CorebootModulePkg: Fix build failure with 32-bit NOOPT target
Fix build failure with 32-bit NOOPT target by replacing direct shift
of 64-bit integer with a function call. Otherwise Microsoft tool chains
will generate a call to function __allshl and fail to link.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17142 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 02:05:48 +00:00
Scott Duplichan c952b5b124 CorebootModulePkg: Add EFIAPI to OnReadyToBoot to fix gcc compile fail
Make OnReadyToBoot function match the prototype in UefiLib.h. The change
only affects gcc builds because EFIAPI ABI differs from the default ABI
when building with gcc.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17137 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-10 00:42:30 +00:00
Maurice Ma fce4ecd92c Pkg-Module: CorebootModulePkg
Initial coreboot UEFI payload code check in. It provides UEFI services on top of coreboot that allows UEFI OS boot.
CorebootModulePkg is the source code package of coreboot support modules that will be used to parse the coreboot tables and report memory/io resources.

It supports the following features:
  - Support Unified Extensible Firmware Interface (UEFI) specification 2.4.
  - Support Platform Initialization(PI) specification 1.3.
  - Support execution as a coreboot payload.
  - Support USB 3.0
  - Support SATA/ATA devices.
  - Support EFI aware OS boot.

The following features are not supported currently and have not been validated:
  - GCC Tool Chains
  - SMM Execution Environment
  - Security Boot

It was tested on a Intel Bay Trail CRB platform.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17084 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-31 01:06:23 +00:00
Maurice Ma 14df6e059c Pkg-Module: CorebootModulePkg
Reverted the previous check-in since it is at the incorrect directory level.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17083 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-31 01:04:45 +00:00
Maurice Ma 1139bd7096 Pkg-Module: CorebootModulePkg
Initial coreboot UEFI payload code check in. It provides UEFI services on top of coreboot that allows UEFI OS boot.
CorebootModulePkg is the source code package of coreboot support modules that will be used to parse the coreboot tables and report memory/io resources.

It supports the following features:
  - Support Unified Extensible Firmware Interface (UEFI) specification 2.4.
  - Support Platform Initialization(PI) specification 1.3.
  - Support execution as a coreboot payload.
  - Support USB 3.0
  - Support SATA/ATA devices.
  - Support EFI aware OS boot.

The following features are not supported currently and have not been validated:
  - GCC Tool Chains
  - SMM Execution Environment
  - Security Boot

It was tested on a Intel Bay Trail CRB platform.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
Reviewed-by: Prince Agyeman <prince.agyeman@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17082 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-31 01:03:03 +00:00
laurie0131 e7ebc3eae3 Pkg-Module: Add Coreboot module Package
Full-commit-message

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: laurie0131 <Laurie.jarlstrom@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17073 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-25 21:11:34 +00:00