Skip to content

Clarify register diagrams and R_UID semantics#225

Open
glopesdev wants to merge 1 commit into
harp-tech:mainfrom
glopesdev:dev/core-register-clarifications
Open

Clarify register diagrams and R_UID semantics#225
glopesdev wants to merge 1 commit into
harp-tech:mainfrom
glopesdev:dev/core-register-clarifications

Conversation

@glopesdev

Copy link
Copy Markdown
Collaborator

Resolves the inconsistency in how core register byte and bit layouts are documented, and corrects the byte-order description of the identifier registers.

Register diagrams previously mixed orientations without explanation. The integer and bitfield registers are drawn most-significant-first, R_VERSION is drawn in field order, and R_UID and R_TAG carried single-cell diagrams that conveyed nothing beyond their length. This adds a short convention describing the two orientations and the little-endian wire order, and removes the two uninformative diagrams.

It also corrects the description of core device identifier registers. R_UID was described as a 128-bit little-endian value, but neither the Pico nor the ATxmega core treats it as a number; both store opaque bytes. R_UID is now defined as an opaque identifier that is optional to implement and, when implemented, MUST be unique among devices sharing the same R_WHO_AM_I, so that the two registers together uniquely identify a device. Little-endian wording was dropped from R_TAG, and the R_SERIAL_NUMBER deprecation note no longer claims to duplicate the first two bytes of R_UID.

Closes #201

@glopesdev glopesdev added this to the 2.0.0 milestone Jun 16, 2026
@glopesdev glopesdev requested a review from a team June 16, 2026 14:43
@glopesdev glopesdev added the documentation Improvements or additions to documentation label Jun 16, 2026
Add a note describing how register layout diagrams are oriented:
single-value registers most significant first, structured registers
byte 0 first, with little-endian wire order. Remove the single-cell
diagrams from R_UID and R_TAG.

Redefine R_UID as an opaque identifier with no numeric
interpretation, optional to implement and, when implemented, unique
among devices that share the same R_WHO_AM_I. Drop the little-endian
byte-order claim from R_TAG, and remove the R_SERIAL_NUMBER
derivation from R_UID.
@glopesdev glopesdev force-pushed the dev/core-register-clarifications branch from 277b383 to d30eae1 Compare June 16, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ensure core register specification is consistent when indexing bytes

1 participant