Files
chromebox_10th_audio_driver/audio_topology/collected/h3-topology-check-jack-Kaisa_20260404.md
2026-04-05 13:24:31 +08:00

3.9 KiB
Raw Blame History

H3 / Story B真机拓扑与 IPC comp_id 核对jack-Kaisa

清单类说明../../docs/linux-hdmi/SOF_FIRMWARE_TOPO_Kaisa_CHECKLIST.md时间2026-04-04 · 内核6.17.0-20-generic
方法zstd -dc …/sof-cml-rt5682.tplg.zst | alsatplg -d -;对照 dmesgSTREAM_PCM_PARAMS 载荷(comp_id=0x14)。


1. 本机固件与拓扑文件

文件 SHA256
/lib/firmware/intel/sof-tplg/sof-cml-rt5682.tplg.zst eba6d312a8db5d1dff3ccac18655622fde73d74b834137f70cc5749e4ef3b0ac
/lib/firmware/intel/sof/intel-signed/sof-cml.ri.zst(→ sof-cnl.ri.zst b0aa0f52ccc6dc8c894f43433e9e3ddb8408dd65d90d0348d845b935fccc45c0

解压后拓扑约 35711 字节,与仓库 ANALYSIS_Audio.md 中「Chrome 解压规模一致」类描述相符。


2. HDMI 管道(拓扑图语义)

alsatplg 解码的 SectionWidget

ALSA 名 类型 说明
PCM2P aif_in Passthrough Playback 2 → 对应 pcm2 / HDMI1
PGA4.0 pga 4 Master Playback Volume
BUF4.0 / BUF4.1 buffer 缓冲
HDA0.OUT dai_in stream_name 'iDisp1'
PIPELINE.4.HDA0.OUT scheduler pipeline 4

同理:PCM3P → … → iDisp2HDA1.OUTPIPELINE.5PCM4P → … → iDisp3HDA2.OUTPIPELINE.6

SectionGraph 连接关系(节选):

BUF4.0 , , PCM2P
PGA4.0 , , BUF4.0
BUF4.1 , , PGA4.0
… → HDA0.OUT / PIPELINE.4.HDA0.OUT

与 dmesg 中 pcm2 (HDMI1)**cmd=1 dai iDisp1 Pin** 一致。


3. 与 IPC 载荷 comp_id = 0x14 (20) 的对照

  • 已保存载荷(dmesg_sof_TRACE_PAYLOAD_jack-Kaisa_6.17.0-20-generic_20260404_210954.txt)在 pcm2 (HDMI1) 场景下 comp_id = 0x00000014
  • 解码拓扑中,HDMI 三路 PGAPGA4.0 / PGA5.0 / PGA6.0 的 tuple 均含 token251 20(同一模板;PGA1.0 为 SSP/Port1 路径,亦有 token251 20,属拓扑 token 重复用法,不等于 运行时全局 comp_id 必然唯一)。

结论H3

  • 「拓扑里根本没有 HDMI / iDisp / PCM2 这条边」 — 已排除;图结构与日志一致。
  • comp_id 与拓扑完全对不上」未证实;主机侧为 pcm2 填的 comp_id=20 与拓扑中 PGA 侧 token251 20 一致可作为支持证据,但 运行时 PCM 组件全局 ID 应以固件加载后为准;若要 100% 钉死,需在能导出 component 表 的 debug 接口或固件侧确认。
  • comp_id 与图一致仍 -5 的情形下,仓库 SOF_FIRMWARE_TOPO_Kaisa_CHECKLIST.md 的指引仍成立:更偏向 H1固件策略/拒绝)需上游一起看 DSP 侧,而非简单的「拓扑文件装错」。

4. stream_tag(当前会话 dmesg

本次抓取中可见 pcm0 (Port1)pcm2 (HDMI1) 均出现 stream_tag 1,且 0x60010000 后接 0x60040000 等,未在同一 grep 窗口内出现 ipc tx error(与历史采集里 HDMI2/HDMI3 集中 -5 的片段可能因播放设备/会话不同)。多条 PCM 共用 stream_tag 1 是否符合固件预期,仍建议在上游讨论中一并写出。


5. 复现本解码的命令(真机)

zstd -dc /lib/firmware/intel/sof-tplg/sof-cml-rt5682.tplg.zst > /tmp/sof-cml-rt5682.tplg
alsatplg -d /tmp/sof-cml-rt5682.tplg -o /tmp/sof-cml-rt5682-decoded.conf
grep -nE 'PCM2P|iDisp1|PGA4|PIPELINE\.4' /tmp/sof-cml-rt5682-decoded.conf

6. Story B 结论摘要

结论
拓扑文件 sof-cml-rt5682.tplg.zst,已解码核对
PCM2 / HDMI1 / iDisp1 与拓扑 一致
comp_id vs 拓扑 token 与 PGA 模板中 token251 20 一致(支持对齐,非最终数学证明)
H3「主机配错 comp_id」 当前削弱;优先继续 H1 + 上游复现