Port S620 16K: guarded /experimental protocol bring-up - #1
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the first hardware-testable Gaomon S620 (16K) port while keeping it completely isolated from the production installer.
Isolation guarantee
app/page.tsxis byte-identical tomain;lib/devices/registry.tsis byte-identical tomainandADAPTERSremains[s620];/experimentalroute;app/experimental,lib/devices/s620-16k, or the dedicated experimental writer module.What this PR does
GM001_T263_26052716K stock application and first test-unit full-backup hashes;0x0800cc00to safe erased space at0x0800d000;/experimentalroute; the 16K adapter is not added toADAPTERSand the normal installer cannot select it;LiveConfigduring the test; no persistence or loop-timing capability is claimed;Guarded hardware-test sequence
0x0800b800and0x0800c400.0x0800d000space without any erase. Nothing branches to it yet, so a partial stage is inert. Read it back byte-for-byte, including blank trailing bytes.0x0800c400and0x0800b800before the first program operation.GET_INFO,GET_CONFIG, exact model/firmware IDs, minimalLiveConfigcapability, and observation of unchanged pen report0x08traffic.Recovery
/experimentalcan load only the exact pinned pre-test backup for recovery. On a fresh DFU session it erases every page the experiment can touch, restores the original non-blank stock pages, leaves the originally-erased runtime pages erased, and verifies every restored page.The resident DFU bootloader is never erased or programmed. A live flash still has irreducible transaction risk (for example, power loss during an erase/program operation), so this is designed to be maximally conservative and DFU-recoverable rather than claiming literal zero risk.
Still intentionally blocked
Production support still waits on hardware success here, 16K-specific smoothing semantics, a separately measured timing/rate model, pressure/button/proximity validation, and a production restore policy. The old S620 294-530 Hz measurements are not reused.