This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new f7d12de044 Publishing docs: d27cd92431fe34e3b69b902a0a2689eed65c8aa8
(web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)
f7d12de044 is described below
commit f7d12de044d54adbeea558068ee260ea299a3d38
Author: Swatantra Yadav <[email protected]>
AuthorDate: Sat Oct 10 00:09:16 2026 +0000
Publishing docs: d27cd92431fe34e3b69b902a0a2689eed65c8aa8 (web:
b3ba9359c605c5e92ad2feac6444e03d16143fd3)
---
.../arm/imxrt/boards/fmu-v6xrt/index.rst.txt | 41 +++++++++-
.../_sources/platforms/arm/imxrt/index.rst.txt | 51 ++++++++++++
.../latest/guides/porting/port_bootsequence.html | 8 +-
.../porting/port_relatedkernelconfigrations.html | 8 +-
.../latest/guides/programs/fully_linked_elf.html | 2 +-
.../guides/programs/partially_linked_elf.html | 2 +-
content/docs/latest/objects.inv | Bin 248590 -> 248657 bytes
.../arm/imxrt/boards/fmu-v6xrt/index.html | 37 ++++++++-
content/docs/latest/platforms/arm/imxrt/index.html | 51 ++++++++++++
.../boards/pimoroni-pico-plus-2-w/index.html | 2 +-
.../arm/stm32f0/boards/nucleo-f072rb/index.html | 60 +++++++++-----
.../stm32f0/boards/stm32f072-discovery/index.html | 60 +++++++++-----
.../arm64/fvp-v8r/boards/fvp-armv8r/index.html | 88 ++++++++++-----------
content/docs/latest/searchindex.js | 2 +-
14 files changed, 312 insertions(+), 100 deletions(-)
diff --git
a/content/docs/latest/_sources/platforms/arm/imxrt/boards/fmu-v6xrt/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/imxrt/boards/fmu-v6xrt/index.rst.txt
index d7740f5be9..a8e5b1184d 100644
---
a/content/docs/latest/_sources/platforms/arm/imxrt/boards/fmu-v6xrt/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm/imxrt/boards/fmu-v6xrt/index.rst.txt
@@ -92,14 +92,16 @@ Installation
The toolchain is the same as for every i.MX RT board; see
:doc:`the platform page <../../index>`.
-Flashing needs ``px_uploader.py`` from the PX4 source tree. The bootloader
-enumerates as a USB CDC/ACM device for roughly five seconds after reset, so
-start the uploader first and then reset the board:
+Flashing uses the uploader from the PX4 source tree, ``Tools/px4_uploader.py``.
+PX4 releases before 1.18 ship it as ``px_uploader.py``, without the ``4``, with
+the same arguments. The bootloader enumerates as a USB CDC/ACM device for
+roughly five seconds after reset, so start the uploader first and then reset
+the board:
.. code-block:: console
$ python Tools/px_mkfw.py --prototype firmware.prototype --image nuttx.bin
> nuttx.px4
- $ python Tools/px_uploader.py --port "/dev/serial/by-id/*PX4*" nuttx.px4
+ $ python Tools/px4_uploader.py --port "/dev/serial/by-id/*PX4*" nuttx.px4
The uploader expects a ``.px4`` container rather than a raw binary.
@@ -113,3 +115,34 @@ The basic NuttShell configuration. The console is USB
CDC/ACM, so the shell
appears on the same connector used for flashing, at ``/dev/ttyACM0`` on the
host. ``/dev/random`` and ``/dev/urandom`` are backed by the CAAM hardware
entropy source.
+
+rptun
+-----
+
+``nsh`` plus the SD card and the RPTUN backend for the CM4
+(``CONFIG_IMXRT_RPTUN``). The board bring-up registers ``/dev/rptun/cm4`` and
+holds the core; ``rptun start`` loads the ELF named by
+``CONFIG_FMU_V6XRT_CM4_FIRMWARE`` (``/mnt/sd/cm4.elf``) into the CM4 code TCM
+and releases it. The image must carry a ``.resource_table`` section and link
+to ``0x1ffe0000`` with its shared memory in the upper 64 KB of that TCM; see
+the RPTUN section of :doc:`the platform page <../../index>`.
+
+.. code-block:: console
+
+ nsh> mount -t vfat /dev/mmcsd0 /mnt/sd
+ nsh> rptun start /dev/rptun/cm4
+ nsh> sleep 2
+ nsh> rpmsg ping /dev/rpmsg/cm4 100 64 3 0
+ nsh> rpmsg dump all
+ nsh> rptun stop /dev/rptun/cm4
+
+Start is asynchronous; the rpmsg node ``/dev/rpmsg/cm4`` appears once the CM4
+has announced its endpoints. ``rpmsg ping`` and ``rpmsg dump`` report through
+syslog, which this configuration keeps in a RAM log: read it with ``dmesg``.
+After ``rptun stop`` the CM4 is parked in a ``wfi`` loop at its boot address;
+the next start reloads the image.
+
+To run without an SD card, enable ``CONFIG_FMU_V6XRT_CM4_ROMFS`` and copy the
CM4 image to
+``boards/arm/imxrt/fmu-v6xrt/src/etc/cm4.elf`` before building. It is baked
into the etc ROMFS
+that NuttX mounts at boot and the firmware path becomes ``/etc/cm4.elf``, so
the ``mount`` step
+goes away. The file is ignored by git.
diff --git a/content/docs/latest/_sources/platforms/arm/imxrt/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/imxrt/index.rst.txt
index 3e302d83aa..c430b981f4 100644
--- a/content/docs/latest/_sources/platforms/arm/imxrt/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/arm/imxrt/index.rst.txt
@@ -295,6 +295,57 @@ USB
Console communication over USB is supported via CDC-ACM. Only USB Device is
currently supported
for i.MX RT in NuttX
+Multicore: RT1170 CM4 over RPTUN
+================================
+
+The i.MX RT1170 pairs the Cortex-M7 with a Cortex-M4. NuttX runs on the CM7
and can load, release
+and hold a firmware on the CM4 through the NuttX RPTUN device on top of the
OpenAMP framework
+(``CONFIG_IMXRT_RPTUN``, which selects ``CONFIG_RPTUN_LOADER``). The CM4
firmware is the virtio
+device side and provides the resource table in its ELF image; it may be bare
metal. The table must
+carry a carveout resource for the shared window after the table: NuttX 13
rptun places the vrings
+and the rpmsg buffers in it and refuses the device without it, NuttX 12.12
rptun parses it and lays
+out the window on its own.
+
+The board registers the remote with :c:func:`imxrt_rptun_init`, passing the
remote name, the ELF
+path, the address environment (CM4 device addresses to CM7 physical
addresses), the boot vector and
+whether to autostart. The option is offered only on parts with a CM4
(``IMXRT_HAVE_CM4``) and
+selects ``DEV_SIMPLE_ADDRENV`` for libmetal.
+The driver:
+
+- Programs the boot vector into ``IOMUXC_LPSR_GPR0/1`` and reads it back.
+- Releases the core with ``SRC_SCR.BT_RELEASE_M4``. The slice stays under
reset until its first
+ release and cannot be held again afterwards: a software reset of the slice
is a pulse after which
+ the core restarts from the boot vector. To stop the core the driver writes a
``wfi`` loop over the
+ start of the image and pulses the reset, so the core parks there until the
next start reloads the
+ image. A reset completion is awaited only when restarting a core that was
already released.
+- Keeps a CM4 lockup local by setting ``SRC_SRMR`` so it does not reset the
whole chip.
+- Exchanges virtqueue kicks with the CM4 on MU-A channel 0. Neither side reads
the mailbox word; a
+ kick into a full mailbox is coalesced with the pending one and the receiver
rescans every
+ virtqueue. The CM4 firmware must therefore read MU-B ``RR0`` before it
scans, so that a kick
+ coalesced during the scan is covered by it.
+- Starts the remote from :c:func:`rptun_initialize` when the board sets
``autostart``; otherwise
+ ``RPTUNIOC_START`` on ``/dev/rptun/<name>`` or :c:func:`rptun_boot` starts
it.
+
+The ``fmu-v6xrt:rptun`` configuration is the reference user:
``imxrt_cm4_initialize()`` in the board
+bring-up registers ``/dev/rptun/cm4`` with the memory map below, maps the
shared window non-cacheable
+and leaves the core held. Copy an ELF built for the CM4 to the SD card as
+``CONFIG_FMU_V6XRT_CM4_FIRMWARE`` (``/mnt/sd/cm4.elf``), then from nsh::
+
+ mount -t vfat /dev/mmcsd0 /mnt/sd
+ rptun start /dev/rptun/cm4
+ rptun ping /dev/rptun/cm4 100 64 3 0
+
+Memory map rules the board must follow:
+
+- The CM7 reaches the CM4 TCM through the LMEM backdoor window at
``IMXRT_OCRAM_M4_BASE``. Only the
+ first 128 KB of that window, the CM4 code TCM, is reachable; writes to the
second half do not
+ reach the system TCM. The resource table, vrings and rpmsg buffers must live
in the code TCM.
+- The CM4 boots from the backdoor alias of its code TCM (``0x20200000``), as
NXP MCMGR does; the
+ CM4-native ``0x1FFE0000`` does not boot.
+- The board maps the memory the CM4 writes as non-cacheable (for example an
MPU region over the
+ shared window) before calling :c:func:`imxrt_rptun_init`. The driver cleans
the D-cache over the
+ loaded image before releasing the core.
+
Supported Boards
================
diff --git a/content/docs/latest/guides/porting/port_bootsequence.html
b/content/docs/latest/guides/porting/port_bootsequence.html
index fe03e96e4a..e227840e8e 100644
--- a/content/docs/latest/guides/porting/port_bootsequence.html
+++ b/content/docs/latest/guides/porting/port_bootsequence.html
@@ -151,7 +151,13 @@
<li class="toctree-l2"><a class="reference internal"
href="../build/platform_directories.html">Platform Directories</a></li>
<li class="toctree-l2"><a class="reference internal"
href="customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal"
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2"><a class="reference internal" href="port.html">How to
port</a></li>
+<li class="toctree-l2 current"><a class="reference internal"
href="port.html">How to port</a><ul class="current">
+<li class="toctree-l3 current"><a class="current reference internal"
href="#">The diagram of boot sequence</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port_relatedkernelconfigrations.html">The list of related kernel
configurations</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-procedure">Porting procedure</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-case-studies">Porting Case Studies</a></li>
+</ul>
+</li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">The diagram of boot sequence</a></li>
<li class="toctree-l2"><a class="reference internal"
href="port_relatedkernelconfigrations.html">The list of related kernel
configurations</a></li>
<li class="toctree-l2"><a class="reference internal"
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff
in NuttX header files?</a></li>
diff --git
a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
index 56781d2ea7..8df88c1e66 100644
--- a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
+++ b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
@@ -151,7 +151,13 @@
<li class="toctree-l2"><a class="reference internal"
href="../build/platform_directories.html">Platform Directories</a></li>
<li class="toctree-l2"><a class="reference internal"
href="customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal"
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2"><a class="reference internal" href="port.html">How to
port</a></li>
+<li class="toctree-l2 current"><a class="reference internal"
href="port.html">How to port</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal"
href="port_bootsequence.html">The diagram of boot sequence</a></li>
+<li class="toctree-l3 current"><a class="current reference internal"
href="#">The list of related kernel configurations</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-procedure">Porting procedure</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-case-studies">Porting Case Studies</a></li>
+</ul>
+</li>
<li class="toctree-l2"><a class="reference internal"
href="port_bootsequence.html">The diagram of boot sequence</a></li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">The list of related kernel configurations</a></li>
<li class="toctree-l2"><a class="reference internal"
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff
in NuttX header files?</a></li>
diff --git a/content/docs/latest/guides/programs/fully_linked_elf.html
b/content/docs/latest/guides/programs/fully_linked_elf.html
index 12a090709d..5cb69410f9 100644
--- a/content/docs/latest/guides/programs/fully_linked_elf.html
+++ b/content/docs/latest/guides/programs/fully_linked_elf.html
@@ -487,7 +487,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="dbee6e10-ff48-4e05-9066-8510a0025a09"
name="dbee6e10-ff48-4e05-9066-8510a0025a09" type="checkbox"><label
class="sphinx_collapse__label" for="dbee6e10-ff48-4e05-9066-8510a0025a09"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="1288a1e2-a458-4876-8d70-00a9caf97b54"
name="1288a1e2-a458-4876-8d70-00a9caf97b54" type="checkbox"><label
class="sphinx_collapse__label" for="1288a1e2-a458-4876-8d70-00a9caf97b54"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/guides/programs/partially_linked_elf.html
b/content/docs/latest/guides/programs/partially_linked_elf.html
index 4eb2dadbbc..81f2222c8b 100644
--- a/content/docs/latest/guides/programs/partially_linked_elf.html
+++ b/content/docs/latest/guides/programs/partially_linked_elf.html
@@ -513,7 +513,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="1655bf37-1c9c-43bd-863a-d650637043ea"
name="1655bf37-1c9c-43bd-863a-d650637043ea" type="checkbox"><label
class="sphinx_collapse__label" for="1655bf37-1c9c-43bd-863a-d650637043ea"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="0046a292-3114-454f-8bf9-8d0de137cc11"
name="0046a292-3114-454f-8bf9-8d0de137cc11" type="checkbox"><label
class="sphinx_collapse__label" for="0046a292-3114-454f-8bf9-8d0de137cc11"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index b414a5d42c..dab389eb72 100644
Binary files a/content/docs/latest/objects.inv and
b/content/docs/latest/objects.inv differ
diff --git
a/content/docs/latest/platforms/arm/imxrt/boards/fmu-v6xrt/index.html
b/content/docs/latest/platforms/arm/imxrt/boards/fmu-v6xrt/index.html
index 39682a8c51..8edd3c39e3 100644
--- a/content/docs/latest/platforms/arm/imxrt/boards/fmu-v6xrt/index.html
+++ b/content/docs/latest/platforms/arm/imxrt/boards/fmu-v6xrt/index.html
@@ -349,11 +349,13 @@ module in flight. Nothing in this port manages power.</p>
<h2>Installation<a class="headerlink" href="#installation" title="Permalink to
this heading"></a></h2>
<p>The toolchain is the same as for every i.MX RT board; see
<a class="reference internal" href="../../index.html"><span class="doc">the
platform page</span></a>.</p>
-<p>Flashing needs <code class="docutils literal notranslate"><span
class="pre">px_uploader.py</span></code> from the PX4 source tree. The
bootloader
-enumerates as a USB CDC/ACM device for roughly five seconds after reset, so
-start the uploader first and then reset the board:</p>
+<p>Flashing uses the uploader from the PX4 source tree, <code class="docutils
literal notranslate"><span class="pre">Tools/px4_uploader.py</span></code>.
+PX4 releases before 1.18 ship it as <code class="docutils literal
notranslate"><span class="pre">px_uploader.py</span></code>, without the <code
class="docutils literal notranslate"><span class="pre">4</span></code>, with
+the same arguments. The bootloader enumerates as a USB CDC/ACM device for
+roughly five seconds after reset, so start the uploader first and then reset
+the board:</p>
<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="gp">$ </span>python<span
class="w"> </span>Tools/px_mkfw.py<span class="w"> </span>--prototype<span
class="w"> </span>firmware.prototype<span class="w"> </span>--image<span
class="w"> </span>nuttx.bin<span class="w"> </span>><span class="w">
</span>nuttx.px4
-<span class="gp">$ </span>python<span class="w">
</span>Tools/px_uploader.py<span class="w"> </span>--port<span class="w">
</span><span class="s2">"/dev/serial/by-id/*PX4*"</span><span class="w">
</span>nuttx.px4
+<span class="gp">$ </span>python<span class="w">
</span>Tools/px4_uploader.py<span class="w"> </span>--port<span class="w">
</span><span class="s2">"/dev/serial/by-id/*PX4*"</span><span class="w">
</span>nuttx.px4
</pre></div>
</div>
<p>The uploader expects a <code class="docutils literal notranslate"><span
class="pre">.px4</span></code> container rather than a raw binary.</p>
@@ -367,6 +369,33 @@ appears on the same connector used for flashing, at <code
class="docutils litera
host. <code class="docutils literal notranslate"><span
class="pre">/dev/random</span></code> and <code class="docutils literal
notranslate"><span class="pre">/dev/urandom</span></code> are backed by the
CAAM hardware
entropy source.</p>
</section>
+<section id="rptun">
+<h3>rptun<a class="headerlink" href="#rptun" title="Permalink to this
heading"></a></h3>
+<p><code class="docutils literal notranslate"><span
class="pre">nsh</span></code> plus the SD card and the RPTUN backend for the CM4
+(<code class="docutils literal notranslate"><span
class="pre">CONFIG_IMXRT_RPTUN</span></code>). The board bring-up registers
<code class="docutils literal notranslate"><span
class="pre">/dev/rptun/cm4</span></code> and
+holds the core; <code class="docutils literal notranslate"><span
class="pre">rptun</span> <span class="pre">start</span></code> loads the ELF
named by
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_FMU_V6XRT_CM4_FIRMWARE</span></code> (<code class="docutils
literal notranslate"><span class="pre">/mnt/sd/cm4.elf</span></code>) into the
CM4 code TCM
+and releases it. The image must carry a <code class="docutils literal
notranslate"><span class="pre">.resource_table</span></code> section and link
+to <code class="docutils literal notranslate"><span
class="pre">0x1ffe0000</span></code> with its shared memory in the upper 64 KB
of that TCM; see
+the RPTUN section of <a class="reference internal"
href="../../index.html"><span class="doc">the platform page</span></a>.</p>
+<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">nsh> mount -t vfat
/dev/mmcsd0 /mnt/sd</span>
+<span class="go">nsh> rptun start /dev/rptun/cm4</span>
+<span class="go">nsh> sleep 2</span>
+<span class="go">nsh> rpmsg ping /dev/rpmsg/cm4 100 64 3 0</span>
+<span class="go">nsh> rpmsg dump all</span>
+<span class="go">nsh> rptun stop /dev/rptun/cm4</span>
+</pre></div>
+</div>
+<p>Start is asynchronous; the rpmsg node <code class="docutils literal
notranslate"><span class="pre">/dev/rpmsg/cm4</span></code> appears once the CM4
+has announced its endpoints. <code class="docutils literal notranslate"><span
class="pre">rpmsg</span> <span class="pre">ping</span></code> and <code
class="docutils literal notranslate"><span class="pre">rpmsg</span> <span
class="pre">dump</span></code> report through
+syslog, which this configuration keeps in a RAM log: read it with <code
class="docutils literal notranslate"><span class="pre">dmesg</span></code>.
+After <code class="docutils literal notranslate"><span
class="pre">rptun</span> <span class="pre">stop</span></code> the CM4 is parked
in a <code class="docutils literal notranslate"><span
class="pre">wfi</span></code> loop at its boot address;
+the next start reloads the image.</p>
+<p>To run without an SD card, enable <code class="docutils literal
notranslate"><span class="pre">CONFIG_FMU_V6XRT_CM4_ROMFS</span></code> and
copy the CM4 image to
+<code class="docutils literal notranslate"><span
class="pre">boards/arm/imxrt/fmu-v6xrt/src/etc/cm4.elf</span></code> before
building. It is baked into the etc ROMFS
+that NuttX mounts at boot and the firmware path becomes <code class="docutils
literal notranslate"><span class="pre">/etc/cm4.elf</span></code>, so the <code
class="docutils literal notranslate"><span class="pre">mount</span></code> step
+goes away. The file is ignored by git.</p>
+</section>
</section>
</section>
diff --git a/content/docs/latest/platforms/arm/imxrt/index.html
b/content/docs/latest/platforms/arm/imxrt/index.html
index 0dd91e5f54..a22ce5be02 100644
--- a/content/docs/latest/platforms/arm/imxrt/index.html
+++ b/content/docs/latest/platforms/arm/imxrt/index.html
@@ -184,6 +184,7 @@
<li class="toctree-l5"><a class="reference internal" href="#usb">USB</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="#multicore-rt1170-cm4-over-rptun">Multicore: RT1170 CM4 over
RPTUN</a></li>
<li class="toctree-l4"><a class="reference internal"
href="#supported-boards">Supported Boards</a><ul>
<li class="toctree-l5"><a class="reference internal"
href="boards/arcx-socket-grid/index.html">ARCX Socket Grid</a></li>
<li class="toctree-l5"><a class="reference internal"
href="boards/fmu-v6xrt/index.html">Holybro Pixhawk 6X-RT</a></li>
@@ -670,6 +671,56 @@ socket.</p>
for i.MX RT in NuttX</p>
</section>
</section>
+<section id="multicore-rt1170-cm4-over-rptun">
+<h2>Multicore: RT1170 CM4 over RPTUN<a class="headerlink"
href="#multicore-rt1170-cm4-over-rptun" title="Permalink to this
heading"></a></h2>
+<p>The i.MX RT1170 pairs the Cortex-M7 with a Cortex-M4. NuttX runs on the CM7
and can load, release
+and hold a firmware on the CM4 through the NuttX RPTUN device on top of the
OpenAMP framework
+(<code class="docutils literal notranslate"><span
class="pre">CONFIG_IMXRT_RPTUN</span></code>, which selects <code
class="docutils literal notranslate"><span
class="pre">CONFIG_RPTUN_LOADER</span></code>). The CM4 firmware is the virtio
+device side and provides the resource table in its ELF image; it may be bare
metal. The table must
+carry a carveout resource for the shared window after the table: NuttX 13
rptun places the vrings
+and the rpmsg buffers in it and refuses the device without it, NuttX 12.12
rptun parses it and lays
+out the window on its own.</p>
+<p>The board registers the remote with <code class="xref c c-func docutils
literal notranslate"><span class="pre">imxrt_rptun_init()</span></code>,
passing the remote name, the ELF
+path, the address environment (CM4 device addresses to CM7 physical
addresses), the boot vector and
+whether to autostart. The option is offered only on parts with a CM4 (<code
class="docutils literal notranslate"><span
class="pre">IMXRT_HAVE_CM4</span></code>) and
+selects <code class="docutils literal notranslate"><span
class="pre">DEV_SIMPLE_ADDRENV</span></code> for libmetal.
+The driver:</p>
+<ul class="simple">
+<li><p>Programs the boot vector into <code class="docutils literal
notranslate"><span class="pre">IOMUXC_LPSR_GPR0/1</span></code> and reads it
back.</p></li>
+<li><p>Releases the core with <code class="docutils literal notranslate"><span
class="pre">SRC_SCR.BT_RELEASE_M4</span></code>. The slice stays under reset
until its first
+release and cannot be held again afterwards: a software reset of the slice is
a pulse after which
+the core restarts from the boot vector. To stop the core the driver writes a
<code class="docutils literal notranslate"><span class="pre">wfi</span></code>
loop over the
+start of the image and pulses the reset, so the core parks there until the
next start reloads the
+image. A reset completion is awaited only when restarting a core that was
already released.</p></li>
+<li><p>Keeps a CM4 lockup local by setting <code class="docutils literal
notranslate"><span class="pre">SRC_SRMR</span></code> so it does not reset the
whole chip.</p></li>
+<li><p>Exchanges virtqueue kicks with the CM4 on MU-A channel 0. Neither side
reads the mailbox word; a
+kick into a full mailbox is coalesced with the pending one and the receiver
rescans every
+virtqueue. The CM4 firmware must therefore read MU-B <code class="docutils
literal notranslate"><span class="pre">RR0</span></code> before it scans, so
that a kick
+coalesced during the scan is covered by it.</p></li>
+<li><p>Starts the remote from <a class="reference internal"
href="../../../os/drivers/special/rptun/api_reference.html#c.rptun_initialize"
title="rptun_initialize"><code class="xref c c-func docutils literal
notranslate"><span class="pre">rptun_initialize()</span></code></a> when the
board sets <code class="docutils literal notranslate"><span
class="pre">autostart</span></code>; otherwise
+<code class="docutils literal notranslate"><span
class="pre">RPTUNIOC_START</span></code> on <code class="docutils literal
notranslate"><span class="pre">/dev/rptun/<name></span></code> or <a
class="reference internal"
href="../../../os/drivers/special/rptun/api_reference.html#c.rptun_boot"
title="rptun_boot"><code class="xref c c-func docutils literal
notranslate"><span class="pre">rptun_boot()</span></code></a> starts
it.</p></li>
+</ul>
+<p>The <code class="docutils literal notranslate"><span
class="pre">fmu-v6xrt:rptun</span></code> configuration is the reference user:
<code class="docutils literal notranslate"><span
class="pre">imxrt_cm4_initialize()</span></code> in the board
+bring-up registers <code class="docutils literal notranslate"><span
class="pre">/dev/rptun/cm4</span></code> with the memory map below, maps the
shared window non-cacheable
+and leaves the core held. Copy an ELF built for the CM4 to the SD card as
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_FMU_V6XRT_CM4_FIRMWARE</span></code> (<code class="docutils
literal notranslate"><span class="pre">/mnt/sd/cm4.elf</span></code>), then
from nsh:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>mount -t vfat /dev/mmcsd0 /mnt/sd
+rptun start /dev/rptun/cm4
+rptun ping /dev/rptun/cm4 100 64 3 0
+</pre></div>
+</div>
+<p>Memory map rules the board must follow:</p>
+<ul class="simple">
+<li><p>The CM7 reaches the CM4 TCM through the LMEM backdoor window at <code
class="docutils literal notranslate"><span
class="pre">IMXRT_OCRAM_M4_BASE</span></code>. Only the
+first 128 KB of that window, the CM4 code TCM, is reachable; writes to the
second half do not
+reach the system TCM. The resource table, vrings and rpmsg buffers must live
in the code TCM.</p></li>
+<li><p>The CM4 boots from the backdoor alias of its code TCM (<code
class="docutils literal notranslate"><span
class="pre">0x20200000</span></code>), as NXP MCMGR does; the
+CM4-native <code class="docutils literal notranslate"><span
class="pre">0x1FFE0000</span></code> does not boot.</p></li>
+<li><p>The board maps the memory the CM4 writes as non-cacheable (for example
an MPU region over the
+shared window) before calling <code class="xref c c-func docutils literal
notranslate"><span class="pre">imxrt_rptun_init()</span></code>. The driver
cleans the D-cache over the
+loaded image before releasing the core.</p></li>
+</ul>
+</section>
<section id="supported-boards">
<h2>Supported Boards<a class="headerlink" href="#supported-boards"
title="Permalink to this heading"></a></h2>
<div class="toctree-wrapper compound">
diff --git
a/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
b/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
index 3e9f042e53..56cee78a5e 100644
---
a/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
+++
b/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
@@ -177,7 +177,7 @@
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
diff --git
a/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
b/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
index f63e781116..95a178556b 100644
--- a/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
+++ b/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
@@ -162,28 +162,48 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
index d5be2e9026..911de787c1 100644
---
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
+++
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
@@ -162,28 +162,48 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
index 66baa4c0e9..3f16eb85c2 100644
--- a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
+++ b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
@@ -160,56 +160,52 @@
<li class="toctree-l2"><a class="reference internal"
href="../../../../z80/index.html">Z80</a></li>
<li class="toctree-l2 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html">Tags</a><ul class="current">
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
-<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-aifoundry.html">vendor:aifoundry (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-allwinner.html">vendor:allwinner (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-amd.html">vendor:amd (1)</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/vendor-arm.html">vendor:arm (5)</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/fvp-v8r-aarch32/boards/fvp-armv8r-aarch32/index.html">fvp-armv8r-aarch32</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an500/index.html">MPS2 AN500
Board</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an521/index.html">MPS2 AN521
Board</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps3-an547/index.html">MPS3 AN547
Board</a></li>
-<li class="toctree-l5 current"><a class="current reference internal"
href="#">FVP ARMv8-r</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
+<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-artery.html">vendor:artery (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-bouffalolab.html">vendor:bouffalolab
(2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-broadcom.html">vendor:broadcom (2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-canaan.html">vendor:canaan (2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-espressif.html">vendor:espressif (35)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-eswin.html">vendor:eswin (3)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-example.html">vendor:example (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-gigadevice.html">vendor:gigadevice
(7)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-holtek.html">vendor:holtek (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-hpmicro.html">vendor:hpmicro (2)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-infineon.html">vendor:infineon (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ingenic.html">vendor:ingenic (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-maxim.html">vendor:maxim (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-microchip.html">vendor:microchip (46)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-moxa.html">vendor:moxa (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nations.html">vendor:nations (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nordic.html">vendor:nordic (17)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nuvoton.html">vendor:nuvoton (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nxp.html">vendor:nxp (57)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-onsemi.html">vendor:onsemi (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-phyplus.html">vendor:phyplus (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-quicklogic.html">vendor:quicklogic
(1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-raspberry-pi.html">vendor:raspberry-pi
(18)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-realtek.html">vendor:realtek (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-renesas.html">vendor:renesas (6)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-rockchip.html">vendor:rockchip (4)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sifive.html">vendor:sifive (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-silabs.html">vendor:silabs (3)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sony.html">vendor:sony (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sophgo.html">vendor:sophgo (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-st.html">vendor:st (113)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-starfive.html">vendor:starfive (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-thead.html">vendor:thead (1)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ti.html">vendor:ti (9)</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-zilog.html">vendor:zilog (9)</a></li>
</ul>
</li>
-<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a></li>
</ul>
</li>
</ul>
diff --git a/content/docs/latest/searchindex.js
b/content/docs/latest/searchindex.js
index d04ad11f51..ddc74590b7 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file