Skip to content

AVD: describe PIODMA resources and initialize the SRAM base - #710

Draft
RyanTheTide wants to merge 4 commits into
aurora-wipfrom
avd/piodma-dt
Draft

RyanTheTide wants to merge 4 commits into
aurora-wipfrom
avd/piodma-dt

Conversation

@RyanTheTide

@RyanTheTide RyanTheTide commented Oct 31, 2026 •

Copy link
Copy Markdown

Queued firmware fetches programs and frame parameters through PIODMA. The T6040, T6000 and T8112 nodes currently expose only the decode DART stream, and none of the four target node definitions describes the PIODMA aperture. Add the named aperture and stream 1, preserve T8140 stream 2, and program the physical SRAM base before each CM3 boot.

The series keeps code, sram, mbox and ctrl at their existing indices and appends piodma. The host maps it by name, accepts older trees without it, restores sram_phys >> 4 at PIODMA offset 0x24 on boot/resume/reset, and logs the version at 0xb4 once per device while powered. The binding describes the optional fifth range, all seven interrupt sources and 2-3 streams with PIODMA; legacy four-range nodes may retain one stream.

SoC PIODMA AP address / size DART SID ADT structural evidence
T6040 0x281070000 / 0x4000 1 avd0:reg = (0x80000000, 0x01404000) with arm-io parent base 0x200000000; dart-avd0/mapper-avd0-piodma:reg = 1
T8140 0x381070000 / 0x4000 1, existing SID 2 preserved Retained four-SoC ADT ledger confirms PIODMA mapper reg = 1 and adsbuf = 2. TODO: attach the direct retained ADT base/window citation; the aperture currently follows the existing code range and public sub-block layout.
T6000 0x287070000 / 0x4000 1 DeviceTree.j314sap: avd0:reg = (0x86000000, 0x01404000) with arm-io parent base 0x200000000; dart-avd0/mapper-avd0-piodma:reg = 1
T8112 0x269070000 / 0x4000 1 DeviceTree.j413ap: avd:reg = (0x68000000, 0x01404000) with arm-io parent base 0x200000000; dart-avd/mapper-avd-piodma:reg = 1

The ADTs describe a whole AVD range. The PIODMA subrange is the documented public offset 0x01070000 within that range, equivalently 0x70000 from the decode block base. The M1 Pro and M2 restore DeviceTrees were decoded locally and only the structural address and mapper properties were retained in the task evidence. No firmware or raw device records are included here.

TODO: obtain matching ADT proof before extending the remaining T8103, T6020, T8122/T6030/T6031 and T8132 node definitions. They keep their legacy descriptions. The T6000 definition is shared through the existing die template; additional die/package variants need their own ADT qualification.

Public register and stream layout: upstream AVD v3 series.

Validation:

  • All four commits pass strict checkpatch with zero errors, warnings or checks.
  • Controller buildbox request h-46856 is queued for the pristine baseline, final binding/schema checks, all four target DTBs, decompiled and structural before/after comparison, and an arm64 W=1, CONFIG_WERROR=y module build. Build results are pending.
  • Hardware testing has not been performed. Keep this PR draft until the integration and hardware qualification are complete.

Related integration: AVD core transport, queued open firmware, task t-3865.

Integration must preserve the PIODMA base write before CM3 release in each backend boot/resume/reset path when task t-3865 combines the transport branches.

Describe an optional appended PIODMA register range, the seven interrupt
sources, and the decode, DMA controller and optional ADS buffer streams.
Require at least two streams with PIODMA while retaining legacy four-range
nodes without that aperture.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Append the PIODMA range without changing the existing resource indices.
Route the DMA controller through DART stream 1 and preserve T8140 stream 2.
The retained ADT mapper topology identifies stream 1 as the PIODMA mapper;
the register subrange follows the publicly documented AVD layout.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Map the optional named PIODMA resource and retain the physical SRAM base.
Program that base in 16-byte units on every CM3 boot so resume and reset
restore it, and log the PIODMA version once per device while powered.
Keep probing legacy device trees that omit the PIODMA aperture.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Keep SRAM base programming in the documented register format. The binding
and retained ADT contract do not impose an extra 36-bit platform resource
restriction on probe.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant