Commit | Line | Data |
---|---|---|
735f00bd AS |
1 | ACPI Tables |
2 | ----------- | |
3 | The expectations of individual ACPI tables are discussed in the list that | |
4 | follows. | |
5 | ||
6 | If a section number is used, it refers to a section number in the ACPI | |
7 | specification where the object is defined. If "Signature Reserved" is used, | |
8 | the table signature (the first four bytes of the table) is the only portion | |
9 | of the table recognized by the specification, and the actual table is defined | |
10 | outside of the UEFI Forum (see Section 5.2.6 of the specification). | |
11 | ||
12 | For ACPI on arm64, tables also fall into the following categories: | |
13 | ||
14 | -- Required: DSDT, FADT, GTDT, MADT, MCFG, RSDP, SPCR, XSDT | |
15 | ||
16 | -- Recommended: BERT, EINJ, ERST, HEST, SSDT | |
17 | ||
18 | -- Optional: BGRT, CPEP, CSRT, DRTM, ECDT, FACS, FPDT, MCHI, MPST, | |
19 | MSCT, RASF, SBST, SLIT, SPMI, SRAT, TCPA, TPM2, UEFI | |
20 | ||
21 | -- Not supported: BOOT, DBG2, DBGP, DMAR, ETDT, HPET, IBFT, IVRS, | |
22 | LPIT, MSDM, RSDT, SLIC, WAET, WDAT, WDRT, WPBT | |
23 | ||
24 | ||
25 | Table Usage for ARMv8 Linux | |
26 | ----- ---------------------------------------------------------------- | |
27 | BERT Section 18.3 (signature == "BERT") | |
28 | == Boot Error Record Table == | |
29 | Must be supplied if RAS support is provided by the platform. It | |
30 | is recommended this table be supplied. | |
31 | ||
32 | BOOT Signature Reserved (signature == "BOOT") | |
33 | == simple BOOT flag table == | |
34 | Microsoft only table, will not be supported. | |
35 | ||
36 | BGRT Section 5.2.22 (signature == "BGRT") | |
37 | == Boot Graphics Resource Table == | |
38 | Optional, not currently supported, with no real use-case for an | |
39 | ARM server. | |
40 | ||
41 | CPEP Section 5.2.18 (signature == "CPEP") | |
42 | == Corrected Platform Error Polling table == | |
43 | Optional, not currently supported, and not recommended until such | |
44 | time as ARM-compatible hardware is available, and the specification | |
45 | suitably modified. | |
46 | ||
47 | CSRT Signature Reserved (signature == "CSRT") | |
48 | == Core System Resources Table == | |
49 | Optional, not currently supported. | |
50 | ||
51 | DBG2 Signature Reserved (signature == "DBG2") | |
52 | == DeBuG port table 2 == | |
53 | Microsoft only table, will not be supported. | |
54 | ||
55 | DBGP Signature Reserved (signature == "DBGP") | |
56 | == DeBuG Port table == | |
57 | Microsoft only table, will not be supported. | |
58 | ||
59 | DSDT Section 5.2.11.1 (signature == "DSDT") | |
60 | == Differentiated System Description Table == | |
61 | A DSDT is required; see also SSDT. | |
62 | ||
63 | ACPI tables contain only one DSDT but can contain one or more SSDTs, | |
64 | which are optional. Each SSDT can only add to the ACPI namespace, | |
65 | but cannot modify or replace anything in the DSDT. | |
66 | ||
67 | DMAR Signature Reserved (signature == "DMAR") | |
68 | == DMA Remapping table == | |
69 | x86 only table, will not be supported. | |
70 | ||
71 | DRTM Signature Reserved (signature == "DRTM") | |
72 | == Dynamic Root of Trust for Measurement table == | |
73 | Optional, not currently supported. | |
74 | ||
75 | ECDT Section 5.2.16 (signature == "ECDT") | |
76 | == Embedded Controller Description Table == | |
77 | Optional, not currently supported, but could be used on ARM if and | |
78 | only if one uses the GPE_BIT field to represent an IRQ number, since | |
79 | there are no GPE blocks defined in hardware reduced mode. This would | |
80 | need to be modified in the ACPI specification. | |
81 | ||
82 | EINJ Section 18.6 (signature == "EINJ") | |
83 | == Error Injection table == | |
84 | This table is very useful for testing platform response to error | |
85 | conditions; it allows one to inject an error into the system as | |
86 | if it had actually occurred. However, this table should not be | |
87 | shipped with a production system; it should be dynamically loaded | |
88 | and executed with the ACPICA tools only during testing. | |
89 | ||
90 | ERST Section 18.5 (signature == "ERST") | |
91 | == Error Record Serialization Table == | |
92 | On a platform supports RAS, this table must be supplied if it is not | |
93 | UEFI-based; if it is UEFI-based, this table may be supplied. When this | |
94 | table is not present, UEFI run time service will be utilized to save | |
95 | and retrieve hardware error information to and from a persistent store. | |
96 | ||
97 | ETDT Signature Reserved (signature == "ETDT") | |
98 | == Event Timer Description Table == | |
99 | Obsolete table, will not be supported. | |
100 | ||
101 | FACS Section 5.2.10 (signature == "FACS") | |
102 | == Firmware ACPI Control Structure == | |
103 | It is unlikely that this table will be terribly useful. If it is | |
104 | provided, the Global Lock will NOT be used since it is not part of | |
105 | the hardware reduced profile, and only 64-bit address fields will | |
106 | be considered valid. | |
107 | ||
108 | FADT Section 5.2.9 (signature == "FACP") | |
109 | == Fixed ACPI Description Table == | |
110 | Required for arm64. | |
111 | ||
112 | The HW_REDUCED_ACPI flag must be set. All of the fields that are | |
113 | to be ignored when HW_REDUCED_ACPI is set are expected to be set to | |
114 | zero. | |
115 | ||
116 | If an FACS table is provided, the X_FIRMWARE_CTRL field is to be | |
117 | used, not FIRMWARE_CTRL. | |
118 | ||
119 | If PSCI is used (as is recommended), make sure that ARM_BOOT_ARCH is | |
120 | filled in properly -- that the PSCI_COMPLIANT flag is set and that | |
121 | PSCI_USE_HVC is set or unset as needed (see table 5-37). | |
122 | ||
123 | For the DSDT that is also required, the X_DSDT field is to be used, | |
124 | not the DSDT field. | |
125 | ||
126 | FPDT Section 5.2.23 (signature == "FPDT") | |
127 | == Firmware Performance Data Table == | |
128 | Optional, not currently supported. | |
129 | ||
130 | GTDT Section 5.2.24 (signature == "GTDT") | |
131 | == Generic Timer Description Table == | |
132 | Required for arm64. | |
133 | ||
134 | HEST Section 18.3.2 (signature == "HEST") | |
135 | == Hardware Error Source Table == | |
136 | Until further error source types are defined, use only types 6 (AER | |
137 | Root Port), 7 (AER Endpoint), 8 (AER Bridge), or 9 (Generic Hardware | |
138 | Error Source). Firmware first error handling is possible if and only | |
139 | if Trusted Firmware is being used on arm64. | |
140 | ||
141 | Must be supplied if RAS support is provided by the platform. It | |
142 | is recommended this table be supplied. | |
143 | ||
144 | HPET Signature Reserved (signature == "HPET") | |
145 | == High Precision Event timer Table == | |
146 | x86 only table, will not be supported. | |
147 | ||
148 | IBFT Signature Reserved (signature == "IBFT") | |
149 | == iSCSI Boot Firmware Table == | |
150 | Microsoft defined table, support TBD. | |
151 | ||
152 | IVRS Signature Reserved (signature == "IVRS") | |
153 | == I/O Virtualization Reporting Structure == | |
154 | x86_64 (AMD) only table, will not be supported. | |
155 | ||
156 | LPIT Signature Reserved (signature == "LPIT") | |
157 | == Low Power Idle Table == | |
158 | x86 only table as of ACPI 5.1; future versions have been adapted for | |
159 | use with ARM and will be recommended in order to support ACPI power | |
160 | management. | |
161 | ||
162 | MADT Section 5.2.12 (signature == "APIC") | |
163 | == Multiple APIC Description Table == | |
164 | Required for arm64. Only the GIC interrupt controller structures | |
165 | should be used (types 0xA - 0xE). | |
166 | ||
167 | MCFG Signature Reserved (signature == "MCFG") | |
168 | == Memory-mapped ConFiGuration space == | |
169 | If the platform supports PCI/PCIe, an MCFG table is required. | |
170 | ||
171 | MCHI Signature Reserved (signature == "MCHI") | |
172 | == Management Controller Host Interface table == | |
173 | Optional, not currently supported. | |
174 | ||
175 | MPST Section 5.2.21 (signature == "MPST") | |
176 | == Memory Power State Table == | |
177 | Optional, not currently supported. | |
178 | ||
179 | MSDM Signature Reserved (signature == "MSDM") | |
180 | == Microsoft Data Management table == | |
181 | Microsoft only table, will not be supported. | |
182 | ||
183 | MSCT Section 5.2.19 (signature == "MSCT") | |
184 | == Maximum System Characteristic Table == | |
185 | Optional, not currently supported. | |
186 | ||
187 | RASF Section 5.2.20 (signature == "RASF") | |
188 | == RAS Feature table == | |
189 | Optional, not currently supported. | |
190 | ||
191 | RSDP Section 5.2.5 (signature == "RSD PTR") | |
192 | == Root System Description PoinTeR == | |
193 | Required for arm64. | |
194 | ||
195 | RSDT Section 5.2.7 (signature == "RSDT") | |
196 | == Root System Description Table == | |
197 | Since this table can only provide 32-bit addresses, it is deprecated | |
198 | on arm64, and will not be used. | |
199 | ||
200 | SBST Section 5.2.14 (signature == "SBST") | |
201 | == Smart Battery Subsystem Table == | |
202 | Optional, not currently supported. | |
203 | ||
204 | SLIC Signature Reserved (signature == "SLIC") | |
205 | == Software LIcensing table == | |
206 | Microsoft only table, will not be supported. | |
207 | ||
208 | SLIT Section 5.2.17 (signature == "SLIT") | |
209 | == System Locality distance Information Table == | |
210 | Optional in general, but required for NUMA systems. | |
211 | ||
212 | SPCR Signature Reserved (signature == "SPCR") | |
213 | == Serial Port Console Redirection table == | |
214 | Required for arm64. | |
215 | ||
216 | SPMI Signature Reserved (signature == "SPMI") | |
217 | == Server Platform Management Interface table == | |
218 | Optional, not currently supported. | |
219 | ||
220 | SRAT Section 5.2.16 (signature == "SRAT") | |
221 | == System Resource Affinity Table == | |
222 | Optional, but if used, only the GICC Affinity structures are read. | |
223 | To support NUMA, this table is required. | |
224 | ||
225 | SSDT Section 5.2.11.2 (signature == "SSDT") | |
226 | == Secondary System Description Table == | |
227 | These tables are a continuation of the DSDT; these are recommended | |
228 | for use with devices that can be added to a running system, but can | |
229 | also serve the purpose of dividing up device descriptions into more | |
230 | manageable pieces. | |
231 | ||
232 | An SSDT can only ADD to the ACPI namespace. It cannot modify or | |
233 | replace existing device descriptions already in the namespace. | |
234 | ||
235 | These tables are optional, however. ACPI tables should contain only | |
236 | one DSDT but can contain many SSDTs. | |
237 | ||
238 | TCPA Signature Reserved (signature == "TCPA") | |
239 | == Trusted Computing Platform Alliance table == | |
240 | Optional, not currently supported, and may need changes to fully | |
241 | interoperate with arm64. | |
242 | ||
243 | TPM2 Signature Reserved (signature == "TPM2") | |
244 | == Trusted Platform Module 2 table == | |
245 | Optional, not currently supported, and may need changes to fully | |
246 | interoperate with arm64. | |
247 | ||
248 | UEFI Signature Reserved (signature == "UEFI") | |
249 | == UEFI ACPI data table == | |
250 | Optional, not currently supported. No known use case for arm64, | |
251 | at present. | |
252 | ||
253 | WAET Signature Reserved (signature == "WAET") | |
254 | == Windows ACPI Emulated devices Table == | |
255 | Microsoft only table, will not be supported. | |
256 | ||
257 | WDAT Signature Reserved (signature == "WDAT") | |
258 | == Watch Dog Action Table == | |
259 | Microsoft only table, will not be supported. | |
260 | ||
261 | WDRT Signature Reserved (signature == "WDRT") | |
262 | == Watch Dog Resource Table == | |
263 | Microsoft only table, will not be supported. | |
264 | ||
265 | WPBT Signature Reserved (signature == "WPBT") | |
266 | == Windows Platform Binary Table == | |
267 | Microsoft only table, will not be supported. | |
268 | ||
269 | XSDT Section 5.2.8 (signature == "XSDT") | |
270 | == eXtended System Description Table == | |
271 | Required for arm64. | |
272 | ||
273 | ||
274 | ACPI Objects | |
275 | ------------ | |
276 | The expectations on individual ACPI objects are discussed in the list that | |
277 | follows: | |
278 | ||
279 | Name Section Usage for ARMv8 Linux | |
280 | ---- ------------ ------------------------------------------------- | |
281 | _ADR 6.1.1 Use as needed. | |
282 | ||
283 | _BBN 6.5.5 Use as needed; PCI-specific. | |
284 | ||
285 | _BDN 6.5.3 Optional; not likely to be used on arm64. | |
286 | ||
287 | _CCA 6.2.17 This method should be defined for all bus masters | |
288 | on arm64. While cache coherency is assumed, making | |
289 | it explicit ensures the kernel will set up DMA as | |
290 | it should. | |
291 | ||
292 | _CDM 6.2.1 Optional, to be used only for processor devices. | |
293 | ||
294 | _CID 6.1.2 Use as needed. | |
295 | ||
296 | _CLS 6.1.3 Use as needed. | |
297 | ||
298 | _CRS 6.2.2 Required on arm64. | |
299 | ||
300 | _DCK 6.5.2 Optional; not likely to be used on arm64. | |
301 | ||
302 | _DDN 6.1.4 This field can be used for a device name. However, | |
303 | it is meant for DOS device names (e.g., COM1), so be | |
304 | careful of its use across OSes. | |
305 | ||
306 | _DEP 6.5.8 Use as needed. | |
307 | ||
308 | _DIS 6.2.3 Optional, for power management use. | |
309 | ||
310 | _DLM 5.7.5 Optional. | |
311 | ||
312 | _DMA 6.2.4 Optional. | |
313 | ||
314 | _DSD 6.2.5 To be used with caution. If this object is used, try | |
315 | to use it within the constraints already defined by the | |
316 | Device Properties UUID. Only in rare circumstances | |
317 | should it be necessary to create a new _DSD UUID. | |
318 | ||
319 | In either case, submit the _DSD definition along with | |
320 | any driver patches for discussion, especially when | |
321 | device properties are used. A driver will not be | |
322 | considered complete without a corresponding _DSD | |
323 | description. Once approved by kernel maintainers, | |
324 | the UUID or device properties must then be registered | |
325 | with the UEFI Forum; this may cause some iteration as | |
326 | more than one OS will be registering entries. | |
327 | ||
328 | _DSM Do not use this method. It is not standardized, the | |
329 | return values are not well documented, and it is | |
330 | currently a frequent source of error. | |
331 | ||
332 | _DSW 7.2.1 Use as needed; power management specific. | |
333 | ||
334 | _EDL 6.3.1 Optional. | |
335 | ||
336 | _EJD 6.3.2 Optional. | |
337 | ||
338 | _EJx 6.3.3 Optional. | |
339 | ||
340 | _FIX 6.2.7 x86 specific, not used on arm64. | |
341 | ||
342 | \_GL 5.7.1 This object is not to be used in hardware reduced | |
343 | mode, and therefore should not be used on arm64. | |
344 | ||
345 | _GLK 6.5.7 This object requires a global lock be defined; there | |
346 | is no global lock on arm64 since it runs in hardware | |
347 | reduced mode. Hence, do not use this object on arm64. | |
348 | ||
349 | \_GPE 5.3.1 This namespace is for x86 use only. Do not use it | |
350 | on arm64. | |
351 | ||
352 | _GSB 6.2.7 Optional. | |
353 | ||
354 | _HID 6.1.5 Use as needed. This is the primary object to use in | |
355 | device probing, though _CID and _CLS may also be used. | |
356 | ||
357 | _HPP 6.2.8 Optional, PCI specific. | |
358 | ||
359 | _HPX 6.2.9 Optional, PCI specific. | |
360 | ||
361 | _HRV 6.1.6 Optional, use as needed to clarify device behavior; in | |
362 | some cases, this may be easier to use than _DSD. | |
363 | ||
364 | _INI 6.5.1 Not required, but can be useful in setting up devices | |
365 | when UEFI leaves them in a state that may not be what | |
366 | the driver expects before it starts probing. | |
367 | ||
368 | _IRC 7.2.15 Use as needed; power management specific. | |
369 | ||
370 | _LCK 6.3.4 Optional. | |
371 | ||
372 | _MAT 6.2.10 Optional; see also the MADT. | |
373 | ||
374 | _MLS 6.1.7 Optional, but highly recommended for use in | |
375 | internationalization. | |
376 | ||
377 | _OFF 7.1.2 It is recommended to define this method for any device | |
378 | that can be turned on or off. | |
379 | ||
380 | _ON 7.1.3 It is recommended to define this method for any device | |
381 | that can be turned on or off. | |
382 | ||
383 | \_OS 5.7.3 This method will return "Linux" by default (this is | |
384 | the value of the macro ACPI_OS_NAME on Linux). The | |
385 | command line parameter acpi_os=<string> can be used | |
386 | to set it to some other value. | |
387 | ||
388 | _OSC 6.2.11 This method can be a global method in ACPI (i.e., | |
389 | \_SB._OSC), or it may be associated with a specific | |
390 | device (e.g., \_SB.DEV0._OSC), or both. When used | |
391 | as a global method, only capabilities published in | |
392 | the ACPI specification are allowed. When used as | |
393 | a device-specific method, the process described for | |
394 | using _DSD MUST be used to create an _OSC definition; | |
395 | out-of-process use of _OSC is not allowed. That is, | |
396 | submit the device-specific _OSC usage description as | |
397 | part of the kernel driver submission, get it approved | |
398 | by the kernel community, then register it with the | |
399 | UEFI Forum. | |
400 | ||
401 | \_OSI 5.7.2 Deprecated on ARM64. Any invocation of this method | |
402 | will print a warning on the console and return false. | |
403 | That is, as far as ACPI firmware is concerned, _OSI | |
404 | cannot be used to determine what sort of system is | |
405 | being used or what functionality is provided. The | |
406 | _OSC method is to be used instead. | |
407 | ||
408 | _OST 6.3.5 Optional. | |
409 | ||
410 | _PDC 8.4.1 Deprecated, do not use on arm64. | |
411 | ||
412 | \_PIC 5.8.1 The method should not be used. On arm64, the only | |
413 | interrupt model available is GIC. | |
414 | ||
415 | _PLD 6.1.8 Optional. | |
416 | ||
417 | \_PR 5.3.1 This namespace is for x86 use only on legacy systems. | |
418 | Do not use it on arm64. | |
419 | ||
420 | _PRS 6.2.12 Optional. | |
421 | ||
422 | _PRT 6.2.13 Required as part of the definition of all PCI root | |
423 | devices. | |
424 | ||
425 | _PRW 7.2.13 Use as needed; power management specific. | |
426 | ||
427 | _PRx 7.2.8-11 Use as needed; power management specific. If _PR0 is | |
428 | defined, _PR3 must also be defined. | |
429 | ||
430 | _PSC 7.2.6 Use as needed; power management specific. | |
431 | ||
432 | _PSE 7.2.7 Use as needed; power management specific. | |
433 | ||
434 | _PSW 7.2.14 Use as needed; power management specific. | |
435 | ||
436 | _PSx 7.2.2-5 Use as needed; power management specific. If _PS0 is | |
437 | defined, _PS3 must also be defined. If clocks or | |
438 | regulators need adjusting to be consistent with power | |
439 | usage, change them in these methods. | |
440 | ||
441 | \_PTS 7.3.1 Use as needed; power management specific. | |
442 | ||
443 | _PXM 6.2.14 Optional. | |
444 | ||
445 | _REG 6.5.4 Use as needed. | |
446 | ||
447 | \_REV 5.7.4 Always returns the latest version of ACPI supported. | |
448 | ||
449 | _RMV 6.3.6 Optional. | |
450 | ||
451 | \_SB 5.3.1 Required on arm64; all devices must be defined in this | |
452 | namespace. | |
453 | ||
454 | _SEG 6.5.6 Use as needed; PCI-specific. | |
455 | ||
456 | \_SI 5.3.1, Optional. | |
457 | 9.1 | |
458 | ||
459 | _SLI 6.2.15 Optional; recommended when SLIT table is in use. | |
460 | ||
461 | _STA 6.3.7, It is recommended to define this method for any device | |
462 | 7.1.4 that can be turned on or off. | |
463 | ||
464 | _SRS 6.2.16 Optional; see also _PRS. | |
465 | ||
466 | _STR 6.1.10 Recommended for conveying device names to end users; | |
467 | this is preferred over using _DDN. | |
468 | ||
469 | _SUB 6.1.9 Use as needed; _HID or _CID are preferred. | |
470 | ||
471 | _SUN 6.1.11 Optional. | |
472 | ||
473 | \_Sx 7.3.2 Use as needed; power management specific. | |
474 | ||
475 | _SxD 7.2.16-19 Use as needed; power management specific. | |
476 | ||
477 | _SxW 7.2.20-24 Use as needed; power management specific. | |
478 | ||
479 | _SWS 7.3.3 Use as needed; power management specific; this may | |
480 | require specification changes for use on arm64. | |
481 | ||
482 | \_TTS 7.3.4 Use as needed; power management specific. | |
483 | ||
484 | \_TZ 5.3.1 Optional. | |
485 | ||
486 | _UID 6.1.12 Recommended for distinguishing devices of the same | |
487 | class; define it if at all possible. | |
488 | ||
489 | \_WAK 7.3.5 Use as needed; power management specific. | |
490 | ||
491 | ||
492 | ACPI Event Model | |
493 | ---------------- | |
494 | Do not use GPE block devices; these are not supported in the hardware reduced | |
495 | profile used by arm64. Since there are no GPE blocks defined for use on ARM | |
496 | platforms, GPIO-signaled interrupts should be used for creating system events. | |
497 | ||
498 | ||
499 | ACPI Processor Control | |
500 | ---------------------- | |
501 | Section 8 of the ACPI specification is currently undergoing change that | |
502 | should be completed in the 6.0 version of the specification. Processor | |
503 | performance control will be handled differently for arm64 at that point | |
504 | in time. Processor aggregator devices (section 8.5) will not be used, | |
505 | for example, but another similar mechanism instead. | |
506 | ||
507 | While UEFI constrains what we can say until the release of 6.0, it is | |
508 | recommended that CPPC (8.4.5) be used as the primary model. This will | |
509 | still be useful into the future. C-states and P-states will still be | |
510 | provided, but most of the current design work appears to favor CPPC. | |
511 | ||
512 | Further, it is essential that the ARMv8 SoC provide a fully functional | |
513 | implementation of PSCI; this will be the only mechanism supported by ACPI | |
514 | to control CPU power state (including secondary CPU booting). | |
515 | ||
516 | More details will be provided on the release of the ACPI 6.0 specification. | |
517 | ||
518 | ||
519 | ACPI System Address Map Interfaces | |
520 | ---------------------------------- | |
521 | In Section 15 of the ACPI specification, several methods are mentioned as | |
522 | possible mechanisms for conveying memory resource information to the kernel. | |
523 | For arm64, we will only support UEFI for booting with ACPI, hence the UEFI | |
524 | GetMemoryMap() boot service is the only mechanism that will be used. | |
525 | ||
526 | ||
527 | ACPI Platform Error Interfaces (APEI) | |
528 | ------------------------------------- | |
529 | The APEI tables supported are described above. | |
530 | ||
531 | APEI requires the equivalent of an SCI and an NMI on ARMv8. The SCI is used | |
532 | to notify the OSPM of errors that have occurred but can be corrected and the | |
533 | system can continue correct operation, even if possibly degraded. The NMI is | |
534 | used to indicate fatal errors that cannot be corrected, and require immediate | |
535 | attention. | |
536 | ||
537 | Since there is no direct equivalent of the x86 SCI or NMI, arm64 handles | |
538 | these slightly differently. The SCI is handled as a normal GPIO-signaled | |
539 | interrupt; given that these are corrected (or correctable) errors being | |
540 | reported, this is sufficient. The NMI is emulated as the highest priority | |
541 | GPIO-signaled interrupt possible. This implies some caution must be used | |
542 | since there could be interrupts at higher privilege levels or even interrupts | |
543 | at the same priority as the emulated NMI. In Linux, this should not be the | |
544 | case but one should be aware it could happen. | |
545 | ||
546 | ||
547 | ACPI Objects Not Supported on ARM64 | |
548 | ----------------------------------- | |
549 | While this may change in the future, there are several classes of objects | |
550 | that can be defined, but are not currently of general interest to ARM servers. | |
551 | ||
552 | These are not supported: | |
553 | ||
554 | -- Section 9.2: ambient light sensor devices | |
555 | ||
556 | -- Section 9.3: battery devices | |
557 | ||
558 | -- Section 9.4: lids (e.g., laptop lids) | |
559 | ||
560 | -- Section 9.8.2: IDE controllers | |
561 | ||
562 | -- Section 9.9: floppy controllers | |
563 | ||
564 | -- Section 9.10: GPE block devices | |
565 | ||
566 | -- Section 9.15: PC/AT RTC/CMOS devices | |
567 | ||
568 | -- Section 9.16: user presence detection devices | |
569 | ||
570 | -- Section 9.17: I/O APIC devices; all GICs must be enumerable via MADT | |
571 | ||
572 | -- Section 9.18: time and alarm devices (see 9.15) | |
573 | ||
574 | ||
575 | ACPI Objects Not Yet Implemented | |
576 | -------------------------------- | |
577 | While these objects have x86 equivalents, and they do make some sense in ARM | |
578 | servers, there is either no hardware available at present, or in some cases | |
579 | there may not yet be a non-ARM implementation. Hence, they are currently not | |
580 | implemented though that may change in the future. | |
581 | ||
582 | Not yet implemented are: | |
583 | ||
584 | -- Section 10: power source and power meter devices | |
585 | ||
586 | -- Section 11: thermal management | |
587 | ||
588 | -- Section 12: embedded controllers interface | |
589 | ||
590 | -- Section 13: SMBus interfaces | |
591 | ||
592 | -- Section 17: NUMA support (prototypes have been submitted for | |
593 | review) |