The function fdt_increase_size() increases the size of the device tree by the given amount. This is useful for any code that wants to add a node or large property, to avoid the possibility of running out of space. It's much smarter to have U-Boot increase the size of device tree when it knows it's going to add data, instead of hoping that the DTS was compiled with the right -p value.
Signed-off-by: Timur Tabi <ti...@freescale.com> --- common/fdt_support.c | 20 ++++++++++---------- include/fdt_support.h | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/common/fdt_support.c b/common/fdt_support.c index b6f252a..01d635b 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -645,6 +645,16 @@ int fdt_resize(void *blob) return actualsize; } +int fdt_increase_size(void *fdt, int add_len) +{ + int newlen; + + newlen = fdt_totalsize(fdt) + add_len; + + /* Open in place with a new len */ + return fdt_open_into(fdt, fdt, newlen); +} + #ifdef CONFIG_PCI #define CONFIG_SYS_PCI_NR_INBOUND_WIN 4 @@ -792,16 +802,6 @@ int fdt_del_subnodes(const void *blob, int parent_offset) return 0; } -int fdt_increase_size(void *fdt, int add_len) -{ - int newlen; - - newlen = fdt_totalsize(fdt) + add_len; - - /* Open in place with a new len */ - return fdt_open_into(fdt, fdt, newlen); -} - int fdt_del_partitions(void *blob, int parent_offset) { const void *prop; diff --git a/include/fdt_support.h b/include/fdt_support.h index 9a453af..d70627d 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -78,6 +78,7 @@ void ft_pci_setup(void *blob, bd_t *bd); void set_working_fdt_addr(void *addr); int fdt_resize(void *blob); +int fdt_increase_size(void *fdt, int add_len); int fdt_fixup_nor_flash_size(void *blob, int cs, u32 size); -- 1.6.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot