summaryrefslogtreecommitdiff
path: root/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/Csrt.h
blob: 4802acbbb1d834a2eba987b64a6fabb1925fbe27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/** @file
  The header file of CSRT.

  Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>

  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.

**/

#define EFI_ACPI_CSRT_TABLE_REVISION 0x00000000
#define NUMBER_RESOURCE_GROUP_INFO 1 //2
#define MAX_NO_CHANNEL1_SUPPORTED 7
#define MAX_NO_CHANNEL2_SUPPORTED 9
#define NAMESPACE_STRING_MAX_LENGTH 16

//
// Ensure proper structure formats
//
#pragma pack (1)


typedef struct _SHARED_INFO_SECTION {
  UINT16 MajVersion;
  UINT16 MinVersion;
  UINT32 MMIOLowPart;
  UINT32 MMIOHighPart;
  UINT32 IntGSI;
  UINT8  IntPol;
  UINT8  IntMode;
  UINT8  NoOfCh;
  UINT8  DMAAddressWidth;
  UINT16 BaseReqLine;
  UINT16 NoOfHandSig;
  UINT32 MaxBlockTransferSize;
} SHARED_INFO_SECTION;

typedef struct _RESOURCE_GROUP_HEADER {
  UINT32               Length;
  UINT32               VendorId;
  UINT32               SubVendorId;
  UINT16               DeviceId;
  UINT16               SubDeviceId;
  UINT16               Revision;
  UINT16               Reserved;
  UINT32               SharedInfoLength;
  SHARED_INFO_SECTION  SharedInfoSection;
} RESOURCE_GROUP_HEADER;

typedef struct _RESOURCE_DESCRIPTOR {
  UINT32 Length;
  UINT16 ResourceType;
  UINT16 ResourceSubType;
  UINT32 UUID;
} RESOURCE_DESCRIPTOR;

typedef struct {
  RESOURCE_GROUP_HEADER          ResourceGroupHeaderInfo;
  RESOURCE_DESCRIPTOR            ResourceDescriptorInfo[MAX_NO_CHANNEL1_SUPPORTED];
} RESOURCE_GROUP_INFO1;

typedef struct {
  RESOURCE_GROUP_HEADER          ResourceGroupHeaderInfo;
  RESOURCE_DESCRIPTOR            ResourceDescriptorInfo[MAX_NO_CHANNEL2_SUPPORTED];
} RESOURCE_GROUP_INFO2;

//
// DBGP structure
//
typedef struct {
  EFI_ACPI_DESCRIPTION_HEADER    Header;
  RESOURCE_GROUP_INFO1           ResourceGroupsInfo1;
  RESOURCE_GROUP_INFO2           ResourceGroupsInfo2;
} EFI_ACPI_CSRT_TABLE;

#pragma pack ()