docs: ASCII typography and style normalization across all repo text
Replace every em dash with real punctuation (rewrites, not hyphen swaps) in docs, code comments, scripts, configs, and the port records; convert en dashes, curly quotes, ellipsis glyphs, arrows, and section signs to ASCII; drop machine-writing tell phrases from living docs. ADR titles now use a colon. The M2 bring-up DTS model string carried an em dash into the patch series and its record echoes; fixed at both, and the full series re-verified to apply cleanly onto pristine 6.18.46. One comment in freshness.h deliberately names the em dash glyph the UI renders as the unknown mark; that is data, kept as prose naming it. Verified: cargo tests (sim, config-lint, rs485-bridge), shellcheck, both driver MC/DC harnesses, patches-apply.
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# HPMCU mailbox — [x] 100% VERIFIED on warden-c8a3 (2026-08-25)
|
||||
# HPMCU mailbox: [x] 100% VERIFIED on warden-c8a3 (2026-08-25)
|
||||
|
||||
A fully-open A7 ↔ HPMCU (RISC-V SCR1) hardware-mailbox round-trip on our self-built
|
||||
A fully-open A7 <-> HPMCU (RISC-V SCR1) hardware-mailbox round-trip on our self-built
|
||||
Linux 6.18.46. Open kernel driver + open SCR1 firmware, **zero blobs**.
|
||||
|
||||
## Evidence (serial, _b slot = our 6.18)
|
||||
SCR1 echo firmware running: `DBG_STATE = 0x584F424D` ("MBOX"). Five round-trips,
|
||||
Linux → mailbox → SCR1 → mailbox → Linux, **all exact**:
|
||||
Linux -> mailbox -> SCR1 -> mailbox -> Linux, **all exact**:
|
||||
```
|
||||
sent 0x0000beef/0x600df00d -> B2A 0x0000BEEF/0x600DF00D e=4 OK
|
||||
sent 0x0000c0de/0x12345678 -> B2A 0x0000C0DE/0x12345678 e=5 OK
|
||||
@@ -15,7 +15,7 @@ sent 0x0000aa55/0x55aa55aa -> B2A 0x0000AA55/0x55AA55AA e=8 OK
|
||||
```
|
||||
Echo counter increments 1:1 with sends; both CMD and DAT echo back verbatim.
|
||||
|
||||
## The three fixes it took (none in the research plan — found on hardware)
|
||||
## The three fixes it took (none in the research plan, found on hardware)
|
||||
1. **Controller IRQ count** (`rockchip-mailbox.c`): the rv1106 mailbox has ONE
|
||||
shared IRQ (GIC_SPI 1), but the rk3368 driver-data assumes one IRQ per channel
|
||||
(num_chans=4) and probe failed `IRQ index 1 not found`. Added an
|
||||
@@ -27,7 +27,7 @@ Echo counter increments 1:1 with sends; both CMD and DAT echo back verbatim.
|
||||
released core never executed (DBG_STATE stayed 0). Marked it `CLK_IGNORE_UNUSED`.
|
||||
(5.10 happened to leave it on.)
|
||||
3. **A2B doorbell semantics** (SCR1 firmware + send order): the MCU-side receiver
|
||||
must set `A2B_INTEN` or an A7 write to A2B_CMD never raises A2B_STATUS — the echo
|
||||
must set `A2B_INTEN` or an A7 write to A2B_CMD never raises A2B_STATUS: the echo
|
||||
firmware now sets `A2B_INTEN` at init. And the A2B_DAT write is the doorbell, so
|
||||
the sender writes CMD first, then DAT (the mainline order), so both are current
|
||||
when the SCR1 reads them.
|
||||
@@ -35,8 +35,8 @@ Echo counter increments 1:1 with sends; both CMD and DAT echo back verbatim.
|
||||
## Loading the firmware (no reflash, no brick)
|
||||
The SCR1 echo firmware (`scr1-echo/`, 154 B) is loaded at runtime into hpmcu_sram
|
||||
(0xFF6FE000) via the proven `flared/hpmcu.rs` sequence (`load-echo-fw.sh`): GRF
|
||||
uncached peripheral window (0xff040024/28) → CORECRU hold → firmware to SRAM →
|
||||
SGRF boot addr → CORECRU release. **Do NOT kill warden-flared** (it one-shot-loads
|
||||
uncached peripheral window (0xff040024/28) -> CORECRU hold -> firmware to SRAM ->
|
||||
SGRF boot addr -> CORECRU release. **Do NOT kill warden-flared** (it one-shot-loads
|
||||
at boot then just beats + pets the dw-wdt; killing it resets the board). We reset
|
||||
+ reload the SCR1; flared does not re-load. The SRAM-load path avoids the 0x40000
|
||||
boot-load brick hazard entirely.
|
||||
@@ -47,7 +47,7 @@ HPMCU-connected instance). The existing /dev/mem SRAM watchdog is untouched (a
|
||||
separate dead-man's-switch); the mailbox is the general open IPC channel.
|
||||
|
||||
## Files
|
||||
- `scr1-echo/main.c` + `start.S` + `link.lds` + `Makefile` — the open SCR1 echo fw.
|
||||
- `scr1-echo/load-echo-fw.sh`, `mbox-roundtrip.sh`, `echo-fw-words.txt` — load + test.
|
||||
- `scr1-echo/main.c` + `start.S` + `link.lds` + `Makefile`: the open SCR1 echo fw.
|
||||
- `scr1-echo/load-echo-fw.sh`, `mbox-roundtrip.sh`, `echo-fw-words.txt`: load + test.
|
||||
- Kernel deltas: `rockchip-mailbox.c` (rv1106 num_chans=1), `clk-rv1106.c`
|
||||
(CLK_CORE_MCU IGNORE_UNUSED), `rv1106-warden.dts` (&mailbox okay).
|
||||
|
||||
Reference in New Issue
Block a user