Cross-check the device tree against the wiki's A80 memory map #75

Open
opened 2026-08-30 14:26:49 +00:00 by tiagoagueda · 0 comments
Owner

A cheap correctness pass that the mirror now makes possible.

A80/Memory map is a complete peripheral memory map for this SoC, maintained independently of
our work. Our device tree was assembled from the vendor script.bin, the user manual, and
inference - and in at least one case (33-REAL-PINMAP.md) we shipped a wrong pin for a while
because it came from a different board's fex.

The same class of error is possible in reg = <...> ranges, and it is silent: a driver that
probes against a slightly wrong base or length can work for everything anyone has tested and fail
on the one register that lives past the end.

The task

Diff every reg in sun9i-a80.dtsi and sun9i-a80-tronsmart-draco.dts against A80/Memory map,
and list the disagreements. Not to change anything reflexively - the DT may well be right and the
wiki stale - but so that each difference is a decision rather than an accident.

Worth doing before the DTS goes upstream (#30), because this is exactly the kind of thing a
sunxi maintainer will check, and it is much better to have the answer already.

Also worth cross-checking while there: the memory map names blocks we have no node for at all
(the DE frontends at 0x03120000/0x03140000 are one - see #49), which is a free way to find
hardware we have not yet described.


From a deep pass over the offline linux-sunxi.org mirror (a80/linux-sunxi.org/wiki-backup, 4095 pages, snapshot 2026-08-29). linux-sunxi.org content is CC BY-SA; the pages named above are the attribution.

A cheap correctness pass that the mirror now makes possible. `A80/Memory map` is a complete peripheral memory map for this SoC, maintained independently of our work. Our device tree was assembled from the vendor `script.bin`, the user manual, and inference - and in at least one case (`33-REAL-PINMAP.md`) we shipped a wrong pin for a while because it came from a *different board's* fex. The same class of error is possible in `reg = <...>` ranges, and it is silent: a driver that probes against a slightly wrong base or length can work for everything anyone has tested and fail on the one register that lives past the end. ## The task Diff every `reg` in `sun9i-a80.dtsi` and `sun9i-a80-tronsmart-draco.dts` against `A80/Memory map`, and list the disagreements. Not to change anything reflexively - the DT may well be right and the wiki stale - but so that each difference is a decision rather than an accident. Worth doing before the DTS goes upstream (#30), because this is exactly the kind of thing a sunxi maintainer will check, and it is much better to have the answer already. Also worth cross-checking while there: the memory map names blocks we have no node for at all (the DE frontends at `0x03120000`/`0x03140000` are one - see #49), which is a free way to find hardware we have not yet described. --- *From a deep pass over the offline linux-sunxi.org mirror (`a80/linux-sunxi.org/wiki-backup`, 4095 pages, snapshot 2026-08-29). linux-sunxi.org content is CC BY-SA; the pages named above are the attribution.*
Sign in to join this conversation.
No description provided.