zephyr/scripts
Martí Bolívar 15e3e317f7 dtlib: implement copy.deepcopy() for DT
The standard library copy module allows you to implement shallow and
deep copies of objects. See its documentation for more details on
these terms.

Implementing copy.deepcopy() support for DT objects will allow us to
"clone" devicetree objects in other classes. This in turn will enable
new features, such as native system devicetree support, within the
python-devicetree.

It is also a pure feature extension which can't harm anything and is
therefore safe to merge now, even if system devicetree is never
adopted in Zephyr.

Note that we are making use of the move from OrderedDict to regular
dict to make this implementation more convenient.

See https://github.com/devicetree-org/lopper/ for more information on
system devicetree. We want to add system devicetree support to dtlib
because it seems to be a useful way to model modern, heterogeneous
SoCs than traditional devicetree, which can really only model a single
CPU "cluster" within such an SoC.

In order to create 'regular' devicetrees from a system devicetree, we
will want a programming interface that does the following:

   1. parse the system devicetree
   2. receive the desired transformations on it
   3. perform the desired transformations to make
      a 'regular' devicetree

Step 3 can be done as a destructive modification on an object-oriented
representation of a system devicetree, and that's the approach we will
take in python-devicetree. It will therefore be convenient to have an
efficient deepcopy implementation to be able to preserve the original
system devicetree and the derived regular devicetree in memory in the
same python process.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2022-11-07 19:00:31 +01:00
..
build scripts/build: Add program header support for gen_relocate_app.py 2022-11-03 10:25:07 +01:00
checkpatch scripts: checkpatch: add Atmel Pwm typedef 2022-07-12 17:51:23 +02:00
ci actions: Upload test results to opensearch service 2022-11-02 10:26:43 -04:00
coccinelle everywhere: fix typos 2022-03-18 13:24:08 -04:00
coredump debug: coredump: add xtensa intel adsp, support toolchains 2022-06-23 15:44:45 -04:00
dts dtlib: implement copy.deepcopy() for DT 2022-11-07 19:00:31 +01:00
footprint footprint: Remove bt_hap_ha for nrf52840dk 2022-10-07 10:09:25 +00:00
gitlint scripts: gitlint: block Change-Id tags in commit message 2022-04-20 20:59:33 -04:00
kconfig kconfig: wrap description in guiconfig 2022-10-31 23:23:46 +09:00
logging/dictionary scripts: dictionary: Initialise Colorama during module load 2022-05-24 09:00:16 -07:00
net scripts: net: add enumerate_http_status.py 2022-10-12 09:02:21 -04:00
pylib twister: set both commit and run date in json report 2022-11-06 22:27:07 -05:00
release scripts: release: strip title names 2022-09-27 16:51:45 -05:00
schemas/twister scripts: twister: add support for sysbuild 2022-10-04 14:06:58 -04:00
support
tests twister: fix bug retrieving subtests 2022-08-12 17:39:35 +02:00
tracing scripts: tracing: Initialise Colorama during module load 2022-05-24 09:00:16 -07:00
utils scripts: migrate_includes: migrate zephyr.h to kernel.h 2022-09-05 16:31:47 +02:00
west_commands west: sign: remove -i 3 parameter 2022-10-27 11:02:35 +02:00
.gitignore
checkpatch.pl checkpatch: Document both endianness macros 2022-10-28 22:06:17 +09:00
checkstack.pl
coccicheck scripts: Allow use of bash outside of /bin 2022-03-08 11:11:10 +01:00
dump_bugs_pickle.py scripts: dump_bugs_pickle: strip bug titles 2022-09-27 16:51:45 -05:00
gen_gcov_files.py
get_maintainer.py scripts: get_maintainer: Use SafeLaoder for yaml 2022-04-13 13:48:18 -07:00
github_helpers.py scripts: add github_helpers.py 2022-05-24 18:48:03 +02:00
list_boards.py scripts: remove ZEPHYR_BASE as default root for board listing 2022-08-18 14:29:14 +02:00
make_bugs_pickle.py scripts: add make_bugs_pickle.py 2022-05-24 18:48:03 +02:00
requirements-base.txt requirements: bump pyelftools to >=0.27 2022-06-10 09:46:31 +02:00
requirements-build-test.txt
requirements-compliance.txt scripts: Upgrade to junitparser v2+ 2022-08-03 14:04:36 -04:00
requirements-doc.txt doc: Do not use Sphinx 5.2.0.post0 2022-09-25 10:37:32 +02:00
requirements-extras.txt scripts: requirements-extras: Request imgtool 1.9 for write-block-size > 8 2022-09-01 10:28:33 +02:00
requirements-run-test.txt soc: xtensa: tools: remove dependency of netifaces package 2022-08-16 22:51:53 -07:00
requirements.txt
series-push-hook.sh
set_assignees.py scripts: set_assignee: Make review requests more deterministic 2022-10-20 23:52:49 +09:00
spelling.txt
tags.sh
twister scripts: twister: update twister to support QEMU platforms with sysbuild 2022-10-26 08:48:37 -04:00
valgrind.supp
west-commands.yml west: Add completion support for zsh 2022-09-06 08:43:15 -07:00
zephyr_module.py scripts: modules: Mark the build as tainted if blobs present 2022-08-29 15:57:59 +02:00