OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
BdsPlatform.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4This program and the accompanying materials
5are licensed and made available under the terms and conditions of the BSD License
6which accompanies this distribution. The full text of the license may be found at
7http://opensource.org/licenses/bsd-license.php
8
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12Module Name:
13
14 BdsPlatform.h
15
16Abstract:
17
18 Head file for BDS Platform specific code
19
20--*/
21
22#ifndef _PLATFORM_SPECIFIC_BDS_PLATFORM_H_
23#define _PLATFORM_SPECIFIC_BDS_PLATFORM_H_
24
25#include <Library/DuetBdsLib.h>
26#include <Library/DevicePathLib.h>
27#include <Protocol/DevicePath.h>
28
30extern EFI_DEVICE_PATH_PROTOCOL *gPlatformDriverOption[];
31extern EFI_DEVICE_PATH_PROTOCOL *gPlatformRootBridges[];
32extern ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode;
33
34//
35// attributes for reserved memory before it is promoted to system memory
36//
37#define EFI_MEMORY_PRESENT 0x0100000000000000ULL
38#define EFI_MEMORY_INITIALIZED 0x0200000000000000ULL
39#define EFI_MEMORY_TESTED 0x0400000000000000ULL
40
41#define VarConsoleInpDev L"ConInDev"
42#define VarConsoleInp L"ConIn"
43#define VarConsoleOutDev L"ConOutDev"
44#define VarConsoleOut L"ConOut"
45#define VarErrorOutDev L"ErrOutDev"
46#define VarErrorOut L"ErrOut"
47
48#define IS_PCI_ISA_PDECODE(_p) IS_CLASS3 (_p, PCI_CLASS_BRIDGE, PCI_CLASS_BRIDGE_ISA_PDECODE, 0)
49
50#define PCI_DEVICE_PATH_NODE(Func, Dev) \
51 { \
52 { \
53 HARDWARE_DEVICE_PATH, \
54 HW_PCI_DP, \
55 { \
56 (UINT8) (sizeof (PCI_DEVICE_PATH)), \
57 (UINT8) ((sizeof (PCI_DEVICE_PATH)) >> 8) \
58 } \
59 }, \
60 (Func), \
61 (Dev) \
62 }
63
64#define PNPID_DEVICE_PATH_NODE(PnpId) \
65 { \
66 { \
67 ACPI_DEVICE_PATH, \
68 ACPI_DP, \
69 { \
70 (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \
71 (UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \
72 } \
73 }, \
74 EISA_PNP_ID((PnpId)), \
75 0 \
76 }
77
78#define gPciRootBridge \
79 PNPID_DEVICE_PATH_NODE(0x0A03)
80
81#define gPciIsaBridge \
82 PCI_DEVICE_PATH_NODE(0, 0x1f)
83
84#define gPnpPs2Keyboard \
85 PNPID_DEVICE_PATH_NODE(0x0303)
86
87#define gEndEntire \
88 { \
89 END_DEVICE_PATH_TYPE, \
90 END_ENTIRE_DEVICE_PATH_SUBTYPE, \
91 { \
92 END_DEVICE_PATH_LENGTH, \
93 0 \
94 } \
95 }
96
97#define EFI_SYSTEM_TABLE_MAX_ADDRESS 0xFFFFFFFF
98#define SYS_TABLE_PAD(ptr) (((~ptr) +1) & 0x07 )
99
100//
101// Platform Root Bridge
102//
103typedef struct {
104 ACPI_HID_DEVICE_PATH PciRootBridge;
105 EFI_DEVICE_PATH_PROTOCOL End;
107
108typedef struct {
109 ACPI_HID_DEVICE_PATH PciRootBridge;
110 PCI_DEVICE_PATH IsaBridge;
111 ACPI_HID_DEVICE_PATH Keyboard;
112 EFI_DEVICE_PATH_PROTOCOL End;
114
115typedef struct {
116 USB_CLASS_DEVICE_PATH UsbClass;
117 EFI_DEVICE_PATH_PROTOCOL End;
119
120//
121// the short form device path for Usb keyboard
122//
123#define CLASS_HID 3
124#define SUBCLASS_BOOT 1
125#define PROTOCOL_KEYBOARD 1
126
129
130#endif // _PLATFORM_SPECIFIC_BDS_PLATFORM_H_
PLATFORM_ROOT_BRIDGE_DEVICE_PATH gPlatformRootBridge0
USB_CLASS_FORMAT_DEVICE_PATH gUsbClassKeyboardDevicePath
EFI_DEVICE_PATH_PROTOCOL * gPlatformRootBridges[]
EFI_DEVICE_PATH_PROTOCOL * gPlatformDriverOption[]
ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode
BDS_CONSOLE_CONNECT_ENTRY gPlatformConsole[]
EFI_DEVICE_PATH_PROTOCOL End
ACPI_HID_DEVICE_PATH PciRootBridge
USB_CLASS_DEVICE_PATH UsbClass
EFI_DEVICE_PATH_PROTOCOL End