Files
retroSoC/publications/datasheets/sections/register-index.typ
T
maksyuki fc6440989f docs: add environment reference and enhance publication validation
- Introduced  to define the development environment and validate runtime/platform contracts.
- Enhanced  with  to ensure change markers adhere to publication rules.
- Updated  to integrate boot acceptance checks and ensure dependencies are correctly managed.
- Added tests for environment validation, publication change scope, and CI stages to prevent regression and ensure compliance with publication standards.
- Implemented checks in  to validate the presence of development environment dependencies.
- Refactored existing tests to improve coverage and ensure accurate validation of publication claims and software configurations.
2026-09-23 17:09:55 +08:00

68 lines
3.8 KiB
Typst
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#import "../style.typ": *
#change-start("v05-emphasis-register-index","Selected body emphasis: register index")
#import "../ip-reference.typ": inline
= Appendix: Global Register and Address Index <global-register-index>
The index covers #data.system_reference.retrieval.register_index.definitions published
register definitions through #data.system_reference.retrieval.register_index.rows instance
rows. Repeated banks retain their address formula; together the rows describe
#data.system_reference.retrieval.register_index.addresses address locations across the
separate PRODUCT and selected MPW contexts. A shared definition can therefore appear at
more than one instance base without creating another register ABI.
Use the absolute address to identify a bank, then follow its register-name link for fields,
side effects and software requirements. The offset column is *relative to that instance's
base* for element zero, including the register-group base. An array row denotes
#code("first address + n * stride") only for its printed index range; *gaps between elements
are not additional registers*. All accesses shown are 32 bits, subject to the individual
byte-strobe and permission rules in @register-programming.
Reset text preserves fixed, conditional, dynamic and non-retained meanings from the detailed
reference. It does not promise the value of a later live status read. Register addressability
also *does not grant an initiator access* or establish that an optional feature is available.
#let index = data.system_reference.retrieval.register_index
#let bank-table(bank) = {
// Keep the EXT-H bank boundary stable beside the preceding qualified EXT-L table.
if bank.region=="APB4_EXT_H" {pagebreak(weak:true)}
block(breakable:false,sticky:true)[
#heading(level:3)[#bank.region]
#text(9pt,fill:muted)[Base #code(bank.base_hex) · #bank.qualification]
]
{
show underline: omit-link-underline
ds-table("lookup-"+bank.id,[#bank.region register address index],
([Offset],[Register / definition],[Absolute address / array],[Access],[Reset]),
bank.rows.map(r=>(code(r.offset_hex),
link(label(r.link),code((if r.group=="main" {r.name} else {r.group+"."+r.name}).replace("_","_\u{200b}"))),
[#code(r.first_hex)#if r.count>1 {[
#linebreak() + n × #code("0x"+str(r.stride,base:16))
#linebreak() n = 0…#(r.count - 1)
]}],r.access,inline(r.reset))),
widths:(0.55fr,1.6fr,1.2fr,0.9fr,1.1fr))
}
}
== PRODUCT Register Instances
The reference profile resolves SRAM and other configuration-dependent fields before this
index is generated. UART0/1, SDIO0/1, both timers and both I2C instances keep separate bases.
GPIO user/management windows have separate decode coverage. SYSCTRL contains the RCU bank.
FLASH, SRAM and external-memory data apertures are excluded from this register lookup.
#for bank in index.instances.filter(b=>b.mode=="PRODUCT") {bank-table(bank)}
== MPW Conditional Register Instances
The following banks share the MPW user-IP aperture under different selections. They are not
simultaneously active and are not PRODUCT peripherals. Confirm the MPW profile and selected
design ID before interpreting this address range; see @mpw and @user-ip.
#for bank in index.instances.filter(b=>b.mode=="MPW") {bank-table(bank)}
The bank/offset/stride data are derived from the same publication register records as the
individual chapters. Mapping, exclusions and instance qualifications are reviewed against
the canonical topology and the selected register decoder.
#source-note("publications/datasheets/register-profiles.json",title:"Shared register families and repeated-bank geometry")
#source-note("publications/datasheets/system-reference.json",title:"Register-window mapping and reviewed instance qualifications")
#change-end("v05-emphasis-register-index")