Documentation: ACPI: move namespace.txt to firmware-guide/acpi and convert to reST
This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du <changbin.du@gmail.com> Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Родитель
680e6ffa15
Коммит
8a2fe04b44
|
@ -7,3 +7,4 @@ ACPI Support
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
namespace
|
||||
|
|
|
@ -1,26 +1,29 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. include:: <isonum.txt>
|
||||
|
||||
===================================================
|
||||
ACPI Device Tree - Representation of ACPI Namespace
|
||||
===================================================
|
||||
|
||||
Copyright (C) 2013, Intel Corporation
|
||||
Author: Lv Zheng <lv.zheng@intel.com>
|
||||
:Copyright: |copy| 2013, Intel Corporation
|
||||
|
||||
:Author: Lv Zheng <lv.zheng@intel.com>
|
||||
|
||||
Abstract:
|
||||
:Credit: Thanks for the help from Zhang Rui <rui.zhang@intel.com> and
|
||||
Rafael J.Wysocki <rafael.j.wysocki@intel.com>.
|
||||
|
||||
Abstract
|
||||
========
|
||||
The Linux ACPI subsystem converts ACPI namespace objects into a Linux
|
||||
device tree under the /sys/devices/LNXSYSTEM:00 and updates it upon
|
||||
receiving ACPI hotplug notification events. For each device object in this
|
||||
hierarchy there is a corresponding symbolic link in the
|
||||
receiving ACPI hotplug notification events. For each device object
|
||||
in this hierarchy there is a corresponding symbolic link in the
|
||||
/sys/bus/acpi/devices.
|
||||
|
||||
This document illustrates the structure of the ACPI device tree.
|
||||
|
||||
|
||||
Credit:
|
||||
|
||||
Thanks for the help from Zhang Rui <rui.zhang@intel.com> and Rafael J.
|
||||
Wysocki <rafael.j.wysocki@intel.com>.
|
||||
|
||||
|
||||
1. ACPI Definition Blocks
|
||||
ACPI Definition Blocks
|
||||
======================
|
||||
|
||||
The ACPI firmware sets up RSDP (Root System Description Pointer) in the
|
||||
system memory address space pointing to the XSDT (Extended System
|
||||
|
@ -40,7 +43,7 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
structure of the underlying hardware platform.
|
||||
|
||||
The relationships between ACPI System Definition Tables described above
|
||||
are illustrated in the following diagram.
|
||||
are illustrated in the following diagram::
|
||||
|
||||
+---------+ +-------+ +--------+ +------------------------+
|
||||
| RSDP | +->| XSDT | +->| FADT | | +-------------------+ |
|
||||
|
@ -68,18 +71,20 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
|
||||
Figure 1. ACPI Definition Blocks
|
||||
|
||||
NOTE: RSDP can also contain a pointer to the RSDT (Root System
|
||||
.. note:: RSDP can also contain a pointer to the RSDT (Root System
|
||||
Description Table). Platforms provide RSDT to enable
|
||||
compatibility with ACPI 1.0 operating systems. The OS is expected
|
||||
to use XSDT, if present.
|
||||
|
||||
|
||||
2. Example ACPI Namespace
|
||||
Example ACPI Namespace
|
||||
======================
|
||||
|
||||
All definition blocks are loaded into a single namespace. The namespace
|
||||
is a hierarchy of objects identified by names and paths.
|
||||
The following naming conventions apply to object names in the ACPI
|
||||
namespace:
|
||||
|
||||
1. All names are 32 bits long.
|
||||
2. The first byte of a name must be one of 'A' - 'Z', '_'.
|
||||
3. Each of the remaining bytes of a name must be one of 'A' - 'Z', '0'
|
||||
|
@ -91,7 +96,7 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
(i.e. names prepended with '^' are relative to the parent of the
|
||||
current namespace node).
|
||||
|
||||
The figure below shows an example ACPI namespace.
|
||||
The figure below shows an example ACPI namespace::
|
||||
|
||||
+------+
|
||||
| \ | Root
|
||||
|
@ -184,7 +189,8 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
Figure 2. Example ACPI Namespace
|
||||
|
||||
|
||||
3. Linux ACPI Device Objects
|
||||
Linux ACPI Device Objects
|
||||
=========================
|
||||
|
||||
The Linux kernel's core ACPI subsystem creates struct acpi_device
|
||||
objects for ACPI namespace objects representing devices, power resources
|
||||
|
@ -196,7 +202,7 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
two-digit decimal representation of an unsigned integer).
|
||||
|
||||
The value of 'bus_id' depends on the type of the object whose name it is
|
||||
part of as listed in the table below.
|
||||
part of as listed in the table below::
|
||||
|
||||
+---+-----------------+-------+----------+
|
||||
| | Object/Feature | Table | bus_id |
|
||||
|
@ -230,6 +236,7 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
the basis of the contents of ACPI System Description Tables (as
|
||||
indicated by the letter in the first column and the notation in the
|
||||
second column of the table above):
|
||||
|
||||
N:
|
||||
The object's source is an ACPI namespace node (as indicated by the
|
||||
named object's type in the second column). In that case the object's
|
||||
|
@ -256,6 +263,7 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
|
||||
The forth column of the above table indicates the 'bus_id' generation
|
||||
rule of the struct acpi_device object:
|
||||
|
||||
_HID:
|
||||
_HID in the last column of the table means that the object's bus_id
|
||||
is derived from the _HID/_CID identification objects present under
|
||||
|
@ -275,7 +283,8 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
object's bus_id.
|
||||
|
||||
|
||||
4. Linux ACPI Physical Device Glue
|
||||
Linux ACPI Physical Device Glue
|
||||
===============================
|
||||
|
||||
ACPI device (i.e. struct acpi_device) objects may be linked to other
|
||||
objects in the Linux' device hierarchy that represent "physical" devices
|
||||
|
@ -309,11 +318,12 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
drivers/pci/pci-acpi.c.
|
||||
|
||||
|
||||
5. Example Linux ACPI Device Tree
|
||||
Example Linux ACPI Device Tree
|
||||
=================================
|
||||
|
||||
The sysfs hierarchy of struct acpi_device objects corresponding to the
|
||||
example ACPI namespace illustrated in Figure 2 with the addition of
|
||||
fixed PWR_BUTTON/SLP_BUTTON devices is shown below.
|
||||
fixed PWR_BUTTON/SLP_BUTTON devices is shown below::
|
||||
|
||||
+--------------+---+-----------------+
|
||||
| LNXSYSTEM:00 | \ | acpi:LNXSYSTEM: |
|
||||
|
@ -377,12 +387,14 @@ Wysocki <rafael.j.wysocki@intel.com>.
|
|||
|
||||
Figure 3. Example Linux ACPI Device Tree
|
||||
|
||||
NOTE: Each node is represented as "object/path/modalias", where:
|
||||
.. note:: Each node is represented as "object/path/modalias", where:
|
||||
|
||||
1. 'object' is the name of the object's directory in sysfs.
|
||||
2. 'path' is the ACPI namespace path of the corresponding
|
||||
ACPI namespace object, as returned by the object's 'path'
|
||||
sysfs attribute.
|
||||
3. 'modalias' is the value of the object's 'modalias' sysfs
|
||||
attribute (as described earlier in this document).
|
||||
NOTE: N/A indicates the device object does not have the 'path' or the
|
||||
|
||||
.. note:: N/A indicates the device object does not have the 'path' or the
|
||||
'modalias' attribute.
|
Загрузка…
Ссылка в новой задаче