4f00eda9fa05364edd719b05b88e4445682eeee5 |
|
06-Apr-2017 |
SzuWei Lin <szuweilin@google.com> |
Add Apache2 module license Bug: 36678371 Test: mmm system/libufdt, and success build Change-Id: I73059f5beca2242f8883fca86cb49d53d0f543b8 (cherry picked from commit 6ad4caae73191bdc2403185b6482969c17604c95)
/system/libufdt/ufdt_node.c
|
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_node.c
|
08dd727484a9f5619e0be18a1f601c21f371c5b7 |
|
20-Feb-2017 |
SzuWei Lin <szuweilin@google.com> |
Fix the libufdt overlay node order libufdt could reversed the node order during overlaying. However, the libfdt overlay in dtc doesn't promise the node order. But looks there are some implementation of kernel drivers depend on the order in DTS. The patch keeps the DTB/DTBO node order during libufdt overlaying. Notes that the node order merged by libufdt could not match the result of libfdt. Bug: 35429321 Test: run test scripts (see libufdt/tests/README) Change-Id: I7209ebfaa21d6640d547b029ea0f0edf6e58fca1
/system/libufdt/ufdt_node.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_node.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_node.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_node.c
|