OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [x86_64/] [kernel/] [acpitable.h] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *  acpitable.h - x86-64-specific ACPI boot-time initialization
3
 *
4
 *  Copyright (C) 1999 Andrew Henroid
5
 *  Copyright (C) 2001 Richard Schaal
6
 *  Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
7
 *  Copyright (C) 2001 Jun Nakajima <jun.nakajima@intel.com>
8
 *  Copyright (C) 2001 Arjan van de Ven <arjanv@redhat.com>
9
 *  Copyright (C) 2002 Vojtech Pavlik <vojtech@suse.cz>
10
 */
11
 
12
/*
13
 * The following codes are cut&pasted from drivers/acpi. Part of the code
14
 * there can be not updated or delivered yet.
15
 * To avoid conflicts when CONFIG_ACPI is defined, the following codes are
16
 * modified so that they are self-contained in this file.
17
 * -- jun
18
 */
19
 
20
#ifndef _HEADER_ACPITABLE_H_
21
#define _HEADER_ACPITABLE_H_
22
 
23
struct acpi_table_header {              /* ACPI common table header */
24
        char signature[4];              /* identifies type of table */
25
        u32 length;                     /* length of table,
26
                                           in bytes, * including header */
27
        u8 revision;                    /* specification minor version # */
28
        u8 checksum;                    /* to make sum of entire table == 0 */
29
        char oem_id[6];                 /* OEM identification */
30
        char oem_table_id[8];           /* OEM table identification */
31
        u32 oem_revision;               /* OEM revision number */
32
        char asl_compiler_id[4];        /* ASL compiler vendor ID */
33
        u32 asl_compiler_revision;      /* ASL compiler revision number */
34
} __attribute__ ((packed));;
35
 
36
enum {
37
        ACPI_APIC = 0,
38
        ACPI_FACP,
39
        ACPI_HPET,
40
        ACPI_TABLE_COUNT
41
};
42
 
43
static char *acpi_table_signatures[ACPI_TABLE_COUNT] = {
44
        "APIC",
45
        "FACP",
46
        "HPET"
47
};
48
 
49
struct acpi_table_madt {
50
        struct acpi_table_header header;
51
        u32 lapic_address;
52
        struct {
53
                u32 pcat_compat:1;
54
                u32 reserved:31;
55
        } flags __attribute__ ((packed));
56
} __attribute__ ((packed));;
57
 
58
enum {
59
        ACPI_MADT_LAPIC = 0,
60
        ACPI_MADT_IOAPIC,
61
        ACPI_MADT_INT_SRC_OVR,
62
        ACPI_MADT_NMI_SRC,
63
        ACPI_MADT_LAPIC_NMI,
64
        ACPI_MADT_LAPIC_ADDR_OVR,
65
        ACPI_MADT_IOSAPIC,
66
        ACPI_MADT_LSAPIC,
67
        ACPI_MADT_PLAT_INT_SRC,
68
 
69
};
70
 
71
#define LO_RSDP_WINDOW_BASE             0        /* Physical Address */
72
#define HI_RSDP_WINDOW_BASE             0xE0000 /* Physical Address */
73
#define LO_RSDP_WINDOW_SIZE             0x400
74
#define HI_RSDP_WINDOW_SIZE             0x20000
75
#define RSDP_SCAN_STEP                  16
76
#define RSDP_CHECKSUM_LENGTH            20
77
#define RSDP2_CHECKSUM_LENGTH           36
78
 
79
typedef int (*acpi_table_handler) (struct acpi_table_header *header, unsigned long);
80
 
81
struct acpi_table_rsdp {
82
        char signature[8];
83
        u8 checksum;
84
        char oem_id[6];
85
        u8 revision;
86
        u32 rsdt_address;
87
        u32 length;
88
        u64 xsdt_address;
89
        u8 checksum2;
90
        u8 reserved[3];
91
} __attribute__ ((packed));
92
 
93
struct acpi_table_rsdt {
94
        struct acpi_table_header header;
95
        u32 entry[0];
96
} __attribute__ ((packed));
97
 
98
struct acpi_table_xsdt {
99
        struct acpi_table_header header;
100
        u64 entry[0];
101
} __attribute__ ((packed));
102
 
103
struct acpi_madt_entry_header {
104
        u8 type;
105
        u8 length;
106
}  __attribute__ ((packed));
107
 
108
struct acpi_madt_int_flags {
109
        u16 polarity:2;
110
        u16 trigger:2;
111
        u16 reserved:12;
112
} __attribute__ ((packed));
113
 
114
struct acpi_table_lapic {
115
        struct acpi_madt_entry_header header;
116
        u8 acpi_id;
117
        u8 id;
118
        struct {
119
                u32 enabled:1;
120
                u32 reserved:31;
121
        } flags __attribute__ ((packed));
122
} __attribute__ ((packed));
123
 
124
struct acpi_table_ioapic {
125
        struct acpi_madt_entry_header header;
126
        u8 id;
127
        u8 reserved;
128
        u32 address;
129
        u32 global_irq_base;
130
} __attribute__ ((packed));
131
 
132
struct acpi_table_int_src_ovr {
133
        struct acpi_madt_entry_header header;
134
        u8 bus;
135
        u8 bus_irq;
136
        u32 global_irq;
137
        struct acpi_madt_int_flags flags;
138
} __attribute__ ((packed));
139
 
140
struct acpi_table_nmi_src {
141
        struct acpi_madt_entry_header header;
142
        struct acpi_madt_int_flags flags;
143
        u32 global_irq;
144
} __attribute__ ((packed));
145
 
146
struct acpi_table_lapic_nmi {
147
        struct acpi_madt_entry_header header;
148
        u8 acpi_id;
149
        struct acpi_madt_int_flags flags;
150
        u8 lint;
151
} __attribute__ ((packed));
152
 
153
struct acpi_table_lapic_addr_ovr {
154
        struct acpi_madt_entry_header header;
155
        u8 reserved[2];
156
        u64 address;
157
} __attribute__ ((packed));
158
 
159
struct acpi_table_iosapic {
160
        struct acpi_madt_entry_header header;
161
        u8 id;
162
        u8 reserved;
163
        u32 global_irq_base;
164
        u64 address;
165
} __attribute__ ((packed));
166
 
167
struct acpi_table_lsapic {
168
        struct acpi_madt_entry_header header;
169
        u8 acpi_id;
170
        u8 id;
171
        u8 eid;
172
        u8 reserved[3];
173
        struct {
174
                u32 enabled:1;
175
                u32 reserved:31;
176
        } flags;
177
} __attribute__ ((packed));
178
 
179
struct acpi_table_plat_int_src {
180
        struct acpi_madt_entry_header header;
181
        struct acpi_madt_int_flags flags;
182
        u8 type;
183
        u8 id;
184
        u8 eid;
185
        u8 iosapic_vector;
186
        u32 global_irq;
187
        u32 reserved;
188
} __attribute__ ((packed));
189
 
190
#define ACPI_SPACE_MEM          0
191
#define ACPI_SPACE_IO           1
192
#define ACPI_SPACE_PCICONF      2
193
 
194
struct acpi_gen_regaddr {
195
        u8  space_id;
196
        u8  bit_width;
197
        u8  bit_offset;
198
        u8  resv;
199
        u32 addrl;
200
        u32 addrh;
201
} __attribute__ ((packed));
202
 
203
struct acpi_table_hpet {
204
        struct acpi_table_header header;
205
        u32 id;
206
        struct acpi_gen_regaddr addr;
207
        u8 number;
208
        u16 min_tick;
209
        u8 page_protect;
210
} __attribute__ ((packed));
211
 
212
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.