Giter VIP home page Giter VIP logo

dtc's People

Contributors

a3f avatar andre-arm avatar blmaier avatar dgibson avatar elmarco avatar emaste avatar ffainelli avatar fishilico avatar frenzymadness avatar glikely avatar huth avatar jbeisswenger-cetitec avatar jcdubois avatar julialawall avatar kevans91 avatar kimphill avatar kumargala avatar masahir0y avatar mripard avatar nvswarren avatar pantoniou avatar ptosi avatar robherring avatar sjg20 avatar tervis-unikie avatar thierryreding avatar ukleinek avatar vapier avatar xypron avatar z3ntu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dtc's Issues

0 is valid for size-cells in cpu node

if ((val <= 0) || (val > FDT_MAX_NCELLS))

This bug is introduced in this commit, from v1.4.7, which will cause size-cells get failed.

SHA-1: c12b2b0c20eb8fbe1a22065f1d5f0f155ab56b0a

* libfdt: fdt_address_cells() and fdt_size_cells()

Add internal fdt_cells() to avoid copy and paste.  Test error cases and
default values.  Fix typo in fdt_size_cells() documentation comment.

Signed-off-by: Sebastian Huber <[email protected]>
Signed-off-by: David Gibson <[email protected]>

Example dts file.

	#address-cells = <2>;
	#size-cells = <1>;
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu0: cpu@0 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			logic_id = <0>;
			reg = <0x0>;
		};
		cpu1: cpu@1 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			logic_id = <1>;
			reg = <0x1>;
		};
	};

Missing functions from libfdt version script

When trying to build newer QEMU I noticed that libfdt is missing a function from its version script causing the build to fail (fdt_check_full).

Looking at the source and header I see there are 3 other functions missing as well.

fdt_get_max_phandle
fdt_check_full
fdt_setprop_placeholder
fdt_property_placeholder

Presence of earlier node affects delete-property in later node

This is a weird one --- please let me know if I am missing something obvious! I did check the existing issues and Google search results without success.

Given two device trees that differ only in the presence of an empty / node:

diff -y 1sec.dts 2sec.dts
/dts-v1/;                                                       /dts-v1/;

                                                              > /  {
                                                              > };
                                                              >
/ {                                                             / {
        nonexistent;                                                    nonexistent;
        /delete-property/ nonexistent;                                  /delete-property/ nonexistent;
        existent;                                                       existent;
};                                                              };

Observed: dtc obeys the delete-property only when that empty node is present:

diff -y 1sec.log 2sec.log
1sec.dts                                                      | 2sec.dts
/dts-v1/;                                                       /dts-v1/;

/ {                                                             / {
        nonexistent;                                          <
        existent;                                                       existent;
};                                                              };

(processed with dtc -I dts -O dts foo.dts)

Expected: the nonexistent property is removed by /delete-property/ in both cases (regardless of whether this node exists earlier in the file or not).

Repro: download the attached issue37.tar.gz, and run DTC=<path to dtc> make -B.

Tested with master (1.6.0-g81e0919a) on Ubuntu 18.04 x64.

Thanks for considering this report!

last commit breaks building the Python bindings

Seems the last commit a41509b breaks building the Python bindings.

...
make[1]: Entering directory '/var/lib/jenkins/workspace/dtc/label/x86_64'
set -e; echo '	CHK version_gen.h'; mkdir -p ./; 	(echo "#define DTC_VERSION \"DTC 1.6.1-ga41509be\""; ) < Makefile > version_gen.h.tmp; if [ -r version_gen.h ] && cmp -s version_gen.h version_gen.h.tmp; then rm -f version_gen.h.tmp; else echo '	UPD version_gen.h'; mv -f version_gen.h.tmp version_gen.h; fi;
	CHK version_gen.h
python3 ./setup.py  build_ext --build-lib=pylibfdt
running build_ext
building '_libfdt' extension
swigging /var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt.i to /var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c
swig -python -I/var/lib/jenkins/workspace/dtc/label/x86_64/./libfdt -o /var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c /var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt.i
creating build
creating build/temp.linux-x86_64-3.10
creating build/temp.linux-x86_64-3.10/var
creating build/temp.linux-x86_64-3.10/var/lib
creating build/temp.linux-x86_64-3.10/var/lib/jenkins
creating build/temp.linux-x86_64-3.10/var/lib/jenkins/workspace
creating build/temp.linux-x86_64-3.10/var/lib/jenkins/workspace/dtc
creating build/temp.linux-x86_64-3.10/var/lib/jenkins/workspace/dtc/label
creating build/temp.linux-x86_64-3.10/var/lib/jenkins/workspace/dtc/label/x86_64
creating build/temp.linux-x86_64-3.10/var/lib/jenkins/workspace/dtc/label/x86_64/pylibfdt
gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPY_SSIZE_T_CLEAN -I/var/lib/jenkins/workspace/dtc/label/x86_64/./libfdt -I/usr/include/python3.10 -c /var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c -o build/temp.linux-x86_64-3.10/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.o
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_node_header_name_set’:
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4038:7: warning: the comparison will always evaluate as ‘true’ for the address of ‘name’ will never be NULL [-Waddress]
 4038 |   if (arg1->name) free((char*)arg1->name);
      |       ^~~~
In file included from /var/lib/jenkins/workspace/dtc/label/x86_64/./libfdt/libfdt.h:10,
                 from /var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:2722:
