You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Simon Glass 580a9f6c28 Add a libfdt function to write a property placeholder 8 years ago
Documentation manual: Fix typo it -> in 8 years ago
libfdt Add a libfdt function to write a property placeholder 8 years ago
pylibfdt pylibfdt: Use the call function to simplify the Makefile 8 years ago
scripts dtc: Add maintainer script for signing and upload to kernel.org 10 years ago
tests Add a libfdt function to write a property placeholder 8 years ago
.gitignore
.travis.yml .travis.yml: Add builds with and without Python library prerequisites 8 years ago
GPL
Makefile pylibfdt: Enable installation of Python module 8 years ago
Makefile.convert-dtsv0
Makefile.dtc
Makefile.utils
README pylibfdt: Enable installation of Python module 8 years ago
README.license
TODO
checks.c checks: Warn on node name unit-addresses with '0x' or leading 0s 8 years ago
convert-dtsv0-lexer.l Fix assorted sparse warnings 8 years ago
data.c Fix assorted sparse warnings 8 years ago
dtc-lexer.l Clean up gcc attributes 8 years ago
dtc-parser.y dtc: Fix NULL pointer use in dtlabel + dtref case 8 years ago
dtc.c Fix assorted sparse warnings 8 years ago
dtc.h checks: Add bus checks for PCI buses 8 years ago
dtdiff
fdtdump.c Fix assorted sparse warnings 8 years ago
fdtget.c fdtget: Use @return to document the return value 8 years ago
fdtput.c fdtput: Remove star from value_len documentation 8 years ago
flattree.c dtc: Simplify asm_emit_string() implementation 8 years ago
fstree.c Rename boot_info 8 years ago
livetree.c Fix assorted sparse warnings 8 years ago
srcpos.c dtc: pos parameter to srcpos_string() can't be NULL 8 years ago
srcpos.h Clean up gcc attributes 8 years ago
treesource.c Fix assorted sparse warnings 8 years ago
util.c Fix assorted sparse warnings 8 years ago
util.h Clean up gcc attributes 8 years ago

README

The source tree contains the Device Tree Compiler (dtc) toolchain for
working with device tree source and binary files and also libfdt, a
utility library for reading and manipulating the binary format.

DTC and LIBFDT are maintained by:

David Gibson <david@gibson.dropbear.id.au>
Jon Loeliger <jdl@jdl.com>


Python library
--------------

A Python library is also available. To build this you will need to install
swig and Python development files. On Debian distributions:

sudo apt-get install swig python-dev

The library provides an Fdt class which you can use like this:

$ PYTHONPATH=../pylibfdt python
>>> import libfdt
>>> fdt = libfdt.Fdt(open('test_tree1.dtb').read())
>>> node = fdt.path_offset('/subnode@1')
>>> print node
124
>>> prop_offset = fdt.first_property_offset(node)
>>> prop = fdt.get_property_by_offset(prop_offset)
>>> print '%s=%r' % (prop.name, prop.value)
compatible=bytearray(b'subnode1\x00')
>>> print '%s=%s' % (prop.name, prop.value)
compatible=subnode1
>>> node2 = fdt.path_offset('/')
>>> print fdt.getprop(node2, 'compatible')
test_tree1

You will find tests in tests/pylibfdt_tests.py showing how to use each
method. Help is available using the Python help command, e.g.:

$ cd pylibfdt
$ python -c "import libfdt; help(libfdt)"

If you add new features, please check code coverage:

$ sudo apt-get install python-pip python-pytest
$ sudo pip install coverage
$ cd tests
$ coverage run pylibfdt_tests.py
$ coverage html
# Open 'htmlcov/index.html' in your browser


To install the library use:

make install_pylibfdt SETUP_PREFIX=/path/to/install_dir

If SETUP_PREFIX is not provided, the default prefix is used, typically '/usr'
or '/usr/local'. See Python's distutils documentation for details.

To disable building the python library, even if swig and Python are available,
use:

make NO_PYTHON=1


More work remains to support all of libfdt, including access to numeric
values.


Mailing list
------------
The following list is for discussion about dtc and libfdt implementation
mailto:devicetree-compiler@vger.kernel.org

Core device tree bindings are discussed on the devicetree-spec list:
mailto:devicetree-spec@vger.kernel.org