Repository navigation
Conversation
lgirdwood
force-pushed
the
feature/esp32c6-sof-port
branch
from
October 15, 2026 16:31
ad95c7c to
2ed1190
Compare
lgirdwood
force-pushed
the
feature/esp32c6-sof-port
branch
from
November 1, 2026 21:04
6a85b07 to
977f50b
Compare
Update west manifest to use lgirdwood/zephyr on branch feature/esp32c6-dai-port and lgirdwood/hal_espressif on branch esp32p4-uac2 for ESP32-C6 DAI driver and peripheral support. Signed-off-by: Liam Girdwood <[email protected]>
lgirdwood
force-pushed
the
feature/esp32c6-sof-port
branch
2 times, most recently
from
November 1, 2026 21:56
32ecd83 to
0859dcf
Compare
…stry entries - Register usb_audio and bt_audio UUIDs in uuid-registry.txt. - Define DCACHE_LINE_SIZE 32 for ESP32-C6 in rtos/cache.h. - Add static heapmem buffer for ESP32 platforms in zephyr/lib/alloc.c. Signed-off-by: Liam Girdwood <[email protected]>
…port - Add COMP_USB_AUDIO pseudo-host streaming endpoint component for platforms without hardware USB Audio Class 2.0 device controllers. - Support synthesizing IPC3 volume configuration in vol_static_create(). - Guard IPC4 static selector module ops behind CONFIG_IPC_MAJOR_4. - In dai-zephyr.c, add SOF_DAI_ESP32_I2S and SOF_DAI_ESP32_PDM cases and allow bursting up to 4 periods on ESP32 to absorb scheduling jitter. - In ipc3/dai.c, handle SOF_DAI_ESP32_I2S and SOF_DAI_ESP32_PDM in dai_config_dma_channel() and ipc_dai_data_config(). - In static_pipeline_loader.c, call dai_set_config() and set SOF_DAI_CONFIG_FLAGS_HW_PARAMS on IPC3 DAI endpoint creation. - Add SOF_DAI_ESP32_I2S / SOF_DAI_ESP32_PDM to ipc/dai.h and SOF_DMA_DEV_I2S / SOF_DMA_DEV_PDM to sof/lib/dma.h. Signed-off-by: Liam Girdwood <[email protected]>
- Add CONFIG_PLATFORM_ESP32C6 to src/platform/Kconfig selecting ZEPHYR_LOG, ZEPHYR_NATIVE_DRIVERS, and STATIC_PIPELINE. - Add src/platform/esp32c6 platform support with clock control, interrupt handlers, mailbox stubs, memory mappings, and platform init. - Define static S16_LE stereo playback and capture pipelines with volume controls in esp32c6_pipeline_def.c. - Add board configurations and overlays for Seeed Studio XIAO ESP32-C6 (xiao_esp32c6/esp32c6/hpcore) and Waveshare ESP32-C6-Zero (esp32c6_devkitc/esp32c6/hpcore). - Add DMA driver registration for ESP32 GDMA in zephyr/lib/dma.c. - Update app/src/main.c to initialize static pipelines. Signed-off-by: Liam Girdwood <[email protected]>
…oopback test suite - Implement sof_static_pipeline.c providing runtime pipeline trigger, clock mode switching (master/slave), volume/mute controls, and dynamic DAI discovery across static topologies. - Add esp32_shell.c providing interactive SOF shell commands: sof status, play start/stop, cap start/stop/stats/dump, vol, mute, mode, and register dumping. - Add scripts/test_c6_loopback.py automated bidirectional hardware I2S loopback test suite validating forward (XIAO -> Waveshare) and reverse (Waveshare -> XIAO) audio transmission with channel symmetry and waveform verification. Signed-off-by: Liam Girdwood <[email protected]>
lgirdwood
force-pushed
the
feature/esp32c6-sof-port
branch
from
November 1, 2026 22:12
0859dcf to
5d0d566
Compare
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.
Summary
This draft PR introduces Sound Open Firmware (SOF) platform support for Espressif ESP32-C6 (Single-core RISC-V @ 160 MHz) development boards:
Companion Zephyr DAI driver changes are pushed to
lgirdwood/zephyron branchfeature/esp32c6-dai-port.Key Changes
src/platform/esp32c6/.xiao_esp32c6/esp32c6/hpcoreandesp32c6_devkitc/esp32c6/hpcore.esp32c6_pipeline_def.cwith S16_LE stereo playback and capture pipelines, intermediate buffers, and static volume kcontrols.sof_static_pipeline_set_clock_mode()with dynamic topology iteration matchingSOF_STATIC_COMP_DAI, preventing invalid pointer casting across topologies with different component layouts.sof cap dump <count>inesp32_shell.cto inspect captured PCM stereo waveforms directly from the console.scripts/test_c6_loopback.pyto automate bidirectional hardware I2S loopback testing between XIAO and Waveshare with frame synchronization, RMS/pk-pk checks, and channel symmetry verification.Hardware Loopback Verification
Executed bidirectional loopback between Seeed XIAO and Waveshare C6-Zero connected via GPIO 18 (BCLK), GPIO 19 (WS), GPIO 20 (DOUT), and GPIO 21 (DIN):
max|L - R| = 0, RMS 5297, pk-pk 64632).max|L - R| = 0, 1000 Hz, RMS 1414, pk-pk 4000).0.