Skip to content

Kernel/user partition: remove the SOF DMA trace - #11421

Open
lgirdwood wants to merge 4 commits into
thesofproject:mainfrom
lgirdwood:kernel-user/trace-removal
Open

lgirdwood wants to merge 4 commits into
thesofproject:mainfrom
lgirdwood:kernel-user/trace-removal

Conversation

@lgirdwood

@lgirdwood lgirdwood commented Nov 8, 2026 •

Copy link
Copy Markdown
Member

Part of #11306 (kernel / user-space partition): remove the SOF DMA trace (src/trace, CONFIG_TRACE). It was the last kernel-only directory outside src/kernel, and nothing builds it any more except the host builds, which only used it to print traces. Follows #11420 (merged).

Patches

  1. Move the SOF probe log backend options to src/kernel/logging. The CONFIG_LOG_BACKEND_SOF_PROBE* options were defined in src/trace/Kconfig. They move to a Kconfig file next to the backend; the values are unchanged.

  2. Print host build traces without CONFIG_TRACE.

    • The testbench and host library printed traces through the CONFIG_LIBRARY part of trace-soflogger.h, which needed CONFIG_TRACE.
    • That printing moves to a header of its own, trace-host.h, with the same levels and output as before.
    • The host library now builds with CONFIG_TRACE=n. Its code is unchanged; only the trace contexts move out of .trace_ctx, a section only the firmware dictionary logger uses.
  3. Remove the SOF DMA trace. Zephyr builds can't enable it: zephyr/include/sof/trace/preproc.h stops the build if CONFIG_TRACE is set. Removed:

    • src/trace and its Kconfig options (TRACE, TRACEV, TRACEE, TRACEM and the filtering options), trace-soflogger.h and dma-trace.h;
    • src/ipc/dma-copy.c and CONFIG_TRACE_CHANNEL, used only by the DMA trace;
    • the CONFIG_TRACE code in:
      • the IPC3 handler and PM gate (the stub that accepts trace commands stays);
      • the i.MX and AMD platform init;
      • system init and the panic handler;
      • the cmocka mocks;
    • ipc_build_trace_posn(), ipc_trigger_trace_xfer(), the trace fields of struct sof, and dump_hex() with its two Waves CONFIG_TRACEV users;
    • the CONFIG_TRACE=n lines in the board and app configs.

    Kept:

    • in trace.h, the Zephyr logging, host and no-op trace macros;
    • the host ABI in include/ipc/trace.h;
    • the dma_copy_*() declarations and DMA_TRACE_CHANNEL, which the legacy (non-native driver) probe and AMD DMA code still reference. They go with that code (Phase 0b).
  4. Docs: AGENTS.md, the user-space README and the init README no longer list src/trace.

Functional change

  • Zephyr firmware: no build compiled the DMA trace itself. Two changes:
    • the unused ipc_build_trace_posn() and ipc_trigger_trace_xfer() are no longer built;
    • struct sof is two pointers smaller, which changes field offsets in the code that uses it. On i.MX that shows up in the IPC3 helpers and pipeline-graph.c.
  • Host builds: they print the same traces as before.

Testing

  • Per commit:
    • Builds: tgl, tgl-h, mtl, lnl, ptl, wcl, nvl, imx8, imx8x, imx8m, imx8m_cm7, imx8ulp, imx95 and qemu_xtensa, and the extra CI configurations:
      • native_sim IPC3/IPC4 stub builds;
      • imx93 64-bit;
      • PTL with each userspace overlay;
      • PTL with CONFIG_SOF_USERSPACE_PROXY=n;
      • PTL and MTL with os_linux_overlay.conf;llext_relocatable.conf.
    • Comparisons: objects, LLEXT modules and firmware images. Only the third patch changes objects, as described above. sof_init() changes size on Cortex-M7 because it embeds the git hash.
    • Signing: rimage runs for every Intel platform, and the generated configs are unchanged.
    • Cadence xt-clang (RI-2022.10): MTL, PTL and NVL compile.
    • ZTest: the unit tests pass, run as in CI (18 of 18 configurations).
    • Host: the host library and the cmocka unit tests build and pass for all nine defconfigs and the library config.
  • At the tip:
    • the testbench and the tools pass;
    • the platforms that already fail on main (acp_6_0, acp_7_0, acp_7_x, mt8186, mt8188, mt8195, mt8196, mt8365) have unchanged error sets.
  • Hardware: TGL (UP Xtreme i11), sof-hda-generic-cavs25-2ch.tplg, comparing main (a206532) and this branch. Both boot, play 5 s, and play again after runtime suspend, with no DSP errors.

