Repository navigation
Add SDX 611 firmware, flash layout and boot chain documentation - #517
Merged
simonebortolin merged 2 commits intoNov 8, 2026
Merged
Conversation
There was a problem hiding this comment.
Note
Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.
🟢 Approval recommended
The changes add comprehensive firmware/flash/boot-chain documentation based on a verified SPI NOR dump, and the only feedback noted is minor consistency nits with no active issues raised.
No open issues 🎉
What changed in this PR
This pull request enhances the Adtran SDX 611 ONT documentation with a new Firmware section derived from a verified 16 MiB SPI NOR dump, detailing the device’s flash layout, boot chain, U-Boot environment, and filesystem/config-partition observations for reproducible analysis and recovery work.
Changes:
- Adds recovered
mtdparts, a flash map (offset/size/content), and boot chain/U-Boot console notes. - Documents rootfs and config partition behavior/contents, plus observed flash/env anomalies.
- Updates access-method notes (e.g., Telnet marked unavailable due to stubbed service) and adds contributor credits.
| File | Summary |
|---|---|
ont/ont-adtran-sdx-611.md |
Adds comprehensive firmware/flash/boot-chain documentation, rootfs/config notes, anomalies, and credits; includes minor consistency nits (paths/terminology/units/table units). |
This pull request is ready to be approved.
Review effort: Balanced
Document the firmware of the Adtran SDX 611 from a verified full-chip read of its 16 MB SPI NOR (CH341A + clip, ONT unpowered): - recovered mtdparts and kernel cmdline from the compressed U-Boot stage - flash map table (Boot/Env/ImageA/ImageB/Config/SECTION_EGIS plus the rootfs offset alias) that tiles to the chip capacity - bootloader environment, boot chain and the root shell on serial - rootfs findings: stubbed S50telnetd (which settles the Telnet row), config partition mount logic, egis product code driving the 1G/2.5G port map, dropbear host keys baked into the squashfs - Config partition contents and the zeroed redundant env sector Credits the page in full to its author, per the history of this file. Unit serial and MAC are deliberately not published, only the field layout. Content is original work on the contributor's own hardware and is contributed under the project license.
Jaylouisw
force-pushed
the
docs/sdx611-firmware-layout
branch
from
November 2, 2026 18:20
6fae0c6 to
f27c4d1
Compare
- Merge the firmware summary table into the hardware specifications table - Replace the self-credit block with a link to the analysis repository
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.
Summary
Documents the firmware of the Adtran SDX 611 from a verified full-chip read of its 16 MB SPI NOR
(CH341A + SOIC-8 clip, ONT unpowered, programmer verify pass).
Firmware analysed:
GRO100_ADTRAN611V2V2.2.9.11 (V1.0.0(V2.2.9.11)), rootfs built 2022-11-12.Same page, same file, one commit — it adds a
# Firmwaresection toont/ont-adtran-sdx-611.md.What's added
Recovered
mtdparts— the layout is not in the environment; it is compiled into the compressedU-Boot stage (LZMA uImage at
0x15F40, decompressed to0x81C00000):Flash map table (offset / size / mtd / content) with in-region offsets for the vendor header,
the kernel uImage and both squashfs images. The named sizes tile exactly to
0xF40000of the16 MiB, which is what makes those boundaries measured rather than guessed.
Bootloader environment verbatim, with the reference placeholder
ethaddr=00:11:22:33:44:66called out — unit identity lives in
SECTION_EGIS, not in the environment.Boot chain, and the U-Boot console commands that rewrite the flash (
bootdelay=3,tw_boot,update kernel and rootfs by tar|vmimg).Root filesystem notes: root shell on serial with no login prompt;
S50telnetdis an empty stub(this is what lets the Telnet row above be filled in as unavailable);
S02mountconfigerases andremounts the Config partition if the mount fails;
S95startssptakes the password from/etc/default/passwd;S04boardinfoinit/S40networkselect the 1G/2.5G port map from theegisproduct code; the dropbear host keys are baked into the read-only squashfs, so they are identical
across every unit of this build.
Config partition contents (JFFS2, 4 KiB erase blocks) and the
MIBT/adtran_6010OMCI MIBlayout.
Anomalies: the redundant U-Boot environment sector reads back
0x00rather than0xFF, and theflash tail is a mix of erased and zeroed sectors.
# Credits— this page is credited in full to its author.Notes for reviewers
4c6e00e,2022) and every substantive revision is the contributor's own work —
a5214f4(2026-01-19) and1c0c8ef("Add Adtran SDX 611 hardware specifications and teardown photos", PR Add Adtran SDX 611 hardware specifications and teardown photos #448,2026-04-08), which is where the specifications, teardown, photos, chip identification and serial
pinout came from. The
# Creditssection therefore credits the whole page, following the precedentof the
# Creditsblock onont/ont-sercomm-fg1000b.md.layout and offsets in
SECTION_EGIS/omcimib.confand leaves the values out, since they belong toone subscriber's line. Nothing sensitive is in the diff, the commit message or this PR text.
SECTION_EGISextent (0xF40000+ 768 KiB) comesfrom the JFFS2 cleanmarker boundary at that offset, because the
mtdpartssizes are substituted atruntime (
%dk). The page says so.S50telnetdinit stubproves the service is not started; SSH / Web GUI / RAM were left blank because the dump does not
settle whether they are enabled on a provisioned line.
bytes_used), so the second bank is a recovery copy, not an A/B firmware pair — noted on the page sonobody goes looking for a difference.
type(scope):prefix, sincethe history has no conventional-commit convention. Content is original work on the contributor's own
hardware and is contributed under the project license, per the legal notice in
CONTRIBUTING.md.Testing
Renders as markdown in the site's dialect (VitePress):
::: warning Notecontainers, plain markdowntables and a fenced
textblock, all constructs already in use on this page and elsewhere in the repo.Front matter untouched; the new section is an H1 inserted before
# Miscellaneous Links.