/var/lib/jenkins/workspace/dtc/label/x86_64/./libfdt/fdt.h:38:14: note: ‘name’ declared here
   38 |         char name[];
      |              ^~~~
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4041:18: error: cast specifies array type
 4041 |     arg1->name = (char [])(char *)memcpy(malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
      |                  ^
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4041:16: error: invalid use of flexible array member
 4041 |     arg1->name = (char [])(char *)memcpy(malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
      |                ^
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4043:16: error: invalid use of flexible array member
 4043 |     arg1->name = 0;
      |                ^
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_property_data_set’:
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4301:7: warning: the comparison will always evaluate as ‘true’ for the address of ‘data’ will never be NULL [-Waddress]
 4301 |   if (arg1->data) free((char*)arg1->data);
      |       ^~~~
/var/lib/jenkins/workspace/dtc/label/x86_64/./libfdt/fdt.h:45:14: note: ‘data’ declared here
   45 |         char data[];
      |              ^~~~
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4304:18: error: cast specifies array type
 4304 |     arg1->data = (char [])(char *)memcpy(malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
      |                  ^
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4304:16: error: invalid use of flexible array member
 4304 |     arg1->data = (char [])(char *)memcpy(malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
      |                ^
/var/lib/jenkins/workspace/dtc/label/x86_64/./pylibfdt/libfdt_wrap.c:4306:16: error: invalid use of flexible array member
 4306 |     arg1->data = 0;
      |                ^
error: command '/usr/bin/gcc' failed with exit code 1
make[1]: *** [pylibfdt/Makefile.pylibfdt:20: pylibfdt/_libfdt.so] Error 1
make[1]: Leaving directory '/var/lib/jenkins/workspace/dtc/label/x86_64'
make: *** [Makefile:172: maybe_pylibfdt] Error 2
Build step 'Execute shell' marked build as failure
Finished: FAILURE

This is on Fedora 36 on x86_64, but fails on all arches.

adding -Wsign-compare broke ppc64 build

Commit 72d09e2 introducing the -Wsign-compare compiler option broke our builds on ppc64 (big endian). The system is Fedora 28 with gcc-8.3.1-2.fc28.ppc64 and flex-2.6.1-7.fc28.ppc64

...
cc -I libfdt -I . -DFDT_ASSUME_MASK=0 -g -Os -fPIC -Werror -Wall -Wpointer-arith -Wcast-qual -Wnested-externs -Wsign-compare -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wshadow  -I/usr/include/valgrind   -o convert-dtsv0-lexer.lex.o -c convert-dtsv0-lexer.lex.c
convert-dtsv0-lexer.lex.c: In function 'yy_scan_bytes':
convert-dtsv0-lexer.lex.c:1789:17: error: comparison of integer expressions of different signedness: 'yy_size_t' {aka 'long unsigned int'} and 'int' [-Werror=sign-compare]
  for ( i = 0; i < _yybytes_len; ++i )
                 ^
cc1: all warnings being treated as errors

I suspect the fix is to use newer flex ...

A security issue: "totalsize" isn't correctly checked

The "totalsize" in header is currently checked against "INT_MAX" instead of real length of DTB, this is usually OK for valid DTB. But for "bad" DTB, this is not enough. Say on a hypervisor system, when libfdt is used to parse a malicious DTB from an untrsuted VM(virtual machine), the "totalsize" in the header can be arbitrary value, for example, attacker can set the "totalsize" to be 0xFFFF0000 but the real length of DTB is just 0xF000, what will happen? I guess there will be multiple out-of-bounds access in libfdt since we are checking node offsets against "totalsize" everywhere.
If we do agree libfdt shall consider the use case of parsing invalid DTB, we then need to carefully handle those inputs in DTB file without assuming they are legal.

Meson tests fail

For some baffling reason I get a failing test when I build with meson:

$ meson setup build
The Meson build system
Version: 1.0.0
Source dir: /home/dwg/src/dtc
Build dir: /home/dwg/src/dtc/build
Build type: native build
Project name: dtc
Project version: 1.7.0
C compiler for the host machine: ccache cc (gcc 12.2.1 "cc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)")
C linker for the host machine: cc ld.bfd 2.38-25
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wpointer-arith: YES 
Compiler for C supports arguments -Wcast-qual: YES 
Compiler for C supports arguments -Wnested-externs: YES 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Compiler for C supports arguments -Wmissing-prototypes: YES 
Compiler for C supports arguments -Wredundant-decls: YES 
Compiler for C supports arguments -Wshadow: YES 
Compiler for C supports arguments -Wsuggest-attribute=format: YES 
Found pkg-config: /bin/pkg-config (1.8.0)
Run-time dependency yaml-0.1 found: YES 0.2.5
Run-time dependency valgrind found: YES 3.20.0
Program python3 found: YES (/usr/bin/python3)
Program swig found: YES (/bin/swig)
Found git repository at /home/dwg/src/dtc
Compiler for C supports link arguments -Wl,--version-script=/home/dwg/src/dtc/libfdt/version.lds: YES 
Program flex found: YES (/bin/flex)
Program bison found: YES (/bin/bison)
Check usable header "fnmatch.h" : YES 
Program ../setup.py found: YES (/home/dwg/src/dtc/pylibfdt/../setup.py)
Library dl found: YES
Program run_tests.sh found: YES (/home/dwg/src/dtc/tests/run_tests.sh)
Build targets in project: 84

Found ninja-1.10.2 at /bin/ninja
$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /bin/ninja -C /home/dwg/src/dtc/build
ninja: Entering directory `/home/dwg/src/dtc/build'
[59/346] Generating tests/dumptrees with a custom command
Tree "test_tree1.dtb", 757 bytes
Tree "bad_node_char.dtb", 92 bytes
Tree "bad_node_format.dtb", 92 bytes
Tree "bad_prop_char.dtb", 98 bytes
Tree "ovf_size_strings.dtb", 90 bytes
Tree "truncated_property.dtb", 86 bytes
Tree "truncated_string.dtb", 104 bytes
Tree "truncated_memrsv.dtb", 72 bytes
Tree "two_roots.dtb", 84 bytes
Tree "named_root.dtb", 76 bytes
[346/346] Generating pylibfdt/pylibfdt with a custom command
$ meson test -C build
ninja: no work to do.
ninja: Entering directory `/home/dwg/src/dtc/build'
ninja: no work to do.
1/1 run-test        FAIL              3.45s   exit status 1
>>> PYTHON=/usr/bin/python3 MALLOC_PERTURB_=219 PYTHONPATH=/home/dwg/src/dtc/pylibfdt /home/dwg/src/dtc/tests/run_tests.sh


Ok:                 0   
Expected Fail:      0   
Fail:               1   
Unexpected Pass:    0   
Skipped:            0   
Timeout:            0   

Full log written to /home/dwg/src/dtc/build/meson-logs/testlog.txt

0xFFFFFFFF00000000 parsed as 32 bit

Perhaps I am missing something, but uint64_t in the following range 0xFFFFFFFF00000000-0xFFFFFFFFFFFFFFFF are treated as uint32_t for property array data.

Example:

/dts-v1/;
/ { 
	/* 0xFFFFFFFF00000000 is not an uint32_t, or is it? */
	property1 = <0xFFFFFFFF00000000>;
	/* 0xFFFFFFFFFFFFFFFF is also not an uint32_t, or is it? */
	property2 = <0xFFFFFFFFFFFFFFFF>;
	/* 0xFFFFFFFEFFFFFFFF is definitely not an uint32_t! */
	/* property3 = <(0xFFFFFFFF00000000-1)>; */
};

The dtc -O dts output of this snippet is:

/dts-v1/;

/ {
	property1 = <0x00>;
	property2 = <0xffffffff>;
};

My expectation would be, that all uint64_t values above 0xFFFFFFFF are illegal 32bit data values. This of course includes the 64 bit values with all ones in the upper 32 bits. At least 0xFFFFFFFEFFFFFFFF is invalid.
Is there a rationale behind this or is it a bug?

We can then have a "full" 32 bit signed integer, with the sign bit being all upper 32 bits set or unset? ;-)

fdt_overlay_apply fails on valid (?) ovelay blob

I encountered a problem using u-boot 2019.01 (which uses dtc DTC 1.4.6-gaadd0b65) on Raspberry Pi 3 while trying to apply some overlays to my base device tree. While some of them apply without any problem, others fail with error FDT_ERR_BADOVERLAY.

I tracked down the error to the function overlay_symbol_update line 797. The problem seems to be that this function expects a symbol do point to a subnode of an __overlay__ node while my dts files name directly an __overlay__ node and not one of its children.

You can have a look at spi1-1cs-overlay.dts for example. The problem is generated by the symbol frag1.

The problem is that dtc authorizes this kind of naming an generates what I would consider a valid dtbo file regarding the device tree blob specifications, but then this dtbo generates an error when parsed.

What I did, for now, is modify my dts by changing the phandle in the __overrides__ section this way:

	__overrides__ {
		cs0_pin  = <&spi1_cs_pins>,"brcm,pins:0",
			       <&spi1>,"cs-gpios:4";
		cs0_spidev = <&spidev1_0>,"status";
	};

That way I can remove the symbol frag1.

Wouldn't it be better to either modify dtc to raise an error when this kind of symbol is encountered or modify overlay_symbol_update to parse correctly those symbols?

FATAL ERROR: String offset overruns string table

Hi,

I am trying to convert a DTB file of a Xiaomi AX6 router to DTS, and I get this message:

root@nas:~/dtc# ./dtc -I dtb -O dts /root/xiaomi_ax6/AP-AC04.dtb
FATAL ERROR: String offset 16777216 overruns string table

As much as I can tell, the DTB file looks valid. Another DTB file from the same router image can be converted successfully.
I attached the affected DTB file just in case:
AP-AC04.ZIP

Tested with:

root@nas:~/dtc# ./dtc --version
Version: DTC 1.6.0-gf7e5737f

libfdt: Import version v1.4.7 has bad impacts on performances

On a ARM 32-bit platform, we are using Device tree and we observed a performance issue after the last rebase on libfdt 1.4.7.

For information, here are total times we spend in the FDT functions with different releases:
libfdt 1.4.2: 114ms
libfdt 1.4.6.9: 119ms (+4%)
libfdt 1.4.7: 653ms (+472%)

After a deeper analysis, we deduced that it was due to fdt32_ld / fdt64_ld function implementations, and more precisely to the memcpy operations inside, added for alignment reasons.

Note that on U-Boot community, as on Kernel one, they did not upgrade their FDT library on this 1.4.7 release, they are presently using libfdt 1.4.6.9. We can suppose that they didn't switch to the latest release due to this performance degradation, even if we were surprised not to find found any discussion on this subject here.

On our side, we had to modify these functions in order to remove the memcpy call thanks to a preprocessor conditional:
static inline uint32_t fdt32_ld(const fdt32_t *p)
{
fdt32_t __unused v;

#if FDT_NO_ALIGNMENT_CHECK
assert((*p & 0x3) == 0);
return fdt32_to_cpu(*p);
#else
memcpy(&v, p, sizeof(v));
return fdt32_to_cpu(v);
#endif
}

And the equivalent in fdt64_ld with a 0x7 mask.
With this modification, we recover more or less libfdt 1.4.2 performances (only +6% gap).

Did anyone else observed this kind of issue? We tried to give as much information as possible.

pylibfdt bindings cryptically fail to build with some build environments

I've been unable to build the pylibfdt bindings for some time. When I try I get this error:

$ make
	CHK version_gen.h
make[1]: Entering directory '/home/dwg/src/dtc'
	CHK version_gen.h
	 PYMOD pylibfdt/_libfdt.so
/usr/lib/python3.11/site-packages/setuptools_scm/version.py:84: UserWarning: tag 'path-ref-fixup-staging' no version found
  warnings.warn(f"tag {tag!r} no version found")
Traceback (most recent call last):
  File "/home/dwg/src/dtc/./setup.py", line 50, in <module>
    setup(
  File "/usr/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 139, in setup
    _setup_distribution = dist = klass(attrs)
                                 ^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 477, in __init__
    _Distribution.__init__(
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 275, in __init__
    self.finalize_options()
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 901, in finalize_options
    ep(self)
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 922, in _finalize_setup_keywords
    ep.load()(self, ep.name, value)
  File "/usr/lib/python3.11/site-packages/setuptools_scm/integration.py", line 90, in version_keyword
    _assign_version(dist, config)
  File "/usr/lib/python3.11/site-packages/setuptools_scm/integration.py", line 59, in _assign_version
    maybe_version = _get_version(config)
                    ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/__init__.py", line 154, in _get_version
    parsed_version = _do_parse(config)
                     ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/__init__.py", line 101, in _do_parse
    version = _version_from_entrypoints(config) or _version_from_entrypoints(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/_entrypoints.py", line 66, in _version_from_entrypoints
    version: ScmVersion | None = _call_entrypoint_fn(root, config, ep.load())
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/_entrypoints.py", line 40, in _call_entrypoint_fn
    return fn(root, config=config)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/git.py", line 181, in parse
    return _git_parse_inner(
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/git.py", line 224, in _git_parse_inner
    return meta(
           ^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/version.py", line 226, in meta
    parsed_version = _parse_tag(tag, preformatted, config)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools_scm/version.py", line 203, in _parse_tag
    assert version is not None
AssertionError
make[1]: *** [pylibfdt/Makefile.pylibfdt:20: pylibfdt/_libfdt.so] Error 1
make[1]: Leaving directory '/home/dwg/src/dtc'
make: *** [Makefile:172: maybe_pylibfdt] Error 2

Build environment is Fedora 37:

  • python3-3.11.1-3.fc37.x86_64
  • python-setuptools-wheel-62.6.0-2.fc37.noarch
  • python3-setuptools-62.6.0-2.fc37.noarch
  • python3-setuptools_scm-7.0.5-1.fc37.noarch

README.md has no instructions for building with meson

We currently have both Makefiles and meson scripts either of which can build the project. However, I frequently forget how to properly invoke meson, so it tends to be poorly tested. README.md should have short instructions for how to build with meson.

test failures in pylibfdt on armv7

I've enabled "make check" in our CI for dtc and it shows 3 errors when run on armv7 (Fedora 28). All checks pass on aarch64, ppc64, ppc64le, s390x and x86_64.

...
Check that exceptions can be masked by QUIET_ALL ... ok
testReserveMap (__main__.PyLibfdtBasicTests)
Test that we can access the memory reserve map ... FAIL
testSetName (__main__.PyLibfdtBasicTests)
Test that we can update a node name ... ok
testSetProp (__main__.PyLibfdtBasicTests)
Test that we can update and create properties ... ok
testSetPropStr (__main__.PyLibfdtBasicTests)
Test that we can set a property to a particular string ... ok
testSetPropU32 (__main__.PyLibfdtBasicTests)
Test that we can update and create integer properties ... ok
testSetPropU64 (__main__.PyLibfdtBasicTests)
Test that we can update and create integer properties ... FAIL
testStrError (__main__.PyLibfdtBasicTests)
Check that we can get an error string ... ok
testSubnodeOffset (__main__.PyLibfdtBasicTests)
check that we can locate a subnode by name ... ok
testAccess (__main__.PyLibfdtRoTests)
Basic sanity check for the FdtRo class ... ok
testCreate (__main__.PyLibfdtSwTests) ... ERROR

======================================================================
ERROR: testCreate (__main__.PyLibfdtSwTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "pylibfdt_tests.py", line 517, in testCreate
    sw.property_u32('prop-int', TEST_VALUE_1)
  File "../pylibfdt/libfdt.py", line 913, in property_u32
    while self.check_space(fdt_property_u32(self._fdt, name, val)):
OverflowError: in method 'fdt_property_u32', argument 3 of type 'uint32_t'

======================================================================
FAIL: testReserveMap (__main__.PyLibfdtBasicTests)
Test that we can access the memory reserve map
----------------------------------------------------------------------
Traceback (most recent call last):
  File "pylibfdt_tests.py", line 406, in testReserveMap
    self.fdt.get_mem_rsv(0))
AssertionError: [16045690981097406464L, 1048576] != 1048576L

======================================================================
FAIL: testSetPropU64 (__main__.PyLibfdtBasicTests)
Test that we can update and create integer properties
----------------------------------------------------------------------
Traceback (most recent call last):
  File "pylibfdt_tests.py", line 458, in testSetPropU64
    self.fdt.getprop(node, prop))
AssertionError: '\xde\xad\xbe\xef\x01\xab\xcd\xef' != bytearray(b'\x00\x00\x00\x00\xff\xff\xff\xff')

----------------------------------------------------------------------
Ran 34 tests in 0.030s

FAILED (failures=2, errors=1)
********** TEST SUMMARY
*     Total testcases:	1796
*                PASS:	1793
*                FAIL:	1
*   Bad configuration:	0
* Strange test result:	0
**********
make: *** [tests/Makefile.tests:80: check] Error 1

Invalid format string in a call to die()

Hello,
In order to detect printf format issues, I am compiling Linux kernel with options like -Wmissing-format-attribute -Wformat=2. This lead me to add __attribute__ ((format(printf, 1, 2))) to lexical_error() in dtc-lexer.l and die() in util.h.
Doing so triggered a compiler warning on the following code in dtc.c:

	case 'a':
		alignsize = strtol(optarg, NULL, 0);
		if (!is_power_of_2(alignsize))
			die("Invalid argument \"%d\" to -a option\n",
			    optarg);
		break;

As variable optarg is a string, it should not be formatted with %d but with %s. As I have not found the mailing list archive of [email protected] (http://vger.kernel.org/vger-lists.html#devicetree-compiler references a link to http://dir.gmane.org/gmane.comp.devicetree.compiler which is empty), I do not know whether this bug has already been reported on the mailing list. This is why I am reporting it on Github.

Thanks

failing tests on arm32

82 tests fail on 32-bit arm systems on Debian's build infrastructure for both armel and armhf, both 32-bit arm architectures (arm64/aarch64 tests fine). 1.4.5-2 in Debian includes a patch from upstream 497432f: checks: Use proper format modifier for size_t (without it the package failed to build much earlier).

See the build logs for a little more information:

https://buildd.debian.org/status/fetch.php?pkg=device-tree-compiler&arch=armel&ver=1.4.5-2&stamp=1506657642&raw=0

https://buildd.debian.org/status/fetch.php?pkg=device-tree-compiler&arch=armhf&ver=1.4.5-2&stamp=1506657442&raw=0

Thanks!

valid_header function may be have some problem.

dtc/fdtdump.c

Line 166 in ecfb438

static bool valid_header(char *p, size_t len)

This function should be modified like this?

static bool valid_header(char *p, size_t len)
{
	if (len < sizeof(struct fdt_header) ||
	    fdt_magic(p) != FDT_MAGIC ||
	    fdt_version(p) > MAX_VERSION ||
	    fdt_last_comp_version(p) > MAX_VERSION ||
	    fdt_totalsize(p) > len ||
	    fdt_off_dt_struct(p) >= len ||
	    fdt_off_dt_strings(p) >= len)
		return 0;
	else
		return 1;
}

pylibfdt fails to work with 3.10

ERROR: testCreate (__main__.PyLibfdtSwTests)
----------------------------------------------------------------------
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

PY_SSIZE_T_CLEAN is now mandatory in 3.10, so the module needs to define that symbol and change the length type from int to ssize_t in all # formats passed to eg Py_BuildValue.

I'm new to Swig so trying to figure out how to make this actually happen...

'struct fdt_header' has no member named [name]

I am just trying to build the OpenBMC and met some errors:

| libfdt/libfdt.h:251:28: error: array subscript ‘struct fdt_header[0]’ is partly outside array bounds of ‘unsigned char[4]’ [-Werror=array-bounds]
|   251 |                 fdth->name = cpu_to_fdt32(val); \
|       |                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
| libfdt/libfdt.h:253:1: note: in expansion of macro ‘fdt_set_hdr_’
|   253 | fdt_set_hdr_(magic);
|       | ^~~~~~~~~~~~
| fdtdump.c:216:31: note: while referencing ‘smagic’
|   216 |                 unsigned char smagic[FDT_MAGIC_SIZE];
|       |                               ^~~~~~
| cc1: all warnings being treated as errors

After reading the code of this project, I have some questions.

The definition of struct fdt_header in dtc/fdt.h is as follows,
It does not have a member named [name].

struct fdt_header {
	fdt32_t magic;			 /* magic word FDT_MAGIC */
	fdt32_t totalsize;		 /* total size of DT block */
	fdt32_t off_dt_struct;		 /* offset to structure */
	fdt32_t off_dt_strings;		 /* offset to strings */
	fdt32_t off_mem_rsvmap;		 /* offset to memory reserve map */
	fdt32_t version;		 /* format version */
	fdt32_t last_comp_version;	 /* last compatible version */

	/* version 2 fields below */
	fdt32_t boot_cpuid_phys;	 /* Which physical CPU id we're
					    booting on */
	/* version 3 fields below */
	fdt32_t size_dt_strings;	 /* size of the strings block */

	/* version 17 fields below */
	fdt32_t size_dt_struct;		 /* size of the structure block */
};

But in dtc/libfdt.h : 264

260:#define fdt_set_hdr_(name) \
261:	static inline void fdt_set_##name(void *fdt, uint32_t val) \
262:	{ \
263:		struct fdt_header *fdth = (struct fdt_header *)fdt; \
264:		fdth->name = cpu_to_fdt32(val); \
265:	}

Is that a BUG?

fdtoverlay does not support full path notion for a reference to another node in a cell array

fdtoverlay does not support full path notion for a reference to another node in a cell array.
e.g.: pendown-gpio = <&{/soc/aips-bus@2000000/gpio@20a4000} 3 0>;
/* <pendown-gpio = &gpio3 3 GPIO_ACTIVE_HIGH>; */
dtc is compiling an overlay with this notation in a sufficient manner.
With fdt_overlay.patch.txt applied it is working as expected.
With this in place and target_path even overlays can be written in a manner
where no symbols node in the base dtb is required.

Some of the new functions are missing from the version.lds file.

I was working the a 1.4.1 version built on the OpenSuSE factory build setup and found that the fdt_first_subnode() function wasn't usable from the shared library. I found a few other functions that were listed in the .h file were also marked as locals in the shared library. The list I patched into version.lds was

    fdt_first_subnode;
    fdt_next_subnode;
    fdt_address_cells;
    fdt_size_cells;
    fdt_stringlist_contains;
    fdt_resize;

I don't know if any others are missing or if there are extras.

fs.test_tree1.test.dts aborted on ppc64 and s390x

I get a test abort after commit 8c59a97 in our CI. It's possibly a big endian problem.

[sharkcz@tyan-openpower-01 dtc]$ coredumpctl gdb 10461
           PID: 10461 (dtc)
           UID: 1000 (sharkcz)
           GID: 1000 (sharkcz)
        Signal: 6 (ABRT)
     Timestamp: Wed 2018-09-26 10:40:30 CEST (21s ago)
  Command Line: ../dtc -I fs -O dts -o fs.test_tree1.test.dts fs/test_tree1
    Executable: /home/sharkcz/projects/dtc/dtc
 Control Group: /user.slice/user-1000.slice/session-39.scope
          Unit: session-39.scope
         Slice: user-1000.slice
       Session: 39
     Owner UID: 1000 (sharkcz)
       Boot ID: b0cee110e5ae499ba7f1d88e1f962ca6
    Machine ID: 46314d274cbd40d682e18963081ae0b7
      Hostname: tyan-openpower-01
       Storage: /var/lib/systemd/coredump/core.dtc.1000.b0cee110e5ae499ba7f1d88e1f962ca6.10461.1537951230000000.lz4
       Message: Process 10461 (dtc) of user 1000 dumped core.
                
                Stack trace of thread 10461:
                #0  0x00007fff8bf37a04 raise (libc.so.6)
                #1  0x00007fff8bf183a8 abort (libc.so.6)
                #2  0x00007fff8bf2b6b0 __assert_fail_base (libc.so.6)
                #3  0x00007fff8bf2b74c __assert_fail (libc.so.6)
                #4  0x000000001000f08c n/a (/home/sharkcz/projects/dtc/dtc)
                #5  0x000000001000f08c n/a (/home/sharkcz/projects/dtc/dtc)
                #6  0x000000001000f788 n/a (/home/sharkcz/projects/dtc/dtc)
                #7  0x0000000010002e14 n/a (/home/sharkcz/projects/dtc/dtc)
                #8  0x00007fff8bf18a08 generic_start_main.isra.0 (libc.so.6)
                #9  0x00007ffff12cf5e7 n/a (n/a)
                #10 0x00007ffff12cf5e7 n/a (n/a)
                #11 0x6f6e650053454c49 n/a (n/a)

GNU gdb (GDB) Fedora 8.1.1-3.fc28
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "ppc64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/sharkcz/projects/dtc/dtc...done.
[New LWP 10461]
Core was generated by `../dtc -I fs -O dts -o fs.test_tree1.test.dts fs/test_tree1 '.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007fff8bf37a04 in .raise () from /lib64/power8/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.27-32.fc28.ppc64 libyaml-0.1.7-5.fc28.ppc64
(gdb) where
#0  0x00007fff8bf37a04 in .raise () from /lib64/power8/libc.so.6
#1  0x00007fff8bf183a8 in .abort () from /lib64/power8/libc.so.6
#2  0x00007fff8bf2b6b0 in .__assert_fail_base () from /lib64/power8/libc.so.6
#3  0x00007fff8bf2b74c in .__assert_fail () from /lib64/power8/libc.so.6
#4  0x000000001000f08c in write_propval_string (len=0, s=<optimized out>, f=<optimized out>) at treesource.c:67
#5  write_propval (prop=0x10039f08d10, f=0x10039f08330) at treesource.c:259
#6  write_tree_source_node (f=f@entry=0x10039f08330, tree=0x10039f082a0, level=level@entry=0) at treesource.c:294
#7  0x000000001000f788 in dt_to_source (f=0x10039f08330, dti=0x10039f08630) at treesource.c:321
#8  0x0000000010002e14 in main (argc=<optimized out>, argv=0x7ffff12cc078) at dtc.c:357
(gdb) q

Doesn't support nested device trees?

I have a FDT blob which contains three sub tree's:

/dts-v1/;
fdts {
   fdt@1 {
      platform_name = "imx6sll-a.dtb";
      property1 = "blah";
      property2 = "blah";
      property3 = "blah";
   fdt@2 {
      platform_name = "imx6sll-b-wfo.dtb";
      property1 = "blah";
      property2 = "blah";
      property3 = "blah";
   fdt@3 {
      platform_name = "imx6sll-b-wan.dtb";
      property1 = "blah";
      property2 = "blah";
      property3 = "blah";

If I try to convert it to string format, all the properties of each of the subtree's get converted to a giant array of bytes :

/dts-v1/;

/ {

        fdts {

                fdt@1 {
                        platform_name = "imx6sll-a.dtb";
                        data = [d0 0d fe ed 00 00 76 8b 00 00 00 38 00 00 6e 28 00 00 00 28 00 00 00 11 00 00 00 10 00 00 00 00 00 00 08 63 00 00 6d f0 00 00 00 00 etc etc

Could there be support for such cases added ?

Unchecked return value in fdt_add_subnode_namelen()

RTEMS (RTEMS.org) is a free single process, multi-threaded real-time operating system with a long history. Your dtc toolchain has been incorporated into RTEMS. The RTEMS Project is a member of the Coverity Scan program and it flagged an issue with /dtc/libfdt/fdt_rw.c. In trying to be good citizens of the wider open source community, the project wants these issues to be reported to the upstream owner along with a fix or suggestions. This is one of those reports.

When Coverity Scan was ran on some of your code, a "Unchecked return value" error was found at line 352 in fdt_rw.c. For similar errors that we received for RTEMS, we created a macro that will assert the value returned and "use" the return value like so.

int status = fdt_next_tag(fdt, parentoffset, &nextoffset);
assert(status == 0);
(void)status;

You can just use the "(void)fdt_next_tag()" if you don't care to check the return value of the functional call at all, but this is just a suggestion.

## Skipping pylibfdt (install python dev and swig to build)

zhou@ubuntu:~/qemu/dtc$ make
CHK version_gen.h
LEX convert-dtsv0-lexer.lex.c
make: flex: Command not found
BISON dtc-parser.tab.c
make: bison: Command not found
LEX dtc-lexer.lex.c
make: flex: Command not found

Skipping pylibfdt (install python dev and swig to build)

Char subscript error in Cygwin

I'm getting the following error when building in Cygwin

checks.c:1183:52: error: array subscript has type 'char' [-Werror=char-subscripts]
1183 | if (unitname[0] == '0' && isxdigit(unitname[1]))

I guess all that needs to be done is to do a type cast on the '1'?

String lists in files converted from DTB to DTS

Converting a DTB file to DTS, that contains a list of strings seems to be broken. The null-character that is separating the strings gets interpreted as a literal null-character.

For example using this simple DTS as source:

$ cat stringlist.dts
/dts-v1/;

/ {
        stringlist1 = "foobar";
        stringlist2 = "hello,world", "foobar";
        stringlist3 = "hello", "world";
        nulllist1= "hello\0world", "foobar";
        nulllist2 = "hello,world", "\0";
        nulllist3 = "hello\0world", "\0";
};

Converting to DTB and back to DTS using v1.6.0 (i.e. latest commit) I get:

$ ./dtc -I dts -O dtb stringlist.dts | ./dtc -I dtb -O dts /dev/stdin
/dts-v1/;

/ {
        stringlist1 = "foobar";
        stringlist2 = "hello,world\0foobar";
        stringlist3 = "hello\0world";
        nulllist1 = "hello\0world\0foobar";
        nulllist2 = "hello,world\0\0";
        nulllist3 = "hello\0world\0\0";
};

Using v1.4.6 I get what I believe is the correct result:

$ ./dtc -I dts -O dtb stringlist.dts | ./dtc -I dtb -O dts /dev/stdin
/dts-v1/;

/ {
        stringlist1 = "foobar";
        stringlist2 = "hello,world", "foobar";
        stringlist3 = "hello", "world";
        nulllist1 = "hello", "world", "foobar";
        nulllist2 = "hello,world", "", "";
        nulllist3 = "hello", "world", "", "";
};

The commit that introduces this is 32b9c61 . I'm new to device trees in general, and to the DTC source code, so I'm uncertain how this is supposed to work, if it's the parsing of the DTB or writing the DTS that is wrong.

This commit also includes a test, but that test only converts DTS to DTS, which doesn't trigger this issue. I.e. using v.1.6.0 (latest commit):

$ ./dtc -I dts -O dts stringlist.dts
/dts-v1/;

/ {
        stringlist1 = "foobar";
        stringlist2 = "hello,world", "foobar";
        stringlist3 = "hello", "world";
        nulllist1 = "hello\0world", "foobar";
        nulllist2 = "hello,world", "\0";
        nulllist3 = "hello\0world", "\0";
};

Python test suite fails

With current master the Python test suite fails:

FAIL: testHeader (__main__.PyLibfdtBasicTests)
Test that we can access the header values
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./pylibfdt_tests.py", line 295, in testHeader
    self.assertEqual(self.fdt.size_dt_strings(), 105)
AssertionError: 97 != 105

cannot static cross compile

Hi,
Im using arm-linux-gnueabi-gcc to compile dtc, inorder to use it on TWRP recovery, but when I run

~/dtc# make NO_PYTHON=1 CC=arm-linux-gnueabi-gcc CFLAGS=-static -s

it always say

dtc.o: In function `main':
dtc.c:(.text+0xd00): undefined reference to `dt_to_yaml'
collect2: error: ld returned 1 exit status
Makefile:338: recipe for target 'dtc' failed
make: *** [dtc] Error 1

Could you please tell me what to do , thank you!!!

1.7.0: install target fails on

setuptools 67.6.1.

meson and meson build output:

+ /usr/bin/meson setup --buildtype=plain --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/libexec --bindir=/usr/bin --sbindir=/usr/sbin --includedir=/usr/include --datadir=/usr/share --mandir=/usr/share/man --infodir=/usr/share/info --localedir=/usr/share/locale --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib --wrap-mode=nodownload --auto-features=enabled . x86_64-redhat-linux-gnu -D python=enabled -D tools=true -D valgrind=enabled -D yaml=enabled
The Meson build system
Version: 1.1.0
Source dir: /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0
Build dir: /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu
Build type: native build
Project name: dtc
Project version: 1.6.0
C compiler for the host machine: /usr/bin/gcc (gcc 13.0.1 "gcc (GCC) 13.0.1 20230404 (Red Hat 13.0.1-0)")
C linker for the host machine: /usr/bin/gcc ld.bfd 2.40-2
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wcast-qual: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wredundant-decls: YES
Compiler for C supports arguments -Wshadow: YES
Found pkg-config: /usr/bin/pkg-config (1.9.4)
Run-time dependency yaml-0.1 found: YES 0.2.5
Run-time dependency valgrind found: YES 3.20.0
Program python3 found: YES (/usr/bin/python3)
Program swig found: YES (/usr/bin/swig)
Compiler for C supports link arguments -Wl,--version-script=/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/libfdt/version.lds: YES
Program flex found: YES (/usr/bin/flex)
Program bison found: YES (/usr/bin/bison)
Check usable header "fnmatch.h" : YES
Program ../setup.py found: YES (/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/pylibfdt/../setup.py)
Library dl found: YES
Program run_tests.sh found: YES (/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/tests/run_tests.sh)
Build targets in project: 84

dtc 1.6.0

  User defined options
    auto_features : enabled
    bindir        : /usr/bin
    buildtype     : plain
    datadir       : /usr/share
    includedir    : /usr/include
    infodir       : /usr/share/info
    libdir        : /usr/lib64
    libexecdir    : /usr/libexec
    localedir     : /usr/share/locale
    localstatedir : /var
    mandir        : /usr/share/man
    prefix        : /usr
    sbindir       : /usr/sbin
    sharedstatedir: /var/lib
    sysconfdir    : /etc
    wrap_mode     : nodownload
    python        : enabled
    tools         : true
    valgrind      : enabled
    yaml          : enabled

Found ninja-1.11.1 at /usr/bin/ninja
+ /usr/bin/meson compile -C x86_64-redhat-linux-gnu -j 48 --verbose
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu -j 48 -v
ninja: Entering directory `/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu'
[1/346] /usr/bin/flex -o dtc.p/dtc-lexer.l.lex.c ../dtc-lexer.l
[2/346] /usr/bin/flex -o convert-dtsv0.p/convert-dtsv0-lexer.l.lex.c ../convert-dtsv0-lexer.l


[..]

[100/346] /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/pylibfdt/../setup.py --quiet --top-builddir /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu build_ext --build-lib=/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu/pylibfdt
/usr/lib/python3.8/site-packages/setuptools/__init__.py:85: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`.
  dist.fetch_build_eggs(dist.setup_requires)
WARNING: The wheel package is not available.

And install fails with

+ cd dtc-1.7.0
+ DESTDIR=/home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64
+ /usr/bin/meson install -C x86_64-redhat-linux-gnu --no-rebuild
Installing libfdt/libfdt.so.1.6.0 to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/lib64
Installing libfdt/libfdt.a to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/lib64
Installing convert-dtsv0 to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/bin
Installing dtc to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/bin
Installing fdtdump to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/bin
Installing fdtget to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/bin
Installing fdtput to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/bin
Installing fdtoverlay to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/bin
Installing /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/libfdt/fdt.h to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/include/
Installing /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/libfdt/libfdt.h to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/include/
Installing /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/libfdt/libfdt_env.h to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/include/
Installing /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu/meson-private/libfdt.pc to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/lib64/pkgconfig
Installing /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/dtdiff to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/bin
Installing symlink pointing to libfdt.so.1.6.0 to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/lib64/libfdt.so.1
Installing symlink pointing to libfdt.so.1 to /home/tkloczko/rpmbuild/BUILDROOT/dtc-1.7.0-2.fc35.x86_64/usr/lib64/libfdt.so
Running custom install script '/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/pylibfdt/../setup.py --quiet --top-builddir /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu install --prefix=/usr --root=$DESTDIR'
/usr/lib/python3.8/site-packages/setuptools/__init__.py:85: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`.
  dist.fetch_build_eggs(dist.setup_requires)
WARNING: The wheel package is not available.
Traceback (most recent call last):
  File "/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/pylibfdt/../setup.py", line 50, in <module>
    setup(
  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 108, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 147, in setup
    _setup_distribution = dist = klass(attrs)
  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 488, in __init__
    _Distribution.__init__(
  File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 283, in __init__
    self.finalize_options()
  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 912, in finalize_options
    ep(self)
  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 932, in _finalize_setup_keywords
    ep.load()(self, ep.name, value)
  File "/usr/lib/python3.8/site-packages/setuptools_scm/integration.py", line 91, in version_keyword
    _assign_version(dist, config)
  File "/usr/lib/python3.8/site-packages/setuptools_scm/integration.py", line 63, in _assign_version
    _version_missing(config)
  File "/usr/lib/python3.8/site-packages/setuptools_scm/__init__.py", line 108, in _version_missing
    raise LookupError(
LookupError: setuptools-scm was unable to detect version for /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0.

Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.

For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj
FAILED: install script '/home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/pylibfdt/../setup.py --quiet --top-builddir /home/tkloczko/rpmbuild/BUILD/dtc-1.7.0/x86_64-redhat-linux-gnu install --prefix=/usr --root=$DESTDIR' exit code 1, stopped

Typical pep517 build and istall procedure without pip consit from:

  • python -sBm build -w --no-isolation
    this will generate .wh in dist/ subdirectory
  • python -sBm installer dist/*.whl --destdir $(DESTDIR)

Line numbers?

It would be really helpful if errors like "FATAL ERROR: Unable to parse input tree" could include a line number where the error is. I'm trying to work with a dts file I didn't make myself that's over 1000 lines long and I have no idea where to look.

libfdt/fdt_overlay.c has ambiguous license

libfdt/fdt_overlay.c has no license header, and libfdt/ has no LICENSE file of its own, which makes it unclear whether fdt_overlay.c may be distributed under the same terms as the remainder of libfdt, or under the GPL which covers dtc and other parts of the code.

Cannot create a new property with fdt_appendprop()

Hello, could you help me with the issue described below?
According to libfdt.h:
"fdt_appendprop - append to or create a property...
fdt_appendprop() appends the value to the named property in the
given node, creating the property if it does not already exist."

I'm trying to create a new property with a name of 14 bytes length in the existing node, but getting error -FDT_ERR_NOSPACE, which is returned by fdt_splice_() after failing check:
if ((end - oldlen + newlen) > ((char *)fdt + fdt_totalsize(fdt))) {
return -FDT_ERR_NOSPACE;
}
Debug output:
ERROR: fdt_splice_string_() fdt = 0x4001010 newlen 14
ERROR: p = 0x4001226
ERROR: fdt_splice_() fdt = 0x4001010 oldlen = 0 newlen 14
ERROR: p 0x4001226 end 0x4001226 fdt_totalsize 534 fdt_data_size 534
ERROR: FDT_ERR_NOSPACE

Does "if" statement fail because fdt_totalsize = fdt_data_size, or I'm doing something wrong here?
Thanks.

New release planned?

v1.6.1 was released on June 8th, 2021. Are there plans for a new release in near future? Are there blockers I could help with?

dtc tests fail at 32-bit platform

I am trying to build package for 32bit Linux environment and see that a lot of tests are failing. It looks like most of these tests are because of missing 64bit types, number truncation.

get_mem_rsv test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node test_tree1.dtb:	PASS
find_property test_tree1.dtb:	PASS
subnode_offset test_tree1.dtb:	PASS
path_offset test_tree1.dtb:	PASS
get_name test_tree1.dtb:	PASS
getprop test_tree1.dtb:	PASS
get_phandle test_tree1.dtb:	PASS
get_path test_tree1.dtb:	PASS
supernode_atdepth_offset test_tree1.dtb:	PASS
parent_offset test_tree1.dtb:	PASS
node_offset_by_prop_value test_tree1.dtb:	PASS
node_offset_by_phandle test_tree1.dtb:	PASS
node_check_compatible test_tree1.dtb:	PASS
node_offset_by_compatible test_tree1.dtb:	PASS
notfound test_tree1.dtb:	PASS
setprop_inplace test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property test_tree1.dtb:	PASS
nop_node test_tree1.dtb:	PASS
dtc -I dts -O dtb -o addresses.test.dtb addresses.dts:	PASS
addr_size_cells addresses.test.dtb:	PASS
dtc -I dts -O dtb -o stringlist.test.dtb stringlist.dts:	PASS
stringlist stringlist.test.dtb:	PASS
sw_tree1:	PASS
get_mem_rsv sw_tree1.test.dtb:	PASS
root_node sw_tree1.test.dtb:	PASS
find_property sw_tree1.test.dtb:	PASS
subnode_offset sw_tree1.test.dtb:	PASS
path_offset sw_tree1.test.dtb:	PASS
get_name sw_tree1.test.dtb:	PASS
getprop sw_tree1.test.dtb:	PASS
get_phandle sw_tree1.test.dtb:	PASS
get_path sw_tree1.test.dtb:	PASS
supernode_atdepth_offset sw_tree1.test.dtb:	PASS
parent_offset sw_tree1.test.dtb:	PASS
node_offset_by_prop_value sw_tree1.test.dtb:	PASS
node_offset_by_phandle sw_tree1.test.dtb:	PASS
node_check_compatible sw_tree1.test.dtb:	PASS
node_offset_by_compatible sw_tree1.test.dtb:	PASS
notfound sw_tree1.test.dtb:	PASS
setprop_inplace sw_tree1.test.dtb:	PASS
nop_property sw_tree1.test.dtb:	PASS
nop_node sw_tree1.test.dtb:	PASS
get_mem_rsv unfinished_tree1.test.dtb:	PASS
root_node unfinished_tree1.test.dtb:	PASS
find_property unfinished_tree1.test.dtb:	PASS
subnode_offset unfinished_tree1.test.dtb:	PASS
path_offset unfinished_tree1.test.dtb:	PASS
get_name unfinished_tree1.test.dtb:	PASS
getprop unfinished_tree1.test.dtb:	PASS
get_phandle unfinished_tree1.test.dtb:	PASS
get_path unfinished_tree1.test.dtb:	PASS
supernode_atdepth_offset unfinished_tree1.test.dtb:	PASS
parent_offset unfinished_tree1.test.dtb:	PASS
node_offset_by_prop_value unfinished_tree1.test.dtb:	PASS
node_offset_by_phandle unfinished_tree1.test.dtb:	PASS
node_check_compatible unfinished_tree1.test.dtb:	PASS
node_offset_by_compatible unfinished_tree1.test.dtb:	PASS
notfound unfinished_tree1.test.dtb:	PASS
setprop_inplace unfinished_tree1.test.dtb:	PASS
nop_property unfinished_tree1.test.dtb:	PASS
nop_node unfinished_tree1.test.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb:	FAIL	Mismatch in reserve entry 0: (0x0, 0x100000) != (0xdeadbeef00000000, 0x100000)
sw_tree1 resize:	PASS
get_mem_rsv sw_tree1.test.dtb:	PASS
root_node sw_tree1.test.dtb:	PASS
find_property sw_tree1.test.dtb:	PASS
subnode_offset sw_tree1.test.dtb:	PASS
path_offset sw_tree1.test.dtb:	PASS
get_name sw_tree1.test.dtb:	PASS
getprop sw_tree1.test.dtb:	PASS
get_phandle sw_tree1.test.dtb:	PASS
get_path sw_tree1.test.dtb:	PASS
supernode_atdepth_offset sw_tree1.test.dtb:	PASS
parent_offset sw_tree1.test.dtb:	PASS
node_offset_by_prop_value sw_tree1.test.dtb:	PASS
node_offset_by_phandle sw_tree1.test.dtb:	PASS
node_check_compatible sw_tree1.test.dtb:	PASS
node_offset_by_compatible sw_tree1.test.dtb:	PASS
notfound sw_tree1.test.dtb:	PASS
setprop_inplace sw_tree1.test.dtb:	PASS
nop_property sw_tree1.test.dtb:	PASS
nop_node sw_tree1.test.dtb:	PASS
get_mem_rsv unfinished_tree1.test.dtb:	PASS
root_node unfinished_tree1.test.dtb:	PASS
find_property unfinished_tree1.test.dtb:	PASS
subnode_offset unfinished_tree1.test.dtb:	PASS
path_offset unfinished_tree1.test.dtb:	PASS
get_name unfinished_tree1.test.dtb:	PASS
getprop unfinished_tree1.test.dtb:	PASS
get_phandle unfinished_tree1.test.dtb:	PASS
get_path unfinished_tree1.test.dtb:	PASS
supernode_atdepth_offset unfinished_tree1.test.dtb:	PASS
parent_offset unfinished_tree1.test.dtb:	PASS
node_offset_by_prop_value unfinished_tree1.test.dtb:	PASS
node_offset_by_phandle unfinished_tree1.test.dtb:	PASS
node_check_compatible unfinished_tree1.test.dtb:	PASS
node_offset_by_compatible unfinished_tree1.test.dtb:	PASS
notfound unfinished_tree1.test.dtb:	PASS
setprop_inplace unfinished_tree1.test.dtb:	PASS
nop_property unfinished_tree1.test.dtb:	PASS
nop_node unfinished_tree1.test.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb:	FAIL	Mismatch in reserve entry 0: (0x0, 0x100000) != (0xdeadbeef00000000, 0x100000)
sw_tree1 realloc:	PASS
get_mem_rsv sw_tree1.test.dtb:	PASS
root_node sw_tree1.test.dtb:	PASS
find_property sw_tree1.test.dtb:	PASS
subnode_offset sw_tree1.test.dtb:	PASS
path_offset sw_tree1.test.dtb:	PASS
get_name sw_tree1.test.dtb:	PASS
getprop sw_tree1.test.dtb:	PASS
get_phandle sw_tree1.test.dtb:	PASS
get_path sw_tree1.test.dtb:	PASS
supernode_atdepth_offset sw_tree1.test.dtb:	PASS
parent_offset sw_tree1.test.dtb:	PASS
node_offset_by_prop_value sw_tree1.test.dtb:	PASS
node_offset_by_phandle sw_tree1.test.dtb:	PASS
node_check_compatible sw_tree1.test.dtb:	PASS
node_offset_by_compatible sw_tree1.test.dtb:	PASS
notfound sw_tree1.test.dtb:	PASS
setprop_inplace sw_tree1.test.dtb:	PASS
nop_property sw_tree1.test.dtb:	PASS
nop_node sw_tree1.test.dtb:	PASS
get_mem_rsv unfinished_tree1.test.dtb:	PASS
root_node unfinished_tree1.test.dtb:	PASS
find_property unfinished_tree1.test.dtb:	PASS
subnode_offset unfinished_tree1.test.dtb:	PASS
path_offset unfinished_tree1.test.dtb:	PASS
get_name unfinished_tree1.test.dtb:	PASS
getprop unfinished_tree1.test.dtb:	PASS
get_phandle unfinished_tree1.test.dtb:	PASS
get_path unfinished_tree1.test.dtb:	PASS
supernode_atdepth_offset unfinished_tree1.test.dtb:	PASS
parent_offset unfinished_tree1.test.dtb:	PASS
node_offset_by_prop_value unfinished_tree1.test.dtb:	PASS
node_offset_by_phandle unfinished_tree1.test.dtb:	PASS
node_check_compatible unfinished_tree1.test.dtb:	PASS
node_offset_by_compatible unfinished_tree1.test.dtb:	PASS
notfound unfinished_tree1.test.dtb:	PASS
setprop_inplace unfinished_tree1.test.dtb:	PASS
nop_property unfinished_tree1.test.dtb:	PASS
nop_node unfinished_tree1.test.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb sw_tree1.test.dtb:	FAIL	Mismatch in reserve entry 0: (0x0, 0x100000) != (0xdeadbeef00000000, 0x100000)
move_and_save test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb moved.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb shunted.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb deshunted.test_tree1.dtb:	PASS
move_and_save sw_tree1.test.dtb:	PASS
dtbs_equal_ordered sw_tree1.test.dtb moved.sw_tree1.test.dtb:	PASS
dtbs_equal_ordered sw_tree1.test.dtb shunted.sw_tree1.test.dtb:	PASS
dtbs_equal_ordered sw_tree1.test.dtb deshunted.sw_tree1.test.dtb:	PASS
move_and_save unfinished_tree1.test.dtb:	PASS
dtbs_equal_ordered unfinished_tree1.test.dtb moved.unfinished_tree1.test.dtb:	PASS
dtbs_equal_ordered unfinished_tree1.test.dtb shunted.unfinished_tree1.test.dtb:	PASS
dtbs_equal_ordered unfinished_tree1.test.dtb deshunted.unfinished_tree1.test.dtb:	PASS
mangle-layout test_tree1.dtb 17 mts:	PASS
get_mem_rsv v17.mts.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v17.mts.test_tree1.dtb:	PASS
find_property v17.mts.test_tree1.dtb:	PASS
subnode_offset v17.mts.test_tree1.dtb:	PASS
path_offset v17.mts.test_tree1.dtb:	PASS
get_name v17.mts.test_tree1.dtb:	PASS
getprop v17.mts.test_tree1.dtb:	PASS
get_phandle v17.mts.test_tree1.dtb:	PASS
get_path v17.mts.test_tree1.dtb:	PASS
supernode_atdepth_offset v17.mts.test_tree1.dtb:	PASS
parent_offset v17.mts.test_tree1.dtb:	PASS
node_offset_by_prop_value v17.mts.test_tree1.dtb:	PASS
node_offset_by_phandle v17.mts.test_tree1.dtb:	PASS
node_check_compatible v17.mts.test_tree1.dtb:	PASS
node_offset_by_compatible v17.mts.test_tree1.dtb:	PASS
notfound v17.mts.test_tree1.dtb:	PASS
setprop_inplace v17.mts.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v17.mts.test_tree1.dtb:	PASS
nop_node v17.mts.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v17.mts.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 17 mst:	PASS
get_mem_rsv v17.mst.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v17.mst.test_tree1.dtb:	PASS
find_property v17.mst.test_tree1.dtb:	PASS
subnode_offset v17.mst.test_tree1.dtb:	PASS
path_offset v17.mst.test_tree1.dtb:	PASS
get_name v17.mst.test_tree1.dtb:	PASS
getprop v17.mst.test_tree1.dtb:	PASS
get_phandle v17.mst.test_tree1.dtb:	PASS
get_path v17.mst.test_tree1.dtb:	PASS
supernode_atdepth_offset v17.mst.test_tree1.dtb:	PASS
parent_offset v17.mst.test_tree1.dtb:	PASS
node_offset_by_prop_value v17.mst.test_tree1.dtb:	PASS
node_offset_by_phandle v17.mst.test_tree1.dtb:	PASS
node_check_compatible v17.mst.test_tree1.dtb:	PASS
node_offset_by_compatible v17.mst.test_tree1.dtb:	PASS
notfound v17.mst.test_tree1.dtb:	PASS
setprop_inplace v17.mst.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v17.mst.test_tree1.dtb:	PASS
nop_node v17.mst.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v17.mst.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 17 tms:	PASS
get_mem_rsv v17.tms.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v17.tms.test_tree1.dtb:	PASS
find_property v17.tms.test_tree1.dtb:	PASS
subnode_offset v17.tms.test_tree1.dtb:	PASS
path_offset v17.tms.test_tree1.dtb:	PASS
get_name v17.tms.test_tree1.dtb:	PASS
getprop v17.tms.test_tree1.dtb:	PASS
get_phandle v17.tms.test_tree1.dtb:	PASS
get_path v17.tms.test_tree1.dtb:	PASS
supernode_atdepth_offset v17.tms.test_tree1.dtb:	PASS
parent_offset v17.tms.test_tree1.dtb:	PASS
node_offset_by_prop_value v17.tms.test_tree1.dtb:	PASS
node_offset_by_phandle v17.tms.test_tree1.dtb:	PASS
node_check_compatible v17.tms.test_tree1.dtb:	PASS
node_offset_by_compatible v17.tms.test_tree1.dtb:	PASS
notfound v17.tms.test_tree1.dtb:	PASS
setprop_inplace v17.tms.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v17.tms.test_tree1.dtb:	PASS
nop_node v17.tms.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v17.tms.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 17 tsm:	PASS
get_mem_rsv v17.tsm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v17.tsm.test_tree1.dtb:	PASS
find_property v17.tsm.test_tree1.dtb:	PASS
subnode_offset v17.tsm.test_tree1.dtb:	PASS
path_offset v17.tsm.test_tree1.dtb:	PASS
get_name v17.tsm.test_tree1.dtb:	PASS
getprop v17.tsm.test_tree1.dtb:	PASS
get_phandle v17.tsm.test_tree1.dtb:	PASS
get_path v17.tsm.test_tree1.dtb:	PASS
supernode_atdepth_offset v17.tsm.test_tree1.dtb:	PASS
parent_offset v17.tsm.test_tree1.dtb:	PASS
node_offset_by_prop_value v17.tsm.test_tree1.dtb:	PASS
node_offset_by_phandle v17.tsm.test_tree1.dtb:	PASS
node_check_compatible v17.tsm.test_tree1.dtb:	PASS
node_offset_by_compatible v17.tsm.test_tree1.dtb:	PASS
notfound v17.tsm.test_tree1.dtb:	PASS
setprop_inplace v17.tsm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v17.tsm.test_tree1.dtb:	PASS
nop_node v17.tsm.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v17.tsm.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 17 smt:	PASS
get_mem_rsv v17.smt.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v17.smt.test_tree1.dtb:	PASS
find_property v17.smt.test_tree1.dtb:	PASS
subnode_offset v17.smt.test_tree1.dtb:	PASS
path_offset v17.smt.test_tree1.dtb:	PASS
get_name v17.smt.test_tree1.dtb:	PASS
getprop v17.smt.test_tree1.dtb:	PASS
get_phandle v17.smt.test_tree1.dtb:	PASS
get_path v17.smt.test_tree1.dtb:	PASS
supernode_atdepth_offset v17.smt.test_tree1.dtb:	PASS
parent_offset v17.smt.test_tree1.dtb:	PASS
node_offset_by_prop_value v17.smt.test_tree1.dtb:	PASS
node_offset_by_phandle v17.smt.test_tree1.dtb:	PASS
node_check_compatible v17.smt.test_tree1.dtb:	PASS
node_offset_by_compatible v17.smt.test_tree1.dtb:	PASS
notfound v17.smt.test_tree1.dtb:	PASS
setprop_inplace v17.smt.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v17.smt.test_tree1.dtb:	PASS
nop_node v17.smt.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v17.smt.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 17 stm:	PASS
get_mem_rsv v17.stm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v17.stm.test_tree1.dtb:	PASS
find_property v17.stm.test_tree1.dtb:	PASS
subnode_offset v17.stm.test_tree1.dtb:	PASS
path_offset v17.stm.test_tree1.dtb:	PASS
get_name v17.stm.test_tree1.dtb:	PASS
getprop v17.stm.test_tree1.dtb:	PASS
get_phandle v17.stm.test_tree1.dtb:	PASS
get_path v17.stm.test_tree1.dtb:	PASS
supernode_atdepth_offset v17.stm.test_tree1.dtb:	PASS
parent_offset v17.stm.test_tree1.dtb:	PASS
node_offset_by_prop_value v17.stm.test_tree1.dtb:	PASS
node_offset_by_phandle v17.stm.test_tree1.dtb:	PASS
node_check_compatible v17.stm.test_tree1.dtb:	PASS
node_offset_by_compatible v17.stm.test_tree1.dtb:	PASS
notfound v17.stm.test_tree1.dtb:	PASS
setprop_inplace v17.stm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v17.stm.test_tree1.dtb:	PASS
nop_node v17.stm.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v17.stm.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 16 mts:	PASS
get_mem_rsv v16.mts.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v16.mts.test_tree1.dtb:	PASS
find_property v16.mts.test_tree1.dtb:	PASS
subnode_offset v16.mts.test_tree1.dtb:	PASS
path_offset v16.mts.test_tree1.dtb:	PASS
get_name v16.mts.test_tree1.dtb:	PASS
getprop v16.mts.test_tree1.dtb:	PASS
get_phandle v16.mts.test_tree1.dtb:	PASS
get_path v16.mts.test_tree1.dtb:	PASS
supernode_atdepth_offset v16.mts.test_tree1.dtb:	PASS
parent_offset v16.mts.test_tree1.dtb:	PASS
node_offset_by_prop_value v16.mts.test_tree1.dtb:	PASS
node_offset_by_phandle v16.mts.test_tree1.dtb:	PASS
node_check_compatible v16.mts.test_tree1.dtb:	PASS
node_offset_by_compatible v16.mts.test_tree1.dtb:	PASS
notfound v16.mts.test_tree1.dtb:	PASS
setprop_inplace v16.mts.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v16.mts.test_tree1.dtb:	PASS
nop_node v16.mts.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v16.mts.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 16 mst:	PASS
get_mem_rsv v16.mst.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v16.mst.test_tree1.dtb:	PASS
find_property v16.mst.test_tree1.dtb:	PASS
subnode_offset v16.mst.test_tree1.dtb:	PASS
path_offset v16.mst.test_tree1.dtb:	PASS
get_name v16.mst.test_tree1.dtb:	PASS
getprop v16.mst.test_tree1.dtb:	PASS
get_phandle v16.mst.test_tree1.dtb:	PASS
get_path v16.mst.test_tree1.dtb:	PASS
supernode_atdepth_offset v16.mst.test_tree1.dtb:	PASS
parent_offset v16.mst.test_tree1.dtb:	PASS
node_offset_by_prop_value v16.mst.test_tree1.dtb:	PASS
node_offset_by_phandle v16.mst.test_tree1.dtb:	PASS
node_check_compatible v16.mst.test_tree1.dtb:	PASS
node_offset_by_compatible v16.mst.test_tree1.dtb:	PASS
notfound v16.mst.test_tree1.dtb:	PASS
setprop_inplace v16.mst.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v16.mst.test_tree1.dtb:	PASS
nop_node v16.mst.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v16.mst.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 16 tms:	PASS
get_mem_rsv v16.tms.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v16.tms.test_tree1.dtb:	PASS
find_property v16.tms.test_tree1.dtb:	PASS
subnode_offset v16.tms.test_tree1.dtb:	PASS
path_offset v16.tms.test_tree1.dtb:	PASS
get_name v16.tms.test_tree1.dtb:	PASS
getprop v16.tms.test_tree1.dtb:	PASS
get_phandle v16.tms.test_tree1.dtb:	PASS
get_path v16.tms.test_tree1.dtb:	PASS
supernode_atdepth_offset v16.tms.test_tree1.dtb:	PASS
parent_offset v16.tms.test_tree1.dtb:	PASS
node_offset_by_prop_value v16.tms.test_tree1.dtb:	PASS
node_offset_by_phandle v16.tms.test_tree1.dtb:	PASS
node_check_compatible v16.tms.test_tree1.dtb:	PASS
node_offset_by_compatible v16.tms.test_tree1.dtb:	PASS
notfound v16.tms.test_tree1.dtb:	PASS
setprop_inplace v16.tms.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v16.tms.test_tree1.dtb:	PASS
nop_node v16.tms.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v16.tms.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 16 tsm:	PASS
get_mem_rsv v16.tsm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v16.tsm.test_tree1.dtb:	PASS
find_property v16.tsm.test_tree1.dtb:	PASS
subnode_offset v16.tsm.test_tree1.dtb:	PASS
path_offset v16.tsm.test_tree1.dtb:	PASS
get_name v16.tsm.test_tree1.dtb:	PASS
getprop v16.tsm.test_tree1.dtb:	PASS
get_phandle v16.tsm.test_tree1.dtb:	PASS
get_path v16.tsm.test_tree1.dtb:	PASS
supernode_atdepth_offset v16.tsm.test_tree1.dtb:	PASS
parent_offset v16.tsm.test_tree1.dtb:	PASS
node_offset_by_prop_value v16.tsm.test_tree1.dtb:	PASS
node_offset_by_phandle v16.tsm.test_tree1.dtb:	PASS
node_check_compatible v16.tsm.test_tree1.dtb:	PASS
node_offset_by_compatible v16.tsm.test_tree1.dtb:	PASS
notfound v16.tsm.test_tree1.dtb:	PASS
setprop_inplace v16.tsm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v16.tsm.test_tree1.dtb:	PASS
nop_node v16.tsm.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v16.tsm.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 16 smt:	PASS
get_mem_rsv v16.smt.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v16.smt.test_tree1.dtb:	PASS
find_property v16.smt.test_tree1.dtb:	PASS
subnode_offset v16.smt.test_tree1.dtb:	PASS
path_offset v16.smt.test_tree1.dtb:	PASS
get_name v16.smt.test_tree1.dtb:	PASS
getprop v16.smt.test_tree1.dtb:	PASS
get_phandle v16.smt.test_tree1.dtb:	PASS
get_path v16.smt.test_tree1.dtb:	PASS
supernode_atdepth_offset v16.smt.test_tree1.dtb:	PASS
parent_offset v16.smt.test_tree1.dtb:	PASS
node_offset_by_prop_value v16.smt.test_tree1.dtb:	PASS
node_offset_by_phandle v16.smt.test_tree1.dtb:	PASS
node_check_compatible v16.smt.test_tree1.dtb:	PASS
node_offset_by_compatible v16.smt.test_tree1.dtb:	PASS
notfound v16.smt.test_tree1.dtb:	PASS
setprop_inplace v16.smt.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v16.smt.test_tree1.dtb:	PASS
nop_node v16.smt.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v16.smt.test_tree1.dtb:	PASS
mangle-layout test_tree1.dtb 16 stm:	PASS
get_mem_rsv v16.stm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node v16.stm.test_tree1.dtb:	PASS
find_property v16.stm.test_tree1.dtb:	PASS
subnode_offset v16.stm.test_tree1.dtb:	PASS
path_offset v16.stm.test_tree1.dtb:	PASS
get_name v16.stm.test_tree1.dtb:	PASS
getprop v16.stm.test_tree1.dtb:	PASS
get_phandle v16.stm.test_tree1.dtb:	PASS
get_path v16.stm.test_tree1.dtb:	PASS
supernode_atdepth_offset v16.stm.test_tree1.dtb:	PASS
parent_offset v16.stm.test_tree1.dtb:	PASS
node_offset_by_prop_value v16.stm.test_tree1.dtb:	PASS
node_offset_by_phandle v16.stm.test_tree1.dtb:	PASS
node_check_compatible v16.stm.test_tree1.dtb:	PASS
node_offset_by_compatible v16.stm.test_tree1.dtb:	PASS
notfound v16.stm.test_tree1.dtb:	PASS
setprop_inplace v16.stm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property v16.stm.test_tree1.dtb:	PASS
nop_node v16.stm.test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb v16.stm.test_tree1.dtb:	PASS
open_pack v17.mts.test_tree1.dtb:	PASS
get_mem_rsv opened.v17.mts.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v17.mts.test_tree1.dtb:	PASS
find_property opened.v17.mts.test_tree1.dtb:	PASS
subnode_offset opened.v17.mts.test_tree1.dtb:	PASS
path_offset opened.v17.mts.test_tree1.dtb:	PASS
get_name opened.v17.mts.test_tree1.dtb:	PASS
getprop opened.v17.mts.test_tree1.dtb:	PASS
get_phandle opened.v17.mts.test_tree1.dtb:	PASS
get_path opened.v17.mts.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v17.mts.test_tree1.dtb:	PASS
parent_offset opened.v17.mts.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v17.mts.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v17.mts.test_tree1.dtb:	PASS
node_check_compatible opened.v17.mts.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v17.mts.test_tree1.dtb:	PASS
notfound opened.v17.mts.test_tree1.dtb:	PASS
setprop_inplace opened.v17.mts.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v17.mts.test_tree1.dtb:	PASS
nop_node opened.v17.mts.test_tree1.dtb:	PASS
get_mem_rsv repacked.v17.mts.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v17.mts.test_tree1.dtb:	PASS
find_property repacked.v17.mts.test_tree1.dtb:	PASS
subnode_offset repacked.v17.mts.test_tree1.dtb:	PASS
path_offset repacked.v17.mts.test_tree1.dtb:	PASS
get_name repacked.v17.mts.test_tree1.dtb:	PASS
getprop repacked.v17.mts.test_tree1.dtb:	PASS
get_phandle repacked.v17.mts.test_tree1.dtb:	PASS
get_path repacked.v17.mts.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v17.mts.test_tree1.dtb:	PASS
parent_offset repacked.v17.mts.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v17.mts.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v17.mts.test_tree1.dtb:	PASS
node_check_compatible repacked.v17.mts.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v17.mts.test_tree1.dtb:	PASS
notfound repacked.v17.mts.test_tree1.dtb:	PASS
setprop_inplace repacked.v17.mts.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v17.mts.test_tree1.dtb:	PASS
nop_node repacked.v17.mts.test_tree1.dtb:	PASS
set_name v17.mts.test_tree1.dtb:	PASS
setprop v17.mts.test_tree1.dtb:	PASS
del_property v17.mts.test_tree1.dtb:	PASS
del_node v17.mts.test_tree1.dtb:	PASS
set_name opened.v17.mts.test_tree1.dtb:	PASS
setprop opened.v17.mts.test_tree1.dtb:	PASS
del_property opened.v17.mts.test_tree1.dtb:	PASS
del_node opened.v17.mts.test_tree1.dtb:	PASS
set_name repacked.v17.mts.test_tree1.dtb:	PASS
setprop repacked.v17.mts.test_tree1.dtb:	PASS
del_property repacked.v17.mts.test_tree1.dtb:	PASS
del_node repacked.v17.mts.test_tree1.dtb:	PASS
open_pack v17.mst.test_tree1.dtb:	PASS
get_mem_rsv opened.v17.mst.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v17.mst.test_tree1.dtb:	PASS
find_property opened.v17.mst.test_tree1.dtb:	PASS
subnode_offset opened.v17.mst.test_tree1.dtb:	PASS
path_offset opened.v17.mst.test_tree1.dtb:	PASS
get_name opened.v17.mst.test_tree1.dtb:	PASS
getprop opened.v17.mst.test_tree1.dtb:	PASS
get_phandle opened.v17.mst.test_tree1.dtb:	PASS
get_path opened.v17.mst.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v17.mst.test_tree1.dtb:	PASS
parent_offset opened.v17.mst.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v17.mst.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v17.mst.test_tree1.dtb:	PASS
node_check_compatible opened.v17.mst.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v17.mst.test_tree1.dtb:	PASS
notfound opened.v17.mst.test_tree1.dtb:	PASS
setprop_inplace opened.v17.mst.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v17.mst.test_tree1.dtb:	PASS
nop_node opened.v17.mst.test_tree1.dtb:	PASS
get_mem_rsv repacked.v17.mst.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v17.mst.test_tree1.dtb:	PASS
find_property repacked.v17.mst.test_tree1.dtb:	PASS
subnode_offset repacked.v17.mst.test_tree1.dtb:	PASS
path_offset repacked.v17.mst.test_tree1.dtb:	PASS
get_name repacked.v17.mst.test_tree1.dtb:	PASS
getprop repacked.v17.mst.test_tree1.dtb:	PASS
get_phandle repacked.v17.mst.test_tree1.dtb:	PASS
get_path repacked.v17.mst.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v17.mst.test_tree1.dtb:	PASS
parent_offset repacked.v17.mst.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v17.mst.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v17.mst.test_tree1.dtb:	PASS
node_check_compatible repacked.v17.mst.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v17.mst.test_tree1.dtb:	PASS
notfound repacked.v17.mst.test_tree1.dtb:	PASS
setprop_inplace repacked.v17.mst.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v17.mst.test_tree1.dtb:	PASS
nop_node repacked.v17.mst.test_tree1.dtb:	PASS
set_name v17.mst.test_tree1.dtb:	PASS
setprop v17.mst.test_tree1.dtb:	PASS
del_property v17.mst.test_tree1.dtb:	PASS
del_node v17.mst.test_tree1.dtb:	PASS
set_name opened.v17.mst.test_tree1.dtb:	PASS
setprop opened.v17.mst.test_tree1.dtb:	PASS
del_property opened.v17.mst.test_tree1.dtb:	PASS
del_node opened.v17.mst.test_tree1.dtb:	PASS
set_name repacked.v17.mst.test_tree1.dtb:	PASS
setprop repacked.v17.mst.test_tree1.dtb:	PASS
del_property repacked.v17.mst.test_tree1.dtb:	PASS
del_node repacked.v17.mst.test_tree1.dtb:	PASS
open_pack v17.tms.test_tree1.dtb:	PASS
get_mem_rsv opened.v17.tms.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v17.tms.test_tree1.dtb:	PASS
find_property opened.v17.tms.test_tree1.dtb:	PASS
subnode_offset opened.v17.tms.test_tree1.dtb:	PASS
path_offset opened.v17.tms.test_tree1.dtb:	PASS
get_name opened.v17.tms.test_tree1.dtb:	PASS
getprop opened.v17.tms.test_tree1.dtb:	PASS
get_phandle opened.v17.tms.test_tree1.dtb:	PASS
get_path opened.v17.tms.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v17.tms.test_tree1.dtb:	PASS
parent_offset opened.v17.tms.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v17.tms.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v17.tms.test_tree1.dtb:	PASS
node_check_compatible opened.v17.tms.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v17.tms.test_tree1.dtb:	PASS
notfound opened.v17.tms.test_tree1.dtb:	PASS
setprop_inplace opened.v17.tms.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v17.tms.test_tree1.dtb:	PASS
nop_node opened.v17.tms.test_tree1.dtb:	PASS
get_mem_rsv repacked.v17.tms.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v17.tms.test_tree1.dtb:	PASS
find_property repacked.v17.tms.test_tree1.dtb:	PASS
subnode_offset repacked.v17.tms.test_tree1.dtb:	PASS
path_offset repacked.v17.tms.test_tree1.dtb:	PASS
get_name repacked.v17.tms.test_tree1.dtb:	PASS
getprop repacked.v17.tms.test_tree1.dtb:	PASS
get_phandle repacked.v17.tms.test_tree1.dtb:	PASS
get_path repacked.v17.tms.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v17.tms.test_tree1.dtb:	PASS
parent_offset repacked.v17.tms.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v17.tms.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v17.tms.test_tree1.dtb:	PASS
node_check_compatible repacked.v17.tms.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v17.tms.test_tree1.dtb:	PASS
notfound repacked.v17.tms.test_tree1.dtb:	PASS
setprop_inplace repacked.v17.tms.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v17.tms.test_tree1.dtb:	PASS
nop_node repacked.v17.tms.test_tree1.dtb:	PASS
set_name v17.tms.test_tree1.dtb:	PASS
setprop v17.tms.test_tree1.dtb:	PASS
del_property v17.tms.test_tree1.dtb:	PASS
del_node v17.tms.test_tree1.dtb:	PASS
set_name opened.v17.tms.test_tree1.dtb:	PASS
setprop opened.v17.tms.test_tree1.dtb:	PASS
del_property opened.v17.tms.test_tree1.dtb:	PASS
del_node opened.v17.tms.test_tree1.dtb:	PASS
set_name repacked.v17.tms.test_tree1.dtb:	PASS
setprop repacked.v17.tms.test_tree1.dtb:	PASS
del_property repacked.v17.tms.test_tree1.dtb:	PASS
del_node repacked.v17.tms.test_tree1.dtb:	PASS
open_pack v17.tsm.test_tree1.dtb:	PASS
get_mem_rsv opened.v17.tsm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v17.tsm.test_tree1.dtb:	PASS
find_property opened.v17.tsm.test_tree1.dtb:	PASS
subnode_offset opened.v17.tsm.test_tree1.dtb:	PASS
path_offset opened.v17.tsm.test_tree1.dtb:	PASS
get_name opened.v17.tsm.test_tree1.dtb:	PASS
getprop opened.v17.tsm.test_tree1.dtb:	PASS
get_phandle opened.v17.tsm.test_tree1.dtb:	PASS
get_path opened.v17.tsm.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v17.tsm.test_tree1.dtb:	PASS
parent_offset opened.v17.tsm.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v17.tsm.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v17.tsm.test_tree1.dtb:	PASS
node_check_compatible opened.v17.tsm.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v17.tsm.test_tree1.dtb:	PASS
notfound opened.v17.tsm.test_tree1.dtb:	PASS
setprop_inplace opened.v17.tsm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v17.tsm.test_tree1.dtb:	PASS
nop_node opened.v17.tsm.test_tree1.dtb:	PASS
get_mem_rsv repacked.v17.tsm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v17.tsm.test_tree1.dtb:	PASS
find_property repacked.v17.tsm.test_tree1.dtb:	PASS
subnode_offset repacked.v17.tsm.test_tree1.dtb:	PASS
path_offset repacked.v17.tsm.test_tree1.dtb:	PASS
get_name repacked.v17.tsm.test_tree1.dtb:	PASS
getprop repacked.v17.tsm.test_tree1.dtb:	PASS
get_phandle repacked.v17.tsm.test_tree1.dtb:	PASS
get_path repacked.v17.tsm.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v17.tsm.test_tree1.dtb:	PASS
parent_offset repacked.v17.tsm.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v17.tsm.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v17.tsm.test_tree1.dtb:	PASS
node_check_compatible repacked.v17.tsm.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v17.tsm.test_tree1.dtb:	PASS
notfound repacked.v17.tsm.test_tree1.dtb:	PASS
setprop_inplace repacked.v17.tsm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v17.tsm.test_tree1.dtb:	PASS
nop_node repacked.v17.tsm.test_tree1.dtb:	PASS
set_name v17.tsm.test_tree1.dtb:	PASS
setprop v17.tsm.test_tree1.dtb:	PASS
del_property v17.tsm.test_tree1.dtb:	PASS
del_node v17.tsm.test_tree1.dtb:	PASS
set_name opened.v17.tsm.test_tree1.dtb:	PASS
setprop opened.v17.tsm.test_tree1.dtb:	PASS
del_property opened.v17.tsm.test_tree1.dtb:	PASS
del_node opened.v17.tsm.test_tree1.dtb:	PASS
set_name repacked.v17.tsm.test_tree1.dtb:	PASS
setprop repacked.v17.tsm.test_tree1.dtb:	PASS
del_property repacked.v17.tsm.test_tree1.dtb:	PASS
del_node repacked.v17.tsm.test_tree1.dtb:	PASS
open_pack v17.smt.test_tree1.dtb:	PASS
get_mem_rsv opened.v17.smt.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v17.smt.test_tree1.dtb:	PASS
find_property opened.v17.smt.test_tree1.dtb:	PASS
subnode_offset opened.v17.smt.test_tree1.dtb:	PASS
path_offset opened.v17.smt.test_tree1.dtb:	PASS
get_name opened.v17.smt.test_tree1.dtb:	PASS
getprop opened.v17.smt.test_tree1.dtb:	PASS
get_phandle opened.v17.smt.test_tree1.dtb:	PASS
get_path opened.v17.smt.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v17.smt.test_tree1.dtb:	PASS
parent_offset opened.v17.smt.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v17.smt.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v17.smt.test_tree1.dtb:	PASS
node_check_compatible opened.v17.smt.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v17.smt.test_tree1.dtb:	PASS
notfound opened.v17.smt.test_tree1.dtb:	PASS
setprop_inplace opened.v17.smt.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v17.smt.test_tree1.dtb:	PASS
nop_node opened.v17.smt.test_tree1.dtb:	PASS
get_mem_rsv repacked.v17.smt.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v17.smt.test_tree1.dtb:	PASS
find_property repacked.v17.smt.test_tree1.dtb:	PASS
subnode_offset repacked.v17.smt.test_tree1.dtb:	PASS
path_offset repacked.v17.smt.test_tree1.dtb:	PASS
get_name repacked.v17.smt.test_tree1.dtb:	PASS
getprop repacked.v17.smt.test_tree1.dtb:	PASS
get_phandle repacked.v17.smt.test_tree1.dtb:	PASS
get_path repacked.v17.smt.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v17.smt.test_tree1.dtb:	PASS
parent_offset repacked.v17.smt.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v17.smt.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v17.smt.test_tree1.dtb:	PASS
node_check_compatible repacked.v17.smt.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v17.smt.test_tree1.dtb:	PASS
notfound repacked.v17.smt.test_tree1.dtb:	PASS
setprop_inplace repacked.v17.smt.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v17.smt.test_tree1.dtb:	PASS
nop_node repacked.v17.smt.test_tree1.dtb:	PASS
set_name v17.smt.test_tree1.dtb:	PASS
setprop v17.smt.test_tree1.dtb:	PASS
del_property v17.smt.test_tree1.dtb:	PASS
del_node v17.smt.test_tree1.dtb:	PASS
set_name opened.v17.smt.test_tree1.dtb:	PASS
setprop opened.v17.smt.test_tree1.dtb:	PASS
del_property opened.v17.smt.test_tree1.dtb:	PASS
del_node opened.v17.smt.test_tree1.dtb:	PASS
set_name repacked.v17.smt.test_tree1.dtb:	PASS
setprop repacked.v17.smt.test_tree1.dtb:	PASS
del_property repacked.v17.smt.test_tree1.dtb:	PASS
del_node repacked.v17.smt.test_tree1.dtb:	PASS
open_pack v17.stm.test_tree1.dtb:	PASS
get_mem_rsv opened.v17.stm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v17.stm.test_tree1.dtb:	PASS
find_property opened.v17.stm.test_tree1.dtb:	PASS
subnode_offset opened.v17.stm.test_tree1.dtb:	PASS
path_offset opened.v17.stm.test_tree1.dtb:	PASS
get_name opened.v17.stm.test_tree1.dtb:	PASS
getprop opened.v17.stm.test_tree1.dtb:	PASS
get_phandle opened.v17.stm.test_tree1.dtb:	PASS
get_path opened.v17.stm.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v17.stm.test_tree1.dtb:	PASS
parent_offset opened.v17.stm.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v17.stm.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v17.stm.test_tree1.dtb:	PASS
node_check_compatible opened.v17.stm.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v17.stm.test_tree1.dtb:	PASS
notfound opened.v17.stm.test_tree1.dtb:	PASS
setprop_inplace opened.v17.stm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v17.stm.test_tree1.dtb:	PASS
nop_node opened.v17.stm.test_tree1.dtb:	PASS
get_mem_rsv repacked.v17.stm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v17.stm.test_tree1.dtb:	PASS
find_property repacked.v17.stm.test_tree1.dtb:	PASS
subnode_offset repacked.v17.stm.test_tree1.dtb:	PASS
path_offset repacked.v17.stm.test_tree1.dtb:	PASS
get_name repacked.v17.stm.test_tree1.dtb:	PASS
getprop repacked.v17.stm.test_tree1.dtb:	PASS
get_phandle repacked.v17.stm.test_tree1.dtb:	PASS
get_path repacked.v17.stm.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v17.stm.test_tree1.dtb:	PASS
parent_offset repacked.v17.stm.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v17.stm.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v17.stm.test_tree1.dtb:	PASS
node_check_compatible repacked.v17.stm.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v17.stm.test_tree1.dtb:	PASS
notfound repacked.v17.stm.test_tree1.dtb:	PASS
setprop_inplace repacked.v17.stm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v17.stm.test_tree1.dtb:	PASS
nop_node repacked.v17.stm.test_tree1.dtb:	PASS
set_name v17.stm.test_tree1.dtb:	PASS
setprop v17.stm.test_tree1.dtb:	PASS
del_property v17.stm.test_tree1.dtb:	PASS
del_node v17.stm.test_tree1.dtb:	PASS
set_name opened.v17.stm.test_tree1.dtb:	PASS
setprop opened.v17.stm.test_tree1.dtb:	PASS
del_property opened.v17.stm.test_tree1.dtb:	PASS
del_node opened.v17.stm.test_tree1.dtb:	PASS
set_name repacked.v17.stm.test_tree1.dtb:	PASS
setprop repacked.v17.stm.test_tree1.dtb:	PASS
del_property repacked.v17.stm.test_tree1.dtb:	PASS
del_node repacked.v17.stm.test_tree1.dtb:	PASS
open_pack v16.mts.test_tree1.dtb:	PASS
get_mem_rsv opened.v16.mts.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v16.mts.test_tree1.dtb:	PASS
find_property opened.v16.mts.test_tree1.dtb:	PASS
subnode_offset opened.v16.mts.test_tree1.dtb:	PASS
path_offset opened.v16.mts.test_tree1.dtb:	PASS
get_name opened.v16.mts.test_tree1.dtb:	PASS
getprop opened.v16.mts.test_tree1.dtb:	PASS
get_phandle opened.v16.mts.test_tree1.dtb:	PASS
get_path opened.v16.mts.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v16.mts.test_tree1.dtb:	PASS
parent_offset opened.v16.mts.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v16.mts.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v16.mts.test_tree1.dtb:	PASS
node_check_compatible opened.v16.mts.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v16.mts.test_tree1.dtb:	PASS
notfound opened.v16.mts.test_tree1.dtb:	PASS
setprop_inplace opened.v16.mts.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v16.mts.test_tree1.dtb:	PASS
nop_node opened.v16.mts.test_tree1.dtb:	PASS
get_mem_rsv repacked.v16.mts.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v16.mts.test_tree1.dtb:	PASS
find_property repacked.v16.mts.test_tree1.dtb:	PASS
subnode_offset repacked.v16.mts.test_tree1.dtb:	PASS
path_offset repacked.v16.mts.test_tree1.dtb:	PASS
get_name repacked.v16.mts.test_tree1.dtb:	PASS
getprop repacked.v16.mts.test_tree1.dtb:	PASS
get_phandle repacked.v16.mts.test_tree1.dtb:	PASS
get_path repacked.v16.mts.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v16.mts.test_tree1.dtb:	PASS
parent_offset repacked.v16.mts.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v16.mts.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v16.mts.test_tree1.dtb:	PASS
node_check_compatible repacked.v16.mts.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v16.mts.test_tree1.dtb:	PASS
notfound repacked.v16.mts.test_tree1.dtb:	PASS
setprop_inplace repacked.v16.mts.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v16.mts.test_tree1.dtb:	PASS
nop_node repacked.v16.mts.test_tree1.dtb:	PASS
set_name v16.mts.test_tree1.dtb:	PASS
setprop v16.mts.test_tree1.dtb:	PASS
del_property v16.mts.test_tree1.dtb:	PASS
del_node v16.mts.test_tree1.dtb:	PASS
set_name opened.v16.mts.test_tree1.dtb:	PASS
setprop opened.v16.mts.test_tree1.dtb:	PASS
del_property opened.v16.mts.test_tree1.dtb:	PASS
del_node opened.v16.mts.test_tree1.dtb:	PASS
set_name repacked.v16.mts.test_tree1.dtb:	PASS
setprop repacked.v16.mts.test_tree1.dtb:	PASS
del_property repacked.v16.mts.test_tree1.dtb:	PASS
del_node repacked.v16.mts.test_tree1.dtb:	PASS
open_pack v16.mst.test_tree1.dtb:	PASS
get_mem_rsv opened.v16.mst.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v16.mst.test_tree1.dtb:	PASS
find_property opened.v16.mst.test_tree1.dtb:	PASS
subnode_offset opened.v16.mst.test_tree1.dtb:	PASS
path_offset opened.v16.mst.test_tree1.dtb:	PASS
get_name opened.v16.mst.test_tree1.dtb:	PASS
getprop opened.v16.mst.test_tree1.dtb:	PASS
get_phandle opened.v16.mst.test_tree1.dtb:	PASS
get_path opened.v16.mst.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v16.mst.test_tree1.dtb:	PASS
parent_offset opened.v16.mst.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v16.mst.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v16.mst.test_tree1.dtb:	PASS
node_check_compatible opened.v16.mst.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v16.mst.test_tree1.dtb:	PASS
notfound opened.v16.mst.test_tree1.dtb:	PASS
setprop_inplace opened.v16.mst.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v16.mst.test_tree1.dtb:	PASS
nop_node opened.v16.mst.test_tree1.dtb:	PASS
get_mem_rsv repacked.v16.mst.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v16.mst.test_tree1.dtb:	PASS
find_property repacked.v16.mst.test_tree1.dtb:	PASS
subnode_offset repacked.v16.mst.test_tree1.dtb:	PASS
path_offset repacked.v16.mst.test_tree1.dtb:	PASS
get_name repacked.v16.mst.test_tree1.dtb:	PASS
getprop repacked.v16.mst.test_tree1.dtb:	PASS
get_phandle repacked.v16.mst.test_tree1.dtb:	PASS
get_path repacked.v16.mst.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v16.mst.test_tree1.dtb:	PASS
parent_offset repacked.v16.mst.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v16.mst.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v16.mst.test_tree1.dtb:	PASS
node_check_compatible repacked.v16.mst.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v16.mst.test_tree1.dtb:	PASS
notfound repacked.v16.mst.test_tree1.dtb:	PASS
setprop_inplace repacked.v16.mst.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v16.mst.test_tree1.dtb:	PASS
nop_node repacked.v16.mst.test_tree1.dtb:	PASS
set_name v16.mst.test_tree1.dtb:	PASS
setprop v16.mst.test_tree1.dtb:	PASS
del_property v16.mst.test_tree1.dtb:	PASS
del_node v16.mst.test_tree1.dtb:	PASS
set_name opened.v16.mst.test_tree1.dtb:	PASS
setprop opened.v16.mst.test_tree1.dtb:	PASS
del_property opened.v16.mst.test_tree1.dtb:	PASS
del_node opened.v16.mst.test_tree1.dtb:	PASS
set_name repacked.v16.mst.test_tree1.dtb:	PASS
setprop repacked.v16.mst.test_tree1.dtb:	PASS
del_property repacked.v16.mst.test_tree1.dtb:	PASS
del_node repacked.v16.mst.test_tree1.dtb:	PASS
open_pack v16.tms.test_tree1.dtb:	PASS
get_mem_rsv opened.v16.tms.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v16.tms.test_tree1.dtb:	PASS
find_property opened.v16.tms.test_tree1.dtb:	PASS
subnode_offset opened.v16.tms.test_tree1.dtb:	PASS
path_offset opened.v16.tms.test_tree1.dtb:	PASS
get_name opened.v16.tms.test_tree1.dtb:	PASS
getprop opened.v16.tms.test_tree1.dtb:	PASS
get_phandle opened.v16.tms.test_tree1.dtb:	PASS
get_path opened.v16.tms.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v16.tms.test_tree1.dtb:	PASS
parent_offset opened.v16.tms.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v16.tms.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v16.tms.test_tree1.dtb:	PASS
node_check_compatible opened.v16.tms.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v16.tms.test_tree1.dtb:	PASS
notfound opened.v16.tms.test_tree1.dtb:	PASS
setprop_inplace opened.v16.tms.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v16.tms.test_tree1.dtb:	PASS
nop_node opened.v16.tms.test_tree1.dtb:	PASS
get_mem_rsv repacked.v16.tms.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v16.tms.test_tree1.dtb:	PASS
find_property repacked.v16.tms.test_tree1.dtb:	PASS
subnode_offset repacked.v16.tms.test_tree1.dtb:	PASS
path_offset repacked.v16.tms.test_tree1.dtb:	PASS
get_name repacked.v16.tms.test_tree1.dtb:	PASS
getprop repacked.v16.tms.test_tree1.dtb:	PASS
get_phandle repacked.v16.tms.test_tree1.dtb:	PASS
get_path repacked.v16.tms.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v16.tms.test_tree1.dtb:	PASS
parent_offset repacked.v16.tms.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v16.tms.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v16.tms.test_tree1.dtb:	PASS
node_check_compatible repacked.v16.tms.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v16.tms.test_tree1.dtb:	PASS
notfound repacked.v16.tms.test_tree1.dtb:	PASS
setprop_inplace repacked.v16.tms.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v16.tms.test_tree1.dtb:	PASS
nop_node repacked.v16.tms.test_tree1.dtb:	PASS
set_name v16.tms.test_tree1.dtb:	PASS
setprop v16.tms.test_tree1.dtb:	PASS
del_property v16.tms.test_tree1.dtb:	PASS
del_node v16.tms.test_tree1.dtb:	PASS
set_name opened.v16.tms.test_tree1.dtb:	PASS
setprop opened.v16.tms.test_tree1.dtb:	PASS
del_property opened.v16.tms.test_tree1.dtb:	PASS
del_node opened.v16.tms.test_tree1.dtb:	PASS
set_name repacked.v16.tms.test_tree1.dtb:	PASS
setprop repacked.v16.tms.test_tree1.dtb:	PASS
del_property repacked.v16.tms.test_tree1.dtb:	PASS
del_node repacked.v16.tms.test_tree1.dtb:	PASS
open_pack v16.tsm.test_tree1.dtb:	PASS
get_mem_rsv opened.v16.tsm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v16.tsm.test_tree1.dtb:	PASS
find_property opened.v16.tsm.test_tree1.dtb:	PASS
subnode_offset opened.v16.tsm.test_tree1.dtb:	PASS
path_offset opened.v16.tsm.test_tree1.dtb:	PASS
get_name opened.v16.tsm.test_tree1.dtb:	PASS
getprop opened.v16.tsm.test_tree1.dtb:	PASS
get_phandle opened.v16.tsm.test_tree1.dtb:	PASS
get_path opened.v16.tsm.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v16.tsm.test_tree1.dtb:	PASS
parent_offset opened.v16.tsm.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v16.tsm.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v16.tsm.test_tree1.dtb:	PASS
node_check_compatible opened.v16.tsm.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v16.tsm.test_tree1.dtb:	PASS
notfound opened.v16.tsm.test_tree1.dtb:	PASS
setprop_inplace opened.v16.tsm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v16.tsm.test_tree1.dtb:	PASS
nop_node opened.v16.tsm.test_tree1.dtb:	PASS
get_mem_rsv repacked.v16.tsm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v16.tsm.test_tree1.dtb:	PASS
find_property repacked.v16.tsm.test_tree1.dtb:	PASS
subnode_offset repacked.v16.tsm.test_tree1.dtb:	PASS
path_offset repacked.v16.tsm.test_tree1.dtb:	PASS
get_name repacked.v16.tsm.test_tree1.dtb:	PASS
getprop repacked.v16.tsm.test_tree1.dtb:	PASS
get_phandle repacked.v16.tsm.test_tree1.dtb:	PASS
get_path repacked.v16.tsm.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v16.tsm.test_tree1.dtb:	PASS
parent_offset repacked.v16.tsm.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v16.tsm.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v16.tsm.test_tree1.dtb:	PASS
node_check_compatible repacked.v16.tsm.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v16.tsm.test_tree1.dtb:	PASS
notfound repacked.v16.tsm.test_tree1.dtb:	PASS
setprop_inplace repacked.v16.tsm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v16.tsm.test_tree1.dtb:	PASS
nop_node repacked.v16.tsm.test_tree1.dtb:	PASS
set_name v16.tsm.test_tree1.dtb:	PASS
setprop v16.tsm.test_tree1.dtb:	PASS
del_property v16.tsm.test_tree1.dtb:	PASS
del_node v16.tsm.test_tree1.dtb:	PASS
set_name opened.v16.tsm.test_tree1.dtb:	PASS
setprop opened.v16.tsm.test_tree1.dtb:	PASS
del_property opened.v16.tsm.test_tree1.dtb:	PASS
del_node opened.v16.tsm.test_tree1.dtb:	PASS
set_name repacked.v16.tsm.test_tree1.dtb:	PASS
setprop repacked.v16.tsm.test_tree1.dtb:	PASS
del_property repacked.v16.tsm.test_tree1.dtb:	PASS
del_node repacked.v16.tsm.test_tree1.dtb:	PASS
open_pack v16.smt.test_tree1.dtb:	PASS
get_mem_rsv opened.v16.smt.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v16.smt.test_tree1.dtb:	PASS
find_property opened.v16.smt.test_tree1.dtb:	PASS
subnode_offset opened.v16.smt.test_tree1.dtb:	PASS
path_offset opened.v16.smt.test_tree1.dtb:	PASS
get_name opened.v16.smt.test_tree1.dtb:	PASS
getprop opened.v16.smt.test_tree1.dtb:	PASS
get_phandle opened.v16.smt.test_tree1.dtb:	PASS
get_path opened.v16.smt.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v16.smt.test_tree1.dtb:	PASS
parent_offset opened.v16.smt.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v16.smt.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v16.smt.test_tree1.dtb:	PASS
node_check_compatible opened.v16.smt.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v16.smt.test_tree1.dtb:	PASS
notfound opened.v16.smt.test_tree1.dtb:	PASS
setprop_inplace opened.v16.smt.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v16.smt.test_tree1.dtb:	PASS
nop_node opened.v16.smt.test_tree1.dtb:	PASS
get_mem_rsv repacked.v16.smt.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v16.smt.test_tree1.dtb:	PASS
find_property repacked.v16.smt.test_tree1.dtb:	PASS
subnode_offset repacked.v16.smt.test_tree1.dtb:	PASS
path_offset repacked.v16.smt.test_tree1.dtb:	PASS
get_name repacked.v16.smt.test_tree1.dtb:	PASS
getprop repacked.v16.smt.test_tree1.dtb:	PASS
get_phandle repacked.v16.smt.test_tree1.dtb:	PASS
get_path repacked.v16.smt.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v16.smt.test_tree1.dtb:	PASS
parent_offset repacked.v16.smt.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v16.smt.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v16.smt.test_tree1.dtb:	PASS
node_check_compatible repacked.v16.smt.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v16.smt.test_tree1.dtb:	PASS
notfound repacked.v16.smt.test_tree1.dtb:	PASS
setprop_inplace repacked.v16.smt.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v16.smt.test_tree1.dtb:	PASS
nop_node repacked.v16.smt.test_tree1.dtb:	PASS
set_name v16.smt.test_tree1.dtb:	PASS
setprop v16.smt.test_tree1.dtb:	PASS
del_property v16.smt.test_tree1.dtb:	PASS
del_node v16.smt.test_tree1.dtb:	PASS
set_name opened.v16.smt.test_tree1.dtb:	PASS
setprop opened.v16.smt.test_tree1.dtb:	PASS
del_property opened.v16.smt.test_tree1.dtb:	PASS
del_node opened.v16.smt.test_tree1.dtb:	PASS
set_name repacked.v16.smt.test_tree1.dtb:	PASS
setprop repacked.v16.smt.test_tree1.dtb:	PASS
del_property repacked.v16.smt.test_tree1.dtb:	PASS
del_node repacked.v16.smt.test_tree1.dtb:	PASS
open_pack v16.stm.test_tree1.dtb:	PASS
get_mem_rsv opened.v16.stm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node opened.v16.stm.test_tree1.dtb:	PASS
find_property opened.v16.stm.test_tree1.dtb:	PASS
subnode_offset opened.v16.stm.test_tree1.dtb:	PASS
path_offset opened.v16.stm.test_tree1.dtb:	PASS
get_name opened.v16.stm.test_tree1.dtb:	PASS
getprop opened.v16.stm.test_tree1.dtb:	PASS
get_phandle opened.v16.stm.test_tree1.dtb:	PASS
get_path opened.v16.stm.test_tree1.dtb:	PASS
supernode_atdepth_offset opened.v16.stm.test_tree1.dtb:	PASS
parent_offset opened.v16.stm.test_tree1.dtb:	PASS
node_offset_by_prop_value opened.v16.stm.test_tree1.dtb:	PASS
node_offset_by_phandle opened.v16.stm.test_tree1.dtb:	PASS
node_check_compatible opened.v16.stm.test_tree1.dtb:	PASS
node_offset_by_compatible opened.v16.stm.test_tree1.dtb:	PASS
notfound opened.v16.stm.test_tree1.dtb:	PASS
setprop_inplace opened.v16.stm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property opened.v16.stm.test_tree1.dtb:	PASS
nop_node opened.v16.stm.test_tree1.dtb:	PASS
get_mem_rsv repacked.v16.stm.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node repacked.v16.stm.test_tree1.dtb:	PASS
find_property repacked.v16.stm.test_tree1.dtb:	PASS
subnode_offset repacked.v16.stm.test_tree1.dtb:	PASS
path_offset repacked.v16.stm.test_tree1.dtb:	PASS
get_name repacked.v16.stm.test_tree1.dtb:	PASS
getprop repacked.v16.stm.test_tree1.dtb:	PASS
get_phandle repacked.v16.stm.test_tree1.dtb:	PASS
get_path repacked.v16.stm.test_tree1.dtb:	PASS
supernode_atdepth_offset repacked.v16.stm.test_tree1.dtb:	PASS
parent_offset repacked.v16.stm.test_tree1.dtb:	PASS
node_offset_by_prop_value repacked.v16.stm.test_tree1.dtb:	PASS
node_offset_by_phandle repacked.v16.stm.test_tree1.dtb:	PASS
node_check_compatible repacked.v16.stm.test_tree1.dtb:	PASS
node_offset_by_compatible repacked.v16.stm.test_tree1.dtb:	PASS
notfound repacked.v16.stm.test_tree1.dtb:	PASS
setprop_inplace repacked.v16.stm.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property repacked.v16.stm.test_tree1.dtb:	PASS
nop_node repacked.v16.stm.test_tree1.dtb:	PASS
set_name v16.stm.test_tree1.dtb:	PASS
setprop v16.stm.test_tree1.dtb:	PASS
del_property v16.stm.test_tree1.dtb:	PASS
del_node v16.stm.test_tree1.dtb:	PASS
set_name opened.v16.stm.test_tree1.dtb:	PASS
setprop opened.v16.stm.test_tree1.dtb:	PASS
del_property opened.v16.stm.test_tree1.dtb:	PASS
del_node opened.v16.stm.test_tree1.dtb:	PASS
set_name repacked.v16.stm.test_tree1.dtb:	PASS
setprop repacked.v16.stm.test_tree1.dtb:	PASS
del_property repacked.v16.stm.test_tree1.dtb:	PASS
del_node repacked.v16.stm.test_tree1.dtb:	PASS
rw_tree1:	PASS
get_mem_rsv rw_tree1.test.dtb:	PASS
root_node rw_tree1.test.dtb:	PASS
find_property rw_tree1.test.dtb:	PASS
subnode_offset rw_tree1.test.dtb:	PASS
path_offset rw_tree1.test.dtb:	PASS
get_name rw_tree1.test.dtb:	PASS
getprop rw_tree1.test.dtb:	PASS
get_phandle rw_tree1.test.dtb:	PASS
get_path rw_tree1.test.dtb:	PASS
supernode_atdepth_offset rw_tree1.test.dtb:	PASS
parent_offset rw_tree1.test.dtb:	PASS
node_offset_by_prop_value rw_tree1.test.dtb:	PASS
node_offset_by_phandle rw_tree1.test.dtb:	PASS
node_check_compatible rw_tree1.test.dtb:	PASS
node_offset_by_compatible rw_tree1.test.dtb:	PASS
notfound rw_tree1.test.dtb:	PASS
setprop_inplace rw_tree1.test.dtb:	PASS
nop_property rw_tree1.test.dtb:	PASS
nop_node rw_tree1.test.dtb:	PASS
set_name rw_tree1.test.dtb:	PASS
setprop rw_tree1.test.dtb:	PASS
del_property rw_tree1.test.dtb:	PASS
del_node rw_tree1.test.dtb:	PASS
appendprop1:	PASS
appendprop2 appendprop1.test.dtb:	PASS
dtc -I dts -O dtb -o appendprop.test.dtb appendprop.dts:	PASS
dtbs_equal_ordered appendprop2.test.dtb appendprop.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_base_no_symbols.test.dtb overlay_base.dts:	PASS
check_path overlay_base_no_symbols.test.dtb not-exists /__symbols__:	PASS
check_path overlay_base_no_symbols.test.dtb not-exists /__fixups__:	PASS
check_path overlay_base_no_symbols.test.dtb not-exists /__local_fixups__:	PASS
dtc -I dts -O dtb -o overlay_overlay_no_fixups.test.dtb overlay_overlay_no_fixups.dts:	PASS
check_path overlay_overlay_no_fixups.test.dtb not-exists /__symbols__:	PASS
check_path overlay_overlay_no_fixups.test.dtb not-exists /__fixups__:	PASS
check_path overlay_overlay_no_fixups.test.dtb exists /__local_fixups__:	PASS
overlay overlay_base_no_symbols.test.dtb overlay_overlay_no_fixups.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_base_manual_symbols.test.dtb overlay_base_manual_symbols.dts:	PASS
check_path overlay_base_manual_symbols.test.dtb exists /__symbols__:	PASS
check_path overlay_base_manual_symbols.test.dtb not-exists /__fixups__:	PASS
check_path overlay_base_manual_symbols.test.dtb not-exists /__local_fixups__:	PASS
dtc -I dts -O dtb -o overlay_overlay_manual_fixups.test.dtb overlay_overlay_manual_fixups.dts:	PASS
check_path overlay_overlay_manual_fixups.test.dtb not-exists /__symbols__:	PASS
check_path overlay_overlay_manual_fixups.test.dtb exists /__fixups__:	PASS
check_path overlay_overlay_manual_fixups.test.dtb exists /__local_fixups__:	PASS
overlay overlay_base_manual_symbols.test.dtb overlay_overlay_manual_fixups.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_bad_index.test.dtb overlay_bad_fixup_bad_index.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_bad_index.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_empty.test.dtb overlay_bad_fixup_empty.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_empty.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_empty_index.test.dtb overlay_bad_fixup_empty_index.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_empty_index.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_index_trailing.test.dtb overlay_bad_fixup_index_trailing.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_index_trailing.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_path_empty_prop.test.dtb overlay_bad_fixup_path_empty_prop.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_path_empty_prop.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_path_only.test.dtb overlay_bad_fixup_path_only.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_path_only.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_path_only_sep.test.dtb overlay_bad_fixup_path_only_sep.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_path_only_sep.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_bad_fixup_path_prop.test.dtb overlay_bad_fixup_path_prop.dts:	PASS
overlay_bad_fixup overlay_base_no_symbols.test.dtb overlay_bad_fixup_path_prop.test.dtb:	PASS
nopulate test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb noppy.test_tree1.dtb:	PASS
get_mem_rsv noppy.test_tree1.dtb:	FAIL	fdt_get_mem_rsv() returned (0x0,0x100000) instead of (0xdeadbeef00000000,0x100000)
root_node noppy.test_tree1.dtb:	PASS
find_property noppy.test_tree1.dtb:	PASS
subnode_offset noppy.test_tree1.dtb:	PASS
path_offset noppy.test_tree1.dtb:	PASS
get_name noppy.test_tree1.dtb:	PASS
getprop noppy.test_tree1.dtb:	PASS
get_phandle noppy.test_tree1.dtb:	PASS
get_path noppy.test_tree1.dtb:	PASS
supernode_atdepth_offset noppy.test_tree1.dtb:	PASS
parent_offset noppy.test_tree1.dtb:	PASS
node_offset_by_prop_value noppy.test_tree1.dtb:	PASS
node_offset_by_phandle noppy.test_tree1.dtb:	PASS
node_check_compatible noppy.test_tree1.dtb:	PASS
node_offset_by_compatible noppy.test_tree1.dtb:	PASS
notfound noppy.test_tree1.dtb:	PASS
setprop_inplace noppy.test_tree1.dtb:	FAIL	Data mismatch on property "prop-int64"
nop_property noppy.test_tree1.dtb:	PASS
nop_node noppy.test_tree1.dtb:	PASS
set_name noppy.test_tree1.dtb:	PASS
setprop noppy.test_tree1.dtb:	PASS
del_property noppy.test_tree1.dtb:	PASS
del_node noppy.test_tree1.dtb:	PASS
nopulate sw_tree1.test.dtb:	PASS
dtbs_equal_ordered sw_tree1.test.dtb noppy.sw_tree1.test.dtb:	PASS
get_mem_rsv noppy.sw_tree1.test.dtb:	PASS
root_node noppy.sw_tree1.test.dtb:	PASS
find_property noppy.sw_tree1.test.dtb:	PASS
subnode_offset noppy.sw_tree1.test.dtb:	PASS
path_offset noppy.sw_tree1.test.dtb:	PASS
get_name noppy.sw_tree1.test.dtb:	PASS
getprop noppy.sw_tree1.test.dtb:	PASS
get_phandle noppy.sw_tree1.test.dtb:	PASS
get_path noppy.sw_tree1.test.dtb:	PASS
supernode_atdepth_offset noppy.sw_tree1.test.dtb:	PASS
parent_offset noppy.sw_tree1.test.dtb:	PASS
node_offset_by_prop_value noppy.sw_tree1.test.dtb:	PASS
node_offset_by_phandle noppy.sw_tree1.test.dtb:	PASS
node_check_compatible noppy.sw_tree1.test.dtb:	PASS
node_offset_by_compatible noppy.sw_tree1.test.dtb:	PASS
notfound noppy.sw_tree1.test.dtb:	PASS
setprop_inplace noppy.sw_tree1.test.dtb:	PASS
nop_property noppy.sw_tree1.test.dtb:	PASS
nop_node noppy.sw_tree1.test.dtb:	PASS
set_name noppy.sw_tree1.test.dtb:	PASS
setprop noppy.sw_tree1.test.dtb:	PASS
del_property noppy.sw_tree1.test.dtb:	PASS
del_node noppy.sw_tree1.test.dtb:	PASS
nopulate rw_tree1.test.dtb:	PASS
dtbs_equal_ordered rw_tree1.test.dtb noppy.rw_tree1.test.dtb:	PASS
get_mem_rsv noppy.rw_tree1.test.dtb:	PASS
root_node noppy.rw_tree1.test.dtb:	PASS
find_property noppy.rw_tree1.test.dtb:	PASS
subnode_offset noppy.rw_tree1.test.dtb:	PASS
path_offset noppy.rw_tree1.test.dtb:	PASS
get_name noppy.rw_tree1.test.dtb:	PASS
getprop noppy.rw_tree1.test.dtb:	PASS
get_phandle noppy.rw_tree1.test.dtb:	PASS
get_path noppy.rw_tree1.test.dtb:	PASS
supernode_atdepth_offset noppy.rw_tree1.test.dtb:	PASS
parent_offset noppy.rw_tree1.test.dtb:	PASS
node_offset_by_prop_value noppy.rw_tree1.test.dtb:	PASS
node_offset_by_phandle noppy.rw_tree1.test.dtb:	PASS
node_check_compatible noppy.rw_tree1.test.dtb:	PASS
node_offset_by_compatible noppy.rw_tree1.test.dtb:	PASS
notfound noppy.rw_tree1.test.dtb:	PASS
setprop_inplace noppy.rw_tree1.test.dtb:	PASS
nop_property noppy.rw_tree1.test.dtb:	PASS
nop_node noppy.rw_tree1.test.dtb:	PASS
set_name noppy.rw_tree1.test.dtb:	PASS
setprop noppy.rw_tree1.test.dtb:	PASS
del_property noppy.rw_tree1.test.dtb:	PASS
del_node noppy.rw_tree1.test.dtb:	PASS
dtc -I dts -O dtb -o subnode_iterate.dtb subnode_iterate.dts:	PASS
subnode_iterate subnode_iterate.dtb:	PASS
dtc -I dts -O dtb -o property_iterate.dtb property_iterate.dts:	PASS
property_iterate property_iterate.dtb:	PASS
truncated_property:	PASS
dtc -I dts -O dtb -o aliases.dtb aliases.dts:	PASS
get_alias aliases.dtb:	PASS
path_offset_aliases aliases.dtb:	PASS
add_subnode_with_nops:	PASS
dtc -I dts -O dts -o sourceoutput.test.dts sourceoutput.dts:	PASS
dtc -I dts -O dtb -o sourceoutput.test.dtb sourceoutput.dts:	PASS
dtc -I dts -O dtb -o sourceoutput.test.dts.test.dtb sourceoutput.test.dts:	PASS
dtbs_equal_ordered sourceoutput.test.dtb sourceoutput.test.dts.test.dtb:	PASS
dtc -I dts -O dtb -o embedded_nul.test.dtb embedded_nul.dts:	PASS
dtc -I dts -O dtb -o embedded_nul_equiv.test.dtb embedded_nul_equiv.dts:	PASS
dtbs_equal_ordered embedded_nul.test.dtb embedded_nul_equiv.test.dtb:	PASS
dtc -I dts -O dtb bad-size-cells.dts:	PASS
../dtc division-by-zero.dts {!= 0}:	PASS
../dtc bad-octal-literal.dts {!= 0}:	PASS
dtc -I dts -O dtb nul-in-escape.dts:	PASS
../dtc nul-in-line-info1.dts {!= 0}:	PASS
../dtc nul-in-line-info2.dts {!= 0}:	PASS
../dtc -I dtb -O dts -o /dev/null ovf_size_strings.dtb {!= 0}:	PASS
utilfdt_test:	PASS
dtc -I dts -O dtb -o dtc_tree1.test.dtb test_tree1.dts:	PASS
get_mem_rsv dtc_tree1.test.dtb:	PASS
root_node dtc_tree1.test.dtb:	PASS
find_property dtc_tree1.test.dtb:	PASS
subnode_offset dtc_tree1.test.dtb:	PASS
path_offset dtc_tree1.test.dtb:	PASS
get_name dtc_tree1.test.dtb:	PASS
getprop dtc_tree1.test.dtb:	PASS
get_phandle dtc_tree1.test.dtb:	PASS
get_path dtc_tree1.test.dtb:	PASS
supernode_atdepth_offset dtc_tree1.test.dtb:	PASS
parent_offset dtc_tree1.test.dtb:	PASS
node_offset_by_prop_value dtc_tree1.test.dtb:	PASS
node_offset_by_phandle dtc_tree1.test.dtb:	PASS
node_check_compatible dtc_tree1.test.dtb:	PASS
node_offset_by_compatible dtc_tree1.test.dtb:	PASS
notfound dtc_tree1.test.dtb:	PASS
setprop_inplace dtc_tree1.test.dtb:	PASS
nop_property dtc_tree1.test.dtb:	PASS
nop_node dtc_tree1.test.dtb:	PASS
set_name dtc_tree1.test.dtb:	PASS
setprop dtc_tree1.test.dtb:	PASS
del_property dtc_tree1.test.dtb:	PASS
del_node dtc_tree1.test.dtb:	PASS
dtbs_equal_ordered dtc_tree1.test.dtb test_tree1.dtb:	FAIL	Mismatch in reserve entry 0: (0xdeadbeef00000000, 0x100000) != (0x0, 0x100000)
dtc -I dts -O dtb -o dtc_escapes.test.dtb propname_escapes.dts:	PASS
propname_escapes dtc_escapes.test.dtb:	PASS
dtc -I dts -O dtb -o line_directives.test.dtb line_directives.dts:	PASS
dtc -I dts -O dtb -o dtc_escapes.test.dtb escapes.dts:	PASS
string_escapes dtc_escapes.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_char_literal.test.dtb char_literal.dts:	PASS
char_literal dtc_char_literal.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_sized_cells.test.dtb sized_cells.dts:	PASS
sized_cells dtc_sized_cells.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_extra-terminating-null.test.dtb extra-terminating-null.dts:	PASS
extra-terminating-null dtc_extra-terminating-null.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_references.test.dtb references.dts:	PASS
references dtc_references.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_path-references.test.dtb path-references.dts:	PASS
path-references dtc_path-references.test.dtb:	PASS
phandle_format dtc_references.test.dtb epapr:	PASS
dtc -I dts -O dtb -H legacy -o dtc_references.test.legacy.dtb references.dts:	PASS
phandle_format dtc_references.test.legacy.dtb legacy:	PASS
dtc -I dts -O dtb -H epapr -o dtc_references.test.epapr.dtb references.dts:	PASS
phandle_format dtc_references.test.epapr.dtb epapr:	PASS
dtc -I dts -O dtb -H both -o dtc_references.test.both.dtb references.dts:	PASS
phandle_format dtc_references.test.both.dtb both:	PASS
dtc -I dts -O dtb -o multilabel.test.dtb multilabel.dts:	PASS
references multilabel.test.dtb:	PASS
dtc -I dts -O dtb -o label_repeated.test.dtb label_repeated.dts:	PASS
dtc -I dts -O dtb -o dtc_comments.test.dtb comments.dts:	PASS
dtc -I dts -O dtb -o dtc_comments-cmp.test.dtb comments-cmp.dts:	PASS
dtbs_equal_ordered dtc_comments.test.dtb dtc_comments-cmp.test.dtb:	PASS
dtc -I dts -O dtb -o includes.test.dtb include0.dts:	PASS
dtbs_equal_ordered includes.test.dtb test_tree1.dtb:	FAIL	Mismatch in reserve entry 0: (0xdeadbeef00000000, 0x100000) != (0x0, 0x100000)
dtc -I dts -O dtb -o incbin.test.dtb incbin.dts:	PASS
incbin incbin.test.dtb:	PASS
dtc -I dts -O dtb -o boot_cpuid.test.dtb boot-cpuid.dts:	PASS
boot-cpuid boot_cpuid.test.dtb 16:	PASS
dtc -I dts -O dtb -b 17 -o boot_cpuid_17.test.dtb boot-cpuid.dts:	PASS
boot-cpuid boot_cpuid_17.test.dtb 17:	PASS
dtc -I dtb -O dtb -o preserve_boot_cpuid.test.dtb boot_cpuid.test.dtb:	PASS
boot-cpuid preserve_boot_cpuid.test.dtb 16:	PASS
dtbs_equal_ordered preserve_boot_cpuid.test.dtb boot_cpuid.test.dtb:	PASS
dtc -I dtb -O dtb -o preserve_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb:	PASS
boot-cpuid preserve_boot_cpuid_17.test.dtb 17:	PASS
dtbs_equal_ordered preserve_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb:	PASS
dtc -I dtb -O dtb -b17 -o override17_boot_cpuid.test.dtb boot_cpuid.test.dtb:	PASS
boot-cpuid override17_boot_cpuid.test.dtb 17:	PASS
dtc -I dtb -O dtb -b0 -o override0_boot_cpuid_17.test.dtb boot_cpuid_17.test.dtb:	PASS
boot-cpuid override0_boot_cpuid_17.test.dtb 0:	PASS
dtc -I dts -O asm -o oasm_test_tree1.dts.test.s test_tree1.dts:	PASS
asm_to_so oasm_test_tree1.dts:	PASS
dtc -I dts -O dtb -o test_tree1.dts.test.dtb test_tree1.dts:	PASS
asm_tree_dump ./oasm_test_tree1.dts.test.so oasm_test_tree1.dts.test.dtb:	PASS
cmp oasm_test_tree1.dts.test.dtb test_tree1.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_escapes.dts.test.s escapes.dts:	PASS
asm_to_so oasm_escapes.dts:	PASS
dtc -I dts -O dtb -o escapes.dts.test.dtb escapes.dts:	PASS
asm_tree_dump ./oasm_escapes.dts.test.so oasm_escapes.dts.test.dtb:	PASS
cmp oasm_escapes.dts.test.dtb escapes.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_references.dts.test.s references.dts:	PASS
asm_to_so oasm_references.dts:	PASS
dtc -I dts -O dtb -o references.dts.test.dtb references.dts:	PASS
asm_tree_dump ./oasm_references.dts.test.so oasm_references.dts.test.dtb:	PASS
cmp oasm_references.dts.test.dtb references.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_path-references.dts.test.s path-references.dts:	PASS
asm_to_so oasm_path-references.dts:	PASS
dtc -I dts -O dtb -o path-references.dts.test.dtb path-references.dts:	PASS
asm_tree_dump ./oasm_path-references.dts.test.so oasm_path-references.dts.test.dtb:	PASS
cmp "oasm_path-references.dts.test.dt"...<33 bytes> path-references.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_comments.dts.test.s comments.dts:	PASS
asm_to_so oasm_comments.dts:	PASS
dtc -I dts -O dtb -o comments.dts.test.dtb comments.dts:	PASS
asm_tree_dump ./oasm_comments.dts.test.so oasm_comments.dts.test.dtb:	PASS
cmp oasm_comments.dts.test.dtb comments.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_aliases.dts.test.s aliases.dts:	PASS
asm_to_so oasm_aliases.dts:	PASS
dtc -I dts -O dtb -o aliases.dts.test.dtb aliases.dts:	PASS
asm_tree_dump ./oasm_aliases.dts.test.so oasm_aliases.dts.test.dtb:	PASS
cmp oasm_aliases.dts.test.dtb aliases.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_include0.dts.test.s include0.dts:	PASS
asm_to_so oasm_include0.dts:	PASS
dtc -I dts -O dtb -o include0.dts.test.dtb include0.dts:	PASS
asm_tree_dump ./oasm_include0.dts.test.so oasm_include0.dts.test.dtb:	PASS
cmp oasm_include0.dts.test.dtb include0.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_incbin.dts.test.s incbin.dts:	PASS
asm_to_so oasm_incbin.dts:	PASS
dtc -I dts -O dtb -o incbin.dts.test.dtb incbin.dts:	PASS
asm_tree_dump ./oasm_incbin.dts.test.so oasm_incbin.dts.test.dtb:	PASS
cmp oasm_incbin.dts.test.dtb incbin.dts.test.dtb:	PASS
dtc -I dts -O asm -o oasm_value-labels.dts.test.s value-labels.dts:	PASS
asm_to_so oasm_value-labels.dts:	PASS
dtc -I dts -O dtb -o value-labels.dts.test.dtb value-labels.dts:	PASS
asm_tree_dump ./oasm_value-labels.dts.test.so oasm_value-labels.dts.test.dtb:	PASS
cmp oasm_value-labels.dts.test.dtb value-labels.dts.test.dtb:	PASS
value-labels ./oasm_value-labels.dts.test.so:	PASS
dtc -I dtb -O dts -o odts_test_tree1.dtb.test.dts test_tree1.dtb:	PASS
dtc -I dts -O dtb -o odts_test_tree1.dtb.test.dtb odts_test_tree1.dtb.test.dts:	PASS
dtbs_equal_ordered test_tree1.dtb odts_test_tree1.dtb.test.dtb:	PASS
dtc -I dtb -O dts -o odts_dtc_tree1.test.dtb.test.dts dtc_tree1.test.dtb:	PASS
dtc -I dts -O dtb -o odts_dtc_tree1.test.dtb.test.dtb odts_dtc_tree1.test.dtb.test.dts:	PASS
dtbs_equal_ordered dtc_tree1.test.dtb odts_dtc_tree1.test.dtb.test.dtb:	PASS
dtc -I dtb -O dts -o odts_dtc_escapes.test.dtb.test.dts dtc_escapes.test.dtb:	PASS
dtc -I dts -O dtb -o odts_dtc_escapes.test.dtb.test.dtb odts_dtc_escapes.test.dtb.test.dts:	PASS
dtbs_equal_ordered dtc_escapes.test.dtb odts_dtc_escapes.test.dtb.test.dtb:	PASS
dtc -I dtb -O dts -o odts_dtc_extra-terminating-null.test.dtb.test.dts dtc_extra-terminating-null.test.dtb:	PASS
dtc -I dts -O dtb -o odts_dtc_extra-terminating-null.test.dtb.test.dtb odts_dtc_extra-terminating-null.test.dtb.test.dts:	PASS
dtbs_equal_ordered dtc_extra-terminating-null.test.dtb odts_dtc_extra-terminating-null.test.dtb.test.dtb:	PASS
dtc -I dtb -O dts -o odts_dtc_references.test.dtb.test.dts dtc_references.test.dtb:	PASS
dtc -I dts -O dtb -o odts_dtc_references.test.dtb.test.dtb odts_dtc_references.test.dtb.test.dts:	PASS
dtbs_equal_ordered dtc_references.test.dtb odts_dtc_references.test.dtb.test.dtb:	PASS
dtc -I dtb -O dtb -V1 -o ov1_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V16 -o ov16_ov1_test_tree1.dtb.test.dtb ov1_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov16_ov1_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V17 -o ov17_ov1_test_tree1.dtb.test.dtb ov1_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov17_ov1_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V2 -o ov2_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V16 -o ov16_ov2_test_tree1.dtb.test.dtb ov2_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov16_ov2_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V17 -o ov17_ov2_test_tree1.dtb.test.dtb ov2_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov17_ov2_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V3 -o ov3_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V16 -o ov16_ov3_test_tree1.dtb.test.dtb ov3_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov16_ov3_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V17 -o ov17_ov3_test_tree1.dtb.test.dtb ov3_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov17_ov3_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V16 -o ov16_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V16 -o ov16_ov16_test_tree1.dtb.test.dtb ov16_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov16_ov16_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V17 -o ov17_ov16_test_tree1.dtb.test.dtb ov16_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov17_ov16_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V17 -o ov17_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V16 -o ov16_ov17_test_tree1.dtb.test.dtb ov17_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov16_ov17_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dtb -O dtb -V17 -o ov17_ov17_test_tree1.dtb.test.dtb ov17_test_tree1.dtb.test.dtb:	PASS
dtbs_equal_ordered ov17_ov17_test_tree1.dtb.test.dtb test_tree1.dtb:	PASS
dtc -I dts -O dtb -o dtc_tree1_merge.test.dtb test_tree1_merge.dts:	PASS
get_mem_rsv dtc_tree1_merge.test.dtb:	PASS
root_node dtc_tree1_merge.test.dtb:	PASS
find_property dtc_tree1_merge.test.dtb:	PASS
subnode_offset dtc_tree1_merge.test.dtb:	PASS
path_offset dtc_tree1_merge.test.dtb:	PASS
get_name dtc_tree1_merge.test.dtb:	PASS
getprop dtc_tree1_merge.test.dtb:	PASS
get_phandle dtc_tree1_merge.test.dtb:	PASS
get_path dtc_tree1_merge.test.dtb:	PASS
supernode_atdepth_offset dtc_tree1_merge.test.dtb:	PASS
parent_offset dtc_tree1_merge.test.dtb:	PASS
node_offset_by_prop_value dtc_tree1_merge.test.dtb:	PASS
node_offset_by_phandle dtc_tree1_merge.test.dtb:	PASS
node_check_compatible dtc_tree1_merge.test.dtb:	PASS
node_offset_by_compatible dtc_tree1_merge.test.dtb:	PASS
notfound dtc_tree1_merge.test.dtb:	PASS
setprop_inplace dtc_tree1_merge.test.dtb:	PASS
nop_property dtc_tree1_merge.test.dtb:	PASS
nop_node dtc_tree1_merge.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_tree1_merge_labelled.test.dtb test_tree1_merge_labelled.dts:	PASS
get_mem_rsv dtc_tree1_merge_labelled.test.dtb:	PASS
root_node dtc_tree1_merge_labelled.test.dtb:	PASS
find_property dtc_tree1_merge_labelled.test.dtb:	PASS
subnode_offset dtc_tree1_merge_labelled.test.dtb:	PASS
path_offset dtc_tree1_merge_labelled.test.dtb:	PASS
get_name dtc_tree1_merge_labelled.test.dtb:	PASS
getprop dtc_tree1_merge_labelled.test.dtb:	PASS
get_phandle dtc_tree1_merge_labelled.test.dtb:	PASS
get_path dtc_tree1_merge_labelled.test.dtb:	PASS
supernode_atdepth_offset dtc_tree1_merge_labelled.test.dtb:	PASS
parent_offset dtc_tree1_merge_labelled.test.dtb:	PASS
node_offset_by_prop_value dtc_tree1_merge_labelled.test.dtb:	PASS
node_offset_by_phandle dtc_tree1_merge_labelled.test.dtb:	PASS
node_check_compatible dtc_tree1_merge_labelled.test.dtb:	PASS
node_offset_by_compatible dtc_tree1_merge_labelled.test.dtb:	PASS
notfound dtc_tree1_merge_labelled.test.dtb:	PASS
setprop_inplace dtc_tree1_merge_labelled.test.dtb:	PASS
nop_property dtc_tree1_merge_labelled.test.dtb:	PASS
nop_node dtc_tree1_merge_labelled.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_tree1_label_noderef.test.dtb test_tree1_label_noderef.dts:	PASS
dtbs_equal_unordered dtc_tree1_label_noderef.test.dtb test_tree1.dtb:	FAIL	Mismatch in reserve entry 0: (0x75bcd15, 0x1000) != (0x0, 0x100000)
dtc -I dts -O dtb -o multilabel_merge.test.dtb multilabel_merge.dts:	PASS
references multilabel.test.dtb:	PASS
dtbs_equal_ordered multilabel.test.dtb multilabel_merge.test.dtb:	PASS
dtc -I dts -O dtb -o dtc_tree1_merge_path.test.dtb test_tree1_merge_path.dts:	PASS
get_mem_rsv dtc_tree1_merge_path.test.dtb:	PASS
root_node dtc_tree1_merge_path.test.dtb:	PASS
find_property dtc_tree1_merge_path.test.dtb:	PASS
subnode_offset dtc_tree1_merge_path.test.dtb:	PASS
path_offset dtc_tree1_merge_path.test.dtb:	PASS
get_name dtc_tree1_merge_path.test.dtb:	PASS
getprop dtc_tree1_merge_path.test.dtb:	PASS
get_phandle dtc_tree1_merge_path.test.dtb:	PASS
get_path dtc_tree1_merge_path.test.dtb:	PASS
supernode_atdepth_offset dtc_tree1_merge_path.test.dtb:	PASS
parent_offset dtc_tree1_merge_path.test.dtb:	PASS
node_offset_by_prop_value dtc_tree1_merge_path.test.dtb:	PASS
node_offset_by_phandle dtc_tree1_merge_path.test.dtb:	PASS
node_check_compatible dtc_tree1_merge_path.test.dtb:	PASS
node_offset_by_compatible dtc_tree1_merge_path.test.dtb:	PASS
notfound dtc_tree1_merge_path.test.dtb:	PASS
setprop_inplace dtc_tree1_merge_path.test.dtb:	PASS
nop_property dtc_tree1_merge_path.test.dtb:	PASS
nop_node dtc_tree1_merge_path.test.dtb:	PASS
../dtc -I dts -O dtb -o /dev/null test_label_ref.dts {!= 0}:	PASS
dtc -I dts -O dtb -o dtc_tree1_delete.test.dtb test_tree1_delete.dts:	PASS
get_mem_rsv dtc_tree1_delete.test.dtb:	PASS
root_node dtc_tree1_delete.test.dtb:	PASS
find_property dtc_tree1_delete.test.dtb:	PASS
subnode_offset dtc_tree1_delete.test.dtb:	PASS
path_offset dtc_tree1_delete.test.dtb:	PASS
get_name dtc_tree1_delete.test.dtb:	PASS
getprop dtc_tree1_delete.test.dtb:	PASS
get_phandle dtc_tree1_delete.test.dtb:	PASS
get_path dtc_tree1_delete.test.dtb:	PASS
supernode_atdepth_offset dtc_tree1_delete.test.dtb:	PASS
parent_offset dtc_tree1_delete.test.dtb:	PASS
node_offset_by_prop_value dtc_tree1_delete.test.dtb:	PASS
node_offset_by_phandle dtc_tree1_delete.test.dtb:	PASS
node_check_compatible dtc_tree1_delete.test.dtb:	PASS
node_offset_by_compatible dtc_tree1_delete.test.dtb:	PASS
notfound dtc_tree1_delete.test.dtb:	PASS
setprop_inplace dtc_tree1_delete.test.dtb:	PASS
nop_property dtc_tree1_delete.test.dtb:	PASS
nop_node dtc_tree1_delete.test.dtb:	PASS
dtc -I dts -O dts -o delete_reinstate_multilabel.dts.test.dts delete_reinstate_multilabel.dts:	PASS
cmp "delete_reinstate_multilabel.dts."...<40 bytes> "delete_reinstate_multilabel_ref."...<37 bytes>PASS
dtc-checkfails.sh duplicate_node_names -- -I dts -O dtb dup-nodename.dts:	PASS
dtc -I dts -O dtb -o dup-nodename.dts.test.dtb -f dup-nodename.dts:	PASS
dtc-checkfails.sh duplicate_node_names -- -I dtb -O dtb dup-nodename.dts.test.dtb:	PASS
dtc-checkfails.sh duplicate_property_names -- -I dts -O dtb dup-propname.dts:	PASS
dtc -I dts -O dtb -o dup-propname.dts.test.dtb -f dup-propname.dts:	PASS
dtc-checkfails.sh duplicate_property_names -- -I dtb -O dtb dup-propname.dts.test.dtb:	PASS
dtc-checkfails.sh explicit_phandles -- -I dts -O dtb dup-phandle.dts:	PASS
dtc -I dts -O dtb -o dup-phandle.dts.test.dtb -f dup-phandle.dts:	PASS
dtc-checkfails.sh explicit_phandles -- -I dtb -O dtb dup-phandle.dts.test.dtb:	PASS
dtc-checkfails.sh explicit_phandles -- -I dts -O dtb zero-phandle.dts:	PASS
dtc -I dts -O dtb -o zero-phandle.dts.test.dtb -f zero-phandle.dts:	PASS
dtc-checkfails.sh explicit_phandles -- -I dtb -O dtb zero-phandle.dts.test.dtb:	PASS
dtc-checkfails.sh explicit_phandles -- -I dts -O dtb minusone-phandle.dts:	PASS
dtc -I dts -O dtb -o minusone-phandle.dts.test.dtb -f minusone-phandle.dts:	PASS
dtc-checkfails.sh explicit_phandles -- -I dtb -O dtb minusone-phandle.dts.test.dtb:	PASS
dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-node-ref.dts:	PASS
dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-label-ref.dts:	PASS
dtc-fatal.sh -I dts -O dtb nonexist-node-ref2.dts:	PASS
dtc-checkfails.sh name_properties -- -I dts -O dtb bad-name-property.dts:	PASS
dtc -I dts -O dtb -o bad-name-property.dts.test.dtb -f bad-name-property.dts:	PASS
dtc-checkfails.sh name_properties -- -I dtb -O dtb bad-name-property.dts.test.dtb:	PASS
dtc-checkfails.sh address_cells_is_cell size_cells_is_cell interrupt_cells_is_cell -- -I dts -O dtb bad-ncells.dts:	PASS
dtc -I dts -O dtb -o bad-ncells.dts.test.dtb -f bad-ncells.dts:	PASS
dtc-checkfails.sh address_cells_is_cell size_cells_is_cell interrupt_cells_is_cell -- -I dtb -O dtb bad-ncells.dts.test.dtb:	PASS
dtc-checkfails.sh device_type_is_string model_is_string status_is_string -- -I dts -O dtb bad-string-props.dts:	PASS
dtc -I dts -O dtb -o bad-string-props.dts.test.dtb -f bad-string-props.dts:	PASS
dtc-checkfails.sh device_type_is_string model_is_string status_is_string -- -I dtb -O dtb bad-string-props.dts.test.dtb:	PASS
dtc-checkfails.sh reg_format ranges_format -- -I dts -O dtb bad-reg-ranges.dts:	PASS
dtc -I dts -O dtb -o bad-reg-ranges.dts.test.dtb -f bad-reg-ranges.dts:	PASS
dtc-checkfails.sh reg_format ranges_format -- -I dtb -O dtb bad-reg-ranges.dts.test.dtb:	PASS
dtc-checkfails.sh ranges_format -- -I dts -O dtb bad-empty-ranges.dts:	PASS
dtc -I dts -O dtb -o bad-empty-ranges.dts.test.dtb -f bad-empty-ranges.dts:	PASS
dtc-checkfails.sh ranges_format -- -I dtb -O dtb bad-empty-ranges.dts.test.dtb:	PASS
dtc-checkfails.sh reg_format ranges_format -- -I dts -O dtb reg-ranges-root.dts:	PASS
dtc -I dts -O dtb -o reg-ranges-root.dts.test.dtb -f reg-ranges-root.dts:	PASS
dtc-checkfails.sh reg_format ranges_format -- -I dtb -O dtb reg-ranges-root.dts.test.dtb:	PASS
dtc-checkfails.sh avoid_default_addr_size -- -I dts -O dtb default-addr-size.dts:	PASS
dtc -I dts -O dtb -o default-addr-size.dts.test.dtb -f default-addr-size.dts:	PASS
dtc-checkfails.sh avoid_default_addr_size -- -I dtb -O dtb default-addr-size.dts.test.dtb:	PASS
dtc-checkfails.sh obsolete_chosen_interrupt_controller -- -I dts -O dtb obsolete-chosen-interrupt-controller.dts:	PASS
dtc -I dts -O dtb -o obsolete-chosen-interrupt-controller.dts.test.dtb -f obsolete-chosen-interrupt-controller.dts:	PASS
dtc-checkfails.sh obsolete_chosen_interrupt_controller -- -I dtb -O dtb obsolete-chosen-interrupt-controller.dts.test.dtb:	PASS
dtc-checkfails.sh unit_address_vs_reg -- -I dts -O dtb reg-without-unit-addr.dts:	PASS
dtc -I dts -O dtb -o reg-without-unit-addr.dts.test.dtb -f reg-without-unit-addr.dts:	PASS
dtc-checkfails.sh unit_address_vs_reg -- -I dtb -O dtb reg-without-unit-addr.dts.test.dtb:	PASS
dtc-checkfails.sh unit_address_vs_reg -- -I dts -O dtb unit-addr-without-reg.dts:	PASS
dtc -I dts -O dtb -o unit-addr-without-reg.dts.test.dtb -f unit-addr-without-reg.dts:	PASS
dtc-checkfails.sh unit_address_vs_reg -- -I dtb -O dtb unit-addr-without-reg.dts.test.dtb:	PASS
dtc-checkfails.sh unit_address_format -- -I dts -O dtb unit-addr-leading-0x.dts:	PASS
dtc -I dts -O dtb -o unit-addr-leading-0x.dts.test.dtb -f unit-addr-leading-0x.dts:	PASS
dtc-checkfails.sh unit_address_format -- -I dtb -O dtb unit-addr-leading-0x.dts.test.dtb:	PASS
dtc-checkfails.sh unit_address_format -- -I dts -O dtb unit-addr-leading-0s.dts:	PASS
dtc -I dts -O dtb -o unit-addr-leading-0s.dts.test.dtb -f unit-addr-leading-0s.dts:	PASS
dtc-checkfails.sh unit_address_format -- -I dtb -O dtb unit-addr-leading-0s.dts.test.dtb:	PASS
dtc-checkfails.sh interrupts_extended_property -- -I dts -O dtb bad-phandle-cells.dts:	PASS
dtc -I dts -O dtb -o bad-phandle-cells.dts.test.dtb -f bad-phandle-cells.dts:	PASS
dtc-checkfails.sh interrupts_extended_property -- -I dtb -O dtb bad-phandle-cells.dts.test.dtb:	PASS
dtc-checkfails.sh gpios_property -- -I dts -O dtb bad-gpio.dts:	PASS
dtc -I dts -O dtb -o bad-gpio.dts.test.dtb -f bad-gpio.dts:	PASS
dtc-checkfails.sh gpios_property -- -I dtb -O dtb bad-gpio.dts.test.dtb:	PASS
dtc-checkfails.sh deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb bad-gpio.dts:	PASS
dtc-checkfails.sh interrupts_property -- -I dts -O dtb bad-interrupt-cells.dts:	PASS
dtc -I dts -O dtb -o bad-interrupt-cells.dts.test.dtb -f bad-interrupt-cells.dts:	PASS
dtc-checkfails.sh interrupts_property -- -I dtb -O dtb bad-interrupt-cells.dts.test.dtb:	PASS
dtc-checkfails.sh node_name_chars -- -I dtb -O dtb bad_node_char.dtb:	PASS
dtc-checkfails.sh node_name_format -- -I dtb -O dtb bad_node_format.dtb:	PASS
dtc-checkfails.sh prop_name_chars -- -I dtb -O dtb bad_prop_char.dtb:	PASS
dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label1.dts:	PASS
dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label2.dts:	PASS
dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label3.dts:	PASS
dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label4.dts:	PASS
dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label5.dts:	PASS
dtc-checkfails.sh duplicate_label -- -I dts -O dtb reuse-label6.dts:	PASS
check_path test_tree1.dtb exists /subnode@1:	PASS
check_path test_tree1.dtb not-exists /subnode@10:	PASS
dtc-checkfails.sh address_cells_is_cell interrupt_cells_is_cell -n size_cells_is_cell -- -Wno_size_cells_is_cell -I dts -O dtb bad-ncells.dts:	PASS
dtc-fails.sh -n test-warn-output.test.dtb -I dts -O dtb bad-ncells.dts:	PASS
dtc-fails.sh test-error-output.test.dtb -I dts -O dtb bad-ncells.dts -Esize_cells_is_cell:	PASS
dtc-checkfails.sh always_fail -- -Walways_fail -I dts -O dtb test_tree1.dts:	PASS
dtc-checkfails.sh -n always_fail -- -Walways_fail -Wno_always_fail -I dts -O dtb test_tree1.dts:	PASS
dtc-fails.sh test-negation-1.test.dtb -Ealways_fail -I dts -O dtb test_tree1.dts:	PASS
dtc-fails.sh -n test-negation-2.test.dtb -Ealways_fail -Eno_always_fail -I dts -O dtb test_tree1.dts:	PASS
dtc-fails.sh test-negation-3.test.dtb -Ealways_fail -Wno_always_fail -I dts -O dtb test_tree1.dts:	PASS
dtc-fails.sh -n test-negation-4.test.dtb -Esize_cells_is_cell -Eno_size_cells_is_cell -I dts -O dtb bad-ncells.dts:	PASS
dtc-checkfails.sh size_cells_is_cell -- -Esize_cells_is_cell -Eno_size_cells_is_cell -I dts -O dtb bad-ncells.dts:	PASS
dtc -I dts -O dtb -o stdin_dtc_tree1.test.dtb -:	PASS
cmp stdin_dtc_tree1.test.dtb dtc_tree1.test.dtb:	PASS
dtc -I dtb -O dts -o stdin_odts_test_tree1.dtb.test.dts -:	PASS
cmp "stdin_odts_test_tree1.dtb.test.d"...<34 bytes> odts_test_tree1.dtb.test.dts:	PASS
integer-expressions -g integer-expressions.test.dts:	PASS
dtc -I dts -O dtb -o integer-expressions.test.dtb integer-expressions.test.dts:	PASS
integer-expressions integer-expressions.test.dtb:	PASS
dtc-fatal.sh -I dts -O dtb nosuchfile.dts:	PASS
dtc-fatal.sh -I dtb -O dtb nosuchfile.dtb:	PASS
dtc-fatal.sh -I fs -O dtb nosuchfile:	PASS
dtc -I dts -O dtb -o dependencies.test.dtb -d dependencies.test.d dependencies.dts:	PASS
cmp dependencies.test.d dependencies.cmp:	PASS
../dtc -I dts -O dtb -o search_paths.dtb search_paths.dts {!= 0}:	PASS
dtc -i search_dir -I dts -O dtb -o search_paths.dtb search_paths.dts:	PASS
../dtc -i search_dir_b -I dts -O dtb -o search_paths_b.dtb search_paths_b.dts {!= 0}:	PASS
dtc -i search_dir_b -i search_dir -I dts -O dtb -o search_paths_b.dtb search_paths_b.dts:	PASS
dtc -I dts -O dtb -o search_paths_subdir.dtb search_dir_b/search_paths_subdir.dts:	PASS
dtc -O dtb -p 1000 -a 2 -o align0.dtb subnode_iterate.dts:	PASS
check_align align0.dtb 2:	PASS
dtc -O dtb -S 1999 -a 2 -o align1.dtb subnode_iterate.dts:	PASS
check_align align1.dtb 2:	PASS
dtc -O dtb -p 1000 -a 4 -o align0.dtb subnode_iterate.dts:	PASS
check_align align0.dtb 4:	PASS
dtc -O dtb -S 1999 -a 4 -o align1.dtb subnode_iterate.dts:	PASS
check_align align1.dtb 4:	PASS
dtc -O dtb -p 1000 -a 8 -o align0.dtb subnode_iterate.dts:	PASS
check_align align0.dtb 8:	PASS
dtc -O dtb -S 1999 -a 8 -o align1.dtb subnode_iterate.dts:	PASS
check_align align1.dtb 8:	PASS
dtc -O dtb -p 1000 -a 16 -o align0.dtb subnode_iterate.dts:	PASS
check_align align0.dtb 16:	PASS
dtc -O dtb -S 1999 -a 16 -o align1.dtb subnode_iterate.dts:	PASS
check_align align1.dtb 16:	PASS
dtc -O dtb -p 1000 -a 32 -o align0.dtb subnode_iterate.dts:	PASS
check_align align0.dtb 32:	PASS
dtc -O dtb -S 1999 -a 32 -o align1.dtb subnode_iterate.dts:	PASS
check_align align1.dtb 32:	PASS
dtc -O dtb -p 1000 -a 64 -o align0.dtb subnode_iterate.dts:	PASS
check_align align0.dtb 64:	PASS
dtc -O dtb -S 1999 -a 64 -o align1.dtb subnode_iterate.dts:	PASS
check_align align1.dtb 64:	PASS
dtc -@ -I dts -O dtb -o overlay_base.test.dtb overlay_base.dts:	PASS
check_path overlay_base.test.dtb exists /__symbols__:	PASS
check_path overlay_base.test.dtb not-exists /__fixups__:	PASS
check_path overlay_base.test.dtb not-exists /__local_fixups__:	PASS
dtc -I dts -O dtb -o overlay_overlay.test.dtb overlay_overlay.dts:	PASS
check_path overlay_overlay.test.dtb not-exists /__symbols__:	PASS
check_path overlay_overlay.test.dtb exists /__fixups__:	PASS
check_path overlay_overlay.test.dtb exists /__local_fixups__:	PASS
overlay overlay_base.test.dtb overlay_overlay.test.dtb:	PASS
dtc -I dtb -O dts -o overlay_overlay_decompile.test.dts overlay_overlay.test.dtb:	PASS
dtc -I dts -O dtb -o overlay_overlay_decompile.test.dtb overlay_overlay_decompile.test.dts:	PASS
dtbs_equal_ordered overlay_overlay.test.dtb overlay_overlay_decompile.test.dtb:	PASS
dtc -A -I dts -O dtb -o overlay_base_with_aliases.dtb overlay_base.dts:	PASS
check_path overlay_base_with_aliases.dtb exists /aliases:	PASS
check_path overlay_base_with_aliases.dtb not-exists /__symbols__:	PASS
check_path overlay_base_with_aliases.dtb not-exists /__fixups__:	PASS
check_path overlay_base_with_aliases.dtb not-exists /__local_fixups__:	PASS
dtc -I dts -O dtb -o test_tree1_wrong1.test.dtb test_tree1_wrong1.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong2.test.dtb test_tree1_wrong2.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong3.test.dtb test_tree1_wrong3.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong4.test.dtb test_tree1_wrong4.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong5.test.dtb test_tree1_wrong5.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong6.test.dtb test_tree1_wrong6.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong7.test.dtb test_tree1_wrong7.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong8.test.dtb test_tree1_wrong8.dts:	PASS
dtc -I dts -O dtb -o test_tree1_wrong9.test.dtb test_tree1_wrong9.dts:	PASS
dtb_reverse test_tree1.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb test_tree1.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1.dtb.reversed.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong1.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong2.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong3.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong4.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong5.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong6.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong7.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong8.test.dtb:	PASS
dtbs_equal_ordered -n test_tree1.dtb test_tree1_wrong9.test.dtb:	PASS
dtbs_equal_unordered test_tree1.dtb test_tree1.dtb:	PASS
dtbs_equal_unordered test_tree1.dtb test_tree1.dtb.reversed.test.dtb:	PASS
dtbs_equal_unordered test_tree1.dtb.reversed.test.dtb test_tree1.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong1.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong2.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong3.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong4.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong5.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong6.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong7.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong8.test.dtb:	PASS
dtbs_equal_unordered -n test_tree1.dtb test_tree1_wrong9.test.dtb:	PASS
dtc -I dtb -O dtb -s -o test_tree1.dtb.sorted.test.dtb test_tree1.dtb:	PASS
dtbs_equal_unordered test_tree1.dtb test_tree1.dtb.sorted.test.dtb:	PASS
dtc -I dtb -O dtb -s -o test_tree1.dtb.reversed.sorted.test.dtb test_tree1.dtb.reversed.test.dtb:	PASS
dtbs_equal_unordered test_tree1.dtb.reversed.test.dtb test_tree1.dtb.reversed.sorted.test.dtb:	PASS
dtbs_equal_ordered test_tree1.dtb.sorted.test.dtb test_tree1.dtb.reversed.sorted.test.dtb:	PASS
dtc -O dtb -o label01.dts.fdtget.test.dtb label01.dts:	PASS
fdtget-runtest.sh MyBoardName label01.dts.fdtget.test.dtb / model:	PASS
fdtget-runtest.sh MyBoardName MyBoardFamilyName label01.dts.fdtget.test.dtb / compatible:	PASS
fdtget-runtest.sh 77 121 66 111 97 114 100 78 97 109 101 0 77 121 66 111 97 114 100 70 97 109 105 108 121 78 97 109 101 0 -t bu label01.dts.fdtget.test.dtb / compatible:	PASS
fdtget-runtest.sh MyBoardName MyBoardFamilyName -t s label01.dts.fdtget.test.dtb / compatible:	PASS
fdtget-runtest.sh 32768 label01.dts.fdtget.test.dtb /cpus/PowerPC,970@1 d-cache-size:	PASS
fdtget-runtest.sh 8000 -tx label01.dts.fdtget.test.dtb /cpus/PowerPC,970@1 d-cache-size:	PASS
fdtget-runtest.sh 61 62 63 0 -tbx label01.dts.fdtget.test.dtb /randomnode tricky1:	PASS
fdtget-runtest.sh a b c d de ea ad be ef -tbx label01.dts.fdtget.test.dtb /randomnode blob:	PASS
../fdtget -tlx label01.dts.fdtget.test.dtb /randomnode mixed {!= 0}:	PASS
fdtget-runtest.sh 6162 6300 1234 0 a 0 b 0 c -thx label01.dts.fdtget.test.dtb /randomnode mixed:	PASS
fdtget-runtest.sh 61 62 63 0 12 34 0 0 0 a 0 0 0 b 0 0 0 c -thhx label01.dts.fdtget.test.dtb /randomnode mixed:	PASS
../fdtget -ts label01.dts.fdtget.test.dtb /randomnode doctor-who {!= 0}:	PASS
fdtget-runtest.sh MyBoardName\nmemory -ts label01.dts.fdtget.test.dtb / model /memory device_type:	PASS
../fdtget -tx label01.dts.fdtget.test.dtb /randomnode doctor-who {!= 0}:	PASS
fdtget-runtest.sh <the dead silence> -tx -d <the dead silence> label01.dts.fdtget.test.dtb /randomnode doctor-who:	PASS
fdtget-runtest.sh <blink> -tx -d <blink> label01.dts.fdtget.test.dtb /memory doctor-who:	PASS
dtc -O dtb -p 2055 -o label01.dts.fdtput.test.dtb label01.dts:	PASS
fdtput-runtest.sh a_model label01.dts.fdtput.test.dtb / model -ts a_model:	PASS
fdtput-runtest.sh board1 board2 label01.dts.fdtput.test.dtb / compatible -ts board1 board2:	PASS
fdtput-runtest.sh board1 board2 label01.dts.fdtput.test.dtb / compatible -ts board1 board2:	PASS
fdtput-runtest.sh 32768 label01.dts.fdtput.test.dtb /cpus/PowerPC,970@1 d-cache-size  32768:	PASS
fdtput-runtest.sh 8001 label01.dts.fdtput.test.dtb /cpus/PowerPC,970@1 d-cache-size -tx 0x8001:	PASS
fdtput-runtest.sh 2 3 12 label01.dts.fdtput.test.dtb /randomnode tricky1 -tbi 02 003 12:	PASS
fdtput-runtest.sh a b c ea ad be ef label01.dts.fdtput.test.dtb /randomnode blob -tbx a b c ea ad be ef:	PASS
fdtput-runtest.sh a0b0c0d deeaae ef000000 label01.dts.fdtput.test.dtb /randomnode blob -tx a0b0c0d deeaae ef000000:	PASS
fdtput-runtest.sh "Lorem ipsum dolor sit amet, cons"...<2054 bytes> label01.dts.fdtput.test.dtb /randomnode blob -ts "Lorem ipsum dolor sit amet, cons"...<2054 bytes>:	PASS
fdtput-runtest.sh "Lorem ipsum dolor sit amet, cons"...<4109 bytes> label01.dts.fdtput.test.dtb /randomnode blob -ts "Lorem ipsum dolor sit amet, cons"...<4109 bytes>:	PASS
dtc -O dtb -p 2055 -o label01.dts.fdtput.test.dtb label01.dts:	PASS
../fdtput label01.dts.fdtput.test.dtb -c /baldrick sod {!= 0}:	PASS
../fdtput label01.dts.fdtput.test.dtb -c /chosen/son /chosen/daughter:	PASS
fdtput-runtest.sh eva label01.dts.fdtput.test.dtb /chosen/daughter name  -ts eva:	PASS
fdtput-runtest.sh adam label01.dts.fdtput.test.dtb /chosen/son name  -ts adam:	PASS
../fdtput label01.dts.fdtput.test.dtb -c /chosen {!= 0}:	PASS
../fdtput label01.dts.fdtput.test.dtb -c /chosen/son {!= 0}:	PASS
../fdtput label01.dts.fdtput.test.dtb -cp /blackadder/the-second/turnip /blackadder/the-second/potato:	PASS
fdtput-runtest.sh 1000 label01.dts.fdtput.test.dtb /blackadder/the-second/turnip cost  1000:	PASS
fdtput-runtest.sh fine wine label01.dts.fdtput.test.dtb /blackadder/the-second/potato drink -ts fine wine:	PASS
../fdtput label01.dts.fdtput.test.dtb -p /you/are/drunk/sir/winston slurp -ts twice:	PASS
../fdtput label01.dts.fdtput.test.dtb -cp "Lorem ipsum dolor sit amet, cons"...<4119 bytes>PASS
../fdtput label01.dts.fdtput.test.dtb -cp /chosen:	PASS
../fdtput label01.dts.fdtput.test.dtb -cp /chosen/son:	PASS
dtc -O dtb -p 2055 -o label01.dts.fdtput.test.dtb label01.dts:	PASS
../fdtput label01.dts.fdtput.test.dtb -c /chosen/node1 /chosen/node2 /chosen/node3:	PASS
fdtget-runtest.sh node3\nnode2\nnode1 label01.dts.fdtput.test.dtb -l /chosen:	PASS
../fdtput label01.dts.fdtput.test.dtb -r /chosen/node1 /chosen/node2:	PASS
fdtget-runtest.sh node3 label01.dts.fdtput.test.dtb -l /chosen:	PASS
../fdtput label01.dts.fdtput.test.dtb -r /non-existent/node {!= 0}:	PASS
fdtput-runtest.sh eva label01.dts.fdtput.test.dtb /chosen/ name  -ts eva:	PASS
fdtput-runtest.sh 016 label01.dts.fdtput.test.dtb /chosen/ age  -ts 016:	PASS
fdtget-runtest.sh age\nname\nbootargs\nlinux,platform label01.dts.fdtput.test.dtb -p /chosen:	PASS
../fdtput label01.dts.fdtput.test.dtb -d /chosen/ name age:	PASS
fdtget-runtest.sh bootargs\nlinux,platform label01.dts.fdtput.test.dtb -p /chosen:	PASS
../fdtput label01.dts.fdtput.test.dtb -d /chosen non-existent-prop {!= 0}:	PASS
fdtdump-runtest.sh fdtdump.dts:	PASS
dtc -@ -I dts -O dtb -o overlay_base.fdoverlay.test.dtb overlay_base.dts:	PASS
dtc -@ -I dts -O dtb -o overlay_overlay_manual_fixups.fdoverlay.test.dtb overlay_overlay_manual_fixups.dts:	PASS
fdtoverlay-runtest.sh foobar /test-node test-str-property -ts overlay_base.fdoverlay.test.dtb target.fdoverlay.test.dtb "overlay_overlay_manual_fixups.fd"...<48 bytes>:	PASS
dtc -@ -I dts -O dtb -o stacked_overlay_base.fdtoverlay.test.dtb stacked_overlay_base.dts:	PASS
dtc -@ -I dts -O dtb -o stacked_overlay_bar.fdtoverlay.test.dtb stacked_overlay_bar.dts:	PASS
dtc -@ -I dts -O dtb -o stacked_overlay_baz.fdtoverlay.test.dtb stacked_overlay_baz.dts:	PASS
fdtoverlay-runtest.sh baz /foonode/barnode/baznode baz-property -ts "stacked_overlay_base.fdtoverlay."...<40 bytes> "stacked_overlay_target.fdtoverla"...<42 bytes> "stacked_overlay_bar.fdtoverlay.t"...<39 bytes> "stacked_overlay_baz.fdtoverlay.t"...<39 bytes>:	PASS
testBadFdt (__main__.PyLibfdtTests)
Check that a filename provided accidentally is not accepted ... ok
testBadPathOffset (__main__.PyLibfdtTests)
Test that bad path names are detected ... ok
testBadPropertyOffset (__main__.PyLibfdtTests)
Test that bad property offsets are detected ... ok
testDeleteProperty (__main__.PyLibfdtTests)
Test that we can delete a property ... ok
testFirstNextSubnodeOffset (__main__.PyLibfdtTests)
Check that we can walk through subnodes ... ok
testFirstNextSubnodeOffsetExceptions (__main__.PyLibfdtTests)
Check except handling for first/next subnode functions ... ok
testGetName (__main__.PyLibfdtTests)
Check that we can get the name of a node ... ok
testGetPhandle (__main__.PyLibfdtTests)
Test for the get_phandle() method ... ok
testGetProp (__main__.PyLibfdtTests)
Check that we can read the contents of a property by name ... ok
testGetPropertyByOffset (__main__.PyLibfdtTests)
Check that we can read the name and contents of a property ... ok
testHeader (__main__.PyLibfdtTests)
Test that we can access the header values ... ok
testImport (__main__.PyLibfdtTests)
Check that we can import the library correctly ... ok
testIntegers (__main__.PyLibfdtTests)
Check that integers can be passed and returned ... ok
testNodeOffsetByPhandle (__main__.PyLibfdtTests)
Test for the node_offset_by_phandle() method ... ok
testPack (__main__.PyLibfdtTests)
Test that we can pack the tree after deleting something ... ok
testParentOffset (__main__.PyLibfdtTests)
Test for the parent_offset() method ... ok
testPathOffset (__main__.PyLibfdtTests)
Check that we can find the offset of a node ... ok
testPropertyOffset (__main__.PyLibfdtTests)
Walk through all the properties in the root node ... ok
testPropertyOffsetExceptions (__main__.PyLibfdtTests)
Check that exceptions are raised as expected ... ok
testQuietAll (__main__.PyLibfdtTests)
Check that exceptions can be masked by QUIET_ALL ... ok
testStrError (__main__.PyLibfdtTests)
Check that we can get an error string ... ok
testSubnodeOffset (__main__.PyLibfdtTests)
check that we can locate a subnode by name ... ok

----------------------------------------------------------------------
Ran 22 tests in 0.002s

OK
********** TEST SUMMARY
*     Total testcases:	1678
*                PASS:	1596
*                FAIL:	82
*   Bad configuration:	0
* Strange test result:	0
**********
make: *** [tests/Makefile.tests:76: check] Error 1

fdt_next_node() return value depends on VALID_INPUT

The fdt_next_node() function calls fdt_check_node_offset_() to verify if the resulting offset is valid. The function fdt_check_node_offset_() returns without any further check if the VALID_INPUT flag is set at FDT_ASSUME_MASK.

If the VALID_INPUT flag is not set then fdt_check_node_offset_() calls

fdt_next_tag(fdt, offset, &offset)

and passes the returned offset to the caller. This offset can be different from the original offset.

I'm trying to iterate over a tree using

fdt_for_each_subnode(node, fdt, parent)

This works only if I disable VALID_INPUT.

Should use strcmp/strncmp instead of memcmp on arm.

In libfdt code, seems we use memcmp to compare two strings in some places. It is not correct behavior on arm. Arm has memory alignment requirement on memcmp(). But for string, especially the string directly comes from dt string block, there is no guarantee that the address is aligned. memcmp() will cause an exception.

Apply multiple DTB overlays to create single DTB file?

Hello,
i have one base *.dtb file and multiple *.dtbo overlays. I know there are ways to apply these in runtime, eg. using u-boot.
But in some cases i would like to prepare single .dtb file staticaly in build script.
I tried to do the following:

#!/bin/bash
#call this script with list of .dtb files to get all overlays applied and combined to single .dtb

combine_to_dts() {
	main="$1"

	dtc -I dtb -O dts -@ "$main"

	shift
	for file in "$@"; do
		dtc -I dtb -O dts -@ "$file" | sed -e 's/\/dts-v.\/;//g'
	done
}

combine_to_dts $@ | dtc -I dts -O dtb -@

Basicaly it just decompiles all .dtb to .dts files, concatenates them, strips all headers except for the first one and tries to compile everything again.
But it does not really work and reports duplicated phandles.

Can you please add some option that would do this correctly for me directly using dtc?

tests broken on ppc64/ppc64le

commit baa1d2c breaks tests on ppc64/ppc64le, some segfault, some report "Bad configuration"

********** TEST SUMMARY
*     Total testcases:	1828
*                PASS:	1720
*                FAIL:	20
*   Bad configuration:	88
* Strange test result:	0
**********

full test log is in dtc.log

dts: appending to string property value?

First, thank you for dtc! I would hate to hex-edit dtb files :) .

Is it possible to append to an existing string property value? If not, could that option be added?

Use case: Nvidia Jetson Xavier, which reads its kernel command line from the dtb, node /chosen/bootargs. At $work we have a common .dtsi file that is #included by individual .dts files for different configurations. I would like to be able to set the bootargs in the dtsi file, then append to it in the dts files. A dummy example follows.

My apologies if this function exists and I have not found it in my searching. Thank you for considering this request!

common.dtsi:

/dts-v1/;
/ { chosen { bootargs = "root=/dev/mmcblk0p1"; }; };

particular.dts:

#include "common.dtsi"
/ { chosen { bootargs += " console=ttyTCU0,115200n8"; }; };

Compilation of invalid overlays

The dtc compiler allows compilation of DTS overlay files which fail when applied with FDT_ERR_NOTFOUND. I discovered this issue first with a Raspberry Pi overlay and reported the issue with instructions to reproduce in issue raspberrypi/firmware#1718.

It only fails when the overlay is compiled with --symbols as the issue appears to be with overlay symbols which have stale phandle references after the original node phandle is overwritten by the overlay.

A minimal example to reproduce is:

File base.dts:

/dts-v1/;

/ {
	soc {
		minibt: bluetooth {
			compatible = "brcm,bcm43438-bt";
			max-speed = <0x70800>;
			status = "disabled";
		};
	};
};

File blah.dts:

/dts-v1/;
/plugin/;

/ {
	fragment@0 {
		target = <&minibt>;
		minibt_frag: __overlay__ {
		};
	};
};
% dtc --symbols -I dts -O dtb overlay.dts > blah.dtbo
% dtc --symbols -I dts -O dtb base.dts > base.dtb
% fdtoverlay -v -i base.dtb -o base-with-overlay.dtb blah.dtbo
input  = base.dtb
output = base-with-overlay.dtb
overlay[0] = blah.dtbo

Failed to apply 'blah.dtbo': FDT_ERR_NOTFOUND

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.