mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 23:21:46 +00:00
Documentation: ACPI: move linuxized-acpica.txt to driver-api/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:
parent
1cf70ae6f0
commit
25710e23cd
2 changed files with 65 additions and 47 deletions
|
@ -5,3 +5,4 @@ ACPI Support
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
linuxized-acpica
|
||||||
|
|
|
@ -1,31 +1,37 @@
|
||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
.. include:: <isonum.txt>
|
||||||
|
|
||||||
|
============================================================
|
||||||
Linuxized ACPICA - Introduction to ACPICA Release Automation
|
Linuxized ACPICA - Introduction to ACPICA Release Automation
|
||||||
|
============================================================
|
||||||
|
|
||||||
Copyright (C) 2013-2016, Intel Corporation
|
:Copyright: |copy| 2013-2016, Intel Corporation
|
||||||
Author: Lv Zheng <lv.zheng@intel.com>
|
|
||||||
|
:Author: Lv Zheng <lv.zheng@intel.com>
|
||||||
|
|
||||||
|
|
||||||
Abstract:
|
Abstract
|
||||||
|
========
|
||||||
This document describes the ACPICA project and the relationship between
|
This document describes the ACPICA project and the relationship between
|
||||||
ACPICA and Linux. It also describes how ACPICA code in drivers/acpi/acpica,
|
ACPICA and Linux. It also describes how ACPICA code in drivers/acpi/acpica,
|
||||||
include/acpi and tools/power/acpi is automatically updated to follow the
|
include/acpi and tools/power/acpi is automatically updated to follow the
|
||||||
upstream.
|
upstream.
|
||||||
|
|
||||||
|
ACPICA Project
|
||||||
|
==============
|
||||||
|
|
||||||
1. ACPICA Project
|
The ACPI Component Architecture (ACPICA) project provides an operating
|
||||||
|
system (OS)-independent reference implementation of the Advanced
|
||||||
|
Configuration and Power Interface Specification (ACPI). It has been
|
||||||
|
adapted by various host OSes. By directly integrating ACPICA, Linux can
|
||||||
|
also benefit from the application experiences of ACPICA from other host
|
||||||
|
OSes.
|
||||||
|
|
||||||
The ACPI Component Architecture (ACPICA) project provides an operating
|
The homepage of ACPICA project is: www.acpica.org, it is maintained and
|
||||||
system (OS)-independent reference implementation of the Advanced
|
supported by Intel Corporation.
|
||||||
Configuration and Power Interface Specification (ACPI). It has been
|
|
||||||
adapted by various host OSes. By directly integrating ACPICA, Linux can
|
|
||||||
also benefit from the application experiences of ACPICA from other host
|
|
||||||
OSes.
|
|
||||||
|
|
||||||
The homepage of ACPICA project is: www.acpica.org, it is maintained and
|
The following figure depicts the Linux ACPI subsystem where the ACPICA
|
||||||
supported by Intel Corporation.
|
adaptation is included::
|
||||||
|
|
||||||
The following figure depicts the Linux ACPI subsystem where the ACPICA
|
|
||||||
adaptation is included:
|
|
||||||
|
|
||||||
+---------------------------------------------------------+
|
+---------------------------------------------------------+
|
||||||
| |
|
| |
|
||||||
|
@ -71,21 +77,27 @@ upstream.
|
||||||
|
|
||||||
Figure 1. Linux ACPI Software Components
|
Figure 1. Linux ACPI Software Components
|
||||||
|
|
||||||
NOTE:
|
.. note::
|
||||||
A. OS Service Layer - Provided by Linux to offer OS dependent
|
A. OS Service Layer - Provided by Linux to offer OS dependent
|
||||||
implementation of the predefined ACPICA interfaces (acpi_os_*).
|
implementation of the predefined ACPICA interfaces (acpi_os_*).
|
||||||
|
::
|
||||||
|
|
||||||
include/acpi/acpiosxf.h
|
include/acpi/acpiosxf.h
|
||||||
drivers/acpi/osl.c
|
drivers/acpi/osl.c
|
||||||
include/acpi/platform
|
include/acpi/platform
|
||||||
include/asm/acenv.h
|
include/asm/acenv.h
|
||||||
B. ACPICA Functionality - Released from ACPICA code base to offer
|
B. ACPICA Functionality - Released from ACPICA code base to offer
|
||||||
OS independent implementation of the ACPICA interfaces (acpi_*).
|
OS independent implementation of the ACPICA interfaces (acpi_*).
|
||||||
|
::
|
||||||
|
|
||||||
drivers/acpi/acpica
|
drivers/acpi/acpica
|
||||||
include/acpi/ac*.h
|
include/acpi/ac*.h
|
||||||
tools/power/acpi
|
tools/power/acpi
|
||||||
C. Linux/ACPI Functionality - Providing Linux specific ACPI
|
C. Linux/ACPI Functionality - Providing Linux specific ACPI
|
||||||
functionality to the other Linux kernel subsystems and user space
|
functionality to the other Linux kernel subsystems and user space
|
||||||
programs.
|
programs.
|
||||||
|
::
|
||||||
|
|
||||||
drivers/acpi
|
drivers/acpi
|
||||||
include/linux/acpi.h
|
include/linux/acpi.h
|
||||||
include/linux/acpi*.h
|
include/linux/acpi*.h
|
||||||
|
@ -95,24 +107,27 @@ upstream.
|
||||||
ACPI subsystem to offer architecture specific implementation of the
|
ACPI subsystem to offer architecture specific implementation of the
|
||||||
ACPI interfaces. They are Linux specific components and are out of
|
ACPI interfaces. They are Linux specific components and are out of
|
||||||
the scope of this document.
|
the scope of this document.
|
||||||
|
::
|
||||||
|
|
||||||
include/asm/acpi.h
|
include/asm/acpi.h
|
||||||
include/asm/acpi*.h
|
include/asm/acpi*.h
|
||||||
arch/*/acpi
|
arch/*/acpi
|
||||||
|
|
||||||
2. ACPICA Release
|
ACPICA Release
|
||||||
|
==============
|
||||||
|
|
||||||
The ACPICA project maintains its code base at the following repository URL:
|
The ACPICA project maintains its code base at the following repository URL:
|
||||||
https://github.com/acpica/acpica.git. As a rule, a release is made every
|
https://github.com/acpica/acpica.git. As a rule, a release is made every
|
||||||
month.
|
month.
|
||||||
|
|
||||||
As the coding style adopted by the ACPICA project is not acceptable by
|
As the coding style adopted by the ACPICA project is not acceptable by
|
||||||
Linux, there is a release process to convert the ACPICA git commits into
|
Linux, there is a release process to convert the ACPICA git commits into
|
||||||
Linux patches. The patches generated by this process are referred to as
|
Linux patches. The patches generated by this process are referred to as
|
||||||
"linuxized ACPICA patches". The release process is carried out on a local
|
"linuxized ACPICA patches". The release process is carried out on a local
|
||||||
copy the ACPICA git repository. Each commit in the monthly release is
|
copy the ACPICA git repository. Each commit in the monthly release is
|
||||||
converted into a linuxized ACPICA patch. Together, they form the monthly
|
converted into a linuxized ACPICA patch. Together, they form the monthly
|
||||||
ACPICA release patchset for the Linux ACPI community. This process is
|
ACPICA release patchset for the Linux ACPI community. This process is
|
||||||
illustrated in the following figure:
|
illustrated in the following figure::
|
||||||
|
|
||||||
+-----------------------------+
|
+-----------------------------+
|
||||||
| acpica / master (-) commits |
|
| acpica / master (-) commits |
|
||||||
|
@ -153,7 +168,7 @@ upstream.
|
||||||
|
|
||||||
Figure 2. ACPICA -> Linux Upstream Process
|
Figure 2. ACPICA -> Linux Upstream Process
|
||||||
|
|
||||||
NOTE:
|
.. note::
|
||||||
A. Linuxize Utilities - Provided by the ACPICA repository, including a
|
A. Linuxize Utilities - Provided by the ACPICA repository, including a
|
||||||
utility located in source/tools/acpisrc folder and a number of
|
utility located in source/tools/acpisrc folder and a number of
|
||||||
scripts located in generate/linux folder.
|
scripts located in generate/linux folder.
|
||||||
|
@ -170,19 +185,20 @@ upstream.
|
||||||
following kernel configuration options:
|
following kernel configuration options:
|
||||||
CONFIG_ACPI/CONFIG_ACPI_DEBUG/CONFIG_ACPI_DEBUGGER
|
CONFIG_ACPI/CONFIG_ACPI_DEBUG/CONFIG_ACPI_DEBUGGER
|
||||||
|
|
||||||
3. ACPICA Divergences
|
ACPICA Divergences
|
||||||
|
==================
|
||||||
|
|
||||||
Ideally, all of the ACPICA commits should be converted into Linux patches
|
Ideally, all of the ACPICA commits should be converted into Linux patches
|
||||||
automatically without manual modifications, the "linux / master" tree should
|
automatically without manual modifications, the "linux / master" tree should
|
||||||
contain the ACPICA code that exactly corresponds to the ACPICA code
|
contain the ACPICA code that exactly corresponds to the ACPICA code
|
||||||
contained in "new linuxized acpica" tree and it should be possible to run
|
contained in "new linuxized acpica" tree and it should be possible to run
|
||||||
the release process fully automatically.
|
the release process fully automatically.
|
||||||
|
|
||||||
As a matter of fact, however, there are source code differences between
|
As a matter of fact, however, there are source code differences between
|
||||||
the ACPICA code in Linux and the upstream ACPICA code, referred to as
|
the ACPICA code in Linux and the upstream ACPICA code, referred to as
|
||||||
"ACPICA Divergences".
|
"ACPICA Divergences".
|
||||||
|
|
||||||
The various sources of ACPICA divergences include:
|
The various sources of ACPICA divergences include:
|
||||||
1. Legacy divergences - Before the current ACPICA release process was
|
1. Legacy divergences - Before the current ACPICA release process was
|
||||||
established, there already had been divergences between Linux and
|
established, there already had been divergences between Linux and
|
||||||
ACPICA. Over the past several years those divergences have been greatly
|
ACPICA. Over the past several years those divergences have been greatly
|
||||||
|
@ -213,11 +229,12 @@ upstream.
|
||||||
rebased on the ACPICA side in order to offer better solutions, new ACPICA
|
rebased on the ACPICA side in order to offer better solutions, new ACPICA
|
||||||
divergences are generated.
|
divergences are generated.
|
||||||
|
|
||||||
4. ACPICA Development
|
ACPICA Development
|
||||||
|
==================
|
||||||
|
|
||||||
This paragraph guides Linux developers to use the ACPICA upstream release
|
This paragraph guides Linux developers to use the ACPICA upstream release
|
||||||
utilities to obtain Linux patches corresponding to upstream ACPICA commits
|
utilities to obtain Linux patches corresponding to upstream ACPICA commits
|
||||||
before they become available from the ACPICA release process.
|
before they become available from the ACPICA release process.
|
||||||
|
|
||||||
1. Cherry-pick an ACPICA commit
|
1. Cherry-pick an ACPICA commit
|
||||||
|
|
||||||
|
@ -225,7 +242,7 @@ upstream.
|
||||||
you want to cherry pick must be committed into the local repository.
|
you want to cherry pick must be committed into the local repository.
|
||||||
|
|
||||||
Then the gen-patch.sh command can help to cherry-pick an ACPICA commit
|
Then the gen-patch.sh command can help to cherry-pick an ACPICA commit
|
||||||
from the ACPICA local repository:
|
from the ACPICA local repository::
|
||||||
|
|
||||||
$ git clone https://github.com/acpica/acpica
|
$ git clone https://github.com/acpica/acpica
|
||||||
$ cd acpica
|
$ cd acpica
|
||||||
|
@ -240,7 +257,7 @@ upstream.
|
||||||
changes that haven't been applied to Linux yet.
|
changes that haven't been applied to Linux yet.
|
||||||
|
|
||||||
You can generate the ACPICA release series yourself and rebase your code on
|
You can generate the ACPICA release series yourself and rebase your code on
|
||||||
top of the generated ACPICA release patches:
|
top of the generated ACPICA release patches::
|
||||||
|
|
||||||
$ git clone https://github.com/acpica/acpica
|
$ git clone https://github.com/acpica/acpica
|
||||||
$ cd acpica
|
$ cd acpica
|
||||||
|
@ -254,7 +271,7 @@ upstream.
|
||||||
3. Inspect the current divergences
|
3. Inspect the current divergences
|
||||||
|
|
||||||
If you have local copies of both Linux and upstream ACPICA, you can generate
|
If you have local copies of both Linux and upstream ACPICA, you can generate
|
||||||
a diff file indicating the state of the current divergences:
|
a diff file indicating the state of the current divergences::
|
||||||
|
|
||||||
# git clone https://github.com/acpica/acpica
|
# git clone https://github.com/acpica/acpica
|
||||||
# git clone http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
|
# git clone http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
|
Loading…
Add table
Add a link
Reference in a new issue