From fd06f809dbeccaf4318b587dbec69a56636e054b Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Wed, 17 Jan 2018 05:08:01 +0000 Subject: [PATCH 1/2] Create vendor-sys/libfdt from libfdt in vendor/dtc There are no plans at the moment to continue updating GPL dtc in the tree as BSDL dtc is slowly replacing it. We use libfdt in the kernel and loaders, so fork off the libfdt bits from vendor/dtc into vendor-sys/libfdt rather than continuing to update vendor/dtc when we have no intention of updating anything in userland as a result of these imports. This also leaves us with a vendor branch whose content has a consistent license- the entirety of libfdt is dual license, GPL/BSD, although that was not a primary concern. --- Documentation/dt-object-internal.txt | 310 ---- Documentation/dtc-paper.bib | 43 - Documentation/dtc-paper.tex | 597 ------- Documentation/dts-format.txt | 122 -- Documentation/manual.txt | 695 -------- GPL | 340 ---- Makefile | 354 ---- Makefile.convert-dtsv0 | 13 - Makefile.dtc | 18 - libfdt/Makefile.libfdt => Makefile.libfdt | 0 Makefile.utils | 30 - README | 93 - README.license | 56 - TODO | 11 +- checks.c | 1518 ----------------- convert-dtsv0-lexer.l | 249 --- data.c | 269 --- dtc-lexer.l | 306 ---- dtc-parser.y | 538 ------ dtc.c | 364 ---- dtc.h | 293 ---- dtdiff | 38 - libfdt/fdt.c => fdt.c | 0 libfdt/fdt.h => fdt.h | 0 libfdt/fdt_addresses.c => fdt_addresses.c | 0 libfdt/fdt_empty_tree.c => fdt_empty_tree.c | 0 libfdt/fdt_overlay.c => fdt_overlay.c | 0 libfdt/fdt_ro.c => fdt_ro.c | 0 libfdt/fdt_rw.c => fdt_rw.c | 0 libfdt/fdt_strerror.c => fdt_strerror.c | 0 libfdt/fdt_sw.c => fdt_sw.c | 0 libfdt/fdt_wip.c => fdt_wip.c | 0 fdtdump.c | 245 --- fdtget.c | 385 ----- fdtoverlay.c | 175 -- fdtput.c | 480 ------ flattree.c | 940 ---------- fstree.c | 90 - libfdt/libfdt.h => libfdt.h | 0 libfdt/TODO | 3 - libfdt/libfdt_env.h => libfdt_env.h | 0 libfdt/libfdt_internal.h => libfdt_internal.h | 0 livetree.c | 1013 ----------- pylibfdt/Makefile.pylibfdt | 24 - pylibfdt/libfdt.i | 493 ------ pylibfdt/setup.py | 121 -- scripts/kup-dtc | 31 - scripts/setlocalversion | 22 - srcpos.c | 302 ---- srcpos.h | 117 -- tests/Makefile.tests | 87 - tests/add_subnode_with_nops.c | 84 - tests/addr_size_cells.c | 64 - tests/addresses.dts | 15 - tests/aliases.dts | 25 - tests/appendprop.dts | 8 - tests/appendprop1.c | 70 - tests/appendprop2.c | 64 - tests/asm_tree_dump.c | 61 - tests/bad-chosen.dts | 10 - tests/bad-empty-ranges.dts | 11 - tests/bad-gpio.dts | 13 - tests/bad-interrupt-cells.dts | 12 - tests/bad-name-property.dts | 7 - tests/bad-ncells.dts | 7 - tests/bad-octal-literal.dts | 5 - tests/bad-phandle-cells.dts | 11 - tests/bad-reg-ranges.dts | 12 - tests/bad-size-cells.dts | 12 - tests/bad-string-props.dts | 14 - tests/base01.asm | 175 -- tests/base01.cmd | 1 - tests/base01.dts | 33 - tests/base01.stderr | 6 - tests/boot-cpuid.c | 47 - tests/boot-cpuid.dts | 16 - tests/char_literal.c | 49 - tests/char_literal.dts | 5 - tests/check_path.c | 83 - tests/comments-cmp.dts | 16 - tests/comments.dts | 39 - tests/data.S | 3 - tests/default-addr-size.dts | 7 - tests/del_node.c | 123 -- tests/del_property.c | 90 - tests/delete_reinstate_multilabel.dts | 37 - tests/delete_reinstate_multilabel_ref.dts | 9 - tests/dependencies.cmp | 1 - tests/dependencies.dts | 6 - tests/deps_inc1.dtsi | 1 - tests/deps_inc2.dtsi | 1 - tests/division-by-zero.dts | 6 - tests/dtb_reverse.c | 163 -- tests/dtbs_equal_ordered.c | 173 -- tests/dtbs_equal_unordered.c | 223 --- tests/dtc-checkfails.sh | 44 - tests/dtc-fails.sh | 30 - tests/dtc-fatal.sh | 14 - tests/dumptrees.c | 70 - tests/dup-nodename.dts | 8 - tests/dup-phandle.dts | 10 - tests/dup-propname.dts | 6 - tests/embedded_nul.dts | Bin 152 -> 0 bytes tests/embedded_nul_equiv.dts | 6 - tests/empty.dts | 4 - tests/escapes.dts | 7 - tests/extra-terminating-null.c | 58 - tests/extra-terminating-null.dts | 11 - tests/fdtdump-runtest.sh | 30 - tests/fdtdump.dts | 38 - tests/fdtget-runtest.sh | 24 - tests/fdtoverlay-runtest.sh | 40 - tests/fdtput-runtest.sh | 39 - tests/find_property.c | 41 - tests/get_alias.c | 57 - tests/get_mem_rsv.c | 48 - tests/get_name.c | 82 - tests/get_path.c | 92 - tests/get_phandle.c | 63 - tests/getprop.c | 42 - tests/incbin.bin | 1 - tests/incbin.c | 75 - tests/incbin.dts | 6 - tests/include0.dts | 1 - tests/include1.dts | 32 - tests/include2.dts | 1 - tests/include3.dts | 1 - tests/include4.dts | 1 - tests/include5.dts | 1 - tests/include5a.dts | 1 - tests/include6.dts | 1 - tests/include7.dts | 14 - tests/include8.dts | 2 - tests/integer-expressions.c | 116 -- tests/label01.dts | 63 - tests/label_repeated.dts | 15 - tests/line_directives.dts | 26 - tests/lorem.txt | 35 - tests/mangle-layout.c | 164 -- tests/mangle-layout.supp | 7 - tests/minusone-phandle.dts | 7 - tests/move_and_save.c | 75 - tests/multilabel.dts | 44 - tests/multilabel_merge.dts | 70 - tests/node_check_compatible.c | 81 - tests/node_offset_by_compatible.c | 85 - tests/node_offset_by_phandle.c | 63 - tests/node_offset_by_prop_value.c | 110 -- tests/nonexist-label-ref.dts | 8 - tests/nonexist-node-ref.dts | 8 - tests/nonexist-node-ref2.dts | 10 - tests/nop_node.c | 104 -- tests/nop_property.c | 70 - tests/nopulate.c | 105 -- tests/notfound.c | 70 - tests/nul-in-escape.dts | Bin 36 -> 0 bytes tests/nul-in-line-info1.dts | Bin 8 -> 0 bytes tests/nul-in-line-info2.dts | 1 - .../obsolete-chosen-interrupt-controller.dts | 13 - tests/open_pack.c | 71 - tests/open_pack.supp | 7 - tests/overlay.c | 233 --- tests/overlay_bad_fixup.c | 70 - tests/overlay_bad_fixup_bad_index.dts | 14 - tests/overlay_bad_fixup_base.dtsi | 18 - tests/overlay_bad_fixup_empty.dts | 14 - tests/overlay_bad_fixup_empty_index.dts | 14 - tests/overlay_bad_fixup_index_trailing.dts | 14 - tests/overlay_bad_fixup_path_empty_prop.dts | 14 - tests/overlay_bad_fixup_path_only.dts | 14 - tests/overlay_bad_fixup_path_only_sep.dts | 14 - tests/overlay_bad_fixup_path_prop.dts | 14 - tests/overlay_base.dts | 21 - tests/overlay_base_manual_symbols.dts | 25 - tests/overlay_overlay.dts | 86 - tests/overlay_overlay_manual_fixups.dts | 112 -- tests/overlay_overlay_no_fixups.dts | 82 - tests/overlay_overlay_simple.dts | 12 - tests/parent_offset.c | 90 - tests/path-references.c | 108 -- tests/path-references.dts | 28 - tests/path_offset.c | 137 -- tests/path_offset_aliases.c | 58 - tests/pci-bridge-bad1.dts | 16 - tests/pci-bridge-bad2.dts | 16 - tests/pci-bridge-ok.dts | 25 - tests/phandle_format.c | 77 - tests/prop-after-subnode.dts | 9 - tests/property_iterate.c | 97 -- tests/property_iterate.dts | 23 - tests/propname_escapes.c | 42 - tests/propname_escapes.dts | 6 - tests/pylibfdt_tests.py | 334 ---- tests/references.c | 127 -- tests/references.dts | 36 - tests/reg-ranges-root.dts | 8 - tests/reg-without-unit-addr.dts | 10 - tests/reuse-label.dts | 15 - tests/reuse-label1.dts | 10 - tests/reuse-label2.dts | 6 - tests/reuse-label3.dts | 9 - tests/reuse-label4.dts | 5 - tests/reuse-label5.dts | 6 - tests/reuse-label6.dts | 6 - tests/root_node.c | 52 - tests/run_tests.sh | 925 ---------- tests/rw_tree1.c | 95 -- tests/search_dir/search_test.dtsi | 4 - tests/search_dir/search_test2.dtsi | 3 - tests/search_dir_b/search_paths_subdir.dts | 6 - tests/search_dir_b/search_test_b.dtsi | 4 - tests/search_dir_b/search_test_b2.dtsi | 5 - tests/search_dir_b/search_test_c.dtsi | 2 - tests/search_paths.dts | 6 - tests/search_paths_b.dts | 6 - tests/set_name.c | 90 - tests/setprop.c | 95 -- tests/setprop_inplace.c | 97 -- tests/sized_cells.c | 83 - tests/sized_cells.dts | 11 - tests/sourceoutput.dts | 14 - tests/stacked_overlay_bar.dts | 13 - tests/stacked_overlay_base.dts | 6 - tests/stacked_overlay_baz.dts | 13 - tests/string_escapes.c | 43 - tests/stringlist.c | 155 -- tests/stringlist.dts | 12 - tests/subnode_iterate.c | 90 - tests/subnode_iterate.dts | 44 - tests/subnode_offset.c | 98 -- tests/supernode_atdepth_offset.c | 145 -- tests/sw_tree1.c | 181 -- tests/sw_tree1.supp | 18 - tests/test01.asm | 294 ---- tests/test01.dts | 57 - tests/test01.stderr | 4 - tests/test_kernel_dts | 86 - tests/test_label_ref.dts | 9 - tests/test_tree1.dts | 46 - tests/test_tree1_delete.dts | 68 - tests/test_tree1_label_noderef.dts | 56 - tests/test_tree1_merge.dts | 51 - tests/test_tree1_merge_labelled.dts | 49 - tests/test_tree1_merge_path.dts | 49 - tests/test_tree1_wrong1.dts | 43 - tests/test_tree1_wrong2.dts | 43 - tests/test_tree1_wrong3.dts | 43 - tests/test_tree1_wrong4.dts | 41 - tests/test_tree1_wrong5.dts | 44 - tests/test_tree1_wrong6.dts | 45 - tests/test_tree1_wrong7.dts | 46 - tests/test_tree1_wrong8.dts | 44 - tests/test_tree1_wrong9.dts | 45 - tests/testdata.h | 50 - tests/tests.h | 129 -- tests/tests.sh | 63 - tests/testutils.c | 202 --- tests/trees.S | 235 --- tests/truncated_property.c | 47 - tests/unit-addr-leading-0s.dts | 12 - tests/unit-addr-leading-0x.dts | 12 - tests/unit-addr-without-reg.dts | 9 - tests/utilfdt_test.c | 127 -- tests/value-labels.c | 127 -- tests/value-labels.dts | 8 - tests/zero-phandle.dts | 7 - treesource.c | 284 --- util.c | 474 ----- util.h | 266 --- libfdt/version.lds => version.lds | 0 270 files changed, 3 insertions(+), 22635 deletions(-) delete mode 100644 Documentation/dt-object-internal.txt delete mode 100644 Documentation/dtc-paper.bib delete mode 100644 Documentation/dtc-paper.tex delete mode 100644 Documentation/dts-format.txt delete mode 100644 Documentation/manual.txt delete mode 100644 GPL delete mode 100644 Makefile delete mode 100644 Makefile.convert-dtsv0 delete mode 100644 Makefile.dtc rename libfdt/Makefile.libfdt => Makefile.libfdt (100%) delete mode 100644 Makefile.utils delete mode 100644 README delete mode 100644 README.license delete mode 100644 checks.c delete mode 100644 convert-dtsv0-lexer.l delete mode 100644 data.c delete mode 100644 dtc-lexer.l delete mode 100644 dtc-parser.y delete mode 100644 dtc.c delete mode 100644 dtc.h delete mode 100644 dtdiff rename libfdt/fdt.c => fdt.c (100%) rename libfdt/fdt.h => fdt.h (100%) rename libfdt/fdt_addresses.c => fdt_addresses.c (100%) rename libfdt/fdt_empty_tree.c => fdt_empty_tree.c (100%) rename libfdt/fdt_overlay.c => fdt_overlay.c (100%) rename libfdt/fdt_ro.c => fdt_ro.c (100%) rename libfdt/fdt_rw.c => fdt_rw.c (100%) rename libfdt/fdt_strerror.c => fdt_strerror.c (100%) rename libfdt/fdt_sw.c => fdt_sw.c (100%) rename libfdt/fdt_wip.c => fdt_wip.c (100%) delete mode 100644 fdtdump.c delete mode 100644 fdtget.c delete mode 100644 fdtoverlay.c delete mode 100644 fdtput.c delete mode 100644 flattree.c delete mode 100644 fstree.c rename libfdt/libfdt.h => libfdt.h (100%) delete mode 100644 libfdt/TODO rename libfdt/libfdt_env.h => libfdt_env.h (100%) rename libfdt/libfdt_internal.h => libfdt_internal.h (100%) delete mode 100644 livetree.c delete mode 100644 pylibfdt/Makefile.pylibfdt delete mode 100644 pylibfdt/libfdt.i delete mode 100755 pylibfdt/setup.py delete mode 100755 scripts/kup-dtc delete mode 100755 scripts/setlocalversion delete mode 100644 srcpos.c delete mode 100644 srcpos.h delete mode 100644 tests/Makefile.tests delete mode 100644 tests/add_subnode_with_nops.c delete mode 100644 tests/addr_size_cells.c delete mode 100644 tests/addresses.dts delete mode 100644 tests/aliases.dts delete mode 100644 tests/appendprop.dts delete mode 100644 tests/appendprop1.c delete mode 100644 tests/appendprop2.c delete mode 100644 tests/asm_tree_dump.c delete mode 100644 tests/bad-chosen.dts delete mode 100644 tests/bad-empty-ranges.dts delete mode 100644 tests/bad-gpio.dts delete mode 100644 tests/bad-interrupt-cells.dts delete mode 100644 tests/bad-name-property.dts delete mode 100644 tests/bad-ncells.dts delete mode 100644 tests/bad-octal-literal.dts delete mode 100644 tests/bad-phandle-cells.dts delete mode 100644 tests/bad-reg-ranges.dts delete mode 100644 tests/bad-size-cells.dts delete mode 100644 tests/bad-string-props.dts delete mode 100644 tests/base01.asm delete mode 100644 tests/base01.cmd delete mode 100644 tests/base01.dts delete mode 100644 tests/base01.stderr delete mode 100644 tests/boot-cpuid.c delete mode 100644 tests/boot-cpuid.dts delete mode 100644 tests/char_literal.c delete mode 100644 tests/char_literal.dts delete mode 100644 tests/check_path.c delete mode 100644 tests/comments-cmp.dts delete mode 100644 tests/comments.dts delete mode 100644 tests/data.S delete mode 100644 tests/default-addr-size.dts delete mode 100644 tests/del_node.c delete mode 100644 tests/del_property.c delete mode 100644 tests/delete_reinstate_multilabel.dts delete mode 100644 tests/delete_reinstate_multilabel_ref.dts delete mode 100644 tests/dependencies.cmp delete mode 100644 tests/dependencies.dts delete mode 100644 tests/deps_inc1.dtsi delete mode 100644 tests/deps_inc2.dtsi delete mode 100644 tests/division-by-zero.dts delete mode 100644 tests/dtb_reverse.c delete mode 100644 tests/dtbs_equal_ordered.c delete mode 100644 tests/dtbs_equal_unordered.c delete mode 100755 tests/dtc-checkfails.sh delete mode 100755 tests/dtc-fails.sh delete mode 100755 tests/dtc-fatal.sh delete mode 100644 tests/dumptrees.c delete mode 100644 tests/dup-nodename.dts delete mode 100644 tests/dup-phandle.dts delete mode 100644 tests/dup-propname.dts delete mode 100644 tests/embedded_nul.dts delete mode 100644 tests/embedded_nul_equiv.dts delete mode 100644 tests/empty.dts delete mode 100644 tests/escapes.dts delete mode 100644 tests/extra-terminating-null.c delete mode 100644 tests/extra-terminating-null.dts delete mode 100755 tests/fdtdump-runtest.sh delete mode 100644 tests/fdtdump.dts delete mode 100755 tests/fdtget-runtest.sh delete mode 100755 tests/fdtoverlay-runtest.sh delete mode 100755 tests/fdtput-runtest.sh delete mode 100644 tests/find_property.c delete mode 100644 tests/get_alias.c delete mode 100644 tests/get_mem_rsv.c delete mode 100644 tests/get_name.c delete mode 100644 tests/get_path.c delete mode 100644 tests/get_phandle.c delete mode 100644 tests/getprop.c delete mode 100644 tests/incbin.bin delete mode 100644 tests/incbin.c delete mode 100644 tests/incbin.dts delete mode 100644 tests/include0.dts delete mode 100644 tests/include1.dts delete mode 100644 tests/include2.dts delete mode 100644 tests/include3.dts delete mode 100644 tests/include4.dts delete mode 100644 tests/include5.dts delete mode 100644 tests/include5a.dts delete mode 100644 tests/include6.dts delete mode 100644 tests/include7.dts delete mode 100644 tests/include8.dts delete mode 100644 tests/integer-expressions.c delete mode 100644 tests/label01.dts delete mode 100644 tests/label_repeated.dts delete mode 100644 tests/line_directives.dts delete mode 100644 tests/lorem.txt delete mode 100644 tests/mangle-layout.c delete mode 100644 tests/mangle-layout.supp delete mode 100644 tests/minusone-phandle.dts delete mode 100644 tests/move_and_save.c delete mode 100644 tests/multilabel.dts delete mode 100644 tests/multilabel_merge.dts delete mode 100644 tests/node_check_compatible.c delete mode 100644 tests/node_offset_by_compatible.c delete mode 100644 tests/node_offset_by_phandle.c delete mode 100644 tests/node_offset_by_prop_value.c delete mode 100644 tests/nonexist-label-ref.dts delete mode 100644 tests/nonexist-node-ref.dts delete mode 100644 tests/nonexist-node-ref2.dts delete mode 100644 tests/nop_node.c delete mode 100644 tests/nop_property.c delete mode 100644 tests/nopulate.c delete mode 100644 tests/notfound.c delete mode 100644 tests/nul-in-escape.dts delete mode 100644 tests/nul-in-line-info1.dts delete mode 100644 tests/nul-in-line-info2.dts delete mode 100644 tests/obsolete-chosen-interrupt-controller.dts delete mode 100644 tests/open_pack.c delete mode 100644 tests/open_pack.supp delete mode 100644 tests/overlay.c delete mode 100644 tests/overlay_bad_fixup.c delete mode 100644 tests/overlay_bad_fixup_bad_index.dts delete mode 100644 tests/overlay_bad_fixup_base.dtsi delete mode 100644 tests/overlay_bad_fixup_empty.dts delete mode 100644 tests/overlay_bad_fixup_empty_index.dts delete mode 100644 tests/overlay_bad_fixup_index_trailing.dts delete mode 100644 tests/overlay_bad_fixup_path_empty_prop.dts delete mode 100644 tests/overlay_bad_fixup_path_only.dts delete mode 100644 tests/overlay_bad_fixup_path_only_sep.dts delete mode 100644 tests/overlay_bad_fixup_path_prop.dts delete mode 100644 tests/overlay_base.dts delete mode 100644 tests/overlay_base_manual_symbols.dts delete mode 100644 tests/overlay_overlay.dts delete mode 100644 tests/overlay_overlay_manual_fixups.dts delete mode 100644 tests/overlay_overlay_no_fixups.dts delete mode 100644 tests/overlay_overlay_simple.dts delete mode 100644 tests/parent_offset.c delete mode 100644 tests/path-references.c delete mode 100644 tests/path-references.dts delete mode 100644 tests/path_offset.c delete mode 100644 tests/path_offset_aliases.c delete mode 100644 tests/pci-bridge-bad1.dts delete mode 100644 tests/pci-bridge-bad2.dts delete mode 100644 tests/pci-bridge-ok.dts delete mode 100644 tests/phandle_format.c delete mode 100644 tests/prop-after-subnode.dts delete mode 100644 tests/property_iterate.c delete mode 100644 tests/property_iterate.dts delete mode 100644 tests/propname_escapes.c delete mode 100644 tests/propname_escapes.dts delete mode 100644 tests/pylibfdt_tests.py delete mode 100644 tests/references.c delete mode 100644 tests/references.dts delete mode 100644 tests/reg-ranges-root.dts delete mode 100644 tests/reg-without-unit-addr.dts delete mode 100644 tests/reuse-label.dts delete mode 100644 tests/reuse-label1.dts delete mode 100644 tests/reuse-label2.dts delete mode 100644 tests/reuse-label3.dts delete mode 100644 tests/reuse-label4.dts delete mode 100644 tests/reuse-label5.dts delete mode 100644 tests/reuse-label6.dts delete mode 100644 tests/root_node.c delete mode 100755 tests/run_tests.sh delete mode 100644 tests/rw_tree1.c delete mode 100644 tests/search_dir/search_test.dtsi delete mode 100644 tests/search_dir/search_test2.dtsi delete mode 100644 tests/search_dir_b/search_paths_subdir.dts delete mode 100644 tests/search_dir_b/search_test_b.dtsi delete mode 100644 tests/search_dir_b/search_test_b2.dtsi delete mode 100644 tests/search_dir_b/search_test_c.dtsi delete mode 100644 tests/search_paths.dts delete mode 100644 tests/search_paths_b.dts delete mode 100644 tests/set_name.c delete mode 100644 tests/setprop.c delete mode 100644 tests/setprop_inplace.c delete mode 100644 tests/sized_cells.c delete mode 100644 tests/sized_cells.dts delete mode 100644 tests/sourceoutput.dts delete mode 100644 tests/stacked_overlay_bar.dts delete mode 100644 tests/stacked_overlay_base.dts delete mode 100644 tests/stacked_overlay_baz.dts delete mode 100644 tests/string_escapes.c delete mode 100644 tests/stringlist.c delete mode 100644 tests/stringlist.dts delete mode 100644 tests/subnode_iterate.c delete mode 100644 tests/subnode_iterate.dts delete mode 100644 tests/subnode_offset.c delete mode 100644 tests/supernode_atdepth_offset.c delete mode 100644 tests/sw_tree1.c delete mode 100644 tests/sw_tree1.supp delete mode 100644 tests/test01.asm delete mode 100644 tests/test01.dts delete mode 100644 tests/test01.stderr delete mode 100755 tests/test_kernel_dts delete mode 100644 tests/test_label_ref.dts delete mode 100644 tests/test_tree1.dts delete mode 100644 tests/test_tree1_delete.dts delete mode 100644 tests/test_tree1_label_noderef.dts delete mode 100644 tests/test_tree1_merge.dts delete mode 100644 tests/test_tree1_merge_labelled.dts delete mode 100644 tests/test_tree1_merge_path.dts delete mode 100644 tests/test_tree1_wrong1.dts delete mode 100644 tests/test_tree1_wrong2.dts delete mode 100644 tests/test_tree1_wrong3.dts delete mode 100644 tests/test_tree1_wrong4.dts delete mode 100644 tests/test_tree1_wrong5.dts delete mode 100644 tests/test_tree1_wrong6.dts delete mode 100644 tests/test_tree1_wrong7.dts delete mode 100644 tests/test_tree1_wrong8.dts delete mode 100644 tests/test_tree1_wrong9.dts delete mode 100644 tests/testdata.h delete mode 100644 tests/tests.h delete mode 100755 tests/tests.sh delete mode 100644 tests/testutils.c delete mode 100644 tests/trees.S delete mode 100644 tests/truncated_property.c delete mode 100644 tests/unit-addr-leading-0s.dts delete mode 100644 tests/unit-addr-leading-0x.dts delete mode 100644 tests/unit-addr-without-reg.dts delete mode 100644 tests/utilfdt_test.c delete mode 100644 tests/value-labels.c delete mode 100644 tests/value-labels.dts delete mode 100644 tests/zero-phandle.dts delete mode 100644 treesource.c delete mode 100644 util.c delete mode 100644 util.h rename libfdt/version.lds => version.lds (100%) diff --git a/Documentation/dt-object-internal.txt b/Documentation/dt-object-internal.txt deleted file mode 100644 index 51d68ab93ac..00000000000 --- a/Documentation/dt-object-internal.txt +++ /dev/null @@ -1,310 +0,0 @@ -Device Tree Dynamic Object format internals -------------------------------------------- - -The Device Tree for most platforms is a static representation of -the hardware capabilities. This is insufficient for platforms -that need to dynamically insert Device Tree fragments into the -live tree. - -This document explains the the Device Tree object format and -modifications made to the Device Tree compiler, which make it possible. - -1. Simplified Problem Definition --------------------------------- - -Assume we have a platform which boots using following simplified Device Tree. - ----- foo.dts ----------------------------------------------------------------- - /* FOO platform */ - / { - compatible = "corp,foo"; - - /* shared resources */ - res: res { - }; - - /* On chip peripherals */ - ocp: ocp { - /* peripherals that are always instantiated */ - peripheral1 { ... }; - }; - }; ----- foo.dts ----------------------------------------------------------------- - -We have a number of peripherals that after probing (using some undefined method) -should result in different Device Tree configuration. - -We cannot boot with this static tree because due to the configuration of the -foo platform there exist multiple conficting peripherals DT fragments. - -So for the bar peripheral we would have this: - ----- foo+bar.dts ------------------------------------------------------------- - /* FOO platform + bar peripheral */ - / { - compatible = "corp,foo"; - - /* shared resources */ - res: res { - }; - - /* On chip peripherals */ - ocp: ocp { - /* peripherals that are always instantiated */ - peripheral1 { ... }; - - /* bar peripheral */ - bar { - compatible = "corp,bar"; - ... /* various properties and child nodes */ - }; - }; - }; ----- foo+bar.dts ------------------------------------------------------------- - -While for the baz peripheral we would have this: - ----- foo+baz.dts ------------------------------------------------------------- - /* FOO platform + baz peripheral */ - / { - compatible = "corp,foo"; - - /* shared resources */ - res: res { - /* baz resources */ - baz_res: res_baz { ... }; - }; - - /* On chip peripherals */ - ocp: ocp { - /* peripherals that are always instantiated */ - peripheral1 { ... }; - - /* baz peripheral */ - baz { - compatible = "corp,baz"; - /* reference to another point in the tree */ - ref-to-res = <&baz_res>; - ... /* various properties and child nodes */ - }; - }; - }; ----- foo+baz.dts ------------------------------------------------------------- - -We note that the baz case is more complicated, since the baz peripheral needs to -reference another node in the DT tree. - -2. Device Tree Object Format Requirements ------------------------------------------ - -Since the Device Tree is used for booting a number of very different hardware -platforms it is imperative that we tread very carefully. - -2.a) No changes to the Device Tree binary format for the base tree. We cannot -modify the tree format at all and all the information we require should be -encoded using Device Tree itself. We can add nodes that can be safely ignored -by both bootloaders and the kernel. The plugin dtbs are optionally tagged -with a different magic number in the header but otherwise they're simple -blobs. - -2.b) Changes to the DTS source format should be absolutely minimal, and should -only be needed for the DT fragment definitions, and not the base boot DT. - -2.c) An explicit option should be used to instruct DTC to generate the required -information needed for object resolution. Platforms that don't use the -dynamic object format can safely ignore it. - -2.d) Finally, DT syntax changes should be kept to a minimum. It should be -possible to express everything using the existing DT syntax. - -3. Implementation ------------------ - -The basic unit of addressing in Device Tree is the phandle. Turns out it's -relatively simple to extend the way phandles are generated and referenced -so that it's possible to dynamically convert symbolic references (labels) -to phandle values. This is a valid assumption as long as the author uses -reference syntax and does not assign phandle values manually (which might -be a problem with decompiled source files). - -We can roughly divide the operation into two steps. - -3.a) Compilation of the base board DTS file using the '-@' option -generates a valid DT blob with an added __symbols__ node at the root node, -containing a list of all nodes that are marked with a label. - -Using the foo.dts file above the following node will be generated; - -$ dtc -@ -O dtb -o foo.dtb -b 0 foo.dts -$ fdtdump foo.dtb -... -/ { - ... - res { - ... - phandle = <0x00000001>; - ... - }; - ocp { - ... - phandle = <0x00000002>; - ... - }; - __symbols__ { - res="/res"; - ocp="/ocp"; - }; -}; - -Notice that all the nodes that had a label have been recorded, and that -phandles have been generated for them. - -This blob can be used to boot the board normally, the __symbols__ node will -be safely ignored both by the bootloader and the kernel (the only loss will -be a few bytes of memory and disk space). - -We generate a __symbols__ node to record nodes that had labels in the base -tree (or subsequent loaded overlays) so that they can be matched up with -references made to them in Device Tree objects. - -3.b) The Device Tree fragments must be compiled with the same option but they -must also have a tag (/plugin/) that allows undefined references to nodes -that are not present at compilation time to be recorded so that the runtime -loader can fix them. - -So the bar peripheral's DTS format would be of the form: - -/dts-v1/; -/plugin/; /* allow undefined references and record them */ -/ { - .... /* various properties for loader use; i.e. part id etc. */ - fragment@0 { - target = <&ocp>; - __overlay__ { - /* bar peripheral */ - bar { - compatible = "corp,bar"; - ... /* various properties and child nodes */ - } - }; - }; -}; - -Note that there's a target property that specifies the location where the -contents of the overlay node will be placed, and it references the node -in the foo.dts file. - -$ dtc -@ -O dtb -o bar.dtbo -b 0 bar.dts -$ fdtdump bar.dtbo -... -/ { - ... /* properties */ - fragment@0 { - target = <0xffffffff>; - __overlay__ { - bar { - compatible = "corp,bar"; - ... /* various properties and child nodes */ - } - }; - }; - __fixups__ { - ocp = "/fragment@0:target:0"; - }; -}; - -No __symbols__ node has been generated (no label in bar.dts). -Note that the target's ocp label is undefined, so the phandle -value is filled with the illegal value '0xffffffff', while a __fixups__ -node has been generated, which marks the location in the tree where -the label lookup should store the runtime phandle value of the ocp node. - -The format of the __fixups__ node entry is - -