All of the above was run after rebasing onto a206532 (current main, including #11420).

🤖 Generated with Claude Code

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain for the DMA-trace removal and related kernel-tree consolidation.

No open issues 🎉

What changed in this PR

Removes the unused SOF DMA trace as part of the kernel/user-space partitioning work in #11306. This builds on #11420’s architecture and platform relocation, keeping Zephyr logging and host trace output while removing obsolete trace infrastructure.

Changes:

  • Removes DMA-trace configuration, initialization, IPC helpers, state fields, and related debug code.
  • Moves probe logging options into src/kernel/logging and decouples host logging from CONFIG_TRACE.
  • Updates build paths, test configurations, ownership rules, and documentation for the consolidated kernel tree.
File Description
zephyr/​include/​sof/​trace/​trace.h Removes obsolete DMA-trace comment.
zephyr/​include/​sof/​trace/​preproc.h Removes obsolete configuration guard.
zephyr/​include/​rtos/​sof.h Removes DMA-trace context fields.
tools/​tplg_parser/​CMakeLists.txt Updates relocated host include paths.
tools/​testbench/​README.md Updates documented defconfig path.
tools/​testbench/​CMakeLists.txt Updates host configuration and include paths.
test/​ztest/​unit/​objpool/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​math/​matrix/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​math/​fft/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​math/​fft_multi/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​math/​dct/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​math/​auditory/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​math/​advanced/​functions/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​fast-get/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​dsrc/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​audio/​drc/​CMakeLists.txt Updates POSIX include path.
test/​ztest/​unit/​audio/​crossover/​CMakeLists.txt Updates POSIX include path.
test/​cmocka/​src/​lib/​fast-get/​CMakeLists.txt Updates platform memory source path.
test/​cmocka/​src/​lib/​alloc/​CMakeLists.txt Updates platform source and include paths.
test/​cmocka/​src/​common_mocks.c Removes obsolete trace mocks.
test/​cmocka/​configs/​rembrandt_defconfig Removes trace-channel setting.
test/​cmocka/​configs/​acp_7_x_defconfig Removes trace-channel setting.
test/​cmocka/​configs/​acp_7_0_defconfig Removes trace-channel setting.
test/​cmocka/​CMakeLists.txt Updates Intel platform include paths.
src/​trace/​CMakeLists.txt Removes DMA-trace build rules.
src/​kernel/​platform/​tigerlake/​include/​platform/​trace/​trace.h Relocates Tiger Lake trace header.
src/​kernel/​platform/​tigerlake/​include/​platform/​platform.h Relocates Tiger Lake platform definitions.
src/​kernel/​platform/​tigerlake/​include/​platform/​lib/​memory.h Removes conditional DMA-trace allocation.
src/​kernel/​platform/​tigerlake/​include/​platform/​lib/​mailbox.h Relocates Tiger Lake mailbox header.
src/​kernel/​platform/​README.md Updates platform location and documentation link.
src/​kernel/​platform/​qemu_xtensa/​platform.c Relocates QEMU platform stubs.
src/​kernel/​platform/​qemu_xtensa/​include/​platform/​trace/​trace.h Relocates QEMU trace definitions.
src/​kernel/​platform/​qemu_xtensa/​include/​platform/​platform.h Relocates QEMU platform definitions.
src/​kernel/​platform/​qemu_xtensa/​include/​platform/​lib/​memory.h Relocates QEMU memory definitions.
src/​kernel/​platform/​qemu_xtensa/​include/​platform/​lib/​mailbox.h Relocates QEMU mailbox stubs.
src/​kernel/​platform/​qemu_xtensa/​include/​platform/​lib/​dma.h Relocates QEMU DMA definitions.
src/​kernel/​platform/​qemu_xtensa/​include/​platform/​lib/​dai.h Relocates QEMU DAI placeholder.
src/​kernel/​platform/​qemu_xtensa/​include/​platform/​lib/​clk.h Relocates QEMU clock definitions.
src/​kernel/​platform/​posix/​include/​platform/​trace/​trace.h Relocates POSIX trace stub.
src/​kernel/​platform/​posix/​include/​platform/​platform.h Relocates POSIX platform definitions.
src/​kernel/​platform/​posix/​include/​platform/​lib/​pm_runtime.h Relocates POSIX power-management stubs.
src/​kernel/​platform/​posix/​include/​platform/​lib/​memory.h Relocates POSIX memory definitions.
src/​kernel/​platform/​posix/​include/​platform/​lib/​mailbox.h Relocates POSIX mailbox stubs.
src/​kernel/​platform/​posix/​include/​platform/​lib/​dma.h Relocates POSIX DMA definitions.
src/​kernel/​platform/​posix/​include/​platform/​lib/​dai.h Relocates POSIX DAI definitions.
src/​kernel/​platform/​posix/​include/​platform/​lib/​cpu.h Relocates POSIX CPU declarations.
src/​kernel/​platform/​posix/​include/​platform/​lib/​clk.h Relocates POSIX clock declarations.
src/​kernel/​platform/​posix/​include/​platform/​fuzz.h Relocates simulator fuzzing interface.
src/​kernel/​platform/​posix/​include/​platform/​drivers/​interrupt.h Relocates POSIX interrupt definitions.
src/​kernel/​platform/​posix/​include/​platform/​drivers/​idc.h Relocates POSIX inter-core messaging stub.
src/​kernel/​platform/​novalake/​lib/​clk.c Relocates Nova Lake clock table.
src/​kernel/​platform/​novalake/​include/​platform/​trace/​trace.h Relocates Nova Lake trace stub.
src/​kernel/​platform/​novalake/​include/​platform/​platform.h Relocates Nova Lake platform definitions.
src/​kernel/​platform/​novalake/​include/​platform/​lib/​mailbox.h Relocates Nova Lake mailbox header.
src/​kernel/​platform/​novalake/​include/​platform/​lib/​clk.h Relocates Nova Lake clock definitions.
src/​kernel/​platform/​mtk/​tools/​README.txt Relocates AFE generator documentation.
src/​kernel/​platform/​mtk/​tools/​build.sh Updates generator source and include paths.
src/​kernel/​platform/​mtk/​include/​platform/​trace/​trace.h Relocates MediaTek trace placeholder.
src/​kernel/​platform/​mtk/​include/​platform/​platform.h Relocates MediaTek platform definitions.
src/​kernel/​platform/​mtk/​include/​platform/​lib/​pm_runtime.h Relocates MediaTek power-management stubs.
src/​kernel/​platform/​mtk/​include/​platform/​lib/​mailbox.h Relocates MediaTek mailbox definitions.
src/​kernel/​platform/​mtk/​include/​platform/​lib/​dma.h Relocates MediaTek DMA definitions.
src/​kernel/​platform/​mtk/​include/​platform/​lib/​dai.h Relocates MediaTek DAI placeholder.
src/​kernel/​platform/​mtk/​include/​platform/​lib/​cpu.h Relocates MediaTek CPU definitions.
src/​kernel/​platform/​mtk/​include/​platform/​lib/​clk.h Relocates MediaTek clock definitions.
src/​kernel/​platform/​meteorlake/​lib/​clk.c Relocates Meteor Lake clock table.
src/​kernel/​platform/​meteorlake/​include/​platform/​trace/​trace.h Relocates Meteor Lake trace stub.
src/​kernel/​platform/​meteorlake/​include/​platform/​platform.h Relocates Meteor Lake platform definitions.
src/​kernel/​platform/​meteorlake/​include/​platform/​lib/​mailbox.h Relocates Meteor Lake mailbox header.
src/​kernel/​platform/​meteorlake/​include/​platform/​lib/​clk.h Relocates Meteor Lake clock definitions.
src/​kernel/​platform/​lunarlake/​lib/​clk.c Relocates Lunar Lake clock table.
src/​kernel/​platform/​lunarlake/​include/​platform/​trace/​trace.h Relocates Lunar Lake trace stub.
src/​kernel/​platform/​lunarlake/​include/​platform/​platform.h Relocates Lunar Lake platform definitions.
src/​kernel/​platform/​lunarlake/​include/​platform/​lib/​mailbox.h Relocates Lunar Lake mailbox header.
src/​kernel/​platform/​lunarlake/​include/​platform/​lib/​clk.h Relocates Lunar Lake clock definitions.
src/​kernel/​platform/​library/​schedule/​CMakeLists.txt Relocates host scheduler build rules.
src/​kernel/​platform/​library/​platform.c Relocates host platform initialization.
src/​kernel/​platform/​library/​panic.c Relocates host panic implementation.
src/​kernel/​platform/​library/​lib/​trace.c Removes DMA-trace header dependency.
src/​kernel/​platform/​library/​lib/​pm_runtime.c Relocates host power-management stubs.
src/​kernel/​platform/​library/​lib/​dai.c Relocates host DAI initialization.
src/​kernel/​platform/​library/​lib/​CMakeLists.txt Builds host trace support unconditionally.
src/​kernel/​platform/​library/​lib/​clk.c Relocates host clock stubs.
src/​kernel/​platform/​library/​lib/​alloc.c Relocates host allocation implementation.
src/​kernel/​platform/​library/​init.c Relocates host SOF context.
src/​kernel/​platform/​library/​include/​platform/​platform.h Relocates host platform definitions.
src/​kernel/​platform/​library/​include/​platform/​lib/​pm_runtime.h Relocates host power-management header.
src/​kernel/​platform/​library/​include/​platform/​lib/​ll_schedule.h Relocates host scheduler declarations.
src/​kernel/​platform/​library/​include/​platform/​lib/​dma.h Relocates host DMA definitions.
src/​kernel/​platform/​library/​include/​platform/​lib/​dai.h Relocates host DAI definitions.
src/​kernel/​platform/​library/​include/​platform/​lib/​cpu.h Relocates host CPU definitions.
src/​kernel/​platform/​library/​include/​platform/​lib/​clk.h Relocates host clock definitions.
src/​kernel/​platform/​library/​include/​platform/​drivers/​pmc.h Relocates host power-controller declarations.
src/​kernel/​platform/​library/​include/​platform/​drivers/​idc.h Relocates host inter-core messaging stubs.
src/​kernel/​platform/​library/​CMakeLists.txt Relocates host platform build rules.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​version.h Relocates cAVS version definitions.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​trace/​trace.h Relocates cAVS trace-point implementation.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​mem_window.h Relocates memory-window declarations.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​lib/​power_down.h Relocates power-down interface.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​lib/​memory.h Relocates cAVS memory definitions.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​ext_manifest.h Relocates cAVS manifest definitions.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​drivers/​timestamp.h Relocates timestamp register definitions.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​drivers/​sideband-ipc.h Relocates sideband IPC register definitions.
src/​kernel/​platform/​intel/​cavs/​include/​cavs/​drivers/​mn.h Relocates clock-divider register definitions.
src/​kernel/​platform/​intel/​ace/​include/​auth/​intel_status_logger_api.h Relocates status-logger interface.
src/​kernel/​platform/​intel/​ace/​include/​ace/​version.h Relocates ACE version definitions.
src/​kernel/​platform/​intel/​ace/​include/​ace/​lib/​memory.h Relocates ACE memory header.
src/​kernel/​platform/​intel/​ace/​include/​ace/​lib/​clk.h Relocates ACE clock declarations.
src/​kernel/​platform/​imx95/​linker/​data-sections.ld Relocates firmware metadata linker section.
src/​kernel/​platform/​imx95/​lib/​clk.c Relocates i.MX95 clock initialization.
src/​kernel/​platform/​imx95/​include/​platform/​trace/​trace.h Relocates i.MX95 trace placeholder.
src/​kernel/​platform/​imx95/​include/​platform/​platform.h Relocates i.MX95 platform definitions.
src/​kernel/​platform/​imx95/​include/​platform/​lib/​memory.h Relocates i.MX95 memory definitions.
src/​kernel/​platform/​imx95/​include/​platform/​lib/​mailbox.h Relocates i.MX95 mailbox definitions.
src/​kernel/​platform/​imx95/​include/​platform/​lib/​dma.h Relocates i.MX95 DMA placeholder.
src/​kernel/​platform/​imx95/​include/​platform/​lib/​clk.h Relocates i.MX95 clock declarations.
src/​kernel/​platform/​imx93_a55/​lib/​clk.c Relocates i.MX93 clock initialization.
src/​kernel/​platform/​imx93_a55/​include/​platform/​trace/​trace.h Relocates i.MX93 trace placeholder.
src/​kernel/​platform/​imx93_a55/​include/​platform/​platform.h Relocates i.MX93 platform definitions.
src/​kernel/​platform/​imx93_a55/​include/​platform/​lib/​memory.h Relocates i.MX93 memory definitions.
src/​kernel/​platform/​imx93_a55/​include/​platform/​lib/​dma.h Relocates i.MX93 DMA definitions.
src/​kernel/​platform/​imx93_a55/​include/​platform/​lib/​dai.h Relocates i.MX93 DAI placeholder.
src/​kernel/​platform/​imx93_a55/​include/​platform/​lib/​clk.h Relocates i.MX93 clock declarations.
src/​kernel/​platform/​imx93_a55/​include/​platform/​drivers/​idc.h Relocates i.MX93 inter-core messaging stub.
src/​kernel/​platform/​imx8ulp/​platform.c Removes DMA-trace initialization.
src/​kernel/​platform/​imx8ulp/​lib/​clk.c Relocates i.MX8ULP clock initialization.
src/​kernel/​platform/​imx8ulp/​include/​platform/​trace/​trace.h Relocates i.MX8ULP trace stub.
src/​kernel/​platform/​imx8ulp/​include/​platform/​lib/​dma.h Relocates i.MX8ULP DMA definitions.
src/​kernel/​platform/​imx8ulp/​include/​platform/​lib/​dai.h Relocates i.MX8ULP DAI placeholder.
src/​kernel/​platform/​imx8ulp/​include/​platform/​lib/​cpu.h Relocates i.MX8ULP CPU definitions.
src/​kernel/​platform/​imx8ulp/​include/​platform/​lib/​clk.h Relocates i.MX8ULP clock declarations.
src/​kernel/​platform/​imx8ulp/​include/​platform/​drivers/​interrupt.h Relocates i.MX8ULP interrupt definitions.
src/​kernel/​platform/​imx8ulp/​include/​platform/​drivers/​idc.h Relocates i.MX8ULP inter-core messaging stubs.
src/​kernel/​platform/​imx8ulp/​include/​arch/​xtensa/​config/​defs.h Relocates Xtensa compatibility header.
src/​kernel/​platform/​imx8m/​platform.c Removes DMA-trace initialization and include.
src/​kernel/​platform/​imx8m/​lib/​clk.c Relocates i.MX8M clock initialization.
src/​kernel/​platform/​imx8m/​include/​platform/​trace/​trace.h Relocates i.MX8M trace stub.
src/​kernel/​platform/​imx8m/​include/​platform/​platform.h Relocates i.MX8M platform definitions.
src/​kernel/​platform/​imx8m/​include/​platform/​lib/​pm_runtime.h Relocates i.MX8M power-management stubs.
src/​kernel/​platform/​imx8m/​include/​platform/​lib/​dma.h Relocates i.MX8M DMA definitions.
src/​kernel/​platform/​imx8m/​include/​platform/​lib/​dai.h Relocates i.MX8M DAI placeholder.
src/​kernel/​platform/​imx8m/​include/​platform/​lib/​cpu.h Relocates i.MX8M CPU definitions.
src/​kernel/​platform/​imx8m/​include/​platform/​lib/​clk.h Relocates i.MX8M clock declarations.
src/​kernel/​platform/​imx8m/​include/​platform/​drivers/​idc.h Relocates i.MX8M inter-core messaging stubs.
src/​kernel/​platform/​imx8m/​include/​arch/​xtensa/​config/​defs.h Relocates Xtensa compatibility header.
src/​kernel/​platform/​imx8m_cm7/​linker/​data-sections.ld Relocates firmware metadata linker section.
src/​kernel/​platform/​imx8m_cm7/​lib/​clk.c Relocates Cortex-M7 clock initialization.
src/​kernel/​platform/​imx8m_cm7/​include/​platform/​trace/​trace.h Relocates Cortex-M7 trace placeholder.
src/​kernel/​platform/​imx8m_cm7/​include/​platform/​platform.h Relocates Cortex-M7 platform definitions.
src/​kernel/​platform/​imx8m_cm7/​include/​platform/​lib/​memory.h Relocates Cortex-M7 memory definitions.
src/​kernel/​platform/​imx8m_cm7/​include/​platform/​lib/​mailbox.h Relocates Cortex-M7 mailbox definitions.
src/​kernel/​platform/​imx8m_cm7/​include/​platform/​lib/​dma.h Relocates Cortex-M7 DMA placeholder.
src/​kernel/​platform/​imx8m_cm7/​include/​platform/​lib/​clk.h Relocates Cortex-M7 clock declarations.
src/​kernel/​platform/​imx8/​lib/​clk.c Relocates i.MX8 clock initialization.
src/​kernel/​platform/​imx8/​include/​platform/​trace/​trace.h Relocates i.MX8 trace stub.
src/​kernel/​platform/​imx8/​include/​platform/​lib/​dma.h Relocates i.MX8 DMA definitions.
src/​kernel/​platform/​imx8/​include/​platform/​lib/​dai.h Relocates i.MX8 DAI placeholder.
src/​kernel/​platform/​imx8/​include/​platform/​lib/​cpu.h Relocates i.MX8 CPU definitions.
src/​kernel/​platform/​imx8/​include/​platform/​lib/​clk.h Relocates i.MX8 clock declarations.
src/​kernel/​platform/​imx8/​include/​platform/​drivers/​idc.h Relocates i.MX8 inter-core messaging stubs.
src/​kernel/​platform/​imx8/​include/​arch/​xtensa/​config/​defs.h Relocates Xtensa compatibility header.
src/​kernel/​platform/​CMakeLists.txt Relocates host platform build entry.
src/​kernel/​platform/​amd/​rembrandt/​platform.c Removes DMA-trace allocation and initialization.
src/​kernel/​platform/​amd/​rembrandt/​include/​arch/​xtensa/​config/​defs.h Relocates Xtensa compatibility header.
src/​kernel/​platform/​amd/​common/​include/​platform/​trace/​trace.h Relocates AMD trace stub.
src/​kernel/​platform/​amd/​common/​include/​platform/​lib/​pm_runtime.h Relocates AMD power-management stubs.
src/​kernel/​platform/​amd/​common/​include/​platform/​lib/​mailbox.h Relocates AMD mailbox interface.
src/​kernel/​platform/​amd/​common/​include/​platform/​lib/​dma.h Relocates AMD DMA definitions.
src/​kernel/​platform/​amd/​common/​include/​platform/​lib/​dai.h Relocates AMD DAI definitions.
src/​kernel/​platform/​amd/​common/​include/​platform/​lib/​cpu.h Relocates AMD CPU definitions.
src/​kernel/​platform/​amd/​common/​include/​platform/​lib/​clk.h Relocates AMD clock declarations.
src/​kernel/​platform/​amd/​common/​include/​platform/​ipc.h Relocates AMD IPC interface.
src/​kernel/​platform/​amd/​common/​include/​platform/​drivers/​idc.h Relocates AMD inter-core messaging stubs.
src/​kernel/​platform/​amd/​common/​include/​platform/​acp_sp_dma.h Relocates AMD serial-port DMA interface.
src/​kernel/​platform/​amd/​common/​include/​platform/​acp_dmic_dma.h Relocates AMD microphone DMA interface.
src/​kernel/​platform/​amd/​common/​include/​platform/​acp_dma.h Relocates AMD DMA structures and declarations.
src/​kernel/​platform/​amd/​acp_7_x/​platform.c Removes DMA-trace include.
src/​kernel/​platform/​amd/​acp_7_0/​platform.c Removes DMA-trace include.
src/​kernel/​platform/​amd/​acp_7_0/​include/​arch/​xtensa/​config/​defs.h Relocates Xtensa compatibility header.
src/​kernel/​platform/​ace30/​lib/​clk.c Relocates ACE 3.0 clock table.
src/​kernel/​platform/​ace30/​include/​platform/​trace/​trace.h Relocates ACE 3.0 trace stub.
src/​kernel/​platform/​ace30/​include/​platform/​platform.h Relocates ACE 3.0 platform definitions.
src/​kernel/​platform/​ace30/​include/​platform/​lib/​memory.h Relocates ACE 3.0 memory definitions.
src/​kernel/​platform/​ace30/​include/​platform/​lib/​mailbox.h Relocates ACE 3.0 mailbox header.
src/​kernel/​platform/​ace30/​include/​platform/​lib/​clk.h Relocates ACE 3.0 clock definitions.
src/​kernel/​logging/​Kconfig Houses relocated probe logging options.
src/​kernel/​Kconfig Includes probe logging configuration.
src/​kernel/​ipc/​ipc3/​helper.c Removes unused trace notification helpers.
src/​kernel/​init/​README.md Removes obsolete trace initialization description.
src/​kernel/​init/​init.c Removes DMA-trace initialization.
src/​kernel/​CMakeLists.txt Adds relocated host architecture and platform builds.
src/​kernel/​arch/​xtensa/​Kconfig Relocates Xtensa configuration.
src/​kernel/​arch/​README.md Updates architecture location and documentation link.
src/​kernel/​arch/​Kconfig Relocates architecture configuration entry.
src/​kernel/​arch/​host/​lib/​notifier.c Relocates host notifier implementation.
src/​kernel/​arch/​host/​lib/​CMakeLists.txt Relocates host architecture library rules.
src/​kernel/​arch/​host/​lib/​ams.c Relocates host messaging context accessor.
src/​kernel/​arch/​host/​include/​arch/​string.h Relocates host string helpers.
src/​kernel/​arch/​host/​include/​arch/​sof.h Relocates host architecture placeholder.
src/​kernel/​arch/​host/​include/​arch/​schedule/​task.h Relocates host task placeholder.
src/​kernel/​arch/​host/​include/​arch/​lib/​wait.h Relocates host wait stubs.
src/​kernel/​arch/​host/​include/​arch/​lib/​cpu.h Relocates host CPU stubs.
src/​kernel/​arch/​host/​include/​arch/​lib/​cache.h Relocates host cache stubs.
src/​kernel/​arch/​host/​include/​arch/​drivers/​timer.h Relocates host timer stubs.
src/​kernel/​arch/​host/​include/​arch/​drivers/​interrupt.h Relocates host interrupt stubs.
src/​kernel/​arch/​host/​include/​arch/​drivers/​idc.h Relocates host inter-core messaging placeholder.
src/​kernel/​arch/​host/​include/​arch/​debug/​panic.h Relocates host register-dump stub.
src/​kernel/​arch/​host/​include/​arch/​debug/​backtrace.h Relocates host backtrace helper.
src/​kernel/​arch/​host/​include/​arch/​compiler_info.h Relocates host compiler metadata definitions.
src/​kernel/​arch/​host/​configs/​library_defconfig Removes verbose DMA-trace setting.
src/​kernel/​arch/​host/​CMakeLists.txt Updates relocated host include paths.
src/​kernel/​arch/​CMakeLists.txt Relocates architecture build entry.
src/​Kconfig Updates kernel paths and removes trace configuration.
src/​ipc/​README.md Updates documented platform driver path.
src/​ipc/​ipc4/​helper.c Removes unused trace notification helpers.
src/​ipc/​CMakeLists.txt Removes DMA-copy build rules.
src/​include/​sof/​userspace/​README.md Documents consolidated kernel-only tree.
src/​include/​sof/​ipc/​msg.h Removes trace helper declarations.
src/​include/​sof/​ipc/​common.h Removes trace-position API declaration.
src/​include/​sof/​debug/​debug.h Removes legacy hexadecimal trace macro.
src/​debug/​panic.c Removes DMA-trace panic flush.
src/​CMakeLists.txt Removes old platform, architecture, and trace entries.
src/​audio/​README.md Updates documented kernel platform path.
src/​audio/​module_adapter/​module/​waves/​waves.c Removes legacy verbose trace dumps.
src/​audio/​Kconfig Removes trace DMA-channel option.
scripts/​rebuild-testbench.sh Updates defconfig path in help text.
scripts/​kernel_user_partition.txt Updates platform classification and removes deleted header.
scripts/​cmake/​kconfig.cmake Updates configuration discovery paths.
scripts/​cmake/​defconfigs.cmake Updates architecture defconfig directory.
posix/​include/​rtos/​sof.h Removes DMA-trace context fields.
doc/​sof.doxygen.in Removes obsolete trace predefinition.
CODEOWNERS Updates platform ownership paths.
CMakeLists.txt Updates unit-test architecture path.
app/​prj.conf Removes obsolete trace setting.
app/​CMakeLists.txt Updates Xtensa include path.
app/​boards/​intel_adsp_ace40_nvls.conf Removes obsolete trace setting.
app/​boards/​intel_adsp_ace40_nvl.conf Removes obsolete trace setting.
app/​boards/​imx8mp_evk_mimx8ml8_adsp.conf Removes obsolete trace setting.
app/​boards/​acp_7_x_adsp.conf Removes obsolete trace setting.
app/​boards/​acp_7_0_adsp.conf Removes obsolete trace setting.
AGENTS.md Updates guidance for consolidated kernel tree.

Review effort: Balanced

lrgirdwo and others added 4 commits November 13, 2026 17:24
The Kconfig options of the SOF probe log backend
(CONFIG_LOG_BACKEND_SOF_PROBE*) are defined in src/trace/Kconfig,
which is otherwise only about the SOF DMA trace. Move them to a Kconfig
file next to the backend, in src/kernel/logging, sourced from
src/kernel/Kconfig. The option values are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
The host builds (testbench, host library) print their traces to stderr
through the CONFIG_LIBRARY part of trace-soflogger.h, which is only
included when CONFIG_TRACE is set. CONFIG_TRACE also builds the SOF DMA
trace, which the host builds do not need.

Move the host printing to a header of its own, trace-host.h, and use it
for CONFIG_LIBRARY builds. It maps tr_err(), tr_warn(), tr_info(),
tr_dbg() and the component trace macros to the same levels and output
as before, which is what the host library got with CONFIG_TRACEV and
CONFIG_TRACEE set. Disable CONFIG_TRACE for the host library, build the
host trace support unconditionally, and drop CONFIG_TRACEV from
library_defconfig.

The host library code is unchanged; only the trace contexts move from
the .trace_ctx section, which only the firmware dictionary logger uses,
to normal data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
The SOF DMA trace (CONFIG_TRACE) sends dictionary-encoded traces for
the sof-logger tool over a host DMA channel. Zephyr builds use Zephyr
logging instead and cannot enable it at all: zephyr/include/sof/trace/
preproc.h stops the build if CONFIG_TRACE is set. Since the previous
patch the host builds do not use it either, so nothing builds it any
more.

Remove it:
- src/trace with its Kconfig (CONFIG_TRACE, CONFIG_TRACEV, CONFIG_TRACEE,
  CONFIG_TRACEM and the trace filtering options), trace-soflogger.h and
  dma-trace.h;
- the IPC DMA copy helper (src/ipc/dma-copy.c) and
  CONFIG_TRACE_CHANNEL, used only by the DMA trace;
- the code under CONFIG_TRACE in the IPC3 handler (the DMA trace and
  trace filter commands; the stub that accepts trace commands without
  a DMA trace stays), the i.MX and AMD platform init, the system init,
  the panic handler and the cmocka mocks, and the DMA trace calls in
  the IPC3 PM gate handler;
- the trace position helpers ipc_build_trace_posn() and
  ipc_trigger_trace_xfer(), the trace and DMA trace fields of struct
  sof, and dump_hex() with the two CONFIG_TRACEV blocks in the Waves
  module that used it;
- the CONFIG_TRACE=n settings in the board and application configs,
  and the CONFIG_TRACE_CHANNEL settings in the cmocka defconfigs.

trace.h keeps the Zephyr logging, host and no-op trace macros. The IPC
trace structures in include/ipc/trace.h are host ABI and stay. The
dma_copy_*() declarations and DMA_TRACE_CHANNEL are still referenced
by the legacy (non-native driver) probe and AMD DMA code and are left
for the removal of that code.

No firmware build compiled the DMA trace itself. The firmware does
change in two ways: the unused ipc_build_trace_posn() and
ipc_trigger_trace_xfer() are no longer built, and struct sof is two
pointers smaller, which changes the field offsets in the code that
uses it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
With src/trace removed, src/kernel holds all directories of kernel-only
code. Update AGENTS.md and the user-space README, which listed the
directories not yet moved there, and the init README, which still
described the DMA trace initialization.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
@intel-sofci

Copy link
Copy Markdown

PR 11421: test results

Run date: 2026-11-13 20:59 UTC

Tested commit: 2f1f970195f7fd36cd7ce042e7aee0242a2f3fb9

mtl pass rate lnl pass rate ptl pass rate wcl pass rate nvl pass rate

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.

4 participants