Skip to content

Merge integration/aurora 1eac5fac into aurora-wip - #1159

Merged
RyanTheTide merged 104 commits into
aurora-wipfrom
merge-train/wip-sync-20261108a
Nov 7, 2026
Merged

RyanTheTide merged 104 commits into
aurora-wipfrom
merge-train/wip-sync-20261108a

Conversation

@RyanTheTide

Copy link
Copy Markdown
Contributor

Brings aurora-wip up to integration/aurora 1eac5fa (fleet25, qualified on the M2 and the Neo) with one merge commit (fd3a28b, tree bef10333).

One conflict, resolved by keeping both sides: aurora-wip's J813/J873 entries and integration's J715 entries (#1129) were added at the same place in sound/soc/apple/macaudio.c (match table) and apple,macaudio.yaml (compatible list).

What integration adds since #1093: DT descriptions (#1029, #1030, #1112), the J715 board, Stockholm NFC (#1042), the AV1 tile check (#1100), the M4 Max ANE profile and AVD quirk (#1088, #1091), boot-log fixes (#1103, #1104) and the Neo ANE memory floor (#1137).

Gate (buildbox, exact merge tree): fleet config Image + modules + dtbs, run-host-tests, apple-dcp host selftests. Results are posted here before merging.

🤖 Generated with Claude Code

RyanTheTide and others added 30 commits November 6, 2026 23:41
DisplayPort audio over the Type-C ports goes through dpaudio1, which the
shared jxxx include enables on every T8103 board, but its only DMA
provider, SIO, was enabled and aliased on the Mac mini alone. On the
MacBook Air, MacBook Pro and both iMacs dpaudio1 therefore could not get
its channel and never probed.

Move the sio alias and the SIO enable into t8103-jxxx.dtsi, as
t8112-jxxx.dtsi already does. The bootloader finds the node through the
alias to fill in the SIO firmware parameters.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Both iMacs enable the SEP but, unlike the MacBook Air and MacBook Pro,
do not alias it. The bootloader finds the SEP through the sep alias to
reserve its firmware memory and hand the node the sepfw region the
driver needs to boot it, so on the iMacs the enabled SEP could never
probe. Add the alias.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
…ties

The Mac mini disabled the DCP and set a one-entry display iommus list,
then enabled the DCP and set the full two-entry list further down the
same file. Drop the dead first overrides. The compiled tree does not
change.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The T8112 device tree uses apple,t8112-sio with the apple,sio fallback.
Every SIO node also takes its pmgr reset through resets; document it.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
… t8112

The T8112 crossbars are compatible with the T8103 ones and the device
tree lists apple,t8103-display-crossbar as their fallback. Allow that
pair.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The M1 and M2 GPU nodes list an SoC-specific compatible ahead of the
generation one: apple,agx-t8103 with apple,agx-g13g and apple,agx-t8112
with apple,agx-g14g. Document both pairs.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Add the MacBook Air (j313, j413, j415), iMac (j456, j457), Mac mini
(j473) and 13-inch MacBook Pro (j493) compatibles their device trees
already use.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
…s5770l

The Apple boards with a TAS5770L describe it as "ti,tas5770l",
"ti,tas2770", and the driver binds through the ti,tas2770 fallback.
Allow that pair besides the single compatibles.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The M1 and M2 Pro/Max/Ultra device trees describe a DisplayPort audio
interface per display coprocessor, but no schema matched
"apple,t6000-dpaudio" or "apple,t6020-dpaudio", so dtbs_check reported
every node. Document them: a register window the host does not touch,
one SIO DMA channel, one power domain and a graph port to the DCP that
owns the audio service.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
"reset-domains" is not a documented property and nothing reads it: the
DisplayPort audio driver only uses the DMA channel, the power domain and
the graph port. Remove it so the nodes match the binding.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The die 0 neural engine of the M1 Ultra is the block the M1 Pro and M1
Max use, at the same addresses, with the same DARTs and power states.
t6001.dtsi enables it on those, but t6002.dtsi does not include that
file, so the ANE stayed disabled on the Mac Studio (M1 Ultra). Enable it
in the same way, including the die 0 PMP report window for its
clock-level requests.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The M2 Pro/Max/Ultra device trees use "apple,t6020-sio",
"apple,t6020-pmp-v2", "apple,t6020-pmp-v2-report-entry" and
"apple,t6020-pcie-ge", none of which the bindings list. Add them with
the fallbacks the device trees already carry: "apple,sio",
"apple,t6000-pmp-v2", "apple,t6000-pmp-v2-report-entry" and
"apple,t6020-pcie".

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The T6020 power states, I2C, pinctrl, SPI, watchdog, MCA, NCO, NVMe,
SMC, SPMI and ADMAC nodes listed a third, generic "apple,*" compatible
after their "apple,t8103-*" fallback. The bindings only allow the
two-entry form, so dtbs_check reported around 370 warnings per board,
most of them for the 245 power states. Drop the generic entry, as the
T6041 and T8122 trees already do. Give the AOP ADMAC the
"apple,t8103-admac" fallback the other ADMAC has.

The drivers match the T8103 fallbacks with the same data. The loader
appends the generic compatibles again on T602x machines for older
kernels, so the device tree the kernel sees does not change.

Also drop the unused "reset-domains" from the DisplayPort audio nodes.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The die 0 neural engine of the M2 Ultra matches the M2 Pro and M2 Max
one and the driver has T6022 match data, but only t6021.dtsi enabled it,
so it stayed disabled on the Mac Studio and Mac Pro (M2 Ultra). Enable
it with its mailbox and DARTs.

The Mac Pro also drives its die 0 HDMI port with dpaudio1, whose DMA
comes from the die 0 SIO. The loader sets up and enables SIO only for
the "sio" and "sio1" aliases, and J180 only had "sio1" (die 1), so that
audio interface could never get its channel. Alias the die 0 SIO as
"sio".

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
# Conflicts:
#	Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml
#	Documentation/devicetree/bindings/sound/apple,macaudio.yaml
Some SMC-controlled enables are not plain gPxx GPIOs: they are written
as a key with a per-line command template (a lowercase gp bank on
T6040, pcIO lines on J700). Describe them with apple,output-templates
and drive them through the same gpio_chip, reading back the SMC
output latch where the key supports it.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The NFC controller with embedded secure element on Apple silicon Macs
sits on its own SPMI bus and carries NCI packets through a
non-incrementing data register. Add a transport that powers it through
its VEN line, checks the follower identity with side-effect-free
register reads, registers it with the NCI core and parks VEN low
whenever the device is closed, which is the controller's lowest power
state. The NCI core reads the controller identity on first open.

No secure element commands are implemented.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
…nd J700

aop-spmi0 is driven by the application processor (there is no AOP
ownership handoff), so give it its interrupt controller and parent
interrupt, add the T8140 node, and describe the Stockholm NFC/SE
controller at SID 9 with its VEN line on the J616s and J700.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Use the separate receive FIFO, drain its two-byte wire footer, and report the native diagnostic status registers on a transport error. Drop the unsupported CRC-CCITT transform.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>

Assisted-by: LLM
The corrected wire transport drains its opaque footer without applying a CRC transform, so CRC_CCITT is no longer needed.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>

Assisted-by: LLM
The follower identity register of a model 96 controller reads 0x19 and
its IRQ-offset register reads the base of the follower's interrupt
block, 0xe0; neither is the SPMI address. Check them against the model
data instead of the follower's SID.

Seen on the J616s with the controller powered.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
On the J616s a model 96 controller delivers each NCI packet as header
and payload only. Reading two more bytes runs into the next packet or
past the end of the FIFO, fails the SPMI frame parity check and raises
the transport error interrupt. Drain nothing after the payload.

Tested on J616s (trial device tree, fleet17 base): CORE_RESET and
CORE_INIT complete, the NCI core reports NCI 1.0 and the controller
identity, no parity or transport errors, VEN parked low on close.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
The J713 and J715 entries sit under the M4 platforms but their
comments name the M3. Name the M4.

Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 (MacBook Air 15-inch, M4) has a speaker card and a headphone
jack card of its own, like the J713.

Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 (MacBook Air 15-inch, M4) is the J713 board with a larger panel
and six speaker amps. Its ADT matches the J713's in the PMGR device and
power-state tables, the DARTs and their streams, the PMP, MTP, SEP and
Mesa wiring, so the same boot loader handoff applies.

Add apple_t8132_air() for the two boards, and use it where the T8132
support only qualifies the J713: the PMP display and GPU vote bridge,
the PMP telemetry, the dcpext route gate, the MTP RTKit preservation,
the legacy-loader platform handoff and its KUnit test, and the SEP
Touch ID profile.

Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 shares the J713's loader handoff and PMGR tables. Require the
board's power-domain policy and use the T8132 PMP report path on it too.

Signed-off-by: Diljit Singh <hey@djdev.me>
The J715's display, external display, radio and MTP DARTs are the
J713's: the same addresses and streams, and the same live state at
boot. Give them the J713 handling, and accept the J715 target-type in
the retained display handoff's ADT check.

Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 ADT maps the radio to DART streams 1 and 2 as on the J713, so
accept its apple,managed-sids.

Signed-off-by: Diljit Singh <hey@djdev.me>
The J715 ADT's /amfm/function-reg_on is the J713's pKW4("gP13",
0x00800000). Use the same write-only handling for it, and cover the
J715 in the host test.

Signed-off-by: Diljit Singh <hey@djdev.me>
RyanTheTide and others added 26 commits November 7, 2026 23:45
pull_request.base.sha is the base tip recorded when the PR was opened,
so a PR opened before newer integration merges was compared against an
old tree and blamed for every warning those merges changed (97 'new'
on #1030). Use the merge commit's first parent, which is the base tip
the PR is actually merged into.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Bring the Stockholm branch up to date with integration/aurora a20af80.
#1034 added the same T8140 aop_spmi0 node this branch carries; keep
integration's copy (identical node, plus its nub_spmi1 neighbour).

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Retain the native error and event bank resources for future qualified T8140 status decoding. Reuse the generic EDAC binding with SoC-specific resource counts. Both instances remain disabled; preserve the current qualified T6041 NI register contract.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
ci: compare device trees against the current base branch tip
nfc: Apple Stockholm NFC/SE controller: identity and power-off on the AOP SPMI bus
…r-quiet

Merge train 11-08: BOOTLOG2 b2t1 one-shots (Neo 00:01, M2 23:46): the missing-supplier dev_err is gone from the Neo boot (-p 3 empty on the integration DTB), and the WARN for non-sync-state links is unchanged, so the only behaviour change is that sync-state-only links stop logging at err level. Host-tests CI green.
Merge train 11-08: mechanical system_wq -> system_percpu_wq (the same per-CPU workqueue under its non-deprecated name) in btcentauri and t8132_ext_drm. Built in BOOTLOG2's b2t1 (W=1 clean) and booted on the Neo and the M2 with no change; host-tests CI green.
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
On the Neo (T8140) nothing raises the memory controller (DCS) or the SoC
fabric while the Neural Engine runs: the CLPC only follows CPU and GPU
load. A MobileNetV1 EXECUTE then takes 2.3-2.5 ms. With DCS 4 and fabric
3, the floor the GPU already gets for streaming work, it takes
1.25-1.31 ms; the engine time drops from 1.8-2.0 ms to about 1.0 ms.

Add an ANE input next to the host GPU one. A driver gets a client with
apple_clpc_ane_get() and reports work in flight with
apple_clpc_ane_set_active(). The client has its own reference, so a late
publication or put after the CLPC went away is harmless, and getting it
never defers: without a bound CLPC the ANE runs without the floor. An
idle-to-active edge samples at once, a request shorter than the sampling
period is latched until the next sample, and the per-SoC ANE rail states
then merge with the CPU and GPU demand under the usual hold.

T8140 asks for DCS 4 and fabric 3. Other SoCs have no ANE input. A
root-only debugfs file, ane_states, overrides the two states (clamped
to each rail) for measurements, and the status file reports the ANE
input and reason bit 32.

KUnit covers demand and hold, short requests, provider removal, cold
wake, a missing provider and the state overrides.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Get the CLPC ANE client at the program stage and report each EXECUTE
through the session's busy hook, so the CLPC raises DRAM and the SoC
fabric while the H17 engine works. Without a CLPC nothing changes.

On the Neo this takes MobileNetV1 from 2.31-2.50 ms to 1.25-1.31 ms per
EXECUTE (300 requests, three rounds, ane_states 0 0 against 4 3).

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Merge train 11-08: after DT2's split (SIO enables moved to draft #1114) this is only the iMac sep aliases; the M2 j413 DTB is byte-identical. dt-checks (0 new warnings) and host-tests CI green.
Merge train 11-08: after DT2's split (Ultra ANE/SIO enables moved to draft #1115) this is the dpaudio binding, the t602x compatibles and the dpaudio reset-domains removal. The j316s DTB boots on our M1 Pro with FLEET4's regression suite clean and is now its committed boot.bin DTB. dt-checks (0 new) and host-tests CI green.
Preserve the established GPU path, named-resource order and loader reservation forms. Put new physical resource descriptors under /soc. Waive unqualified native firmware objects instead of representing them as root platform devices, and remove their unused bindings. Keep routed existing interfaces and the real ADMAC pair-count correction.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
Split the CORE_RESET and CORE_INIT response parsing out of the identity
read and test it with the responses the J616s and J700 controllers
returned, a reader-class response with an RF interface list, every
truncation of the init response, a failed status, an RF interface count
that runs past the payload and an NCI 2.x style reset response.

No functional change for the hardware.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
…ck-20261107

Merge train 11-08. Test kernel 7.3.0-aurora-mtrl1 (integration 43c790f + this check + #842/#1088/#1091) one-shot on the Neo: AV1 1080p 747 fps and 4K 189 fps decode bit-exact against software (fleet23 base 747/189), VP9/H.264 bit-exact, GStreamer v4l2slav1dec 1080p/4K clean, 0 tile refusals on valid streams, 0 AVD errors, 0 AVC, CTXR boot verify PASS. Build warnings = fleet22, W=1 avd 0, run-host-tests --only avd 12/12, CI green. M4 Max evidence: AxxzyWasTaken's J616C (Chromium 8-tile/1-entry case).
accel/ane: admit the J616C 26.6.2 preload
media: apple: avd: don't reset the T6041 decoder in recovery
The PMP graph and supplier tests and the dwc3 teardown test compile
production code that now asks apple_t8132_air() instead of matching
apple,j713. Give their mocks the same helper, built on their
of_machine_is_compatible() stubs.

Signed-off-by: Diljit Singh <hey@djdev.me>
nfc: apple-stockholm: KUnit tests for the identity parsing
arm64: dts: apple: t8132: Add the J715 (MacBook Air 15-inch, M4) board
The CLPC host test compiles the driver's sample path from clpc.c, which
now also calls apple_clpc_ane_input_demand(). Extract that helper too,
stub its client and lock, and check that T8140 ANE work votes DRAM 4 and
fabric 3 (0x34) with reason bit 32, that a request shorter than one
sample is still seen once, and that the vote expires after the hold.
A new negative control drops the ANE demand and must fail.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
…ss-audit-dts-prs-j616s-t6041-and-ne

Merge train 11-08: DT2 ready (dt-checks 119 DTBs 0 new / 9 removed). Neo: aura-try Stage 2 trial with the integration + this j700 DTB, FLEET4 suite vs fleet24, no regression. J616s: only disabled nodes and bindings; our check of the merged tree finds 29 new j616s nodes and none effectively enabled, 43 new j700 nodes and none enabled, W=1 j616s 13 = base 13, j700 5 = base 5. The J616s Stage 2 trial follows after 05:00.
Merge train 11-08: ANEX hardware A/B on the Neo (test kernel fleet23anex2, one-shot, silent): MobileNetV1 p50 2.3-2.5 ms -> 1.25-1.31 ms with the CLPC ANE floor (DCS 4 / fabric 3), gate open/close 42-66/24-27 us -> 0.1/0.0 us, top-1 correct, no new error lines, SELinux enforcing. KUnit CLPC 9/9, ANE 213/213 x2, W=1 0, checkpatch 0. The host demand-test fixture now covers the ANE input; CI host-tests/rust-build/source green. Clean merge on integration 5884327.
Brings aurora-wip up to fleet25: DT descriptions (#1029, #1030, #1112),
the J715 board (#1129), Stockholm NFC (#1042, #1136), the AV1 tile check
(#1100), the M4 Max ANE profile and AVD quirk (#1088, #1091), boot-log
fixes (#1103, #1104) and the Neo ANE memory floor (#1137).

Conflicts: macaudio.c and apple,macaudio.yaml, where aurora-wip's J813
and J873 entries and integration's J715 entries were added at the same
spot. Keep all of them.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
@RyanTheTide
RyanTheTide merged commit 05eaa1f into aurora-wip Nov 7, 2026
4 checks passed
@RyanTheTide
RyanTheTide deleted the merge-train/wip-sync-20261108a branch November 7, 2026 15:30
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.

3 participants