hc
2024-03-25 edb30157bad0c0001c32b854271ace01d3b9a16a
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
/** @file
  Platform specific defines for constructing ACPI tables
 
  Copyright (c) 2013 - 2019 Intel Corporation. All rights reserved. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _ACPI_PLATFORM_H_
#define _ACPI_PLATFORM_H_
 
#include <PiDxe.h>
#include <IndustryStandard/Acpi.h>
 
//
// ACPI table information used to initialize tables.
//
#define EFI_ACPI_OEM_ID           'S','I','M','I','C','S'   // OEMID 6 bytes long
#define EFI_ACPI_OEM_TABLE_ID     SIGNATURE_64('S','I','M','I','C','S','T','B') // OEM table id 8 bytes long
#define EFI_ACPI_OEM_REVISION     0x02000820
#define EFI_ACPI_CREATOR_ID       SIGNATURE_32('Q','S','P',' ')
#define EFI_ACPI_CREATOR_REVISION 0x00000097
 
#define INT_MODEL       0x01
#define SCI_INT_VECTOR  0x0009
#define SMI_CMD_IO_PORT 0xB2
#define ACPI_ENABLE     0x0E1
#define ACPI_DISABLE    0x01E
#define S4BIOS_REQ      0x00
#define PM1a_EVT_BLK    0x00000400
#define PM1b_EVT_BLK    0x00000000
#define PM1a_CNT_BLK    0x00000404
#define PM1b_CNT_BLK    0x00000000
#define PM2_CNT_BLK     0x00000450
#define PM_TMR_BLK      0x00000408
#define GPE0_BLK        0x00000420
#define GPE1_BLK        0x00000000
#define PM1_EVT_LEN     0x04
#define PM1_CNT_LEN     0x04
#define PM2_CNT_LEN     0x01
#define PM_TM_LEN       0x04
#define GPE0_BLK_LEN    0x10
#define GPE1_BLK_LEN    0x00
#define GPE1_BASE       0x00
#define RESERVED        0x00
#define P_LVL2_LAT      0x0065
#define P_LVL3_LAT      0x03E9
#define FLUSH_SIZE      0x0400
#define FLUSH_STRIDE    0x0010
#define DUTY_OFFSET     0x00
#define DUTY_WIDTH      0x00
#define DAY_ALRM        0x0D
#define MON_ALRM        0x00
#define CENTURY         0x00
#define FLAG            (EFI_ACPI_2_0_WBINVD | \
                         EFI_ACPI_2_0_PROC_C1 | \
                         EFI_ACPI_2_0_SLP_BUTTON | \
                         EFI_ACPI_2_0_RTC_S4 | \
                         EFI_ACPI_2_0_RESET_REG_SUP)
#define RESET_REG       0xCF9
#define RESET_VALUE     (BIT2 | BIT1) // PIIX3 Reset CPU + System Reset
 
//
// Byte-aligned IO port register block initializer for
// EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE
//
#define GAS2_IO(Base, Size) {                             \
          EFI_ACPI_2_0_SYSTEM_IO, /* AddressSpaceId    */ \
          (Size) * 8,             /* RegisterBitWidth  */ \
          0,                      /* RegisterBitOffset */ \
          0,                      /* Reserved          */ \
          (Base)                  /* Address           */ \
          }
 
#endif