+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name: \r
-\r
- BdsPlatform.h\r
-\r
-Abstract:\r
-\r
- Head file for BDS Platform specific code\r
-\r
---*/\r
-\r
-#ifndef _PLATFORM_SPECIFIC_BDS_PLATFORM_H_\r
-#define _PLATFORM_SPECIFIC_BDS_PLATFORM_H_\r
-\r
-\r
-#include <PiDxe.h>\r
-\r
-#include <IndustryStandard/Pci.h>\r
-#include <IndustryStandard/Acpi.h>\r
-#include <IndustryStandard/SmBios.h>\r
-#include <IndustryStandard/LegacyBiosMpTable.h>\r
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/GenericBdsLib.h>\r
-#include <Library/PlatformBdsLib.h>\r
-#include <Library/HobLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/DxeServicesTableLib.h>\r
-#include <Library/DevicePathLib.h>\r
-\r
-#include <Protocol/PciIo.h>\r
-\r
-#include <Guid/Acpi.h>\r
-#include <Guid/SmBios.h>\r
-#include <Guid/Mps.h>\r
-#include <Guid/HobList.h>\r
-#include <Guid/PciExpressBaseAddress.h>\r
-#include <Guid/GlobalVariable.h>\r
-#include <Guid/LdrMemoryDescriptor.h>\r
-\r
-extern BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole[];\r
-extern EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[];\r
-extern EFI_DEVICE_PATH_PROTOCOL *gPlatformDriverOption[];\r
-extern EFI_DEVICE_PATH_PROTOCOL *gPlatformRootBridges[];\r
-extern ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode;\r
-extern ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode;\r
-extern UART_DEVICE_PATH gUartDeviceNode;\r
-extern VENDOR_DEVICE_PATH gTerminalTypeDeviceNode;\r
-//\r
-//\r
-//\r
-#define VarConsoleInpDev L"ConInDev"\r
-#define VarConsoleInp L"ConIn"\r
-#define VarConsoleOutDev L"ConOutDev"\r
-#define VarConsoleOut L"ConOut"\r
-#define VarErrorOutDev L"ErrOutDev"\r
-#define VarErrorOut L"ErrOut"\r
-\r
-#define PCI_DEVICE_PATH_NODE(Func, Dev) \\r
- { \\r
- { \\r
- HARDWARE_DEVICE_PATH, \\r
- HW_PCI_DP, \\r
- { \\r
- (UINT8) (sizeof (PCI_DEVICE_PATH)), \\r
- (UINT8) ((sizeof (PCI_DEVICE_PATH)) >> 8) \\r
- } \\r
- }, \\r
- (Func), \\r
- (Dev) \\r
- }\r
-\r
-#define PNPID_DEVICE_PATH_NODE(PnpId) \\r
- { \\r
- { \\r
- ACPI_DEVICE_PATH, \\r
- ACPI_DP, \\r
- { \\r
- (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \\r
- (UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \\r
- } \\r
- }, \\r
- EISA_PNP_ID((PnpId)), \\r
- 0 \\r
- }\r
-\r
-#define gPciRootBridge \\r
- PNPID_DEVICE_PATH_NODE(0x0A03)\r
-\r
-#define gPciIsaBridge \\r
- PCI_DEVICE_PATH_NODE(0, 0x1f)\r
-\r
-#define gP2PBridge \\r
- PCI_DEVICE_PATH_NODE(0, 0x1e)\r
-\r
-#define gPnpPs2Keyboard \\r
- PNPID_DEVICE_PATH_NODE(0x0303)\r
-\r
-#define gPnp16550ComPort \\r
- PNPID_DEVICE_PATH_NODE(0x0501)\r
-\r
-#define gUart \\r
- { \\r
- { \\r
- MESSAGING_DEVICE_PATH, \\r
- MSG_UART_DP, \\r
- { \\r
- (UINT8) (sizeof (UART_DEVICE_PATH)), \\r
- (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8) \\r
- } \\r
- }, \\r
- 0, \\r
- 115200, \\r
- 8, \\r
- 1, \\r
- 1 \\r
- }\r
-\r
-#define gPcAnsiTerminal \\r
- { \\r
- { \\r
- MESSAGING_DEVICE_PATH, \\r
- MSG_VENDOR_DP, \\r
- { \\r
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)), \\r
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) \\r
- } \\r
- }, \\r
- DEVICE_PATH_MESSAGING_PC_ANSI \\r
- }\r
-\r
-#define gEndEntire \\r
- { \\r
- END_DEVICE_PATH_TYPE, \\r
- END_ENTIRE_DEVICE_PATH_SUBTYPE, \\r
- { \\r
- END_DEVICE_PATH_LENGTH, \\r
- 0 \\r
- } \\r
- }\r
-\r
-#define PCI_CLASS_SCC 0x07\r
-#define PCI_SUBCLASS_SERIAL 0x00\r
-#define PCI_IF_16550 0x02\r
-#define IS_PCI_16550SERIAL(_p) IS_CLASS3 (_p, PCI_CLASS_SCC, PCI_SUBCLASS_SERIAL, PCI_IF_16550)\r
-\r
-#define EFI_SYSTEM_TABLE_MAX_ADDRESS 0xFFFFFFFF\r
-#define SYS_TABLE_PAD(ptr) (((~ptr) +1) & 0x07 )\r
-//\r
-// Platform Root Bridge\r
-//\r
-typedef struct {\r
- ACPI_HID_DEVICE_PATH PciRootBridge;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
-} PLATFORM_ROOT_BRIDGE_DEVICE_PATH;\r
-\r
-typedef struct {\r
- ACPI_HID_DEVICE_PATH PciRootBridge;\r
- PCI_DEVICE_PATH IsaBridge;\r
- ACPI_HID_DEVICE_PATH Keyboard;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
-} PLATFORM_DUMMY_ISA_KEYBOARD_DEVICE_PATH;\r
-\r
-typedef struct {\r
- ACPI_HID_DEVICE_PATH PciRootBridge;\r
- PCI_DEVICE_PATH IsaBridge;\r
- ACPI_HID_DEVICE_PATH IsaSerial;\r
- UART_DEVICE_PATH Uart;\r
- VENDOR_DEVICE_PATH TerminalType;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
-} PLATFORM_DUMMY_ISA_SERIAL_DEVICE_PATH;\r
-\r
-typedef struct {\r
- ACPI_HID_DEVICE_PATH PciRootBridge;\r
- PCI_DEVICE_PATH VgaDevice;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
-} PLATFORM_DUMMY_PCI_VGA_DEVICE_PATH;\r
-\r
-typedef struct {\r
- ACPI_HID_DEVICE_PATH PciRootBridge;\r
- PCI_DEVICE_PATH PciBridge;\r
- PCI_DEVICE_PATH SerialDevice;\r
- UART_DEVICE_PATH Uart;\r
- VENDOR_DEVICE_PATH TerminalType;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
-} PLATFORM_DUMMY_PCI_SERIAL_DEVICE_PATH;\r
-\r
-//\r
-// the short form device path for Usb keyboard\r
-//\r
-#define CLASS_HID 3\r
-#define SUBCLASS_BOOT 1\r
-#define PROTOCOL_KEYBOARD 1\r
-\r
-typedef struct {\r
- USB_CLASS_DEVICE_PATH UsbClass;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
-} USB_CLASS_FORMAT_DEVICE_PATH; \r
-\r
-extern PLATFORM_ROOT_BRIDGE_DEVICE_PATH gPlatformRootBridge0;\r
-\r
-//\r
-// Platform BDS Functions\r
-//\r
-VOID\r
-PlatformBdsGetDriverOption (\r
- IN LIST_ENTRY *BdsDriverLists\r
- );\r
-\r
-EFI_STATUS\r
-BdsMemoryTest (\r
- EXTENDMEM_COVERAGE_LEVEL Level\r
- );\r
-\r
-EFI_STATUS\r
-PlatformBdsShowProgress (\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,\r
- CHAR16 *Title,\r
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,\r
- UINTN Progress,\r
- UINTN PreviousValue\r
- );\r
-\r
-VOID\r
-PlatformBdsConnectSequence (\r
- VOID\r
- );\r
-\r
-EFI_STATUS\r
-ProcessCapsules (\r
- EFI_BOOT_MODE BootMode\r
- );\r
-\r
-EFI_STATUS\r
-PlatformBdsConnectConsole (\r
- IN BDS_CONSOLE_CONNECT_ENTRY *PlatformConsole\r
- );\r
-\r
-EFI_STATUS\r
-PlatformBdsNoConsoleAction (\r
- VOID\r
- );\r
-\r
-EFI_STATUS\r
-ConvertMpsTable (\r
- IN OUT VOID **Table\r
- );\r
- \r
-EFI_STATUS\r
-ConvertSmbiosTable (\r
- IN OUT VOID **Table\r
- );\r
- \r
-EFI_STATUS\r
-ConvertAcpiTable (\r
- IN UINTN TableLen,\r
- IN OUT VOID **Table\r
- );\r
-\r
-EFI_STATUS\r
-ConvertSystemTable (\r
- IN EFI_GUID *TableGuid,\r
- IN OUT VOID **Table\r
- );\r
-\r
-VOID\r
-PlatformBdsEnterFrontPage (\r
- IN UINT16 TimeoutDefault,\r
- IN BOOLEAN ConnectAllHappened\r
- );\r
-\r
-#endif // _PLATFORM_SPECIFIC_BDS_PLATFORM_H_\r