b22934fe0d
Browser SD files are persisted in OPFS (web/sdstore.js) and edited in the Files tab. At boot the browser builds a deterministic 64 MiB FAT32 image (web/fat32.js) with nested directories and VFAT long names, then mounts it as a raw block device, bypassing QEMU's broken populated-vvfat WASM coroutine path. Guest writes mutate only the ephemeral image. Exposes a hidden #frame-generation indicator that increments on every e-ink flush, so automation can wait on real display updates instead of fixed sleeps. Adds tests/ with a Makefile runner: 'make test' for JS + FAT32/mtools checks, 'make browser-test' for a headless-Firefox boot of the official CrossPoint 1.4.1 firmware that navigates to Test/example.txt. Bumps third_party/qemu to the SPI-SD/CMD13 fixes and updates README/ROADMAP/ISSUES for the new architecture.
32 lines
2.0 KiB
Markdown
32 lines
2.0 KiB
Markdown
# Known Issues
|
|
|
|
## Resolved: directory-backed SD reads corrupted WASM state
|
|
|
|
Opening `/Test/example.txt` through QEMU `vvfat` could corrupt coroutine/guest state. The browser now builds a standards-compliant 64 MiB FAT32 image from OPFS and mounts it as a raw block device, bypassing the failing host-file mapping path. The official CrossPoint 1.4.1 firmware can traverse `Test/example.txt` without a WASM trap or guest panic.
|
|
|
|
## Resolved: SD card remained in `receivingdata`
|
|
|
|
`ssi-sd` consumed a write-data token while leaving response mode, then parsed payload bytes as commands. The adapter now enters token mode immediately after the final R1 byte. SPI CMD13 also uses the upstream-correct `sd_r1` internal response so status polling no longer loops on `Unexpected response to cmd 13`.
|
|
|
|
## Reader page can render completely black
|
|
|
|
Opening a generated crash report can appear to work—the Back button returns normally and the file is marked as read—but the reader page is entirely black.
|
|
|
|
This is likely an e-ink model issue where an intermediate all-black waveform phase is exposed instead of the completed frame. It is separate from the SD pointer panic.
|
|
|
|
## Cold boot requires a manual power-button hold
|
|
|
|
If the power button is not held until the Booting icon appears, the firmware can enter an unwanted watchdog reboot path:
|
|
|
|
```text
|
|
Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)
|
|
```
|
|
|
|
The emulator should model a cold-boot power hold and release automatically rather than requiring precisely timed user input. The preceding NVS `NOT_FOUND` messages are expected first-boot initialization noise.
|
|
|
|
## WASM heap balloons after watchdog reboot
|
|
|
|
The committed WASM heap starts near 176.3 MiB but can grow to approximately 631.8 MiB after the watchdog reboot described above.
|
|
|
|
This indicates translated-block or dynamic WebAssembly module state is retained across guest reboot. TB cleanup must release old dynamic instances during reset; reboot-time growth should remain bounded.
|