/** @file | |
* Debug Port Table 2 (DBG2) | |
* | |
* Copyright (c) 2012 - 2014, Linaro Limited. All rights reserved. | |
* Copyright (c) 2015, Hisilicon Limited. All rights reserved. | |
* Copyright (c) 2015, Linaro Limited. All rights reserved. | |
* | |
* This program and the accompanying materials | |
* are licensed and made available under the terms and conditions of the BSD License | |
* which accompanies this distribution. The full text of the license may be found at | |
* http://opensource.org/licenses/bsd-license.php | |
* | |
* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
* | |
* Based on the files under ArmPlatformPkg/ArmJunoPkg/AcpiTables/ | |
* | |
**/ | |
#include "Pv660Platform.h" | |
#include <Library/AcpiLib.h> | |
#include <Library/PcdLib.h> | |
#include <IndustryStandard/Acpi.h> | |
#include <IndustryStandard/DebugPort2Table.h> | |
#define NUMBER_DEBUG_DEVICE_INFO 1 | |
#define NUMBER_OF_GENERIC_ADDRESS 1 | |
#define NAMESPACE_STRING_SIZE 8 | |
#pragma pack(1) | |
typedef struct { | |
EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT DdiHeader; | |
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE Address[NUMBER_OF_GENERIC_ADDRESS]; | |
UINT32 AddressSize[NUMBER_OF_GENERIC_ADDRESS]; | |
CHAR8 NamespaceString[NAMESPACE_STRING_SIZE]; | |
} EFI_ACPI_DBG2_DDI_STRUCT; | |
typedef struct { | |
EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE Desc; | |
EFI_ACPI_DBG2_DDI_STRUCT Ddi[NUMBER_DEBUG_DEVICE_INFO]; | |
} EFI_ACPI_DEBUG_PORT_2_TABLE; | |
#pragma pack() | |
EFI_ACPI_DEBUG_PORT_2_TABLE Dbg2 = { | |
{ | |
ARM_ACPI_HEADER( | |
EFI_ACPI_5_1_DEBUG_PORT_2_TABLE_SIGNATURE, | |
EFI_ACPI_DEBUG_PORT_2_TABLE, | |
EFI_ACPI_DEBUG_PORT_2_TABLE_REVISION | |
), | |
OFFSET_OF(EFI_ACPI_DEBUG_PORT_2_TABLE, Ddi), | |
NUMBER_DEBUG_DEVICE_INFO | |
}, | |
{ | |
{ | |
{ | |
EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION, | |
sizeof(EFI_ACPI_DBG2_DDI_STRUCT), | |
NUMBER_OF_GENERIC_ADDRESS, | |
NAMESPACE_STRING_SIZE, | |
OFFSET_OF(EFI_ACPI_DBG2_DDI_STRUCT, NamespaceString), | |
0, //OemDataLength | |
0, //OemDataOffset | |
EFI_ACPI_DBG2_PORT_TYPE_SERIAL, | |
EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_FULL_16550, | |
{EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE}, | |
OFFSET_OF(EFI_ACPI_DBG2_DDI_STRUCT, Address), | |
OFFSET_OF(EFI_ACPI_DBG2_DDI_STRUCT, AddressSize), | |
}, | |
{ | |
{ | |
EFI_ACPI_6_0_SYSTEM_MEMORY, | |
32, | |
0, | |
EFI_ACPI_6_0_BYTE, | |
FixedPcdGet64(PcdSerialRegisterBase) | |
} | |
}, | |
{ | |
0x1000 | |
}, | |
"COM0" | |
} | |
} | |
}; | |
// | |
// Reference the table being generated to prevent the optimizer from removing the | |
// data structure from the executable | |
// | |
VOID* CONST ReferenceAcpiTable = &Dbg2; |