@@ -36,7 +36,7 @@ Sources
3636The 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;
136136the conflicting aggregate reset table is not used. Direct lines remain
137137inert 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
147148EXTI lines 0 through 4 connect to NVIC inputs 6 through 10. Lines 5 through
1481499 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
160161write-one-to-clear bits, and reserved masks belong in ``RegisterAccessInfo ``
161162rather 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+
163169Register callbacks implement only device behavior and side effects, such as
164170clock propagation, IRQ updates, FIFO movement, DMA requests, and output
165171changes. New peripheral models must not dispatch register offsets through
@@ -399,6 +405,27 @@ unmodeled I2C, SPI, analog, or external-board behavior. UDS update samples
399405require flash program and erase support. These are not reported as successful
400406runs 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
440469All 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