Commit graph

6,360 commits

Author SHA1 Message Date
Grzegorz Chwierut
3047951393 twister: Add support for reserving multiple DUTs
Main:
- Add HardwareReservationManager class and move DUT reservation
  logic from HardwareMap to improve separation of concerns
- Add 'required_devices' structure to testsuite YAML schema to
  define multiple device requirements for a test
- Add option to reserve multiple devices, filtered by platform
  and fixtures. Fixtures can have an extra parameter (after ':')
  that must match across the main DUT and required devices

Other:
- Add HarnessConfig dataclass to provide structured access to
  harness configuration data instead of raw dict access
- Change 'fixture' parameter in harness_config from string to
  list of strings for more flexibility when matching DUTs with
  multiple fixture requirements
- Move conversion of short platform names to full target names
  from hardware map into TestPlan module. This ensures platform
  names are resolved before test discovery
- Add unit tests for HardwareReservationManager
- Align existing tests with new dataclass structures

Signed-off-by: Grzegorz Chwierut <grzegorz.chwierut@nordicsemi.no>
2026-04-29 16:29:29 -04:00
Muhammed Asif P
dbee7f5510 scripts: west: add mplab ipe runner
- Runs MPLab IPE commandline utility to flash Microchip boards
- Flash support only, no debug.
- Adds mplab_ipe runner to tests.

Assisted-by: Claude:claude-sonnet-4-6 chat
Signed-off-by: Muhammed Asif P <asifp3104@gmail.com>
2026-04-29 09:59:21 +02:00
Aksel Skauge Mellbye
b8168a2026 scripts: west_commands: runners: Support mapped partitions
Defining code partitions using the zephyr,mapped-partitions
compatible is now possible, which means that
CONFIG_FLASH_LOAD_OFFSET is no longer set. Use the reg address
from devicetree when CONFIG_FLASH_USES_MAPPED_PARTITION is set
instead of relying on the Kconfig option.

Fixes: #107785

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2026-04-28 22:07:24 +02:00
Micah Terhaar
bd4876663c scripts: fix gen_strerror_table.py
gen_strerror_table.py missed E2BIG (Arg list too long) because
the regex didn't include numbers in the ERRNO macro

Signed-off-by: Micah Terhaar <mterhaar@me.com>
2026-04-28 11:22:08 +02:00
Anas Nashif
d8be6befe0 ci: set Release area as a meta area
Add Release as meta area, where certain rules apply when assigning.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-04-28 00:27:40 +01:00
Marko Sagadin
11ddde73ec scripts: west_commands: runners: fix west rtt shell interaction
When the west rtt command is executed, two things happen:
- A GDB server is run.
- A telnet client (via sockets) is opened to connect to that server.

Previously, that telnet client was operating in the line mode in both
directions. That mode is perfectly fine for just presenting the captured
content (RTT data) to the stdout; however, it is not suitable for
interacting with the device via the shell subsystem. None of the
control commands, such as tab and arrow keys, were correctly passed down
to the device.

To solve that the telnet client had to be switched into the character
mode. For that two separate implementations were needed, one for the
Unix and one for Windows. That was solved with two different context
managers.

They both wrap the common logic: two threads, where one reads input
from the keyboard and sends it to the telnet client, and the other on
reads the data from the telnet client and prints it to the screen.

Signed-off-by: Marko Sagadin <marko.sagadin42@gmail.com>
2026-04-27 14:22:58 +02:00
Jordan Yates
f87cfbd69d scripts: ci: check_compliance: move UNDEF_KCONFIG_ALLOWLIST
Move the list of undefined Kconfig symbols to allow out of the python
script and into a dedicated file.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-04-26 17:40:00 +02:00
Jordan Yates
b49bf3eae4 scripts: check_compliance: ignoring undef_within_kconfig
Allow warnings output by the `undef_within_kconfig` check to be
suppressed for individual symbols (list loaded from a file).

