zephyr/scripts
Grzegorz Swiderski 15488be6af scripts: dts: Refactor gen_driver_kconfig_dts
The motivation for this patch was to improve the script's performance,
but some stylistic changes and cleanups are included as well.

The main optimization concerns the use of PyYAML, as it offers multiple
functions for interpreting YAML. The commonly used `load`/`safe_load`
converts a YAML stream to a dictionary. There are also `scan`, `parse`,
and `compose`, which return intermediate representations, the last one
being a graph. [1]

Since `gen_driver_kconfig_dts` scans DT bindings for compatible strings,
it only needs to look through top level keys in YAML. The intermediate
PyYAML graph is sufficient for this, and using it reduces the script's
execution time by about 30%, without making the code too complicated.

[1] - https://pyyaml.org/wiki/PyYAMLDocumentation

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-01-19 07:57:57 +01:00
..
build scripts: build: Make scripts executable 2025-01-15 15:06:01 +01:00
checkpatch scripts: checkpatch: add NRF_GPIO_Type to typedefs file 2024-11-01 12:10:12 -05:00
ci scripts: ci: check_compliance: Add sysbuild Kconfig checks 2025-01-17 16:35:53 +01:00
coccinelle scripts: coccinelle: add errno as a reserved name 2024-08-22 14:21:53 -04:00
coredump scripts: coredump: Fix loading coredumps when thread info is enabled. 2024-12-09 22:06:23 +00:00
dts scripts: dts: Refactor gen_driver_kconfig_dts 2025-01-19 07:57:57 +01:00
footprint ci: footprint: fix nrf5340dk/nrf5340/cpuapp board name 2024-10-25 14:08:18 +02:00
generate_usb_vif python: Format and sort imports 2024-11-25 10:07:13 +01:00
gitlint gitlint: do not allow treewide as an area in commit messages 2024-04-10 09:22:24 +02:00
kconfig kconfig: Add dt_compat_any_not_has_prop function 2024-12-16 13:09:14 +01:00
logging/dictionary scripts: logging: dictionary: fix parsing of DWARF v5 2024-12-20 12:36:46 +01:00
native_simulator native_simulator: Get latest from upstream 2024-10-24 17:01:50 +01:00
net tests|scripts/net: Change native_posix references to native_sim 2024-03-20 15:43:05 +01:00
profiling scripts: profiling: Add stackcollapse script 2024-08-13 18:28:44 -04:00
pylib twister: fix shell prompt detection with VT100 colors disabled 2025-01-17 16:35:33 +01:00
pylint/checkers
release scripts: drop list_issues.py 2023-07-25 16:45:15 +02:00
ruff scripts: Add helper scripts for ruff baseline excludes 2024-11-19 18:36:54 -05:00
schemas twister: harness: recording: Allow multiple patterns 2025-01-16 22:38:51 +01:00
support
tests twister: Remove 'xtools' toolchain variant references 2025-01-17 10:50:07 +01:00
tracing tracing: add named event trace 2024-10-17 10:46:52 -04:00
utils python: Format and sort imports 2024-11-25 10:07:13 +01:00
west_commands scripts: west_command: spdx: Exit with non-zero code on failure 2025-01-15 15:03:59 +01:00
.gitignore
check_maintainers.py python: Format and sort imports 2024-11-25 10:07:13 +01:00
checkpatch.pl scripts: checkpatch: add special consideration for DIR 2025-01-08 01:29:06 +01:00
checkstack.pl
coccicheck
dump_bugs_pickle.py
gen_gcov_files.py
get_maintainer.py scripts: get_maintainer: check maintenance status 2024-06-28 07:19:49 -04:00
github_helpers.py
list_boards.py scripts: Undo Board.{dir -> directories[0]} renames 2024-10-26 17:14:06 +02:00
list_hardware.py scripts: list_hardware: Do not check qualifiers for run once config 2024-10-26 17:14:06 +02:00
list_shields.py scripts: list_shields: add script for listing the supported shields 2024-05-21 16:47:24 -04:00
make_bugs_pickle.py ci: scripts: do not count PRs labeled as bug in snapshot 2024-07-12 16:10:13 -04:00
requirements-base.txt Revert "cmake: remove enforcement of DWARF v4" 2024-12-20 16:05:23 +01:00
requirements-build-test.txt scripts: twister: Add CTest harness 2025-01-10 04:12:42 +01:00
requirements-compliance.txt scripts: Update and lock ruff 2024-12-03 23:30:00 +00:00
requirements-extras.txt scripts: Remove zcbor requirement from requirements-extras.txt 2024-12-23 17:09:43 +01:00
requirements-run-test.txt scripts: Remove wrong bz package 2024-09-23 09:59:56 +02:00
requirements.txt doc: move requirements to doc/ 2023-07-12 09:13:49 -04:00
series-push-hook.sh
set_assignees.py ci: set_assignee: pick next area when submitter = assignee 2024-07-10 19:14:17 -04:00
snippets.py sysbuild: Add support for snippets 2024-12-27 07:18:13 +01:00
spelling.txt scripts: RISCV instruction SEPC 2024-08-27 10:48:58 -04:00
tags.sh
twister scripts: twister: Python Version Guard 2024-11-04 17:24:24 -05:00
valgrind.supp valgrind: Update POSIX soc no cpu cleanup suppression 2023-11-29 15:33:49 +01:00
west-commands.yml scripts: west-commands: add an entry for the patch command 2024-12-24 11:15:38 +01:00
zephyr_module.py scripts: west_commands: Support out-of-tree runners 2025-01-08 17:02:06 +01:00