summaryrefslogtreecommitdiff
path: root/Include/ACPI30.H
blob: b6d0068321a37a975c4e76e36e7a408125066036 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#ifndef  _ACPI30H   //To Avoid this header get compiled twice
#define  _ACPI30H

#include	<Efi.h>
#include	<Token.h>
#include <Acpi20.h>

#pragma	pack(1)

typedef struct _GAS_30 {
    UINT8			AddrSpcID;          //The address space where the data structure or register exists.
                                    //Defined values are above                                            
    UINT8			RegBitWidth;		//The size in bits of the given register. 
									//When addressing a data structure, this field must be zero.
    UINT8			RegBitOffs;			//The bit offset of the given register at the given address.
                                    //When addressing a data structure, this field must be zero.
    UINT8			AccessSize;          
    UINT64			Address;            //The 64-bit address of the data structure or register in 
									//the given address space (relative to the processor).
} GAS_30,*PGAS_30;


//======================================================
//  FADT Fixed ACPI Description Table 
//======================================================
typedef struct _FACP_30 {
   	ACPI_HDR Header;              //0..35
   	UINT32		FIRMWARE_CTRL;       //36  Phisical memory address (0-4G) of FACS
   	UINT32		DSDT;                //40  Phisical memory address (0-4G) of DSDT
   	UINT8		Reserved1;			 //44  (Was INT_MODEL 0 Dual PIC;1 Multipy APIC) 
									 //	   can be 0 or 1 for ACPI 1.0  
   	UINT8  		PM_PPROF;			 //45  Preffered PM Profile (was Reserved)
   	UINT16		SCI_INT;             //46  SCI int Pin should be Shareble/Level/Act Low

   	UINT32		SMI_CMD;             //48  Port Addr of ACPI Command reg
   	UINT8		ACPI_ENABLE_CMD;         //52  Value to write in SMI_CMD reg
	UINT8		ACPI_DISABLE_CMD;        //53  Value to write in SMI_CMD reg    
	UINT8		S4BIOS_REQ;          //54  Value to write in SMI_CMD reg
   	UINT8		PSTATE_CNT;          //55  Was Reserved2 now 
									 //	   Value that OSPM writes in SCI_CMD to assume 
									 //	   Processor Perfomance State control responsibility
   	UINT32		PM1a_EVT_BLK;        //56
   	UINT32		PM1b_EVT_BLK;        //60
   	UINT32		PM1a_CNT_BLK;        //64
   	UINT32		PM1b_CNT_BLK;        //68
   	UINT32		PM2_CNT_BLK;         //72
   	UINT32		PM_TMR_BLK;          //76
   	UINT32		GPE0_BLK;            //80
   	UINT32		GPE1_BLK;            //84    
	UINT8		PM1_EVT_LEN;         //88
   	UINT8		PM1_CNT_LEN;         //89
   	UINT8		PM2_CNT_LEN;         //90
   	UINT8		PM_TM_LEN;           //91
   	UINT8		GPE0_BLK_LEN;        //92
   	UINT8		GPE1_BLK_LEN;        //93
   	UINT8		GPE1_BASE;           //94
   	UINT8		CST_CNT;			 //95 Was Reserved3 
   	UINT16		P_LVL2_LAT;          //96
   	UINT16		P_LVL3_LAT;          //98
   	UINT16		FLUSH_SIZE;          //100
   	UINT16		FLUSH_STRIDE;        //102
   	UINT8		DUTY_OFFSET;         //104
   	UINT8		DUTY_WIDTH;          //105
   	UINT8		DAY_ALRM;            //106
   	UINT8		MON_ALRM;            //107
   	UINT8		CENTURY;             //108
   	UINT16		IAPC_BOOT_ARCH;      //109	
	UINT8		Reserved2;           //111    
   	UINT32		FLAGS;               //112
//That was 32 bit part of a FADT Here follows 64bit part
	GAS_30			RESET_REG;			 //116
	UINT8		RESET_VAL;			 //128
	UINT8		Reserved[3];		 //129
   	UINT64		X_FIRMWARE_CTRL;     //132  Phisical memory address (0-4G) of FACS
   	UINT64		X_DSDT;              //140  Phisical memory address (0-4G) of DSDT
   	GAS_30			X_PM1a_EVT_BLK;      //148
   	GAS_30			X_PM1b_EVT_BLK;      //160
   	GAS_30			X_PM1a_CNT_BLK;      //172
   	GAS_30			X_PM1b_CNT_BLK;      //184
   	GAS_30			X_PM2_CNT_BLK;       //196
   	GAS_30			X_PM_TMR_BLK;        //208
 	GAS_30			X_GPE0_BLK;          //220
   	GAS_30			X_GPE1_BLK;          //232    
}FACP_30,*PFACP_30;


//======================================================
//  SPCR Serial Port Console Redirection Table 
//======================================================
typedef struct _SPCR_30 {
   ACPI_HDR Header;              //0..35
   UINT8		InterfaceType;          //36 0/1 16550/16450 interface type
   UINT8		Reserved[3];            //37..39 Reserved  
   GAS_30			BaseAddress;			//40..51 Address of the redirection serial port
   UINT8       	InterruptType;          //52 System Interrupt modes supported
                                    //  bit[0] = dual 8259
                                    //  bit[1] = I/O APIC
                                    //  bit[2] = I/O SAPIC
                                    //  bit[3..7] = Reserved, must be 0
   UINT8       Irq;                    //53 PIC mode IRQ for this serial port
   UINT32      GlobalSystemInt;        //54..57 (S)APIC mode IRQ for this serial port
   UINT8       BaudRate;               //58 Baud Rate of this serial port
                                    //  3 = 9600
                                    //  4 = 19200
                                    //  6 = 57600
                                    //  7 = 115200
   UINT8       Parity;                 //59 0 = No Parity
   UINT8       StopBits;               //60 1 = 1 Stop Bit
   UINT8       FlowControl;            //61 Flow Control
                                    //  bit[0] = DCD Required
                                    //  bit[1] = RTS/CTS
                                    //  bit[2] = XON/XOFF
                                    //  bit[3..7] = Reserved, must be 0
   UINT8       TerminalType;           //62 Terminal Protocol
                                    //  0 = VT100
                                    //  1 = VT100+
                                    //  2 = VT-UTF8
                                    //  3 = ANSI
   UINT8       Reserved1;              //63 Must be 0
   UINT16      PciDeviceId;            //64 Must be 0xFFFF if not a PCI Device
   UINT16      PciVendorId;            //66 Must be 0xFFFF if not a PCI Device
   UINT8       PciBusNumber;           //68 Must be 0 if not a PCI Device
   UINT8       PciDeviceNumber;        //69 Must be 0 if not a PCI Device
   UINT8       PciFunctionNumber;      //70 Must be 0 if not a PCI Device
   UINT32      PciFlags;               //71 Must be 0 if not a PCI Device
   UINT8       PciSegment;             //75 For systems with less than 255 PCI Busses, this must be 0
   UINT32      Reserved4;              //76 Must be 0
  
}SPCR_30,*PSPCR_30;

typedef struct _HPET_30 {
   	ACPI_HDR 	Header;     	//0..35
	HPET_CAP_BLK 	EvtTmrBlockId;	
	GAS_30				BaseAddress;	
	UINT8			HpetNumber;
	UINT16			MinTickPeriod;
	UINT8			PageProtOem;
} HPET_30;

#pragma pack()

#endif 

//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2005, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**             6145-F Northbelt Pkwy, Norcross, GA 30071            **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************