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