libfdt: Add phandle generation helper
authorThierry Reding <treding@nvidia.com>
Thu, 21 Mar 2019 18:09:58 +0000 (19:09 +0100)
committerSimon Glass <sjg@chromium.org>
Fri, 12 Apr 2019 02:10:50 +0000 (20:10 -0600)
commitea1df3e07cc5a4b155e69fcb7f583cb7f4c2cbe3
tree7ea3d9dec579e6379ea3b9f4270a1edfaee5fb4b
parentc7fbee540e006b4cf6cda9272d0d5c9847b3db11
libfdt: Add phandle generation helper

The new fdt_generate_phandle() function can be used to generate a new,
unused phandle given a specific device tree blob. The implementation is
somewhat naive in that it simply walks the entire device tree to find
the highest phandle value and then returns a phandle value one higher
than that. A more clever implementation might try to find holes in the
current set of phandle values and fill them. But this implementation is
relatively simple and works reliably.

Also add a test that validates that phandles generated by this new API
are indeed unique.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
lib/libfdt/fdt_ro.c
scripts/dtc/libfdt/fdt_ro.c
scripts/dtc/libfdt/libfdt.h
scripts/dtc/libfdt/libfdt_env.h