Repository navigation
apple-sio: publish protocol-9 control state first and size DMA arrays by entry count (M2 bring-up crash) - #792
Merged
Conversation
T8112 SIO can fail with an SError while consuming the DMA-shim table. The mailbox history already contains STARTED and matching SETUP ACKs; the outstanding message is the shim-table length, parameter 0x23. A second wait for STARTED cannot establish the missing ordering. The loader currently publishes response-array and performance state before map ranges, shims and device types. Use the protocol-9 control publication sequence from the publicly posted t4333 SIO implementation: panic buffer, map ranges, tunables, shims, device types, then performance state and DMA arrays. Keep the existing synchronous ACK after every parameter, reject malformed control lists before publication, and stop at the first failed ACK. Leave other firmware protocols unchanged. Protocol-9 parameters 2 and 0x0c count entries, not bytes. Allocate 0xaaa 12-byte segment entries and 0x1b80 16-byte response entries rather than advertising counts backed by byte-sized allocations. Replace the loader's response mapping with a zeroed coherent allocation and keep published buffers until an acknowledged firmware shutdown. Preserve the existing channel and transfer descriptor layouts. Consolidate the public candidate at 76a2b41 on the current aurora-wip base. Extend its KUnit coverage to preserve all reordered values and to stop publication on failure at every control-table ACK boundary. The firmware-internal race remains an inference from the crash boundary; M2 boot qualification is required before merging this change. Link: 79a9ee4 Link: 76a2b41 Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
mchalunderscore
pushed a commit
to mchalunderscore/linux
that referenced
this pull request
Nov 4, 2026
…tion/aurora Bring integration/aurora up to aurora-wip 52f0a6b, the source of 7.3.0-aurora-fleet14h, promoted on all four machines on 2026-11-02. The range also covers the fleet14g source b35adc7. It adds aurora-silicon#792, aurora-silicon#750, aurora-silicon#783, aurora-silicon#784, aurora-silicon#793, aurora-silicon#774, aurora-silicon#794, aurora-silicon#796, aurora-silicon#798, aurora-silicon#800, aurora-silicon#802 and aurora-silicon#801. No conflicts. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
M2 SIO bring-up: publish protocol-9 control state first, size the DMA arrays by entry count
On the M2 (T8112) the SIO co-processor occasionally crashed during bring-up, about 2 boots in 119, with an SError right after "SIO protocol v9". In all four saved crash histories the firmware had acknowledged STARTED and eleven SETUP messages, and the one unacknowledged request was parameter 0x23, the shim table length.
This change:
Tested
journalctl -b -p 3empty every boot, both audio cards present, speakerguardd active. No audio was played.🤖 Generated with Claude Code