path: root/README
diff options
authorKyle Evans <kevans@FreeBSD.org>2018-01-12 21:44:53 +0000
committerKyle Evans <kevans@FreeBSD.org>2018-01-12 21:44:53 +0000
commit2f36e4ecd0f0c04781c752e5382906a43feaf4e3 (patch)
tree27f6eba9c66c680c931ce0562e2586cc9a3c07de /README
parentf059bd1ebfc4cf2e96c4639ad7fa6cf3a3198a2f (diff)
Notes: svn path=/vendor/dtc/dist/; revision=327893 svn path=/vendor/dtc/1.4.6/; revision=327894; tag=vendor/dtc/1.4.6
Diffstat (limited to 'README')
1 files changed, 77 insertions, 0 deletions
diff --git a/README b/README
index f92008f645f6..15232ab8a91d 100644
--- a/README
+++ b/README
@@ -7,6 +7,83 @@ 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
+>>> prop_offset = fdt.first_property_offset(node)
+>>> prop = fdt.get_property_by_offset(prop_offset)
+>>> print '%s=%r' % (prop.name, prop.value)
+>>> print '%s=%s' % (prop.name, prop.value)
+>>> node2 = fdt.path_offset('/')
+>>> print fdt.getprop(node2, 'compatible')
+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 via the normal setup.py method, use:
+ ./pylibfdt/setup.py [--prefix=/path/to/install_dir]
+If --prefix is not provided, the default prefix is used, typically '/usr'
+or '/usr/local'. See Python's distutils documentation for details. You can
+also install via the Makefile if you like, but the above is more common.
+To install both libfdt and pylibfdt you can use:
+ make install [SETUP_PREFIX=/path/to/install_dir] \
+ [PREFIX=/path/to/install_dir]
+To disable building the python library, even if swig and Python are available,
+ make NO_PYTHON=1
+More work remains to support all of libfdt, including access to numeric
+Test files are kept in the tests/ directory. Use 'make check' to build and run
+all tests.
+If you want to adjust a test file, be aware that tree_tree1.dts is compiled
+and checked against a binary tree from assembler macros in trees.S. So
+if you change that file you must change tree.S also.
Mailing list
The following list is for discussion about dtc and libfdt implementation