While ideally this situation should be avoided, in practice it is
sometimes unavoidable for modules that are intended to support being
imported from multiple manifest repos, or are trying to support multiple
zephyr versions.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-04-26 17:40:00 +02:00
Jordan Yates
70538354db scripts: ci: check_compliance: extend UNDEF_KCONFIG_ALLOWLIST
Allow the symbols defined in `UNDEF_KCONFIG_ALLOWLIST` to be extended
at runtime by loading a list from a file, with the file specified as
an environment variable.

This allows the script to be used without modification by other repos
that have their own set of expected undefined symbols.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-04-26 17:40:00 +02:00
Kenneth Nielsen
06ab8823d7 scripts/logging: Disable use of select on Windows
The live log parser has been modified, so that it will not use `select`
if running on Windows. This is necessary, since the `select` call is
not available on Windows.

Signed-off-by: Kenneth Nielsen <knns@demant.com>
2026-04-25 11:30:58 +02:00
Marc Herbert
33d897462e scripts: west_commands: runners: core.py: link to mypy 1.20 regression
Amend commit fb5346d743 ("scripts: west_commands: runners: core.py:
ignore sys.stdin type check") to confirm it is indeed a mypy regression
and add the URL of the corresponding issue in the mypy tracker.

Signed-off-by: Marc Herbert <Marc.Herbert@gmail.com>
2026-04-23 18:24:51 -04:00
Yiren Guo
dd105923a4 scripts: gen_relocate_app.py: fix indentation in empty relocation stubs
When no copy/zero relocation logic is generated, the script emits a
return statement in the generated relocation functions.

Add a tab before the fallback return so the generated code keeps
consistent function-body indentation style.

This is a formatting-only change and does not affect relocation
behavior.

Signed-off-by: Yiren Guo <guoyr_2013@hotmail.com>
2026-04-23 13:12:45 -04:00
Henrik Brix Andersen
5c9e9f33f2 scripts: requirements: actions: refresh pinned versions
Run the uv command to update the pinned version in
requirements-actions.txt.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2026-04-23 08:17:34 -04:00
Henrik Brix Andersen
fb5346d743 scripts: west_commands: runners: core.py: ignore sys.stdin type check
Instruct mypy to ignore the type check on sys.stdin as it is given issues
with at least mypy==1.20.0.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2026-04-23 08:17:34 -04:00
Reto Schneider
1a5e00f25b scripts: list_boards: Improve error when used in Twister
This causes Twister to be able to log errors found by list_boards.py,
instead of quitting silently.

Before:

 $ twister; echo $?
 INFO    - Using Ninja..
 INFO    - Zephyr version: v4.4.0-rc3-9-g2f8a724a4b31
 INFO    - Using 'zephyr/gnu' toolchain variant.
 1

Note that there is neither a warning nor an error printed.

After:

 $ twister; echo $?
 INFO    - Using Ninja..
 INFO    - Zephyr version: v4.4.0-rc3-10-gdb2f2b597c55
 INFO    - Using 'zephyr/gnu' toolchain variant.
 ERROR   - Malformed board YAML file: <censored>/board.yml
   {'name': 'censored', 'vendor': 'censored', 'socs': [{'name':
   'censored'}]} is not valid under any of the given schemas in $.board
 1

The change has been implemented so that when running list_boards.py
directly, the errors will be displayed with in the same style as before.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2026-04-23 08:16:00 -04:00
Gustav Holmberg
668900e123 runners: Add support for IAR EWARM
Add support for debugging in IAR:s IDE Embedded Workbench. This is
combined with flashing with IAR:s tool CSpyBat in a single runner called
'iar'.

Co-authored-by: Ivar Bjerling <ivar@ivarbjerling.com>

Signed-off-by: Gustav Holmberg <gustav.holmberg@iar.com>
2026-04-23 07:08:04 -04:00
dependabot[bot]
3deeb463ff build(deps): bump lxml from 6.0.2 to 6.1.0 in /scripts
Bumps [lxml](https://github.com/lxml/lxml) from 6.0.2 to 6.1.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.1.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-22 17:15:18 +02:00
Benjamin Cabé
ff58a4d069 scripts: ci: check_compliance: renaming an already large image should be OK
Changed the file filter in the compliance check script from "d" to "dr" to
not fail when a commit _moves_ an already large image to a new location.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-04-22 12:53:48 +02:00
Marc Herbert
035c094f01 ci: check_maintainer_changes: don't hide Github failures
Before this commit, invalid user handles (and other issues) are
misleadingly reported as lacking access. Example:

https://github.com/zephyrproject-rtos/zephyr/actions/runs/24588250420/job/71903123213?pr=107507
```
=== GitHub Access Check ===
Collaborators without at least triage access:
  - sylvioales
Some added maintainers or collaborators do not have sufficient access.
```

This feedback is wrong because the real issue is: `sylvioales` had a
typo, that user does not exist.

This commit addresses the `W0718: Catching too general exception Exception
(broad-exception-caught)` pylint warning that accurately warns about hiding
errors. After it:

```
=== GitHub Access Check ===
sylvioaves is not a user: 404 {"message": "sylvioaves is not a user",
  "documentation_url": "https://docs.github.com/rest/collaborators/collaborators",
  "status": "404"}
Collaborators without at least triage access:
  - sylvioaves
```

Note the misleading "missing access" message is still there but:
1. the actual, relevant error message is not discarded anymore
2. getting rid of the last part would be much bigger code change.

This commit deals with other Github issues like for instance
passing an invalid token:

```diff
 === GitHub Access Check ===
+401 {"message": "Bad credentials",
+      "documentation_url": "https://docs.github.com/rest", "status": "401"}
 Collaborators without at least triage access:
  - sylvioaves
```

Signed-off-by: Marc Herbert <marc.herbert@gmail.com>
Signed-off-by: Marc Herbert <Marc.Herbert@gmail.com>
2026-04-22 10:04:30 +02:00
Jukka Rissanen
2e213a8b45 scripts: net: Quic Kconfig optimizer script
Add a Python script that can be used to optimize the Kconfig
values for different use cases and scenarios.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
Assisted-by: Claude:claude-sonnet-4.6
2026-04-21 17:48:04 +01:00
Krzysztof Chruściński
ca750d6730 scripts: pylib: twister: shell: Add option to read more data
Add option to execute command and then read the resposne for a
specified time. It can be useful if we want to validate additional
data that is output as the result of a command execution.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-04-17 13:43:51 +02:00
Adam Szczygieł
f4747547d9 arch: ISR table size optimization
Allow to use a switch-case instead of an array holding ISR entries.

When most of IRQs are not used, they share the same, default entry.
It results in most of the ISR array entries being identical duplicates.

This change allows to use dynamically generated function (after first
linker pass) that uses switch-case instead of a full array.
Default entries are handled only once, in a default section.
Used IRQs have their own case sections.
This can help reduce binary size.

Signed-off-by: Adam Szczygieł <adam.szczygiel@nordicsemi.no>
2026-04-17 12:35:34 +01:00
Marcin Niestroj
0f3bf12e41 nsi: fcntl: add O_CREAT and O_TRUNC
Support conversion of those flags between mid and zephyr/host.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
2026-04-17 10:40:50 +02:00
Marcin Niestroj
9fa9dfefe4 nsi: move nsos_fcntl to more generic nsi_fcntl
This will allow to reuse fcntl middle layer in other parts besides NSOS,
such as planned Native Simulator host FS mounting.

Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2026-04-17 10:40:50 +02:00
Piotr Kosycarz
db145a5af7 scripts: west_commands: runners: nrf_common: use app core at default
Use Application core as default unless specified differently.
This will make adding new product easier.

Signed-off-by: Piotr Kosycarz <piotr.kosycarz@nordicsemi.no>
2026-04-16 11:38:39 -05:00
Kasper Sloth
231853800d twister: Move serial import to try except clause
Twister would incorrectly fail, if you didn't have
the serial library installed. Instead moving it
to the try except clause causes it to be handled
correctly

Signed-off-by: Kasper Sloth <kasper.sloth99@gmail.com>
2026-04-16 14:45:07 +02:00
Yves Wang
683fbdee6b scripts: dashboard: fix size report plot chart on Windows
On Windows, symbols from external modules have absolute paths outside
ZEPHYR_BASE. Without --workspace, size_report places them under
node_others whose _size is never computed, leaving it at 0 while its
children carry non-zero sizes.

Add --workspace to size_report in dashboard.py.

Also compute node_others._size before adding it to the tree.

Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
2026-04-16 10:14:44 +02:00
Yves Wang
2b20b92e53 scripts: dashboard: serve via http server instead of opening file path
The previous webbrowser.open(file_path) approach fails under WSL
because Windows cannot open files via UNC paths. Use a local HTTP
server instead, which works reliably across more platforms.

Also add USES_TERMINAL to the CMake dashboard target so that log
output is visible.

Signed-off-by: Yves Wang <zhengjia.wang@nxp.com>
2026-04-16 10:14:44 +02:00
Anas Nashif
50b09754a2 west: runner: qemu: support flash/debug/debugserver
Add support for flash/debug/debugserver using existing build targets.
Long the goal is to move from build targets to dedicated implementation
in the runner.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-04-15 05:51:31 -04:00
Appana Durga Kedareswara rao
355cb6c663 arch: arm64: coredump: add FP and SP registers for correct GDB backtraces
The ARM64 coredump arch block did not include FP (x29) and SP,
making GDB unable to unwind the stack. The GDB stub also
misinterpreted SPSR as SP (tu[20] mapped to SP_EL0), producing
corrupted stack pointer values and broken backtraces.
Bump the arch block version to v2 (24 registers, 192 bytes)
adding FP and SP after the existing 22 registers. Update the
GDB stub to auto-detect v1 vs v2 blocks by payload size and
correctly map SPSR (skip), ELR (PC), FP (x29), and SP.

When CONFIG_ARM64_SAFE_EXCEPTION_STACK is enabled and the
exception originated from EL0, use the saved esf->sp (original
sp_el0 stored by the exception entry code) instead of computing
it from the ESF address, since the exception handler may be
running on a separate safe stack.

Fixes #99054

Signed-off-by: Anirudha Sarangi <anirudha.sarangi@amd.com>
Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com>
2026-04-15 05:42:40 -04:00
Andres Hernandez
bd556f218b scripts: runners: xtensa: ignore SIGINT while GDB is running
The xtensa runner launches xt-gdb via check_call() without ignoring
SIGINT in the parent Python process. When the user presses Ctrl+C,
the signal kills the West process before GDB can clean up.

Fix by using check_call_ignore_sigint() from the base class.

Signed-off-by: Andres Hernandez <andres.a.h@outlook.com>
2026-04-14 22:35:44 -04:00
Andres Hernandez
6e3f795696 scripts: runners: native: ignore SIGINT while GDB is running
The native runner's do_debug() and do_debugserver() methods launch GDB
via check_call() without ignoring SIGINT in the parent Python process.
When the user presses Ctrl+C, the signal kills the west process, which
tears down GDB before it can clean up. When GDB is in TUI mode via
`layout src`, this leaves the terminal in a bad state with mouse
tracking escape sequences active.

Fix by using check_call_ignore_sigint() from the base class.

Signed-off-by: Andres Hernandez <andres.a.h@outlook.com>
2026-04-14 22:35:44 -04:00
Andres Hernandez
dab4e3abba scripts: runners: blackmagicprobe: drop local check_call_ignore_sigint()
The local check_call_ignore_sigint() method is an exact duplicate
of the same-named method in ZephyrBinaryRunner. Remove the
local definition and rely on the base implementation.

Signed-off-by: Andres Hernandez <andres.a.h@outlook.com>
2026-04-14 22:35:44 -04:00
Andres Hernandez
c3bccd4269 scripts: runners: core: rename run_client() to check_call_ignore_sigint()
Renaming run_client() to check_call_ignore_sigint() makes its purpose
clearer and consistent with the pattern already established in the
blackmagicprobe runner.

Then, update all callers with the new name.

run_client() is kept as a deprecated function, wrapping
check_call_ignore_sigint() for backwards compatibility.

Signed-off-by: Andres Hernandez <andres.a.h@outlook.com>
2026-04-14 22:35:44 -04:00
Graham Roff
ef3da069cf scripts: snippets: Support file lists
Add support for providing multiple .conf and .overlay files for a given
snippet. This uses the standard syntax of a space or semi-colon
separated list in the snippets.yml file for EXTRA_CONF_FILE,
EXTRA_DTC_OVERLAY_FILE, and SB_EXTRA_CONF_FILE. In other areas of the
build system these variables already take such a list, so this provides
a more consistent syntax in the snippets case.

Signed-off-by: Graham Roff <grahamr@qti.qualcomm.com>
2026-04-14 22:35:11 -04:00
Taha Momayiz
9ad32f47c3 runners: uf2: use copyfile() to avoid copymode() crash on Windows
shutil.copy() calls copyfile() then copymode(). On Windows the UF2
bootloader resets the MCU (unmounting the drive) after receiving the
file, before copymode() runs, raising OSError: [WinError 433]. FAT
filesystems also do not support Unix permission bits. Replace copy()
with copyfile() to transfer data only and avoid the failing chmod.

Fixes zephyrproject-rtos#107165

Signed-off-by: Taha Momayiz <momayita@mail.uc.edu>
2026-04-14 22:32:23 -04:00
Jeppe Odgaard
afc92ea7a1 scripts: west_commands: move zspdx to pylib
Allow twister to make use of zspdx by moving it to pylib to prevent code
duplication.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2026-04-14 22:27:52 -04:00
Martí Bolívar
9b7779b1b3 scripts: dashboard: add DT binding information to nodes
When information about the node's matching binding is available, add
it to the dashboard. Knowing which binding matched a node is a common
source of confusion, so this hopefully is helpful additional context.

Adding this information has officially made the dt-prop-info field a
bit too complex to render inline. To avoid confusing people with the
extra info, re-work the CSS to display this new information in a grid
of key/value pairs associated with each node or property.

Signed-off-by: Martí Bolívar <mbolivar@oss.qualcomm.com>
2026-04-14 22:23:08 -04:00
Pete Johanson
7eb8cf1709 west: runners: openocd: Add flash-specific pre inits
Add the ability to specify different pre init commands for flashing, in the
case flashing needs to use a different transport/target than other
operations like debug for heterogeneous targets.

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2026-04-14 22:06:58 -04:00
Jeppe Odgaard
de590614e9 scripts: tracing: trace_capture_uart: disable on exit
Before a capture is started "enable" is sent to the device in case
`CONFIG_TRACING_HANDLE_HOST_CMD` is enabled to start the transmission of
tracing data from the device. However it is never stopped.

Send "disable" when the capture is stopped to stop the transmission from
the device.

Also `ser.close()` was unreachable which is also fixed.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2026-04-14 22:06:14 -04:00
Martin Moya
ba480d810b twister: add support for gtest parametrized tests
Parametrized tests in gtest are shown as the following example in a log:

[  FAILED  ] FooTest/FooTypedTest/0.TypedTestFoo, where TypeParam = <type>

current regex of the gtest harness didn't detect such test so it marks
this as pass or that the result wasn't found. This commit extends the
regex to detect such behavior and adds unit test to verify that.

Signed-off-by: Martin Moya <moyamartin1@gmail.com>
2026-04-14 22:04:44 -04:00
Anas Nashif
b474cfc2b6 posix: move posix to subsys/portability
Posix is not a library per the definition of libraries in Zephyr. It
always has been a portability layer and shall reside with other
portability layers under subsys/portability.

Addresses #99250

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2026-04-14 22:03:46 -04:00
Carlo Caione
8a729f5ea9 scripts: ci: disable DeviceMmioCheck pending community discussion
Disable the DeviceMmioCheck compliance check while documentation and
community discussion are ongoing. The check code is kept in place and
can be re-enabled by removing the self.skip() call.

See https://github.com/zephyrproject-rtos/zephyr/issues/106966

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-04-11 10:14:18 -04:00
Chase Philport
afcfbf6dee scripts: west_commands: build: fix syntax error in west build --help
There is an extra close bracket after board revision. Remove it.

Signed-off-by: Chase Philport <cproo12@pm.me>
2026-04-07 15:41:00 -04:00
Carlo Caione
a068728578 scripts: ci: DeviceMmioCheck: only flag newly added lines
The check was scanning the entire file content, causing CI failures
for PRs that touch any line in an existing non-compliant driver, even
if the change is completely unrelated to the violation.

Fix this by parsing git diff -U0 hunk headers to determine which
lines were actually added in the changeset, and only flag
RAW_REG_ADDR_RE matches on those lines. The MMIO_API_RE suppression
still scans the whole file so that files already using the MMIO API
are correctly excluded.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-04-07 15:33:48 -04:00
Carlo Caione
2281f537f6 scripts: ci: DeviceMmioCheck: fix regex and extend to headers
The RAW_REG_ADDR_RE pattern used \w+ for the cast type, which only
matches single-word types like (uint32_t *). This misses the most
common pattern in Zephyr drivers:

    .base = (struct foo_regs *)DT_INST_REG_ADDR(n),

Replace \w+ with [^)]* to match any cast expression including struct,
volatile, and multi-word types.

Also extend the pattern to catch DT_[INST_]REG_ADDR_BY_NAME() casts,
which are equally broken on MMU platforms, and scan .h files in
addition to .c files since some drivers define their config structs
in companion headers.

Before: 554 flagged lines across drivers/
After:  694 flagged lines across drivers/ (+140 newly caught)

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-04-07 15:33:48 -04:00
Pieter De Gendt
fa0c841540 scripts: ci: check_compliance.py: Add doc link to Github annotation
Append the documentation link to Github annotation. This make it easier for
users to go directly to the relevant page from a pull request.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-04-07 08:28:45 -05:00
Sylvio Alves
1b170ffc2f runners: openocd: fix logger access in classmethod
do_create() is a classmethod and cannot access self.logger.
Use a module-level _logger instead, consistent with core.py
and __init__.py in the runners package.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-04-06 10:33:17 -05:00
Pieter De Gendt
1c6c57f4d8 scripts: ci: check_compliance.py: Add --all-commits argument
Besides a custom range to run the compliance checks, allow to run on all
commits to HEAD.
This is useful when testing locally, to verify existing files in tree.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-04-03 14:52:51 -05:00
Carlo Caione
1a2d905469 scripts: ci: add compliance check for device MMIO API usage
Add a DeviceMmioCheck to check_compliance.py that flags driver files
casting DT_REG_ADDR() or DT_INST_REG_ADDR() to a pointer without
using the device MMIO API.

    .base = (SomeType *)DT_INST_REG_ADDR(n),

This stores the raw physical address and dereferences it directly. On
systems with an MMU, the physical address has no page table entry and
the access will fault unless someone else has created an identity
mapping (typically via mmu_regions.c).

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-04-03 14:51:27 -05:00