Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/edk2/Include/IndustryStandard/Acpi30.h
107605 views
1
/** @file
2
ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006
3
4
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5
SPDX-License-Identifier: BSD-2-Clause-Patent
6
**/
7
8
#ifndef _ACPI_3_0_H_
9
#define _ACPI_3_0_H_
10
11
#include <IndustryStandard/Acpi20.h>
12
13
//
14
// Define for Descriptor
15
//
16
#define ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0B
17
18
#define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR 0x8B
19
20
///
21
/// C-state Coordination Types
22
/// See s8.4.2.2 _CSD (C-State Dependency)
23
///
24
#define ACPI_AML_COORD_TYPE_SW_ALL 0xFC
25
#define ACPI_AML_COORD_TYPE_SW_ANY 0xFD
26
#define ACPI_AML_COORD_TYPE_HW_ALL 0xFE
27
28
///
29
/// _PSD Revision for ACPI 3.0
30
// See s8.4.4.5 _PSD (P-State Dependency)
31
///
32
#define EFI_ACPI_3_0_AML_PSD_REVISION 0
33
34
//
35
// Ensure proper structure formats
36
//
37
#pragma pack(1)
38
39
///
40
/// Extended Address Space Descriptor
41
///
42
typedef PACKED struct {
43
ACPI_LARGE_RESOURCE_HEADER Header;
44
UINT8 ResType;
45
UINT8 GenFlag;
46
UINT8 SpecificFlag;
47
UINT8 RevisionId;
48
UINT8 Reserved;
49
UINT64 AddrSpaceGranularity;
50
UINT64 AddrRangeMin;
51
UINT64 AddrRangeMax;
52
UINT64 AddrTranslationOffset;
53
UINT64 AddrLen;
54
UINT64 TypeSpecificAttribute;
55
} EFI_ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR;
56
57
#pragma pack()
58
59
//
60
// Memory Type Specific Flags
61
//
62
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UC 0x0000000000000001
63
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WC 0x0000000000000002
64
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WT 0x0000000000000004
65
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WB 0x0000000000000008
66
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UCE 0x0000000000000010
67
#define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_NV 0x0000000000008000
68
69
//
70
// Ensure proper structure formats
71
//
72
#pragma pack(1)
73
74
///
75
/// ACPI 3.0 Generic Address Space definition
76
///
77
typedef struct {
78
UINT8 AddressSpaceId;
79
UINT8 RegisterBitWidth;
80
UINT8 RegisterBitOffset;
81
UINT8 AccessSize;
82
UINT64 Address;
83
} EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE;
84
85
//
86
// Generic Address Space Address IDs
87
//
88
#define EFI_ACPI_3_0_SYSTEM_MEMORY 0
89
#define EFI_ACPI_3_0_SYSTEM_IO 1
90
#define EFI_ACPI_3_0_PCI_CONFIGURATION_SPACE 2
91
#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER 3
92
#define EFI_ACPI_3_0_SMBUS 4
93
#define EFI_ACPI_3_0_FUNCTIONAL_FIXED_HARDWARE 0x7F
94
95
//
96
// Generic Address Space Access Sizes
97
//
98
#define EFI_ACPI_3_0_UNDEFINED 0
99
#define EFI_ACPI_3_0_BYTE 1
100
#define EFI_ACPI_3_0_WORD 2
101
#define EFI_ACPI_3_0_DWORD 3
102
#define EFI_ACPI_3_0_QWORD 4
103
104
//
105
// ACPI 3.0 table structures
106
//
107
108
///
109
/// Root System Description Pointer Structure
110
///
111
typedef struct {
112
UINT64 Signature;
113
UINT8 Checksum;
114
UINT8 OemId[6];
115
UINT8 Revision;
116
UINT32 RsdtAddress;
117
UINT32 Length;
118
UINT64 XsdtAddress;
119
UINT8 ExtendedChecksum;
120
UINT8 Reserved[3];
121
} EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
122
123
///
124
/// RSD_PTR Revision (as defined in ACPI 3.0b spec.)
125
///
126
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 3.0b) says current value is 2
127
128
///
129
/// Common table header, this prefaces all ACPI tables, including FACS, but
130
/// excluding the RSD PTR structure
131
///
132
typedef struct {
133
UINT32 Signature;
134
UINT32 Length;
135
} EFI_ACPI_3_0_COMMON_HEADER;
136
137
//
138
// Root System Description Table
139
// No definition needed as it is a common description table header, the same with
140
// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
141
//
142
143
///
144
/// RSDT Revision (as defined in ACPI 3.0 spec.)
145
///
146
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
147
148
//
149
// Extended System Description Table
150
// No definition needed as it is a common description table header, the same with
151
// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
152
//
153
154
///
155
/// XSDT Revision (as defined in ACPI 3.0 spec.)
156
///
157
#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
158
159
///
160
/// Fixed ACPI Description Table Structure (FADT)
161
///
162
typedef struct {
163
EFI_ACPI_DESCRIPTION_HEADER Header;
164
UINT32 FirmwareCtrl;
165
UINT32 Dsdt;
166
UINT8 Reserved0;
167
UINT8 PreferredPmProfile;
168
UINT16 SciInt;
169
UINT32 SmiCmd;
170
UINT8 AcpiEnable;
171
UINT8 AcpiDisable;
172
UINT8 S4BiosReq;
173
UINT8 PstateCnt;
174
UINT32 Pm1aEvtBlk;
175
UINT32 Pm1bEvtBlk;
176
UINT32 Pm1aCntBlk;
177
UINT32 Pm1bCntBlk;
178
UINT32 Pm2CntBlk;
179
UINT32 PmTmrBlk;
180
UINT32 Gpe0Blk;
181
UINT32 Gpe1Blk;
182
UINT8 Pm1EvtLen;
183
UINT8 Pm1CntLen;
184
UINT8 Pm2CntLen;
185
UINT8 PmTmrLen;
186
UINT8 Gpe0BlkLen;
187
UINT8 Gpe1BlkLen;
188
UINT8 Gpe1Base;
189
UINT8 CstCnt;
190
UINT16 PLvl2Lat;
191
UINT16 PLvl3Lat;
192
UINT16 FlushSize;
193
UINT16 FlushStride;
194
UINT8 DutyOffset;
195
UINT8 DutyWidth;
196
UINT8 DayAlrm;
197
UINT8 MonAlrm;
198
UINT8 Century;
199
UINT16 IaPcBootArch;
200
UINT8 Reserved1;
201
UINT32 Flags;
202
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
203
UINT8 ResetValue;
204
UINT8 Reserved2[3];
205
UINT64 XFirmwareCtrl;
206
UINT64 XDsdt;
207
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
208
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
209
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
210
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
211
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
212
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
213
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
214
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
215
} EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE;
216
217
///
218
/// FADT Version (as defined in ACPI 3.0 spec.)
219
///
220
#define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x04
221
222
//
223
// Fixed ACPI Description Table Preferred Power Management Profile
224
//
225
#define EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED 0
226
#define EFI_ACPI_3_0_PM_PROFILE_DESKTOP 1
227
#define EFI_ACPI_3_0_PM_PROFILE_MOBILE 2
228
#define EFI_ACPI_3_0_PM_PROFILE_WORKSTATION 3
229
#define EFI_ACPI_3_0_PM_PROFILE_ENTERPRISE_SERVER 4
230
#define EFI_ACPI_3_0_PM_PROFILE_SOHO_SERVER 5
231
#define EFI_ACPI_3_0_PM_PROFILE_APPLIANCE_PC 6
232
#define EFI_ACPI_3_0_PM_PROFILE_PERFORMANCE_SERVER 7
233
234
//
235
// Fixed ACPI Description Table Boot Architecture Flags
236
// All other bits are reserved and must be set to 0.
237
//
238
#define EFI_ACPI_3_0_LEGACY_DEVICES BIT0
239
#define EFI_ACPI_3_0_8042 BIT1
240
#define EFI_ACPI_3_0_VGA_NOT_PRESENT BIT2
241
#define EFI_ACPI_3_0_MSI_NOT_SUPPORTED BIT3
242
#define EFI_ACPI_3_0_PCIE_ASPM_CONTROLS BIT4
243
244
//
245
// Fixed ACPI Description Table Fixed Feature Flags
246
// All other bits are reserved and must be set to 0.
247
//
248
#define EFI_ACPI_3_0_WBINVD BIT0
249
#define EFI_ACPI_3_0_WBINVD_FLUSH BIT1
250
#define EFI_ACPI_3_0_PROC_C1 BIT2
251
#define EFI_ACPI_3_0_P_LVL2_UP BIT3
252
#define EFI_ACPI_3_0_PWR_BUTTON BIT4
253
#define EFI_ACPI_3_0_SLP_BUTTON BIT5
254
#define EFI_ACPI_3_0_FIX_RTC BIT6
255
#define EFI_ACPI_3_0_RTC_S4 BIT7
256
#define EFI_ACPI_3_0_TMR_VAL_EXT BIT8
257
#define EFI_ACPI_3_0_DCK_CAP BIT9
258
#define EFI_ACPI_3_0_RESET_REG_SUP BIT10
259
#define EFI_ACPI_3_0_SEALED_CASE BIT11
260
#define EFI_ACPI_3_0_HEADLESS BIT12
261
#define EFI_ACPI_3_0_CPU_SW_SLP BIT13
262
#define EFI_ACPI_3_0_PCI_EXP_WAK BIT14
263
#define EFI_ACPI_3_0_USE_PLATFORM_CLOCK BIT15
264
#define EFI_ACPI_3_0_S4_RTC_STS_VALID BIT16
265
#define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE BIT17
266
#define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL BIT18
267
#define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
268
269
///
270
/// Firmware ACPI Control Structure
271
///
272
typedef struct {
273
UINT32 Signature;
274
UINT32 Length;
275
UINT32 HardwareSignature;
276
UINT32 FirmwareWakingVector;
277
UINT32 GlobalLock;
278
UINT32 Flags;
279
UINT64 XFirmwareWakingVector;
280
UINT8 Version;
281
UINT8 Reserved[31];
282
} EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
283
284
///
285
/// FACS Version (as defined in ACPI 3.0 spec.)
286
///
287
#define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x01
288
289
///
290
/// Firmware Control Structure Feature Flags
291
/// All other bits are reserved and must be set to 0.
292
///
293
#define EFI_ACPI_3_0_S4BIOS_F BIT0
294
295
//
296
// Differentiated System Description Table,
297
// Secondary System Description Table
298
// and Persistent System Description Table,
299
// no definition needed as they are common description table header, the same with
300
// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
301
//
302
#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
303
#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
304
305
///
306
/// Multiple APIC Description Table header definition. The rest of the table
307
/// must be defined in a platform specific manner.
308
///
309
typedef struct {
310
EFI_ACPI_DESCRIPTION_HEADER Header;
311
UINT32 LocalApicAddress;
312
UINT32 Flags;
313
} EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
314
315
///
316
/// MADT Revision (as defined in ACPI 3.0 spec.)
317
///
318
#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02
319
320
///
321
/// Multiple APIC Flags
322
/// All other bits are reserved and must be set to 0.
323
///
324
#define EFI_ACPI_3_0_PCAT_COMPAT BIT0
325
326
//
327
// Multiple APIC Description Table APIC structure types
328
// All other values between 0x09 an 0xFF are reserved and
329
// will be ignored by OSPM.
330
//
331
#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC 0x00
332
#define EFI_ACPI_3_0_IO_APIC 0x01
333
#define EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE 0x02
334
#define EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
335
#define EFI_ACPI_3_0_LOCAL_APIC_NMI 0x04
336
#define EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
337
#define EFI_ACPI_3_0_IO_SAPIC 0x06
338
#define EFI_ACPI_3_0_LOCAL_SAPIC 0x07
339
#define EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES 0x08
340
341
//
342
// APIC Structure Definitions
343
//
344
345
///
346
/// Processor Local APIC Structure Definition
347
///
348
typedef struct {
349
UINT8 Type;
350
UINT8 Length;
351
UINT8 AcpiProcessorId;
352
UINT8 ApicId;
353
UINT32 Flags;
354
} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
355
356
///
357
/// Local APIC Flags. All other bits are reserved and must be 0.
358
///
359
#define EFI_ACPI_3_0_LOCAL_APIC_ENABLED BIT0
360
361
///
362
/// IO APIC Structure
363
///
364
typedef struct {
365
UINT8 Type;
366
UINT8 Length;
367
UINT8 IoApicId;
368
UINT8 Reserved;
369
UINT32 IoApicAddress;
370
UINT32 GlobalSystemInterruptBase;
371
} EFI_ACPI_3_0_IO_APIC_STRUCTURE;
372
373
///
374
/// Interrupt Source Override Structure
375
///
376
typedef struct {
377
UINT8 Type;
378
UINT8 Length;
379
UINT8 Bus;
380
UINT8 Source;
381
UINT32 GlobalSystemInterrupt;
382
UINT16 Flags;
383
} EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
384
385
///
386
/// Platform Interrupt Sources Structure Definition
387
///
388
typedef struct {
389
UINT8 Type;
390
UINT8 Length;
391
UINT16 Flags;
392
UINT8 InterruptType;
393
UINT8 ProcessorId;
394
UINT8 ProcessorEid;
395
UINT8 IoSapicVector;
396
UINT32 GlobalSystemInterrupt;
397
UINT32 PlatformInterruptSourceFlags;
398
UINT8 CpeiProcessorOverride;
399
UINT8 Reserved[31];
400
} EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
401
402
//
403
// MPS INTI flags.
404
// All other bits are reserved and must be set to 0.
405
//
406
#define EFI_ACPI_3_0_POLARITY (3 << 0)
407
#define EFI_ACPI_3_0_TRIGGER_MODE (3 << 2)
408
409
///
410
/// Non-Maskable Interrupt Source Structure
411
///
412
typedef struct {
413
UINT8 Type;
414
UINT8 Length;
415
UINT16 Flags;
416
UINT32 GlobalSystemInterrupt;
417
} EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
418
419
///
420
/// Local APIC NMI Structure
421
///
422
typedef struct {
423
UINT8 Type;
424
UINT8 Length;
425
UINT8 AcpiProcessorId;
426
UINT16 Flags;
427
UINT8 LocalApicLint;
428
} EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE;
429
430
///
431
/// Local APIC Address Override Structure
432
///
433
typedef struct {
434
UINT8 Type;
435
UINT8 Length;
436
UINT16 Reserved;
437
UINT64 LocalApicAddress;
438
} EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
439
440
///
441
/// IO SAPIC Structure
442
///
443
typedef struct {
444
UINT8 Type;
445
UINT8 Length;
446
UINT8 IoApicId;
447
UINT8 Reserved;
448
UINT32 GlobalSystemInterruptBase;
449
UINT64 IoSapicAddress;
450
} EFI_ACPI_3_0_IO_SAPIC_STRUCTURE;
451
452
///
453
/// Local SAPIC Structure
454
/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
455
///
456
typedef struct {
457
UINT8 Type;
458
UINT8 Length;
459
UINT8 AcpiProcessorId;
460
UINT8 LocalSapicId;
461
UINT8 LocalSapicEid;
462
UINT8 Reserved[3];
463
UINT32 Flags;
464
UINT32 ACPIProcessorUIDValue;
465
} EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
466
467
///
468
/// Platform Interrupt Sources Structure
469
///
470
typedef struct {
471
UINT8 Type;
472
UINT8 Length;
473
UINT16 Flags;
474
UINT8 InterruptType;
475
UINT8 ProcessorId;
476
UINT8 ProcessorEid;
477
UINT8 IoSapicVector;
478
UINT32 GlobalSystemInterrupt;
479
UINT32 PlatformInterruptSourceFlags;
480
} EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
481
482
///
483
/// Platform Interrupt Source Flags.
484
/// All other bits are reserved and must be set to 0.
485
///
486
#define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE BIT0
487
488
///
489
/// Smart Battery Description Table (SBST)
490
///
491
typedef struct {
492
EFI_ACPI_DESCRIPTION_HEADER Header;
493
UINT32 WarningEnergyLevel;
494
UINT32 LowEnergyLevel;
495
UINT32 CriticalEnergyLevel;
496
} EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE;
497
498
///
499
/// SBST Version (as defined in ACPI 3.0 spec.)
500
///
501
#define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
502
503
///
504
/// Embedded Controller Boot Resources Table (ECDT)
505
/// The table is followed by a null terminated ASCII string that contains
506
/// a fully qualified reference to the name space object.
507
///
508
typedef struct {
509
EFI_ACPI_DESCRIPTION_HEADER Header;
510
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl;
511
EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData;
512
UINT32 Uid;
513
UINT8 GpeBit;
514
} EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
515
516
///
517
/// ECDT Version (as defined in ACPI 3.0 spec.)
518
///
519
#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
520
521
///
522
/// System Resource Affinity Table (SRAT. The rest of the table
523
/// must be defined in a platform specific manner.
524
///
525
typedef struct {
526
EFI_ACPI_DESCRIPTION_HEADER Header;
527
UINT32 Reserved1; ///< Must be set to 1
528
UINT64 Reserved2;
529
} EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
530
531
///
532
/// SRAT Version (as defined in ACPI 3.0 spec.)
533
///
534
#define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x02
535
536
//
537
// SRAT structure types.
538
// All other values between 0x02 an 0xFF are reserved and
539
// will be ignored by OSPM.
540
//
541
#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00
542
#define EFI_ACPI_3_0_MEMORY_AFFINITY 0x01
543
544
///
545
/// Processor Local APIC/SAPIC Affinity Structure Definition
546
///
547
typedef struct {
548
UINT8 Type;
549
UINT8 Length;
550
UINT8 ProximityDomain7To0;
551
UINT8 ApicId;
552
UINT32 Flags;
553
UINT8 LocalSapicEid;
554
UINT8 ProximityDomain31To8[3];
555
UINT8 Reserved[4];
556
} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
557
558
///
559
/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
560
///
561
#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
562
563
///
564
/// Memory Affinity Structure Definition
565
///
566
typedef struct {
567
UINT8 Type;
568
UINT8 Length;
569
UINT32 ProximityDomain;
570
UINT16 Reserved1;
571
UINT32 AddressBaseLow;
572
UINT32 AddressBaseHigh;
573
UINT32 LengthLow;
574
UINT32 LengthHigh;
575
UINT32 Reserved2;
576
UINT32 Flags;
577
UINT64 Reserved3;
578
} EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE;
579
580
//
581
// Memory Flags. All other bits are reserved and must be 0.
582
//
583
#define EFI_ACPI_3_0_MEMORY_ENABLED (1 << 0)
584
#define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1)
585
#define EFI_ACPI_3_0_MEMORY_NONVOLATILE (1 << 2)
586
587
///
588
/// System Locality Distance Information Table (SLIT).
589
/// The rest of the table is a matrix.
590
///
591
typedef struct {
592
EFI_ACPI_DESCRIPTION_HEADER Header;
593
UINT64 NumberOfSystemLocalities;
594
} EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
595
596
///
597
/// SLIT Version (as defined in ACPI 3.0 spec.)
598
///
599
#define EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01
600
601
//
602
// Known table signatures
603
//
604
605
///
606
/// "RSD PTR " Root System Description Pointer
607
///
608
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
609
610
///
611
/// "APIC" Multiple APIC Description Table
612
///
613
#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
614
615
///
616
/// "DSDT" Differentiated System Description Table
617
///
618
#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
619
620
///
621
/// "ECDT" Embedded Controller Boot Resources Table
622
///
623
#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
624
625
///
626
/// "FACP" Fixed ACPI Description Table
627
///
628
#define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
629
630
///
631
/// "FACS" Firmware ACPI Control Structure
632
///
633
#define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
634
635
///
636
/// "PSDT" Persistent System Description Table
637
///
638
#define EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
639
640
///
641
/// "RSDT" Root System Description Table
642
///
643
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
644
645
///
646
/// "SBST" Smart Battery Specification Table
647
///
648
#define EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
649
650
///
651
/// "SLIT" System Locality Information Table
652
///
653
#define EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
654
655
///
656
/// "SRAT" System Resource Affinity Table
657
///
658
#define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
659
660
///
661
/// "SSDT" Secondary System Description Table
662
///
663
#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
664
665
///
666
/// "XSDT" Extended System Description Table
667
///
668
#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
669
670
///
671
/// "BOOT" MS Simple Boot Spec
672
///
673
#define EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
674
675
///
676
/// "CPEP" Corrected Platform Error Polling Table
677
///
678
#define EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')
679
680
///
681
/// "DBGP" MS Debug Port Spec
682
///
683
#define EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
684
685
///
686
/// "ETDT" Event Timer Description Table
687
///
688
#define EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
689
690
///
691
/// "HPET" IA-PC High Precision Event Timer Table
692
///
693
#define EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')
694
695
///
696
/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
697
///
698
#define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
699
700
///
701
/// "SPCR" Serial Port Console Redirection Table
702
///
703
#define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
704
705
///
706
/// "SPMI" Server Platform Management Interface Table
707
///
708
#define EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
709
710
///
711
/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
712
///
713
#define EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')
714
715
///
716
/// "WDRT" Watchdog Resource Table
717
///
718
#define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')
719
720
///
721
/// "WDAT" Watchdog Action Table
722
///
723
#define EFI_ACPI_3_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')
724
725
///
726
/// "WSPT" Windows Specific Properties Table
727
///
728
#define EFI_ACPI_3_0_WINDOWS_SPECIFIC_PROPERTIES_TABLE_SIGNATURE SIGNATURE_32('W', 'S', 'P', 'T')
729
730
///
731
/// "iBFT" iSCSI Boot Firmware Table
732
///
733
#define EFI_ACPI_3_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')
734
735
#pragma pack()
736
737
#endif
738
739