CorebootPayloadPkg: Use BDS stage from DUET
This commit is contained in:
@ -33,8 +33,17 @@
|
|||||||
gUefiCorebootModulePkgTokenSpaceGuid = {0xe6ff49a0, 0x15df, 0x48fd, {0x9a, 0xcf, 0xd7, 0xdc, 0x27, 0x1b, 0x39, 0xd5}}
|
gUefiCorebootModulePkgTokenSpaceGuid = {0xe6ff49a0, 0x15df, 0x48fd, {0x9a, 0xcf, 0xd7, 0xdc, 0x27, 0x1b, 0x39, 0xd5}}
|
||||||
gUefiSystemTableInfoGuid = {0x16c8a6d0, 0xfe8a, 0x4082, {0xa2, 0x8, 0xcf, 0x89, 0xc4, 0x29, 0x4, 0x33}}
|
gUefiSystemTableInfoGuid = {0x16c8a6d0, 0xfe8a, 0x4082, {0xa2, 0x8, 0xcf, 0x89, 0xc4, 0x29, 0x4, 0x33}}
|
||||||
gUefiFrameBufferInfoGuid = {0xdc2cd8bd, 0x402c, 0x4dc4, {0x9b, 0xe0, 0xc, 0x43, 0x2b, 0x7, 0xfa, 0x34}}
|
gUefiFrameBufferInfoGuid = {0xdc2cd8bd, 0x402c, 0x4dc4, {0x9b, 0xe0, 0xc, 0x43, 0x2b, 0x7, 0xfa, 0x34}}
|
||||||
|
gEfiPciExpressBaseAddressGuid = {0x3677d529, 0x326f, 0x4603, {0xa9, 0x26, 0xea, 0xac, 0xe0, 0x1d, 0xcb, 0xb0 }}
|
||||||
gUefiAcpiBoardInfoGuid = {0xad3d31b, 0xb3d8, 0x4506, {0xae, 0x71, 0x2e, 0xf1, 0x10, 0x6, 0xd9, 0xf}}
|
gUefiAcpiBoardInfoGuid = {0xad3d31b, 0xb3d8, 0x4506, {0xae, 0x71, 0x2e, 0xf1, 0x10, 0x6, 0xd9, 0xf}}
|
||||||
|
|
||||||
|
## Include/Guid/PciOptionRomTable.h
|
||||||
|
gEfiPciOptionRomTableGuid = { 0x7462660F, 0x1CBD, 0x48DA, { 0xAD, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1C }}
|
||||||
|
|
||||||
|
## Include/Guid/LdrMemoryDescriptor.h
|
||||||
|
gLdrMemoryDescriptorGuid = { 0x7701d7e5, 0x7d1d, 0x4432, { 0xa4, 0x68, 0x67, 0x3d, 0xab, 0x8a, 0xde, 0x60 }}
|
||||||
|
|
||||||
|
gBmpImageGuid = { 0x878AC2CC, 0x5343, 0x46F2, { 0xB5, 0x63, 0x51, 0xF8, 0x9D, 0xAF, 0x56, 0xBA } }
|
||||||
|
|
||||||
|
|
||||||
[Ppis]
|
[Ppis]
|
||||||
|
|
||||||
|
33
CorebootModulePkg/Include/Guid/LdrMemoryDescriptor.h
Normal file
33
CorebootModulePkg/Include/Guid/LdrMemoryDescriptor.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/** @file
|
||||||
|
Guid is for GUIDED HOB of LDR memory descriptor.
|
||||||
|
|
||||||
|
Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
|
||||||
|
This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __LDR_MEMORY_DESCRIPTOR__
|
||||||
|
#define __LDR_MEMORY_DESCRIPTOR__
|
||||||
|
|
||||||
|
#define LDR_MEMORY_DESCRIPTOR_GUID \
|
||||||
|
{ 0x7701d7e5, 0x7d1d, 0x4432, {0xa4, 0x68, 0x67, 0x3d, 0xab, 0x8a, 0xde, 0x60}}
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EFI_HOB_GUID_TYPE Hob;
|
||||||
|
UINTN MemDescCount;
|
||||||
|
EFI_MEMORY_DESCRIPTOR *MemDesc;
|
||||||
|
} MEMORY_DESC_HOB;
|
||||||
|
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
|
extern EFI_GUID gLdrMemoryDescriptorGuid;
|
||||||
|
|
||||||
|
#endif
|
46
CorebootModulePkg/Include/Guid/PciExpressBaseAddress.h
Normal file
46
CorebootModulePkg/Include/Guid/PciExpressBaseAddress.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/** @file
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||||
|
This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
PciExpressBaseAddress.h
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
|
||||||
|
GUIDs used for PciExpress Base Address
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef _EFI_PCI_EXPRESS_BASE_ADDRESS_H_
|
||||||
|
#define _EFI_PCI_EXPRESS_BASE_ADDRESS_H_
|
||||||
|
|
||||||
|
#define EFI_PCI_EXPRESS_BASE_ADDRESS_GUID \
|
||||||
|
{ \
|
||||||
|
0x3677d529, 0x326f, 0x4603, {0xa9, 0x26, 0xea, 0xac, 0xe0, 0x1d, 0xcb, 0xb0} \
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Following structure defines PCI Express Base Address information.
|
||||||
|
// This information is platform specific, and built into hob in PEI phase.
|
||||||
|
// It can be consumed by PEI PCI driver and DXE PCI driver.
|
||||||
|
//
|
||||||
|
#pragma pack(1)
|
||||||
|
typedef struct _EFI_PCI_EXPRESS_BASE_ADDRESS_INFORMATION {
|
||||||
|
UINT32 HostBridgeNumber;
|
||||||
|
UINT32 RootBridgeNumber;
|
||||||
|
UINT64 PciExpressBaseAddress;
|
||||||
|
} EFI_PCI_EXPRESS_BASE_ADDRESS_INFORMATION;
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
|
extern EFI_GUID gEfiPciExpressBaseAddressGuid;
|
||||||
|
|
||||||
|
#endif
|
41
CorebootModulePkg/Include/Guid/PciOptionRomTable.h
Normal file
41
CorebootModulePkg/Include/Guid/PciOptionRomTable.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/** @file
|
||||||
|
GUID and data structure used to describe the list of PCI Option ROMs present in a system.
|
||||||
|
|
||||||
|
Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
|
||||||
|
This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef __PCI_OPTION_ROM_TABLE_GUID_H_
|
||||||
|
#define __PCI_OPTION_ROM_TABLE_GUID_H_
|
||||||
|
|
||||||
|
#define EFI_PCI_OPTION_ROM_TABLE_GUID \
|
||||||
|
{ 0x7462660f, 0x1cbd, 0x48da, {0xad, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1c } }
|
||||||
|
|
||||||
|
extern EFI_GUID gEfiPciOptionRomTableGuid;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
EFI_PHYSICAL_ADDRESS RomAddress;
|
||||||
|
EFI_MEMORY_TYPE MemoryType;
|
||||||
|
UINT32 RomLength;
|
||||||
|
UINT32 Seg;
|
||||||
|
UINT8 Bus;
|
||||||
|
UINT8 Dev;
|
||||||
|
UINT8 Func;
|
||||||
|
BOOLEAN ExecutedLegacyBiosImage;
|
||||||
|
BOOLEAN DontLoadEfiRom;
|
||||||
|
} EFI_PCI_OPTION_ROM_DESCRIPTOR;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT64 PciOptionRomCount;
|
||||||
|
EFI_PCI_OPTION_ROM_DESCRIPTOR *PciOptionRomDescriptors;
|
||||||
|
} EFI_PCI_OPTION_ROM_TABLE;
|
||||||
|
|
||||||
|
#endif // __PCI_OPTION_ROM_TABLE_GUID_H_
|
||||||
|
|
1731
CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.c
Normal file
1731
CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.c
Normal file
File diff suppressed because it is too large
Load Diff
288
CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.h
Normal file
288
CorebootModulePkg/Library/CorebootBdsLib/BdsPlatform.h
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||||
|
This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
BdsPlatform.h
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Head file for BDS Platform specific code
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
#ifndef _PLATFORM_SPECIFIC_BDS_PLATFORM_H_
|
||||||
|
#define _PLATFORM_SPECIFIC_BDS_PLATFORM_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <PiDxe.h>
|
||||||
|
|
||||||
|
#include <IndustryStandard/Pci.h>
|
||||||
|
#include <IndustryStandard/Acpi.h>
|
||||||
|
#include <IndustryStandard/SmBios.h>
|
||||||
|
#include <IndustryStandard/LegacyBiosMpTable.h>
|
||||||
|
|
||||||
|
#include <Library/DebugLib.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
#include <Library/BaseLib.h>
|
||||||
|
#include <Library/PcdLib.h>
|
||||||
|
#include <Library/GenericBdsLib.h>
|
||||||
|
#include <Library/PlatformBdsLib.h>
|
||||||
|
#include <Library/HobLib.h>
|
||||||
|
#include <Library/UefiLib.h>
|
||||||
|
#include <Library/DxeServicesTableLib.h>
|
||||||
|
#include <Library/DevicePathLib.h>
|
||||||
|
|
||||||
|
#include <Protocol/PciIo.h>
|
||||||
|
|
||||||
|
#include <Guid/Acpi.h>
|
||||||
|
#include <Guid/SmBios.h>
|
||||||
|
#include <Guid/Mps.h>
|
||||||
|
#include <Guid/HobList.h>
|
||||||
|
#include <Guid/PciExpressBaseAddress.h>
|
||||||
|
#include <Guid/GlobalVariable.h>
|
||||||
|
#include <Guid/LdrMemoryDescriptor.h>
|
||||||
|
|
||||||
|
extern BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole[];
|
||||||
|
extern EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[];
|
||||||
|
extern EFI_DEVICE_PATH_PROTOCOL *gPlatformDriverOption[];
|
||||||
|
extern EFI_DEVICE_PATH_PROTOCOL *gPlatformRootBridges[];
|
||||||
|
extern ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode;
|
||||||
|
extern ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode;
|
||||||
|
extern UART_DEVICE_PATH gUartDeviceNode;
|
||||||
|
extern VENDOR_DEVICE_PATH gTerminalTypeDeviceNode;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
#define VarConsoleInpDev L"ConInDev"
|
||||||
|
#define VarConsoleInp L"ConIn"
|
||||||
|
#define VarConsoleOutDev L"ConOutDev"
|
||||||
|
#define VarConsoleOut L"ConOut"
|
||||||
|
#define VarErrorOutDev L"ErrOutDev"
|
||||||
|
#define VarErrorOut L"ErrOut"
|
||||||
|
|
||||||
|
#define PCI_DEVICE_PATH_NODE(Func, Dev) \
|
||||||
|
{ \
|
||||||
|
{ \
|
||||||
|
HARDWARE_DEVICE_PATH, \
|
||||||
|
HW_PCI_DP, \
|
||||||
|
{ \
|
||||||
|
(UINT8) (sizeof (PCI_DEVICE_PATH)), \
|
||||||
|
(UINT8) ((sizeof (PCI_DEVICE_PATH)) >> 8) \
|
||||||
|
} \
|
||||||
|
}, \
|
||||||
|
(Func), \
|
||||||
|
(Dev) \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define PNPID_DEVICE_PATH_NODE(PnpId) \
|
||||||
|
{ \
|
||||||
|
{ \
|
||||||
|
ACPI_DEVICE_PATH, \
|
||||||
|
ACPI_DP, \
|
||||||
|
{ \
|
||||||
|
(UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \
|
||||||
|
(UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \
|
||||||
|
} \
|
||||||
|
}, \
|
||||||
|
EISA_PNP_ID((PnpId)), \
|
||||||
|
0 \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define gPciRootBridge \
|
||||||
|
PNPID_DEVICE_PATH_NODE(0x0A03)
|
||||||
|
|
||||||
|
#define gPciIsaBridge \
|
||||||
|
PCI_DEVICE_PATH_NODE(0, 0x1f)
|
||||||
|
|
||||||
|
#define gP2PBridge \
|
||||||
|
PCI_DEVICE_PATH_NODE(0, 0x1e)
|
||||||
|
|
||||||
|
#define gPnpPs2Keyboard \
|
||||||
|
PNPID_DEVICE_PATH_NODE(0x0303)
|
||||||
|
|
||||||
|
#define gPnp16550ComPort \
|
||||||
|
PNPID_DEVICE_PATH_NODE(0x0501)
|
||||||
|
|
||||||
|
#define gUart \
|
||||||
|
{ \
|
||||||
|
{ \
|
||||||
|
MESSAGING_DEVICE_PATH, \
|
||||||
|
MSG_UART_DP, \
|
||||||
|
{ \
|
||||||
|
(UINT8) (sizeof (UART_DEVICE_PATH)), \
|
||||||
|
(UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8) \
|
||||||
|
} \
|
||||||
|
}, \
|
||||||
|
0, \
|
||||||
|
115200, \
|
||||||
|
8, \
|
||||||
|
1, \
|
||||||
|
1 \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define gPcAnsiTerminal \
|
||||||
|
{ \
|
||||||
|
{ \
|
||||||
|
MESSAGING_DEVICE_PATH, \
|
||||||
|
MSG_VENDOR_DP, \
|
||||||
|
{ \
|
||||||
|
(UINT8) (sizeof (VENDOR_DEVICE_PATH)), \
|
||||||
|
(UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) \
|
||||||
|
} \
|
||||||
|
}, \
|
||||||
|
DEVICE_PATH_MESSAGING_PC_ANSI \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define gEndEntire \
|
||||||
|
{ \
|
||||||
|
END_DEVICE_PATH_TYPE, \
|
||||||
|
END_ENTIRE_DEVICE_PATH_SUBTYPE, \
|
||||||
|
{ \
|
||||||
|
END_DEVICE_PATH_LENGTH, \
|
||||||
|
0 \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define PCI_CLASS_SCC 0x07
|
||||||
|
#define PCI_SUBCLASS_SERIAL 0x00
|
||||||
|
#define PCI_IF_16550 0x02
|
||||||
|
#define IS_PCI_16550SERIAL(_p) IS_CLASS3 (_p, PCI_CLASS_SCC, PCI_SUBCLASS_SERIAL, PCI_IF_16550)
|
||||||
|
|
||||||
|
#define EFI_SYSTEM_TABLE_MAX_ADDRESS 0xFFFFFFFF
|
||||||
|
#define SYS_TABLE_PAD(ptr) (((~ptr) +1) & 0x07 )
|
||||||
|
//
|
||||||
|
// Platform Root Bridge
|
||||||
|
//
|
||||||
|
typedef struct {
|
||||||
|
ACPI_HID_DEVICE_PATH PciRootBridge;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL End;
|
||||||
|
} PLATFORM_ROOT_BRIDGE_DEVICE_PATH;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ACPI_HID_DEVICE_PATH PciRootBridge;
|
||||||
|
PCI_DEVICE_PATH IsaBridge;
|
||||||
|
ACPI_HID_DEVICE_PATH Keyboard;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL End;
|
||||||
|
} PLATFORM_DUMMY_ISA_KEYBOARD_DEVICE_PATH;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ACPI_HID_DEVICE_PATH PciRootBridge;
|
||||||
|
PCI_DEVICE_PATH IsaBridge;
|
||||||
|
ACPI_HID_DEVICE_PATH IsaSerial;
|
||||||
|
UART_DEVICE_PATH Uart;
|
||||||
|
VENDOR_DEVICE_PATH TerminalType;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL End;
|
||||||
|
} PLATFORM_DUMMY_ISA_SERIAL_DEVICE_PATH;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ACPI_HID_DEVICE_PATH PciRootBridge;
|
||||||
|
PCI_DEVICE_PATH VgaDevice;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL End;
|
||||||
|
} PLATFORM_DUMMY_PCI_VGA_DEVICE_PATH;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ACPI_HID_DEVICE_PATH PciRootBridge;
|
||||||
|
PCI_DEVICE_PATH PciBridge;
|
||||||
|
PCI_DEVICE_PATH SerialDevice;
|
||||||
|
UART_DEVICE_PATH Uart;
|
||||||
|
VENDOR_DEVICE_PATH TerminalType;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL End;
|
||||||
|
} PLATFORM_DUMMY_PCI_SERIAL_DEVICE_PATH;
|
||||||
|
|
||||||
|
//
|
||||||
|
// the short form device path for Usb keyboard
|
||||||
|
//
|
||||||
|
#define CLASS_HID 3
|
||||||
|
#define SUBCLASS_BOOT 1
|
||||||
|
#define PROTOCOL_KEYBOARD 1
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
USB_CLASS_DEVICE_PATH UsbClass;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL End;
|
||||||
|
} USB_CLASS_FORMAT_DEVICE_PATH;
|
||||||
|
|
||||||
|
extern PLATFORM_ROOT_BRIDGE_DEVICE_PATH gPlatformRootBridge0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Platform BDS Functions
|
||||||
|
//
|
||||||
|
VOID
|
||||||
|
PlatformBdsGetDriverOption (
|
||||||
|
IN LIST_ENTRY *BdsDriverLists
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
BdsMemoryTest (
|
||||||
|
EXTENDMEM_COVERAGE_LEVEL Level
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
PlatformBdsShowProgress (
|
||||||
|
EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,
|
||||||
|
EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,
|
||||||
|
CHAR16 *Title,
|
||||||
|
EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,
|
||||||
|
UINTN Progress,
|
||||||
|
UINTN PreviousValue
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
PlatformBdsConnectSequence (
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
ProcessCapsules (
|
||||||
|
EFI_BOOT_MODE BootMode
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
PlatformBdsConnectConsole (
|
||||||
|
IN BDS_CONSOLE_CONNECT_ENTRY *PlatformConsole
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
PlatformBdsNoConsoleAction (
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
ConvertMpsTable (
|
||||||
|
IN OUT VOID **Table
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
ConvertSmbiosTable (
|
||||||
|
IN OUT VOID **Table
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
ConvertAcpiTable (
|
||||||
|
IN UINTN TableLen,
|
||||||
|
IN OUT VOID **Table
|
||||||
|
);
|
||||||
|
|
||||||
|
EFI_STATUS
|
||||||
|
ConvertSystemTable (
|
||||||
|
IN EFI_GUID *TableGuid,
|
||||||
|
IN OUT VOID **Table
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
PlatformBdsEnterFrontPage (
|
||||||
|
IN UINT16 TimeoutDefault,
|
||||||
|
IN BOOLEAN ConnectAllHappened
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif // _PLATFORM_SPECIFIC_BDS_PLATFORM_H_
|
65
CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf
Normal file
65
CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
## @file
|
||||||
|
#
|
||||||
|
# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
|
# This program and the accompanying materials
|
||||||
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
|
#
|
||||||
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
#
|
||||||
|
# Module Name:
|
||||||
|
#
|
||||||
|
# PlatformBds.inf
|
||||||
|
#
|
||||||
|
# Abstract:
|
||||||
|
#
|
||||||
|
# Component description file for Bds module.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = CorebootBds
|
||||||
|
FILE_GUID = A6F691AC-31C8-4444-854C-E2C1A6950F92
|
||||||
|
MODULE_TYPE = DXE_DRIVER
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = PlatformBdsLib|DXE_DRIVER
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
BdsPlatform.c
|
||||||
|
PlatformData.c
|
||||||
|
BdsPlatform.h
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
|
CorebootModulePkg/CorebootModulePkg.dec
|
||||||
|
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
BaseLib
|
||||||
|
MemoryAllocationLib
|
||||||
|
UefiBootServicesTableLib
|
||||||
|
BaseMemoryLib
|
||||||
|
DebugLib
|
||||||
|
PcdLib
|
||||||
|
GenericBdsLib
|
||||||
|
HobLib
|
||||||
|
UefiLib
|
||||||
|
DevicePathLib
|
||||||
|
|
||||||
|
[Guids]
|
||||||
|
gEfiGlobalVariableGuid
|
||||||
|
gEfiPciExpressBaseAddressGuid
|
||||||
|
gEfiAcpi20TableGuid
|
||||||
|
gEfiMpsTableGuid
|
||||||
|
gEfiSmbiosTableGuid
|
||||||
|
gEfiAcpiTableGuid
|
||||||
|
gLdrMemoryDescriptorGuid
|
||||||
|
|
||||||
|
[Pcd]
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
|
||||||
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile
|
||||||
|
|
161
CorebootModulePkg/Library/CorebootBdsLib/PlatformData.c
Normal file
161
CorebootModulePkg/Library/CorebootBdsLib/PlatformData.c
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||||
|
This program and the accompanying materials
|
||||||
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
PlatformData.c
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Defined the platform specific device path which will be used by
|
||||||
|
platform Bbd to perform the platform policy connect.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
#include "BdsPlatform.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// Predefined platform default time out value
|
||||||
|
//
|
||||||
|
UINT16 gPlatformBootTimeOutDefault = 3;
|
||||||
|
|
||||||
|
ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode = gPnpPs2Keyboard;
|
||||||
|
ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;
|
||||||
|
UART_DEVICE_PATH gUartDeviceNode = gUart;
|
||||||
|
VENDOR_DEVICE_PATH gTerminalTypeDeviceNode = gPcAnsiTerminal;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Predefined platform root bridge
|
||||||
|
//
|
||||||
|
PLATFORM_ROOT_BRIDGE_DEVICE_PATH gPlatformRootBridge0 = {
|
||||||
|
gPciRootBridge,
|
||||||
|
gEndEntire
|
||||||
|
};
|
||||||
|
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *gPlatformRootBridges[] = {
|
||||||
|
(EFI_DEVICE_PATH_PROTOCOL *) &gPlatformRootBridge0,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
USB_CLASS_FORMAT_DEVICE_PATH gUsbClassKeyboardDevicePath = {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
MESSAGING_DEVICE_PATH,
|
||||||
|
MSG_USB_CLASS_DP,
|
||||||
|
{
|
||||||
|
(UINT8) (sizeof (USB_CLASS_DEVICE_PATH)),
|
||||||
|
(UINT8) ((sizeof (USB_CLASS_DEVICE_PATH)) >> 8)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
0xffff, // VendorId
|
||||||
|
0xffff, // ProductId
|
||||||
|
CLASS_HID, // DeviceClass
|
||||||
|
SUBCLASS_BOOT, // DeviceSubClass
|
||||||
|
PROTOCOL_KEYBOARD // DeviceProtocol
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
END_DEVICE_PATH_TYPE,
|
||||||
|
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
||||||
|
{
|
||||||
|
END_DEVICE_PATH_LENGTH,
|
||||||
|
0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
//
|
||||||
|
// Platform specific Dummy ISA keyboard device path
|
||||||
|
//
|
||||||
|
PLATFORM_DUMMY_ISA_KEYBOARD_DEVICE_PATH gDummyIsaKeyboardDevicePath = {
|
||||||
|
gPciRootBridge,
|
||||||
|
gPciIsaBridge,
|
||||||
|
gPnpPs2Keyboard,
|
||||||
|
gEndEntire
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Platform specific Dummy ISA serial device path
|
||||||
|
//
|
||||||
|
PLATFORM_DUMMY_ISA_SERIAL_DEVICE_PATH gDummyIsaSerialDevicePath = {
|
||||||
|
gPciRootBridge,
|
||||||
|
gPciIsaBridge,
|
||||||
|
gPnp16550ComPort,
|
||||||
|
gUart,
|
||||||
|
gPcAnsiTerminal,
|
||||||
|
gEndEntire
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Platform specific Dummy PCI VGA device path
|
||||||
|
//
|
||||||
|
PLATFORM_DUMMY_PCI_VGA_DEVICE_PATH gDummyPciVgaDevicePath = {
|
||||||
|
gPciRootBridge,
|
||||||
|
PCI_DEVICE_PATH_NODE(0, 0x2),
|
||||||
|
gEndEntire
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Platform specific Dummy PCI serial device path
|
||||||
|
//
|
||||||
|
PLATFORM_DUMMY_PCI_SERIAL_DEVICE_PATH gDummyPciSerialDevicePath = {
|
||||||
|
gPciRootBridge,
|
||||||
|
gP2PBridge,
|
||||||
|
PCI_DEVICE_PATH_NODE(0, 0x0),
|
||||||
|
gUart,
|
||||||
|
gPcAnsiTerminal,
|
||||||
|
gEndEntire
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// Predefined platform default console device path
|
||||||
|
//
|
||||||
|
BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole[] = {
|
||||||
|
//
|
||||||
|
// need update dynamically
|
||||||
|
//
|
||||||
|
// {
|
||||||
|
// (EFI_DEVICE_PATH_PROTOCOL *) &gDummyIsaSerialDevicePath,
|
||||||
|
// (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// (EFI_DEVICE_PATH_PROTOCOL *) &gDummyIsaKeyboardDevicePath,
|
||||||
|
// (CONSOLE_IN | STD_ERROR)
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// (EFI_DEVICE_PATH_PROTOCOL *) &gDummyPciVgaDevicePath,
|
||||||
|
// CONSOLE_OUT
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// (EFI_DEVICE_PATH_PROTOCOL *) &gDummyPciSerialDevicePath,
|
||||||
|
// (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
(EFI_DEVICE_PATH_PROTOCOL*) &gUsbClassKeyboardDevicePath,
|
||||||
|
CONSOLE_IN
|
||||||
|
},
|
||||||
|
{
|
||||||
|
NULL,
|
||||||
|
0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Predefined platform specific driver option
|
||||||
|
//
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *gPlatformDriverOption[] = { NULL };
|
||||||
|
|
||||||
|
//
|
||||||
|
// Predefined platform connect sequence
|
||||||
|
//
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[] = { NULL };
|
||||||
|
|
@ -95,8 +95,9 @@ INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntime
|
|||||||
|
|
||||||
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
INF UefiCpuPkg/CpuDxe/CpuDxe.inf
|
INF UefiCpuPkg/CpuDxe/CpuDxe.inf
|
||||||
INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
||||||
INF MdeModulePkg/Application/UiApp/UiApp.inf
|
INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
|
||||||
|
|
||||||
!if $(USE_HPET_TIMER) == TRUE
|
!if $(USE_HPET_TIMER) == TRUE
|
||||||
INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
INF PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
||||||
!else
|
!else
|
||||||
|
@ -165,6 +165,7 @@
|
|||||||
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
||||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||||
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
||||||
|
GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||||
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
||||||
@ -183,7 +184,7 @@
|
|||||||
ResetSystemLib|CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
ResetSystemLib|CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
||||||
SerialPortLib|CorebootModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
|
SerialPortLib|CorebootModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
|
||||||
PlatformHookLib|CorebootPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
|
PlatformHookLib|CorebootPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
|
||||||
PlatformBootManagerLib|CorebootPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
PlatformBdsLib|CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf
|
||||||
IoApicLib|PcAtChipsetPkg/Library/BaseIoApicLib/BaseIoApicLib.inf
|
IoApicLib|PcAtChipsetPkg/Library/BaseIoApicLib/BaseIoApicLib.inf
|
||||||
CbPlatformSupportLib|CorebootModulePkg/Library/CbPlatformSupportLibNull/CbPlatformSupportLibNull.inf
|
CbPlatformSupportLib|CorebootModulePkg/Library/CbPlatformSupportLibNull/CbPlatformSupportLibNull.inf
|
||||||
|
|
||||||
@ -398,13 +399,12 @@
|
|||||||
#
|
#
|
||||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
UefiCpuPkg/CpuDxe/CpuDxe.inf
|
UefiCpuPkg/CpuDxe/CpuDxe.inf
|
||||||
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
||||||
MdeModulePkg/Application/UiApp/UiApp.inf {
|
IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
|
||||||
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
|
||||||
}
|
}
|
||||||
|
|
||||||
!if $(USE_HPET_TIMER) == TRUE
|
!if $(USE_HPET_TIMER) == TRUE
|
||||||
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
||||||
!else
|
!else
|
||||||
|
@ -165,6 +165,7 @@
|
|||||||
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
||||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||||
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
||||||
|
GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||||
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
||||||
@ -183,7 +184,7 @@
|
|||||||
ResetSystemLib|CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
ResetSystemLib|CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
||||||
SerialPortLib|CorebootModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
|
SerialPortLib|CorebootModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
|
||||||
PlatformHookLib|CorebootPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
|
PlatformHookLib|CorebootPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf
|
||||||
PlatformBootManagerLib|CorebootPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
PlatformBdsLib|CorebootModulePkg/Library/CorebootBdsLib/PlatformBds.inf
|
||||||
IoApicLib|PcAtChipsetPkg/Library/BaseIoApicLib/BaseIoApicLib.inf
|
IoApicLib|PcAtChipsetPkg/Library/BaseIoApicLib/BaseIoApicLib.inf
|
||||||
CbPlatformSupportLib|CorebootModulePkg/Library/CbPlatformSupportLibNull/CbPlatformSupportLibNull.inf
|
CbPlatformSupportLib|CorebootModulePkg/Library/CbPlatformSupportLibNull/CbPlatformSupportLibNull.inf
|
||||||
|
|
||||||
@ -399,13 +400,12 @@
|
|||||||
#
|
#
|
||||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
UefiCpuPkg/CpuDxe/CpuDxe.inf
|
UefiCpuPkg/CpuDxe/CpuDxe.inf
|
||||||
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
||||||
MdeModulePkg/Application/UiApp/UiApp.inf {
|
IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
|
||||||
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
|
||||||
}
|
}
|
||||||
|
|
||||||
!if $(USE_HPET_TIMER) == TRUE
|
!if $(USE_HPET_TIMER) == TRUE
|
||||||
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
PcAtChipsetPkg/HpetTimerDxe/HpetTimerDxe.inf
|
||||||
!else
|
!else
|
||||||
|
Reference in New Issue
Block a user