Re: [PATCH v2] docs: dt: Make references and mention kernel abstractions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

I am noting a few grammar nits below...

[and + linux-doc]

On 5/5/23 05:43, Linus Walleij wrote:
> This document is named "Linux and Devicetree" so I think we
> should write a bit more about how the device tree fits into
> the Linux kernel frameworks these days after we have created
> the fwnode and swnode.
> 
> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> ---
> These docs are old and outdated and need to be edited to
> reflect the current situation.
> ---
> ChangeLog v1->v2:
> - Spelling mistakes
> - Resend because nothing happens
> ---
>  Documentation/devicetree/usage-model.rst | 45 +++++++++++++++++++++++++++++---
>  1 file changed, 41 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/devicetree/usage-model.rst b/Documentation/devicetree/usage-model.rst
> index b6a287955ee5..37605cb549cf 100644
> --- a/Documentation/devicetree/usage-model.rst
> +++ b/Documentation/devicetree/usage-model.rst
> @@ -75,7 +75,44 @@ out of mainline (nios) have some level of DT support.
>  If you haven't already read the Device Tree Usage\ [1]_ page,
>  then go read it now.  It's okay, I'll wait....
>  
> -2.1 High Level View
> +2.1 Linux Kernel Firmware Abstractions
> +--------------------------------------
> +
> +The Linux kernel supports several different hardware description
> +frameworks and DT is just one of them. The closest sibling is the
> +:ref:`Documentation/firmware-guide/acpi/index.rst ACPI`
> +DSDT (Differentiated System Description Table).
> +
> +To make it possible to write a device driver that will adapt to DT
> +or other hardware description models, the kernel has grown some
> +abstractions, first and foremost the firmware node API, exposing
> +device properties. The firmware node "fwnode" internals can be found
> +in ``<linux/fwnode.h>`` while the device driver-facing API can be
> +found in ``<linux/property.h>``. The idea is that if a driver is using
> +the firmware node API, it should be trivial to support DT and ACPI
> +DSDT alike in the same driver.
> +
> +The fwnode framework also makes it possible to modify and extend the
> +Linux in-kernel model with software-managed nodes "swnodes" to apply
> +quirks or manage registration of devices that cannot be handled any
> +other way. This API can also be found in ``<linux/property.h>``.
> +
> +Further, when the DT core register devices these need to fold into the

                        core registers

> +Linux device driver model, which essentially means that some kind of
> +``struct device`` has to be created to match a corresponding
> +``struct device_driver``. This API can be explored in
> +detail in :ref:`Documentation/driver-api/driver-model/index.rst the driver API documentation`
> +but what you need to know is that the Linux DT parser code will on its
> +own mostly spawn platform devices and AMBA devices on the platform
> +and AMBA bus respectively, and apart from that it will augment devices
> +spawn on other buses where applicable.

   spawned

> +
> +Every Linux kernel subsystem that want to supply additional data to

                                that wants

> +detected devices using the device tree, or that want to provide

                                              that wants

> +resources to other devices in the DT, will need to implement calls into
> +the DT abstractions.
> +
> +2.2 High Level View
>  -------------------
>  The most important thing to understand is that the DT is simply a data
>  structure that describes the hardware.  There is nothing magical about
> @@ -97,7 +134,7 @@ Linux uses DT data for three major purposes:
>  2) runtime configuration, and
>  3) device population.
>  
> -2.2 Platform Identification
> +2.3 Platform Identification
>  ---------------------------
>  First and foremost, the kernel will use data in the DT to identify the
>  specific machine.  In a perfect world, the specific platform shouldn't
> @@ -180,7 +217,7 @@ However, this approach does not take into account the priority of the
>  compatible list, and probably should be avoided for new architecture
>  support.
>  
> -2.3 Runtime configuration
> +2.4 Runtime configuration
>  -------------------------
>  In most cases, a DT will be the sole method of communicating data from
>  firmware to the kernel, so also gets used to pass in runtime and
> @@ -217,7 +254,7 @@ On ARM, the function setup_machine_fdt() is responsible for early
>  scanning of the device tree after selecting the correct machine_desc
>  that supports the board.
>  
> -2.4 Device population
> +2.5 Device population
>  ---------------------
>  After the board has been identified, and after the early configuration data
>  has been parsed, then kernel initialization can proceed in the normal
> 
> ---
> base-commit: 457391b0380335d5e9a5babdec90ac53928b23b4
> change-id: 20230505-dt-docs-refresh-515edbdbbd01
> 
> Best regards,

For @linux-doc: Is there something in ReST that does auto section numbering
so that this renumbering does not have to be repeated in the future?


Thanks for the additional documentation.
-- 
~Randy



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux