1 /** @file
2   ACPI debug port 2 table definition, defined at
3   Microsoft DebugPort2Specification.
4 
5   Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>
6   This program and the accompanying materials
7   are licensed and made available under the terms and conditions of the BSD License
8   which accompanies this distribution.  The full text of the license may be found at
9   http://opensource.org/licenses/bsd-license.php
10 
11   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 
17 #ifndef _DEBUG_PORT_2_TABLE_H_
18 #define _DEBUG_PORT_2_TABLE_H_
19 
20 #include <IndustryStandard/Acpi.h>
21 
22 //
23 // Ensure proper structure formats
24 //
25 #pragma pack(1)
26 
27 //
28 // Debug Device Information structure.
29 //
30 typedef struct {
31   UINT8                                     Revision;
32   UINT16                                    Length;
33   UINT8                                     NumberofGenericAddressRegisters;
34   UINT16                                    NameSpaceStringLength;
35   UINT16                                    NameSpaceStringOffset;
36   UINT16                                    OemDataLength;
37   UINT16                                    OemDataOffset;
38   UINT16                                    PortType;
39   UINT16                                    PortSubtype;
40   UINT8                                     Reserved[2];
41   UINT16                                    BaseAddressRegisterOffset;
42   UINT16                                    AddressSizeOffset;
43 } EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT;
44 
45 #define EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION      0x00
46 
47 #define EFI_ACPI_DBG2_PORT_TYPE_SERIAL                                                 0x8000
48 #define   EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_FULL_16550                                 0x0000
49 #define   EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_16550_SUBSET_COMPATIBLE_WITH_MS_DBGP_SPEC  0x0001
50 #define EFI_ACPI_DBG2_PORT_TYPE_1394                                                   0x8001
51 #define   EFI_ACPI_DBG2_PORT_SUBTYPE_1394_STANDARD                                     0x0000
52 #define EFI_ACPI_DBG2_PORT_TYPE_USB                                                    0x8002
53 #define   EFI_ACPI_DBG2_PORT_SUBTYPE_USB_XHCI                                          0x0000
54 #define   EFI_ACPI_DBG2_PORT_SUBTYPE_USB_EHCI                                          0x0001
55 #define EFI_ACPI_DBG2_PORT_TYPE_NET                                                    0x8003
56 
57 //
58 // Debug Port 2 Table definition.
59 //
60 typedef struct {
61   EFI_ACPI_DESCRIPTION_HEADER               Header;
62   UINT32                                    OffsetDbgDeviceInfo;
63   UINT32                                    NumberDbgDeviceInfo;
64 } EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE;
65 
66 #pragma pack()
67 
68 //
69 // DBG2 Revision (defined in spec)
70 //
71 #define EFI_ACPI_DEBUG_PORT_2_TABLE_REVISION      0x00
72 
73 #endif
74