| #
578bc4fe |
| 01-Oct-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: dt: cache embedded DTB node information
Optimize OP-TEE boot time regarding parsing of the embedded DTB content when using libfdt. The library functions fdt_parent_offset() and fdt_node_offset
core: dt: cache embedded DTB node information
Optimize OP-TEE boot time regarding parsing of the embedded DTB content when using libfdt. The library functions fdt_parent_offset() and fdt_node_offset_by_phandle() are not very efficient since they parse the DTB from root node to target node to look up for, respectively, the node offset of a node parent and the node offset related to a node phandle. Helper functions fdt_reg_base_address() and fdt_reg_size() are also affected since they are based on fdt_parent_offset() to find the #address-cells and #size-cells properties of a node parent.
Optimize this by parsing the embedded DT once and caching node information (parent node, phandle value, parent node #address-cells and #size-cells values) in a array. Parse the array instead of the DT for find these information.
We made few tests to use bisection or hash tables for look up the information in the cache array. The gain was very small, likely due to the number of DT node involved in the platform is relatively small (only several hundreds or nodes).
This feature is enabled upon configuration switch CFG_DT_CACHED_NODE_INFO.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
17f326eb |
| 29-Jan-2020 |
Jerome Forissier <jerome@forissier.org> |
libfdt: move to version v1.5.1
Imports upstream libfdt version v1.5.1 [1]. Things worthy of note:
- SPDX license identifiers were added upstream in commit 94f87cd5b7c5 ("libfdt: Add dual GPL/BSD
libfdt: move to version v1.5.1
Imports upstream libfdt version v1.5.1 [1]. Things worthy of note:
- SPDX license identifiers were added upstream in commit 94f87cd5b7c5 ("libfdt: Add dual GPL/BSD SPDX tags to files missing license text"). They conflict with those we have added locally in commit 1bb929836182 ("Add SPDX license identifiers"). We added "BSD-2-Clause" while upstream added "GPL-2.0-or-later OR BSD-2-Clause". This commit keeps the upstream tags.
- At this stage we carry no local modification except for two minor things enabling C99 compliance: 1. Zero sized arrays at the end of structs fdt_node_header and fdt_property are changed from "[0]" to "[]", 2. An extra semicolon is removed after the static function overlay_fixup_one_phandle(). These changes were in the initial import already, commit b908c67504cd ("Import libfdt v1.4.1").
Link: [1] https://github.com/dgibson/dtc/tree/v1.5.1/libfdt Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
01d6a9da |
| 08-Nov-2018 |
Bryan O'Donoghue <bryan.odonoghue@linaro.org> |
libfdt: Move to version v1.4.6-9
This import adds FDT overlay plus brings in the latest bugfixes upstream.
As noted in the below url, there is a performance problem with 1.4.7 so we target version
libfdt: Move to version v1.4.6-9
This import adds FDT overlay plus brings in the latest bugfixes upstream.
As noted in the below url, there is a performance problem with 1.4.7 so we target version 1.4.6-9 instead.
https://github.com/ARM-software/arm-trusted-firmware/pull/1657
Upstream commit aadd0b65c987 ("checks: centralize printing of property names in failure messages")
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Suggested-by: Jens Wiklander <jens.wiklander@linaro.org> Suggested-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
1bb92983 |
| 15-Dec-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] wa
Add SPDX license identifiers
Adds one SPDX-License-Identifier line [1] to each source files that contains license text.
Generated by [2]: spdxify.py --add-spdx optee_os/
The scancode tool [3] was used to double check the license matching code in the Python script. All the licenses detected by scancode are either detected by spdxify.py, or have no SPDX identifier, or are false matches.
Link: [1] https://spdx.org/licenses/ Link: [2] https://github.com/jforissier/misc/blob/f7b56c8/spdxify.py Link: [3] https://github.com/nexB/scancode-toolkit Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Joakim Bech <joakim.bech@linaro.org>
show more ...
|
| #
b908c675 |
| 25-May-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
Import libfdt v1.4.1
Imports libfdt code from https://git.kernel.org/cgit/utils/dtc/dtc.git tag "v1.4.1" commit 302fca9f4c283e1994cf0a5a9ce1cf43ca15e6d2.
API header files are moved to libfdt/includ
Import libfdt v1.4.1
Imports libfdt code from https://git.kernel.org/cgit/utils/dtc/dtc.git tag "v1.4.1" commit 302fca9f4c283e1994cf0a5a9ce1cf43ca15e6d2.
API header files are moved to libfdt/include.
Small changes to make fdt.h and libfdt.h c99 compiant.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Suggested-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|