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.
 
 
 
 
 
 
David Gibson 741cdff85d .travis.yml: Add builds with and without Python library prerequisites 8 years ago
Documentation
libfdt Adjust libfdt.h to work with swig 8 years ago
pylibfdt pylibfdt: Use package_dir to set the package directory 8 years ago
scripts
tests Build pylibfdt as part of the normal build process 8 years ago
.gitignore
.travis.yml .travis.yml: Add builds with and without Python library prerequisites 8 years ago
GPL
Makefile pylibfdt: Allow pkg-config to be supplied in the environment 8 years ago
Makefile.convert-dtsv0
Makefile.dtc
Makefile.utils
README Mention pylibfdt in the documentation 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
dtc-parser.y
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
livetree.c Fix assorted sparse warnings 8 years ago
srcpos.c
srcpos.h
treesource.c Fix assorted sparse warnings 8 years ago
util.c Fix assorted sparse warnings 8 years ago
util.h

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


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