Skip to content

Commit 3bfcd15

Browse files
committed
docs/system/arm: document STM32G474 test assets
Describe the release-backed Zephyr coverage, asset provenance, corrected EXTI pending behavior, and the private RegisterInfo implementation boundary. Signed-off-by: Chao Liu [email protected]
1 parent f552f48 commit 3bfcd15

1 file changed

Lines changed: 40 additions & 10 deletions

File tree

docs/system/arm/stm32g474.rst

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Sources
3636
The model is based on:
3737

3838
* STM32G4 reference manual RM0440, revision 9.
39-
* STM32G474xB/xC/xE data sheet, revision 9.
39+
* STM32G474xB/xC/xE data sheet DS12288, revision 6.
4040
* ARDEP repository commit
4141
``266e0aa36e10b211ed83aa11ab410ac1f5de233e``.
4242
* Zephyr v4.4.0 commit
@@ -136,13 +136,14 @@ These values follow the per-register descriptions and the target line map;
136136
the conflicting aggregate reset table is not used. Direct lines remain
137137
inert until their source peripheral and Stop-mode behavior are modeled.
138138

139-
A selected external edge sets ``PR`` only while its ``IMR`` bit is enabled.
140-
An ``EMR``-enabled edge produces an event pulse without setting ``PR``.
141-
``SWIER`` acts only on a zero-to-one transition: ``IMR`` can create a pending
142-
interrupt and ``EMR`` can independently create an event. Enabling a mask
143-
later does not replay a previously masked edge or software trigger. ``PR``
144-
is write-one-to-clear and also clears the corresponding ``SWIER`` bit.
145-
Each interrupt output remains asserted while ``PR & IMR`` is nonzero.
139+
A selected external edge sets ``PR`` independently of ``IMR`` and ``EMR``.
140+
``IMR`` only controls delivery of the latched pending state to the NVIC, while
141+
``EMR`` independently enables an event pulse. ``SWIER`` acts on a zero-to-one
142+
transition and likewise sets ``PR`` even when ``IMR`` is clear. Enabling
143+
``IMR`` later therefore delivers an already pending interrupt; enabling
144+
``EMR`` does not retroactively pulse an event. ``PR`` is write-one-to-clear
145+
and also clears the corresponding ``SWIER`` bit. Each interrupt output
146+
remains asserted while ``PR & IMR`` is nonzero.
146147

147148
EXTI lines 0 through 4 connect to NVIC inputs 6 through 10. Lines 5 through
148149
9 share NVIC input 23, and lines 10 through 15 share NVIC input 40 through
@@ -160,6 +161,11 @@ block with QEMU's ``RegisterInfo``, ``RegisterAccessInfo``, and
160161
write-one-to-clear bits, and reserved masks belong in ``RegisterAccessInfo``
161162
rather than hand-written MMIO dispatch.
162163

164+
Register offsets, fields, access tables, backing arrays, and register-local
165+
callbacks remain private to the corresponding device ``.c`` file. Public
166+
headers expose only QOM types and constants needed to wire the common
167+
microcontroller and board models.
168+
163169
Register callbacks implement only device behavior and side effects, such as
164170
clock propagation, IRQ updates, FIFO movement, DMA requests, and output
165171
changes. New peripheral models must not dispatch register offsets through
@@ -399,6 +405,27 @@ unmodeled I2C, SPI, analog, or external-board behavior. UDS update samples
399405
require flash program and erase support. These are not reported as successful
400406
runs merely because they can be built.
401407

408+
Functional test assets
409+
----------------------
410+
411+
The release-backed Zephyr tests use SHA-256-pinned binaries from
412+
`stm32g474-ardep-v2-zephyr-qemu1
413+
<https://github.com/processmission/qemu/releases/tag/stm32g474-ardep-v2-zephyr-qemu1>`_.
414+
The release contains:
415+
416+
* a direct Zephyr ``hello_world`` image used by both machines;
417+
* the interactive ARDEP UART sample;
418+
* a complete 512 KiB MCUboot, firmware-loader, and LED-application flash
419+
image;
420+
* a ``SHA256SUMS`` manifest and the exact source revisions.
421+
422+
The source tree does not contain those compiled binaries. Run the thorough
423+
test with:
424+
425+
.. code-block:: shell
426+
427+
make check-functional-arm
428+
402429
Device behavior and errors
403430
--------------------------
404431

@@ -434,9 +461,12 @@ verification set includes:
434461
peripheral register block.
435462
* Self-contained functional tests for raw flash boot, UART4 output, and QMP
436463
system reset on both machines.
464+
* Release-backed functional tests for direct Zephyr boot on both machines,
465+
ARDEP UART input/output, and MCUboot chainload into the ARDEP LED sample.
437466
* Timed Zephyr and ARDEP boot runs with positive success markers and negative
438467
failure markers.
439468

440469
All QEMU binaries used for acceptance are built from the feature branch in a
441-
named ``builds/`` directory. Logs and external firmware artifacts remain
442-
under ``.oh-my-qemu/`` and are not committed as source.
470+
named ``builds/`` directory. Local logs and firmware builds remain under
471+
``.oh-my-qemu/``. Compiled functional assets are published as release
472+
attachments and pinned by SHA-256 rather than committed as source.

0 commit comments

Comments
 (0)