Device Tree frowand
Contents
Device Tree stuff from Frank Rowand
Resources for "Solving Device Tree Issues" talk
Updates on tools shown in the talk
dtdiff - in linux source tree as scripts/dtc/dtx_diff, merged 4.6-rc1 dtc --annotate - remains a proof of concept dt_node_info - remains a proof of concept dt_stat dt_to_config - vastly improved, v2 submitted to mainline, might land in 4.8-rc1
Another option for uploading FDT and EDT from a target over a serial console is serio.
Embedded Linux Conference Europe (ELCE) - October 6, 2015
- PDF slides, as presented
- PDF slides, pre-conference version
- 29: diff shown was reverse of the command
- 83: duplicate of 82
- make dtdiff work for .dts files in the Linux kernel source tree and in single file mode
- create dt_stat and dt_node_info scripts
- Script and program to convert console debug messages to report of which properties in a device tree file were accessed (or access was attempted) on the target system.
- Version 150811_1802 had a fatal bug. Fixed in version 150918_2310.
- Kernel changes to add debug messages needed by the dt_prop script.
- notes on how to upload FDT and EDT from a target over a serial console (150531_0029)
Linuxcon North America / Linux Plumbers Conference refereed track - August 19, 2015
- PDF slides
- make dtdiff work for .dts files in the Linux kernel source tree and in single file mode
- create dt_stat and dt_node_info scripts
- Script and program to convert console debug messages to report of which properties in a device tree file were accessed (or access was attempted) on the target system.
- Version 150811_1802 had a fatal bug. Fixed in version 150918_2310.
- Kernel changes to add debug messages needed by the dt_prop script.
- notes on how to upload FDT and EDT from a target over a serial console (150531_0029)
LinuxCon Japan - June 4, 2015
- PDF slides
- patch to make dtdiff work for .dts files in the Linux kernel source tree and in single file mode (v 150531_0043)
- patch to create dt_stat and dt_node_info scripts (
v 150527_1902v 150707_1852) - notes on how to upload FDT and EDT from a target over a serial console (150531_0029)
Resources for "Solving Device Tree Issues - Part 2" talk
dt_to_config is not upstream yet is upstream in Linux 4.8-rc1. It is also available here:
dt_to_config requires scripts/dtc/dtx_diff, which is available in Linux 4.6-rc1 and later.
devicetree man pages
man pages for devicetree are a work in progress. This is a workspace to hold current progress until the work is mainlined. Source files are being added to the list of files processed by docbook as the docbook comments in the source files are updated. man pages are not created for source files that have not been audited.
The current version of the man pages is:
- 160620_0145 tar
- Adds rest of of/drivers/*.c
- 160613_1940 tar
- of/drivers/address.c
- of/drivers/base.c
- of/drivers/device.c
The man pages are created from the docbook comments in the Linux kernel source.
The man pages are available in two formats
- html
- via the man command.
installing and using the html man pages
create a location to download and install
- pick a location, I use 'me/devicetree_docs'
- dest_relative="me/devicetree_docs"
- create the location
- dest="$(pwd)/${dest_relative}"
- mkdir -p ${dest_relative}
- cd ${dest}
Download the tar containing the html tar, the man tar, and the patches tar to the current directory
unpack the individual tars from the bundle
- tar -xf Docbook_devicetree_160620_0145.tar
unpack the html tar
- tar -xf docbook_devicetree_html_160620_0145.tgz
determine the URL to use to access the man pages
- echo "file://${dest}/devicetree.html"
enter the above URL in your favorite browser
installing and using the man command pages
create a location to download and install
- pick a location, I use 'me/devicetree_docs'
- dest_relative="me/devicetree_docs"
- create the location
- dest="$(pwd)/${dest_relative}"
- mkdir -p ${dest_relative}
- cd ${dest}
Download the tar containing the html tar, the man tar, and the patches tar to the current directory
unpack the individual tars from the bundle
- tar -xf Docbook_devicetree_160620_0145.tar
unpack the man tar
- tar -xf docbook_devicetree_man_160620_0145.tgz
create the directory tree that the man command expects
- ln -s devicetree man/man9
use the man command in one of two ways
MANPATH="${dest}/man" man OF_FUNCTION eg. MANPATH="${dest}/man" man of_node_get
export MANPATH="${dest}/man" man OF_FUNCTION eg export MANPATH="${dest}/man" man of_node_get man of_node_put
installing the source patches and building the docbook results
If you want to compile the docbook results yourself, do the following.
Download the Linux kernel source tree
- mkdir my_kernel_source
- cd my_kernel_source
- git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- cd linux
- checkout the kernel version that the patches were created on. Pick one of:
- git checkout af8c34ce6ae3
- git checkout v4.7-rc2
Download the tar containing the html tar, the man tar, and the patches tar to the current directory
Unpack the individual tars from the bundle
- tar -xf Docbook_devicetree_160620_0145.tar
Unpack the source patches tar
- tar -xf docbook_devicetree_patch_160620_0145.tgz
Apply the patches
- quilt push -a
If you do not have quilt installed, you can instead apply each of the patches in patches/. Apply the patches in the order listed in patches/series.
Build the docbook targets
- mkdir ../build
- export KBUILD_OUTPUT=../build
- make DOCBOOKS="devicetree.xml" mandocs
- make DOCBOOKS="devicetree.xml" htmldocs
The generated objects will be under the build directory ../build/Documentation/DocBook/
image test
This is a photograph from one of my desert trips. If you have arrived early to one of my conference talks, you have probably seen photos from my desert trips.
This spot of color is low in the hills of Death Valley.
temporary parking spot
Links to pages that are under construction, so that the pages will not get deleted.