3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Head file for BDS Platform specific code
22 #ifndef _BDS_PLATFORM_H
23 #define _BDS_PLATFORM_H
26 #include <Common/MaxBbsEntries.h>
27 #include <Protocol/FormCallbackFramework.h>
28 #include <Protocol/DevicePath.h>
29 #include <Protocol/LoadFile.h>
30 #include <Protocol/CpuIo.h>
31 #include <Protocol/Bds.h>
32 #include <Protocol/DataHub.h>
33 #include <Protocol/FormBrowserFramework.h>
34 #include <Protocol/UgaDraw.h>
35 #include <Protocol/BlockIo.h>
36 #include <Protocol/ConsoleControl.h>
37 #include <Protocol/GenericMemoryTest.h>
38 #include <Protocol/GraphicsOutput.h>
39 #include <Protocol/SimpleFileSystem.h>
40 #include <Protocol/HiiFramework.h>
41 #include <Protocol/SerialIo.h>
42 #include <Protocol/LegacyBios.h>
43 #include <Protocol/Performance.h>
44 #include <Guid/PcAnsi.h>
45 #include <Guid/DataHubRecords.h>
47 #include <Guid/FileInfo.h>
48 #include <Guid/BootState.h>
49 #include <Guid/FileSystemVolumeLabelInfo.h>
50 #include <Guid/GenericPlatformVariable.h>
51 #include <Guid/GlobalVariable.h>
53 #include <Library/DebugLib.h>
54 #include <Library/UefiLib.h>
55 #include <Library/UefiDriverEntryPoint.h>
56 #include <Library/BaseLib.h>
57 #include <Library/GraphicsLib.h>
58 #include <Library/DxeServicesTableLib.h>
59 #include <Library/PerformanceLib.h>
60 #include <Library/PrintLib.h>
61 #include <Library/IfrSupportLibFramework.h>
62 #include <Library/ReportStatusCodeLib.h>
63 #include <Library/HobLib.h>
64 #include <Library/EdkGenericBdsLib.h>
65 #include <Library/MemoryAllocationLib.h>
66 #include <Library/BaseMemoryLib.h>
67 #include <Library/UefiBootServicesTableLib.h>
68 #include <Library/UefiRuntimeServicesTableLib.h>
69 #include <Library/DevicePathLib.h>
70 #include <Library/HiiLibFramework.h>
71 #include <Library/PeCoffLib.h>
72 #include <Library/PcdLib.h>
75 // The rest of the includes
77 #include <Common/FirmwareRevision.h>
79 extern UINT8 PlatformBdsStrings
[];
81 #include "IndustryStandard/Pci22.h"
83 extern BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole
[];
84 extern EFI_DEVICE_PATH_PROTOCOL
*gPlatformConnectSequence
[];
85 extern EFI_DEVICE_PATH_PROTOCOL
*gPlatformDriverOption
[];
89 END_DEVICE_PATH_TYPE,\
90 END_ENTIRE_DEVICE_PATH_SUBTYPE,\
91 END_DEVICE_PATH_LENGTH,\
96 VENDOR_DEVICE_PATH VendorDevicePath
;
98 } WIN_NT_VENDOR_DEVICE_PATH_NODE
;
101 // Below is the platform console device path
104 VENDOR_DEVICE_PATH NtBus
;
105 WIN_NT_VENDOR_DEVICE_PATH_NODE SerialDevice
;
106 UART_DEVICE_PATH Uart
;
107 VENDOR_DEVICE_PATH TerminalType
;
108 EFI_DEVICE_PATH_PROTOCOL End
;
109 } NT_ISA_SERIAL_DEVICE_PATH
;
112 VENDOR_DEVICE_PATH NtBus
;
113 WIN_NT_VENDOR_DEVICE_PATH_NODE NtUgaDevice
;
114 EFI_DEVICE_PATH_PROTOCOL End
;
115 } NT_PLATFORM_UGA_DEVICE_PATH
;
118 VENDOR_DEVICE_PATH NtBus
;
119 WIN_NT_VENDOR_DEVICE_PATH_NODE NtGopDevice
;
120 EFI_DEVICE_PATH_PROTOCOL End
;
121 } NT_PLATFORM_GOP_DEVICE_PATH
;
124 VENDOR_DEVICE_PATH NtBus
;
125 WIN_NT_VENDOR_DEVICE_PATH_NODE NtCpuModelDevice
;
126 EFI_DEVICE_PATH_PROTOCOL End
;
127 } NT_PLATFORM_CPU_MODEL_VIRTUAL_DEVICE_PATH
;
130 VENDOR_DEVICE_PATH NtBus
;
131 WIN_NT_VENDOR_DEVICE_PATH_NODE NtCpuSpeedDevice
;
132 EFI_DEVICE_PATH_PROTOCOL End
;
133 } NT_PLATFORM_CPU_SPEED_VIRTUAL_DEVICE_PATH
;
136 VENDOR_DEVICE_PATH NtBus
;
137 WIN_NT_VENDOR_DEVICE_PATH_NODE NtMemoryDeivce
;
138 EFI_DEVICE_PATH_PROTOCOL End
;
139 } NT_PLATFORM_MEMORY_VIRTUAL_DEVICE_PATH
;
142 // Platform BDS Functions
146 IN EFI_BDS_ARCH_PROTOCOL_INSTANCE
*PrivateData
151 PlatformBdsPolicyBehavior (
152 IN EFI_BDS_ARCH_PROTOCOL_INSTANCE
*PrivateData
,
153 IN LIST_ENTRY
*DriverOptionList
,
154 IN LIST_ENTRY
*BootOptionList
159 PlatformBdsGetDriverOption (
160 IN LIST_ENTRY
*BdsDriverLists
166 EXTENDMEM_COVERAGE_LEVEL Level
171 PlatformBdsShowProgress (
172 EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground
,
173 EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground
,
175 EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor
,
182 PlatformBdsConnectSequence (
188 PlatformBdsBootFail (
189 IN BDS_COMMON_OPTION
*Option
,
190 IN EFI_STATUS Status
,
192 IN UINTN ExitDataSize
197 PlatformBdsBootSuccess (
198 IN BDS_COMMON_OPTION
*Option
204 EFI_BOOT_MODE BootMode
209 PlatformBdsConnectConsole (
210 IN BDS_CONSOLE_CONNECT_ENTRY
*PlatformConsole
215 PlatformBdsNoConsoleAction (
220 #endif // _BDS_PLATFORM_H