1/** @file
2  This library provides support for various platform-specific DXE drivers.
3
4  Copyright (c) 2014 - 2015, AMD Inc. All rights reserved.<BR>
5
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#ifndef _AMDSTYX_ACPI_LIB_H_
17#define _AMDSTYX_ACPI_LIB_H_
18
19#include <IndustryStandard/Acpi.h>
20
21EFI_ACPI_DESCRIPTION_HEADER *FadtTable (void);
22EFI_ACPI_DESCRIPTION_HEADER *FacsTable (void);
23EFI_ACPI_DESCRIPTION_HEADER *MadtHeader (void);
24EFI_ACPI_DESCRIPTION_HEADER *GtdtHeader (void);
25EFI_ACPI_DESCRIPTION_HEADER *DsdtHeader (void);
26EFI_ACPI_DESCRIPTION_HEADER *McfgHeader (void);
27EFI_ACPI_DESCRIPTION_HEADER *Dbg2Header (void);
28EFI_ACPI_DESCRIPTION_HEADER *SpcrHeader (void);
29EFI_ACPI_DESCRIPTION_HEADER *CsrtHeader (void);
30
31#define EFI_ACPI_AMD_OEM_ID_ARRAY        {'A','M','D','I','N','C'}
32#define EFI_ACPI_AMD_OEM_TABLE_ID        SIGNATURE_64('S','E','A','T','T','L','E',' ')
33#define EFI_ACPI_AMD_OEM_REVISION        0
34#define EFI_ACPI_AMD_CREATOR_ID          SIGNATURE_32('A','M','D',' ')
35#define EFI_ACPI_AMD_CREATOR_REVISION    0
36
37/**
38 * A macro to initialize the common header part of EFI ACPI tables
39 * as defined by EFI_ACPI_DESCRIPTION_HEADER structure.
40 **/
41#define AMD_ACPI_HEADER(sign, type, rev) {                      \
42  sign,                           /* UINT32  Signature */       \
43  sizeof (type),                  /* UINT32  Length */          \
44  rev,                            /* UINT8   Revision */        \
45  0,                              /* UINT8   Checksum */        \
46  EFI_ACPI_AMD_OEM_ID_ARRAY,      /* UINT8   OemId[6] */        \
47  EFI_ACPI_AMD_OEM_TABLE_ID,      /* UINT64  OemTableId */      \
48  EFI_ACPI_AMD_OEM_REVISION,      /* UINT32  OemRevision */     \
49  EFI_ACPI_AMD_CREATOR_ID,        /* UINT32  CreatorId */       \
50  EFI_ACPI_AMD_CREATOR_REVISION   /* UINT32  CreatorRevision */ \
51  }
52
53#define NULL_GAS               {EFI_ACPI_5_1_SYSTEM_MEMORY,  0, 0, EFI_ACPI_5_1_UNDEFINED, 0L}
54#define AMD_GAS8(address)      {EFI_ACPI_5_1_SYSTEM_MEMORY,  8, 0, EFI_ACPI_5_1_BYTE,      address}
55#define AMD_GAS16(address)     {EFI_ACPI_5_1_SYSTEM_MEMORY, 16, 0, EFI_ACPI_5_1_WORD,      address}
56#define AMD_GAS32(address)     {EFI_ACPI_5_1_SYSTEM_MEMORY, 32, 0, EFI_ACPI_5_1_DWORD,     address}
57#define AMD_GAS64(address)     {EFI_ACPI_5_1_SYSTEM_MEMORY, 64, 0, EFI_ACPI_5_1_QWORD,     address}
58#define AMD_GASN(address)      AMD_GAS32(address)
59
60#endif // _AMDSTYX_ACPI_LIB_H_
61
62