1 /** @file 2 3 Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR> 4 5 This program and the accompanying materials are licensed and made available under 7 the terms and conditions of the BSD License that accompanies this distribution. 9 The full text of the license may be found at 11 http://opensource.org/licenses/bsd-license.php. 13 15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 21 23 Module Name: 24 25 PlatformData.c 26 27 Abstract: 28 29 Defined the platform specific device path which will be used by 30 platform Bbd to perform the platform policy connect. 31 32 --*/ 33 34 #include "BdsPlatform.h" 35 36 // 37 // Predefined platform default time out value 38 // 39 UINT16 gPlatformBootTimeOutDefault = 10; 40 41 // 42 // Predefined platform root bridge 43 // 44 PLATFORM_ROOT_BRIDGE_DEVICE_PATH gPlatformRootBridge0 = { 45 gPciRootBridge, 46 gEndEntire 47 }; 48 49 EFI_DEVICE_PATH_PROTOCOL* gPlatformRootBridges [] = { 50 (EFI_DEVICE_PATH_PROTOCOL*)&gPlatformRootBridge0, 51 NULL 52 }; 53 54 // 55 // Platform specific ISA keyboard device path 56 // 57 PLATFORM_ISA_KEYBOARD_DEVICE_PATH gIsaKeyboardDevicePath = { 58 gPciRootBridge, 59 gPciIsaBridge, 60 gPnpPs2Keyboard, 61 gEndEntire 62 }; 63 64 // 65 // Platform specific on chip PCI VGA device path 66 // 67 PLATFORM_ONBOARD_VGA_DEVICE_PATH gOnChipPciVgaDevicePath = { 68 gPciRootBridge, 69 PCI_DEVICE_PATH_NODE(0, 0x2), 70 gEndEntire 71 }; 72 73 // 74 // Platform specific plug in PCI VGA device path 75 // 76 PLATFORM_OFFBOARD_VGA_DEVICE_PATH gPlugInPciVgaDevicePath = { 77 gPciRootBridge, 78 PCI_DEVICE_PATH_NODE(0, 0x1), 79 PCI_DEVICE_PATH_NODE(0, 0x0), 80 gEndEntire 81 }; 82 83 // 84 // Platform specific ISA serial device path 85 // 86 PLATFORM_ISA_SERIAL_DEVICE_PATH gIsaSerialDevicePath = { 87 gPciRootBridge, 88 gPciIsaBridge, 89 gPnp16550ComPort, 90 gUart(115200, 8, 1, 1), 91 gPcAnsiTerminal, 92 gEndEntire 93 }; 94 95 96 // 97 // Platform specific Button Array device path 98 // 99 HII_VENDOR_DEVICE_PATH gHiiVendorDevicePath0 = { 100 { 101 { 102 HARDWARE_DEVICE_PATH, 103 HW_VENDOR_DP, 104 { 105 (UINT8) (sizeof (VENDOR_DEVICE_PATH)), 106 (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) 107 } 108 }, 109 110 // 111 // {C8752FDE-B5C8-4528-897D-6920FE771E38} 112 // 113 { 0xC8752FDE, 0xB5C8, 0x4528, { 0x89, 0x7D, 0x69, 0x20, 0xFE, 0x77, 0x1E, 0x38 } } 114 }, 115 { 116 END_DEVICE_PATH_TYPE, 117 END_ENTIRE_DEVICE_PATH_SUBTYPE, 118 { 119 (UINT8) (END_DEVICE_PATH_LENGTH), 120 (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8) 121 } 122 } 123 }; 124 125 USB_CLASS_FORMAT_DEVICE_PATH gUsbClassKeyboardDevicePath = { 126 gUsbKeyboardMouse, 127 gEndEntire 128 }; 129 130 // 131 // Debug Agent UART Console device path 132 // 133 VENDOR_UART_DEVICE_PATH gDebugAgentUartDevicePath = { 134 { 135 { 136 HARDWARE_DEVICE_PATH, 137 HW_VENDOR_DP, 138 { 139 (UINT8) (sizeof (VENDOR_DEVICE_PATH)), 140 (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) 141 } 142 }, 143 EFI_DEBUG_AGENT_GUID, 144 }, 145 { 146 { 147 MESSAGING_DEVICE_PATH, 148 MSG_UART_DP, 149 { 150 (UINT8) (sizeof (UART_DEVICE_PATH)), 151 (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8) 152 } 153 }, 154 0, // Reserved 155 0, // BaudRate - Default 156 0, // DataBits - Default 157 0, // Parity - Default 158 0, // StopBits - Default 159 }, 160 { 161 { 162 MESSAGING_DEVICE_PATH, 163 MSG_VENDOR_DP, 164 { 165 (UINT8)(sizeof (VENDOR_DEVICE_PATH)), 166 (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8) 167 } 168 }, 169 DEVICE_PATH_MESSAGING_PC_ANSI 170 }, 171 gEndEntire 172 }; 173 174 // 175 // Predefined platform default console device path 176 // 177 BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole [] = { 178 {(EFI_DEVICE_PATH_PROTOCOL*)&gIsaSerialDevicePath, CONSOLE_ALL}, 179 {(EFI_DEVICE_PATH_PROTOCOL*)&gHiiVendorDevicePath0, CONSOLE_IN}, 180 {(EFI_DEVICE_PATH_PROTOCOL*)&gIsaKeyboardDevicePath, CONSOLE_IN}, 181 {(EFI_DEVICE_PATH_PROTOCOL*)&gDebugAgentUartDevicePath, CONSOLE_ALL}, 182 {(EFI_DEVICE_PATH_PROTOCOL*)&gUsbClassKeyboardDevicePath, CONSOLE_IN}, 183 {NULL, 0} 184 }; 185 186 // 187 // All the possible platform PCI VGA device path 188 // 189 EFI_DEVICE_PATH_PROTOCOL* gPlatformAllPossiblePciVgaConsole [] = { 190 (EFI_DEVICE_PATH_PROTOCOL*)&gOnChipPciVgaDevicePath, 191 (EFI_DEVICE_PATH_PROTOCOL*)&gPlugInPciVgaDevicePath, 192 NULL 193 }; 194 195 // 196 // Legacy hard disk boot option 197 // 198 LEGACY_HD_DEVICE_PATH gLegacyHd = { 199 { 200 BBS_DEVICE_PATH, 201 BBS_BBS_DP, 202 (UINT8)(sizeof(BBS_BBS_DEVICE_PATH)), 203 (UINT8)((sizeof(BBS_BBS_DEVICE_PATH)) >> 8), 204 BBS_TYPE_HARDDRIVE, 205 0, 206 0 207 }, 208 gEndEntire 209 }; 210 211 // 212 // Legacy cdrom boot option 213 // 214 LEGACY_HD_DEVICE_PATH gLegacyCdrom = { 215 { 216 BBS_DEVICE_PATH, 217 BBS_BBS_DP, 218 (UINT8)(sizeof(BBS_BBS_DEVICE_PATH)), 219 (UINT8)((sizeof(BBS_BBS_DEVICE_PATH)) >> 8), 220 BBS_TYPE_CDROM, 221 0, 222 0 223 }, 224 gEndEntire 225 }; 226 227 // 228 // Predefined platform specific perdict boot option 229 // 230 EFI_DEVICE_PATH_PROTOCOL* gPlatformBootOption [] = { 231 (EFI_DEVICE_PATH_PROTOCOL*)&gLegacyHd, 232 (EFI_DEVICE_PATH_PROTOCOL*)&gLegacyCdrom, 233 NULL 234 }; 235 236 // 237 // Predefined platform specific driver option 238 // 239 EFI_DEVICE_PATH_PROTOCOL* gPlatformDriverOption [] = { 240 NULL 241 }; 242 243 // 244 // Predefined platform connect sequence 245 // 246 EFI_DEVICE_PATH_PROTOCOL* gPlatformConnectSequence [] = { 247 (EFI_DEVICE_PATH_PROTOCOL *)&gPlatformRootBridge0, // Force PCI enumer before Legacy OpROM shadow 248 NULL 249 }; 250 251 // 252 // Platform specific USB controller device path 253 // 254 PLATFORM_USB_DEVICE_PATH gUsbDevicePath0 = { 255 gPciRootBridge, 256 PCI_DEVICE_PATH_NODE(0, 0x1D), 257 gEndEntire 258 }; 259 260 PLATFORM_USB_DEVICE_PATH gUsbDevicePath1 = { 261 gPciRootBridge, 262 PCI_DEVICE_PATH_NODE(1, 0x1D), 263 gEndEntire 264 }; 265 266 PLATFORM_USB_DEVICE_PATH gUsbDevicePath2 = { 267 gPciRootBridge, 268 PCI_DEVICE_PATH_NODE(2, 0x1D), 269 gEndEntire 270 }; 271 272 PLATFORM_USB_DEVICE_PATH gUsbDevicePath3 = { 273 gPciRootBridge, 274 PCI_DEVICE_PATH_NODE(3, 0x1D), 275 gEndEntire 276 }; 277 278 // 279 // Predefined platform device path for user authtication 280 // 281 EFI_DEVICE_PATH_PROTOCOL* gUserAuthenticationDevice[] = { 282 // 283 // Predefined device path for secure card (USB disk). 284 // 285 (EFI_DEVICE_PATH_PROTOCOL*)&gUsbDevicePath0, 286 (EFI_DEVICE_PATH_PROTOCOL*)&gUsbDevicePath1, 287 (EFI_DEVICE_PATH_PROTOCOL*)&gUsbDevicePath2, 288 (EFI_DEVICE_PATH_PROTOCOL*)&gUsbDevicePath3, 289 NULL 290 }; 291 292 // 293 // Predefined platform console device path 294 // 295 BDS_CONSOLE_CONNECT_ENTRY gPlatformSimpleConsole [] = { 296 {(EFI_DEVICE_PATH_PROTOCOL*)&gOnChipPciVgaDevicePath, CONSOLE_OUT}, 297 {(EFI_DEVICE_PATH_PROTOCOL*)&gIsaSerialDevicePath, CONSOLE_ALL}, 298 {(EFI_DEVICE_PATH_PROTOCOL*)&gHiiVendorDevicePath0, CONSOLE_IN}, 299 {(EFI_DEVICE_PATH_PROTOCOL*)&gDebugAgentUartDevicePath, CONSOLE_ALL}, 300 {(EFI_DEVICE_PATH_PROTOCOL*)&gUsbClassKeyboardDevicePath, CONSOLE_IN}, 301 {NULL, 0} 302 }; 303 304 // 305 // eMMC device at BDF(0x0, 0x17, 0x0) 306 // 307 PLATFORM_PCI_DEVICE_PATH gEmmcBootDevPath0 = { 308 gPciRootBridge, 309 PCI_DEVICE_PATH_NODE (0x00, 0x10), 310 gEndEntire 311 }; 312 313 // 314 // Predefined platform specific perdict boot option 315 // 316 EFI_DEVICE_PATH_PROTOCOL* gPlatformSimpleBootOption [] = { 317 (EFI_DEVICE_PATH_PROTOCOL*)&gEmmcBootDevPath0, 318 NULL 319 }; 320 321