docs: geom_honoured is asserted but not wired anywhere yet

The ring-geometry note claimed a rejected BP/RHBP is "observable rather than
silent".  That is overstated: geom_honoured exists on RXFrameAssembler and the
tests check it, but BBATop wires it to nothing -- no status register, no LED,
no UART line -- so a rejected geometry is silent to both the GC and the bench.
Recorded as a loose end; the guarantee today is "rejected rather than obeyed",
not "reported".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-10 14:24:53 +02:00
parent 052e1a4252
commit 991342c0b5
+11 -4
View File
@@ -66,10 +66,17 @@ driver's smaller ring is respected instead of ignored.
**Garbage is rejected, not obeyed.** The bounds are used only when **Garbage is rejected, not obeyed.** The bounds are used only when
`bp >= 1` (page 0 is the TX buffer), `rhbp <= 0x0F` and `rhbp > bp`; `bp >= 1` (page 0 is the TX buffer), `rhbp <= 0x0F` and `rhbp > bp`;
otherwise the hardcoded pages 1–15 stand and `geom_honoured` goes low, so a otherwise the hardcoded pages 1–15 stand and `geom_honoured` goes low.
mismatch is observable rather than silent. Without that check, `BP = 0` or an Without that check, `BP = 0` or an `RHBP` below `BP` gives a zero or negative
`RHBP` below `BP` gives a zero or negative ring size and the assembler writes ring size and the assembler writes outside it.
outside it.
⚠️ **`geom_honoured` is NOT yet observable from outside the FPGA.** It is
declared on `RXFrameAssembler` and asserted correctly (T7/T7b check it), but
`BBATop` does not wire it to anything — no status register, no LED, no UART
line. So a rejected geometry is currently silent to the GC and to the bench.
Wiring it to the `StatusPanel` or the UART console is a small loose end worth
closing; until then "rejected rather than obeyed" is the guarantee, not
"reported".
⚠️ **A ring must be LARGER than `_MAX_FRAME_PAGES` (6) or nothing is ever ⚠️ **A ring must be LARGER than `_MAX_FRAME_PAGES` (6) or nothing is ever
stored.** A frame's length is unknown until EOF, so the assembler reserves the stored.** A frame's length is unknown until EOF, so the assembler reserves the