Skip to content

Releases: tsuyoshi-otake/m5stamp-p4-c6-linux

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 23 Oct 16:10

v0.4.3

  • Names describe what each part does (#55). The hostname is stamp-p4 (stamp-p4.local), the USB drive is STAMP_P4, and the commands are sysinfo, autorun, update-status, run-system, bootsyncd, respawn, mdnsd, watchdog-feed, usb-lun, boot-commit, firstboot and sdio-diag. The status file is /run/status.txt, the release info is /etc/build-info, the kernel knobs are in /sys/kernel/board/, and the DTB is esp32p4-m5stamp-p4.dtb. Build flags have no prefix (NOMMU_POOL_BESTFIT, C68_MAXCPUS, LEGAL_INFO, …).
  • The old names still work for this one release: the old command names, the old .local name, the old status file and the old /sys/kernel/ directory. A drive whose config.txt sets the old hostname keeps it. The full list is in linux/tests/issue55-rename-2026-10-23.md. The aliases will be removed in a later release.
  • udhcpc runs from its own minimal BusyBox (#45): 192 KB instead of about 500 KB. The idle pool went from 5.13 MB to 4.77 MB used. 0092: physmap maps mtd-rom at its exact size.

Validation: linux/tests/v0.4.3-hardware-validation-2026-10-24.md. On the board: check-boot-log.py 13/13, the new and old names, and the #54 crash scenario 20/20. If you flash manually, use the new DTB name (esp32p4-m5stamp-p4.dtb); the v0.4.2 and older zips hold the old name.

Full Changelog: v0.4.2...v0.4.3

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 23 Oct 00:17

v0.4.2

  • SSH no longer crashes after a key exchange (#54). OpenSSH 10's hybrid ML-KEM-768 key exchange overflowed Dropbear's 32 KB stack and corrupted the C library's signal table (unhandled signal 4). dropbear and dbclient now have a 256 KB stack (about 224 KB more pool per session; #52 will shrink it). A vfork child that cannot exec now leaves with _exit(127) (0012).
  • The NOMMU memory pool keeps a reserve for the system (#50, #51). Best-fit allocation (0089), a 1.2 MB contiguous / 2 MiB total reserve for programs started from SSH or the console (0090), and easystick-sys marking the network, SSH and watchdog scripts as system work (0091). In the 5-restart test with 6 SSH sessions held, the system's own programs had 11 real out-of-memory failures before the fix and 0 after.
  • linux/flash-candidate.ps1 leaves the boot slots alone by default; -WriteBoot writes them (a flash used to overwrite the saved Wi-Fi settings).
  • Memory measurement harness: linux/tests/nommu-mem-harness.py.

Validation: linux/tests/v0.4.2-hardware-validation-2026-10-23.md. The plan for shrinking per-program memory is #49. #43 (a C6 firmware change) is not part of this release.

Full Changelog: v0.4.1...v0.4.2

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 20 Oct 23:20

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 12:34

Both CPUs of the ESP32-P4 are online by default from this release on (#5), with the fixes for #41, #42, #43 and #44.

The assets are the CI build of f27436b (release workflow run 39409762907) that was flashed and checked on hardware; see linux/tests/v0.4.0-hardware-validation-2026-10-20.md. The 16 MB image includes a blank drive, so the board gets new per-device credentials on its first boot.

Changes since v0.3.2

  • Both CPUs are online by default (#5). Releases up to v0.3.2 booted with maxcpus=1 because CPU1 stopped taking interrupts a few seconds into boot; 0079, 0080, 0081 and a boot-shim fix that gives CPU1 the same PMA/PMP memory protection as CPU0 make it reliable. A 1-CPU image still builds with EASYSTICK_C68_MAXCPUS=1.
  • BusyBox hush follows POSIX set -e (#41): a skipped &&/|| list no longer switches it off for the rest of the script, a while/until condition or a ! pipe that is false no longer ends the script, and on NOMMU ( … ), $(…) and pipelines inherit set -e, set -x and pipefail. S40network no longer uses set -e.
  • The ttyGS1 console no longer stalls half a second at the end of a write (#42): it finishes from the interrupt, and a host that stops reading costs one 50 ms wait instead of one per character; dropped characters are counted in /sys/class/tty/ttyGS1/console_dropped.
  • Saving the USB drive no longer stalls Wi-Fi (#43). A flash commit writes only the sectors that changed and sleeps between the ROM calls, so the CPUs stay free at least half the time, and the SDIO path wakes the Wi-Fi transmit thread when a frame is queued and runs it, the receive workqueue and the interrupt work at raised priority. UDP probes sent during commits got their reply after a median of 1.44 s, and 86 of 5,500 were lost; on the fix build and the release image the median is 21–45 ms. Bursts of 2–6 lost probes and replies held for up to about 1 s remain in some runs, most likely on the C6, and one run held replies for 5.4 s without a known cause; #43 stays open.
  • Handled signals are no longer slower on two CPUs (#44): the handler returns through the kernel's own sigreturn code instead of flushing the other CPU's instruction cache for every signal. 40,000 handled faults take about 0.7 s on either CPU, against 2.5–2.7 s before.
  • Filling the 2 MB /tmp ramdisk can no longer make a saved root_authorized_keys look installed when it is not (2% is reserved for root; the serial log says ES_SSH_KEYS FAIL).
  • MicroPython raises RuntimeError on deep recursion instead of crashing (48 KB stack), and exits with MemoryError when its heap cannot be allocated.
  • A config.txt save applies only the keys that changed instead of restarting the network (#39), country= included; a deleted hostname= goes back to the boot name, and a PSK fixed by a reload gets a DHCP lease. The NOMMU process pool is shown in /sys/kernel/easystick/nommu_pool (#40), a failed SSH key install fails closed, and the loopback interface comes up at boot.

Test records: linux/tests/issue5-smp-2026-10-19.md, linux/tests/issue39-40-hardware-checks-2026-10-19.md, linux/tests/issue41-44-2026-10-20.md.

Full Changelog: v0.3.2...v0.4.0

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 19 Oct 00:57

What's Changed

New Contributors

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 18 Oct 12:30

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 05:51

Full Changelog: v0.2.5...v0.3.0

v0.2.5

Choose a tag to compare

@github-actions github-actions released this 17 Oct 12:38

Full Changelog: v0.2.4...v0.2.5

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 17 Oct 04:16

Full Changelog: v0.2.3...v0.2.4

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 16 Oct 09:19

Full Changelog: v0.2.2...v0.2.3