History log of /system/libufdt/ufdt_overlay.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
435687606727710e91e827daa8e9227d760b4a1c 30-Mar-2017 SzuWei Lin <szuweilin@google.com> Avoid to re-generate string table from ufdt to fdt

String table contains the strings of all property name in a fdt.

The ufdt_apply_overlay() converts two dtbs from fdt to ufdt,
overlays, and converts merged ufdt to fdt. These operations
shouldn't create new peroperty names, so we can just re-use the
string tables in original dtbs, and just copy them into merged
fdt. This solution can enhance a lot of performance for device
tree overlaying.

To avoid the error that some users could use string offset in
string table, the solution also give a same string offset for
the name properties by ufdt_prop_dict;

Futher, the patch also removed unused header files after
changing algorithm.

Bug: 35255584
Test: ./tests/run_tests.sh
Change-Id: Id422730115531bd20d21117285291bdd860915ff
(cherry picked from commit 1be68ae53e645de1b2ec26140b302fbfcbbb919f)
/system/libufdt/ufdt_overlay.c
dd7337e39b8d2b9123acff329bd9da22efec66d0 07-Apr-2017 SzuWei Lin <szuweilin@google.com> Fix memory and file leak

Bug: 35652061
Test: valgrind --leak-check=yes --show-reachable=yes ufdt_apply_overlay ...
and result no leak

Change-Id: Iec0fe77468d2fdf6c692209cd9571c02f96e2e44
(cherry picked from commit 70107c8f5c65bc9798d8f6b7f5b580997d0aca19)
/system/libufdt/ufdt_overlay.c
fba5805ed826ca556434911f67cd7a0aed987990 20-Mar-2017 SzuWei Lin <szuweilin@google.com> Handle overlaying without node __symbols__

In new version of dtc, it does not always generate __symbols__ node:

https://github.com/dgibson/dtc/commit/e3c769aa9c16e7b94051c5eaae6635e79ac19385

Revises libufdt to handle main DT without node __symbols__.

Bug: 35230516
Test: tests/run_tests.sh
Change-Id: Ie086abc93ed4d45e4fe28c1d8c48fd37873256c1
/system/libufdt/ufdt_overlay.c
f6c209b3f409f879305ac9837524b9d34c850de6 27-Nov-2016 Li Chen <akaineko@google.com> libufdt: device tree overlay via unflattening FDT

The original version of libdtoverlay is slow in searching for
particular nodes and adding subnodes/properties due to the operations
on flattened device tree (FDT).

`libufdt` builds a real tree structure (named ufdt -- unflattned
device tree) from FDT. In the real tree, we can perform certain
operations (e.g., merge 2 subtrees, search for a node by path) in
almost optimal time complexity with acceptable additional memory usage.

With libufdt, we improve the merging of two dtb files from O(N^2) to
O(N), where N is the number of nodes in the tree.

Bug: 30800619
Test: run test scripts (see libufdt/tests/README)
Test: manually ported libufdt into a bootloader,
checked it can merge a base dtb and a dtbo to generate a final dtb
to boot the device

Change-Id: I1ff886bb8a62bad1451edcd7c4fe5cb48b7a034a
/system/libufdt/ufdt_overlay.c
eeaff8f66f44518a0e776957c6e0921f7799ace2 14-Dec-2016 Jeff Hao <jeffhao@google.com> Revert "libufdt: device tree overlay via unflattening FDT"

This reverts commit 3084ce7cbdff84093286459758f99c15082e6556.

Change-Id: I36f8252ea77c75301711009180c1908bb18e231c
/system/libufdt/ufdt_overlay.c
3084ce7cbdff84093286459758f99c15082e6556 27-Nov-2016 LiChen <akaineko@google.com> libufdt: device tree overlay via unflattening FDT

The original version of libdtoverlay is slow in searching for
particular nodes and adding subnodes/properties due to the operations
on flattened device tree (FDT).

`libufdt` builds a real tree structure (named ufdt -- unflattned
device tree) from FDT. In the real tree, we can perform certain
operations (e.g., merge 2 subtrees, search for a node by path) in
almost optimal time complexity with acceptable additional memory usage.

With libufdt, we improve the merging of two dtb files from O(N^2) to
O(N), where N is the number of nodes in the tree.

Bug: 30800619
Test: run test scripts (see libufdt/tests/README)
Test: manually ported libufdt into a bootloader,
checked it can merge a base dtb and a dtbo to generate a final dtb
to boot the device
Change-Id: I6a282cc99129d5280ecbf40852723f83735fa523
/system/libufdt/ufdt_overlay.c