platform_external_dtc/tests
Srinivas Kandagatla d214655904 fdtput: expand fdt if value does not fit
If you try to insert a new node or extend a property with large value,
using fdtput you will notice that it always fails.

example:
fdtput -v -p -ts ./tst.dtb "/node-1" "property-1" "value-1
Error at 'node-1': FDT_ERR_NOSPACE

or

fdtput -v -c ./tst.dtb "/node-1"
Error at 'node-1': FDT_ERR_NOSPACE

or

fdtput -v  -ts ./tst.dtb "/node" "property" "very big value"
Decoding value:
	string: 'very big value'
Value size 15
Error at 'property': FDT_ERR_NOSPACE

All these error are returned from libfdt, as the size of the fdt passed
has no space to accomdate these new properties.
This patch adds realloc functions in fdtput to allocate new space in fdt
when it detects a shortage in space for new value or node. With this
patch, fdtput can insert a new node or property or extend a property
with new value greater than original size. Also it packs the final blob
to clean up any extra padding.

Without this patch fdtput tool complains with FDT_ERR_NOSPACE when we
try to add a node/property or extend the value of a property.

Testcases for the new behaviour added by David Gibson.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2013-05-29 12:48:16 +10:00
..
search_dir dtc: Add -i option to support search paths 2012-03-18 10:52:24 -05:00
search_dir_b dtc: Add -i option to support search paths 2012-03-18 10:52:24 -05:00
.gitignore dtc: cpp co-existence: allow names starting with # to be escaped 2012-09-28 09:23:43 -05:00
add_subnode_with_nops.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
aliases.dts libfdt: Add support for using aliases in fdt_path_offset() 2008-08-14 10:24:58 -05:00
appendprop.dts libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
appendprop1.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
appendprop2.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
asm_tree_dump.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
bad-empty-ranges.dts dtc: Convert #address-cells and #size-cells related checks 2007-12-07 07:43:45 -06:00
bad-name-property.dts dtc: Convert "name" property checking to new infrastructure 2007-12-05 08:27:28 -06:00
bad-ncells.dts dtc: Migrate "one cell" checks to new framework 2007-12-06 09:15:56 -06:00
bad-reg-ranges.dts dtc: Convert #address-cells and #size-cells related checks 2007-12-07 07:43:45 -06:00
bad-string-props.dts dtc: Migrate "string property" checks to new framework 2007-12-06 09:16:28 -06:00
base01.asm Add some initial test cases. 2007-02-15 11:02:44 -06:00
base01.cmd Add some initial test cases. 2007-02-15 11:02:44 -06:00
base01.dts Remove support for the legacy DTS source file format. 2008-10-03 16:09:34 -05:00
base01.stderr Add some initial test cases. 2007-02-15 11:02:44 -06:00
boot-cpuid.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
boot-cpuid.dts dtc: Automatically pick a sensible boot_cpuid_phys 2010-02-19 08:36:23 -06:00
char_literal.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
char_literal.dts dtc: Support character literals in cell lists 2011-09-22 09:24:31 -05:00
comments-cmp.dts dtc: Fold comment handling test into testsuite 2008-02-15 08:10:14 -06:00
comments.dts dtc: Fold comment handling test into testsuite 2008-02-15 08:10:14 -06:00
data.S dtc: Make asm output more portable and add testcases 2009-02-03 08:38:01 -06:00
default-addr-size.dts dtc: Convert #address-cells and #size-cells related checks 2007-12-07 07:43:45 -06:00
del_node.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
del_property.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
delete_reinstate_multilabel.dts dtc: fix for_each_*() to skip first object if deleted 2012-10-08 09:12:24 -05:00
delete_reinstate_multilabel_ref.dts dtc: fix for_each_*() to skip first object if deleted 2012-10-08 09:12:24 -05:00
dependencies.cmp dtc: Implement -d option to write out a dependency file 2012-01-13 07:23:58 -06:00
dependencies.dts dtc: Implement -d option to write out a dependency file 2012-01-13 07:23:58 -06:00
deps_inc1.dtsi dtc: Implement -d option to write out a dependency file 2012-01-13 07:23:58 -06:00
deps_inc2.dtsi dtc: Implement -d option to write out a dependency file 2012-01-13 07:23:58 -06:00
dtb_reverse.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
dtbs_equal_ordered.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
dtbs_equal_unordered.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
dtc-checkfails.sh Allow toggling of semantic checks 2012-07-08 13:45:21 -05:00
dtc-fails.sh Allow toggling of semantic checks 2012-07-08 13:45:21 -05:00
dtc-fatal.sh dtc: Remove some small bashisms from test scripts 2008-05-29 08:16:03 -05:00
dumptrees.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
dup-nodename.dts dtc: Add testcases for tree checks 2007-11-20 09:03:51 -06:00
dup-phandle.dts dtc: Add testcases for tree checks 2007-11-20 09:03:51 -06:00
dup-propname.dts dtc: Add testcases for tree checks 2007-11-20 09:03:51 -06:00
empty.dts Remove support for the legacy DTS source file format. 2008-10-03 16:09:34 -05:00
escapes.dts Remove support for the legacy DTS source file format. 2008-10-03 16:09:34 -05:00
extra-terminating-null.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
extra-terminating-null.dts Fix bug in -Odts with properties containing multiple terminating nulls 2009-11-11 07:34:01 -06:00
fdtget-runtest.sh fdtget-runtest.sh: use printf instead of /bin/echo -e 2013-01-06 16:02:42 -06:00
fdtput-runtest.sh Don't use diff to check fdt{get,put} results 2012-02-03 08:41:23 -06:00
find_property.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
get_alias.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
get_mem_rsv.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
get_name.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
get_path.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
get_phandle.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
getprop.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
incbin.bin dtc: Add support for binary includes. 2008-06-19 10:01:14 -05:00
incbin.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
incbin.dts dtc: Add support for binary includes. 2008-06-19 10:01:14 -05:00
include0.dts dtc: Testcase for /include/ directive 2008-07-14 12:07:14 -05:00
include1.dts libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
include2.dts dtc: Testcase for /include/ directive 2008-07-14 12:07:14 -05:00
include3.dts dtc: Testcase for /include/ directive 2008-07-14 12:07:14 -05:00
include4.dts dtc: Testcase for /include/ directive 2008-07-14 12:07:14 -05:00
include5.dts dtc: Testcase for /include/ directive 2008-07-14 12:07:14 -05:00
include5a.dts libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
include6.dts dtc: Testcase for /include/ directive 2008-07-14 12:07:14 -05:00
include7.dts libfdt: Fix bug in fdt_subnode_offset_namelen() 2008-11-05 08:12:10 -06:00
include8.dts dtc: Testcase for /include/ directive 2008-07-14 12:07:14 -05:00
integer-expressions.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
label01.dts Remove support for the legacy DTS source file format. 2008-10-03 16:09:34 -05:00
label_repeated.dts Add test for re-defining an identical label 2012-07-08 13:43:17 -05:00
line_directives.dts dtc: cpp co-existence: add support for #line directives 2012-09-28 09:24:39 -05:00
lorem.txt Generate test data for fdtput more sensibly 2012-02-03 08:42:50 -06:00
Makefile.tests libfdt: Add fdt_next_subnode() to permit easy subnode iteration 2013-04-28 07:30:49 -05:00
mangle-layout.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
mangle-layout.supp dtc: Assorted improvements to test harness 2008-03-23 08:00:33 -05:00
minusone-phandle.dts dtc: Add testcases for tree checks 2007-11-20 09:03:51 -06:00
move_and_save.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
multilabel.dts Allow device tree to be modified by additonal device tree sections 2010-02-25 11:46:01 -06:00
multilabel_merge.dts Allow device tree to be modified by additonal device tree sections 2010-02-25 11:46:01 -06:00
node_check_compatible.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
node_offset_by_compatible.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
node_offset_by_phandle.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
node_offset_by_prop_value.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
nonexist-label-ref.dts dtc: Flexible tree checking infrastructure (v2) 2007-11-26 16:00:08 -06:00
nonexist-node-ref.dts dtc: Fix some lexical problems with references 2007-11-28 13:51:38 -06:00
nonexist-node-ref2.dts Add merging of labelled subnodes. This patch allows the following 2010-09-21 10:15:51 -05:00
nop_node.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
nop_property.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
nopulate.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
notfound.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
obsolete-chosen-interrupt-controller.dts dtc: Convert check for obsolete /chosen property 2007-12-07 07:43:53 -06:00
open_pack.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
open_pack.supp dtc: Assorted improvements to test harness 2008-03-23 08:00:33 -05:00
parent_offset.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
path-references.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
path-references.dts dtc: Implement path references 2007-12-05 08:28:44 -06:00
path_offset.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
path_offset_aliases.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
phandle_format.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
prop-after-subnode.dts dtc: Generate useful error message for properties after subnodes 2007-12-05 08:27:46 -06:00
propname_escapes.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
propname_escapes.dts dtc: cpp co-existence: allow names starting with # to be escaped 2012-09-28 09:23:43 -05:00
references.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
references.dts Support ePAPR compliant phandle properties 2009-11-26 15:06:17 -06:00
reg-ranges-root.dts dtc: Add a testcase for 'reg' or 'ranges' in / 2008-06-02 15:20:08 -05:00
reuse-label.dts Disallow re-use of the same label within a dts file 2010-02-23 09:04:48 -06:00
reuse-label1.dts Disallow re-use of the same label within a dts file 2010-02-23 09:04:48 -06:00
reuse-label2.dts Disallow re-use of the same label within a dts file 2010-02-23 09:04:48 -06:00
reuse-label3.dts Disallow re-use of the same label within a dts file 2010-02-23 09:04:48 -06:00
reuse-label4.dts Disallow re-use of the same label within a dts file 2010-02-23 09:04:48 -06:00
reuse-label5.dts Disallow re-use of the same label within a dts file 2010-02-23 09:04:48 -06:00
reuse-label6.dts Disallow re-use of the same label within a dts file 2010-02-23 09:04:48 -06:00
root_node.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
run_tests.sh fdtput: expand fdt if value does not fit 2013-05-29 12:48:16 +10:00
rw_tree1.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
search_paths.dts dtc: Add -i option to support search paths 2012-03-18 10:52:24 -05:00
search_paths_b.dts dtc: Add -i option to support search paths 2012-03-18 10:52:24 -05:00
set_name.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
setprop.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
setprop_inplace.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
sized_cells.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
sized_cells.dts dtc: Add support for variable sized elements 2011-10-11 12:58:30 -05:00
string_escapes.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
subnode_iterate.c libfdt: Add fdt_next_subnode() to permit easy subnode iteration 2013-04-28 07:30:49 -05:00
subnode_iterate.dts libfdt: Add fdt_next_subnode() to permit easy subnode iteration 2013-04-28 07:30:49 -05:00
subnode_offset.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
supernode_atdepth_offset.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
sw_tree1.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
test01.asm Add some initial test cases. 2007-02-15 11:02:44 -06:00
test01.dts Remove support for the legacy DTS source file format. 2008-10-03 16:09:34 -05:00
test01.stderr Add some initial test cases. 2007-02-15 11:02:44 -06:00
test_kernel_dts Add a script that compares an "old" and "new" dtc results. 2007-11-20 09:14:03 -06:00
test_tree1.dts dtc: Add ability to delete nodes and properties 2012-09-06 07:51:43 -05:00
test_tree1_body.dtsi dtc: Add ability to delete nodes and properties 2012-09-06 07:51:43 -05:00
test_tree1_delete.dts dtc: Add ability to delete nodes and properties 2012-09-06 07:51:43 -05:00
test_tree1_merge.dts libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
test_tree1_merge_labelled.dts libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
test_tree1_merge_path.dts libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
test_tree1_wrong1.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong2.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong3.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong4.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong5.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong6.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong7.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong8.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
test_tree1_wrong9.dts dtc: Extend and better test dtbs_equal utility programs (resend) 2010-04-30 08:36:54 -05:00
testdata.h libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
tests.h libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
tests.sh Clean up invocation of fdt{get,put} tests 2012-02-03 08:39:50 -06:00
testutils.c Revert "utilfdt_read: pass back up the length of data read" 2013-04-22 15:41:41 -05:00
trees.S libfdt: Add helpers for 64-bit integer properties 2012-06-03 09:14:13 -05:00
truncated_property.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
utilfdt_test.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
value-labels.c dtc/tests: don't include fdt.h prior to libfdt.h 2013-01-06 15:48:51 -06:00
value-labels.dts dtc: Add testcases for labels within values 2009-02-03 08:38:05 -06:00
zero-phandle.dts dtc: Add testcases for tree checks 2007-11-20 09:03:51 -06:00