SDAA320 June   2026 AM625 , AM625SIP , AM62D-Q1 , AM62L , AM62P

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
    1. 1.1 Key Highlights:
    2. 1.2 Basic Concepts:
      1. 1.2.1 PipeWire Server
      2. 1.2.2 PipeWire Clients
      3. 1.2.3 Session Manager
      4. 1.2.4 Nodes, Ports, and Links
    3. 1.3 PipeWire Main Components
  5. Linux Audio Stack
  6. Build SDK Image with PipeWire Support via Yocto
    1. 3.1 Steps to Run Yocto Builds on Host
      1. 3.1.1 Prerequisites (One-time setup)
    2. 3.2 Clone the oe-layer Setup
    3. 3.3 Download and Apply PipeWire Patches
    4. 3.4 Build PipeWire Image
  7. Setup PipeWire on Sitara Devices
    1. 4.1 Hardware
      1. 4.1.1 SK-AM62B-P1
      2. 4.1.2 TMDS62LEVM
      3. 4.1.3 AUDIO-AM62D-EVM
    2. 4.2 Configure EVM Boot Mode
      1. 4.2.1 SK-AM62B-P1
      2. 4.2.2 TMDS62LEVM
      3. 4.2.3 AUDIO-AM62D-EVM
    3. 4.3 UART Console Setup
    4. 4.4 Flash the SD Card Image
    5. 4.5 Booting EVM with SD Card
  8. Use PipeWire
    1. 5.1 Check Service Status
    2. 5.2 Enable PipeWire and Wireplumber
    3. 5.3 Start PipeWire and WirePlumber
    4. 5.4 General PipeWire commands
      1. 5.4.1 List All Objects Currently in PipeWire Server
      2. 5.4.2 List Only Nodes
      3. 5.4.3 Inspect Specific Object
    5. 5.5 Play and Record Stereo Audio
  9. Configuration
    1. 6.1 Sink and Source Configuration
    2. 6.2 WirePlumber Configuration
  10. Performance Benchmarks
    1. 7.1 Latency
    2. 7.2 CPU and Memory Usage
    3. 7.3 CPU and Memory Usage with Resampling
    4. 7.4 Observations
  11. Summary
  12. References
  13. 10IMPORTANT NOTICE AND DISCLAIMER

Sink and Source Configuration

There are two reference configurations files, sink and source added for AUDIO-AM62D-EVM for 8-channel support in 3.5 mm jacks.

For other Sitara EVMs, requiring only two channels, no additional configuration is necessary. However, the reference configuration can be adapted to modify sample rate, channel count, period size, and other parameters as needed.

90-pipewire-sink.conf

# PipeWire sink configuration for AM62D.
context.objects = [
    {
        factory = adapter
        args = {
            factory.name = api.alsa.pcm.sink
            node.name = "alsa_audio_sink"
            node.description = "Audio Output"
            media.class = "Audio/Sink"
            api.alsa.period-size = 1024
            api.alsa.headroom = 0
            api.alsa.disable-mmap = false
            api.alsa.disable-batch = false
            api.alsa.path = "hw:AM62D2EVM,0"
            audio.rate = 48000
            audio.channels = 8
            audio.position = [ FL FR FC LFE RL RR SL SR ]
        }
    }
]

91-pipewire-source.conf

# PipeWire source configuration for AM62D.
context.objects = [
    {
        factory = adapter
        args = {
            factory.name = api.alsa.pcm.source
            node.name = "alsa_audio_source"
            node.description = "Audio Input"
            media.class = "Audio/Source"
            api.alsa.period-size = 1024
            api.alsa.headroom = 0
            api.alsa.disable-mmap = false
            api.alsa.disable-batch = false
            api.alsa.path = "hw:AM62D2EVM,0"
            audio.rate = 48000
            audio.channels = 8
            audio.position = [ FL FR FC LFE RL RR SL SR ]
        }
    }
]

context.objects

Main configuration array defining objects created in PipeWire context. Each object in this array becomes a node in the PipeWire graph.

factory = adapter

Specifies that this object be created using the "adapter" factory. Adapters in PipeWire are used to bridge between different APIs (in this case, ALSA to PipeWire). Both configuration files use adapter factory to bridge ALSA hardware to PipeWire nodes.

factory.name

Determines direction: output vs input

node.name

Internal PipeWire node identifier. Creates alsa_audio_sink for playback and alsa_audio_source for capture.

node.description

Human-readable name in audio apps.

media.class

PipeWire media classification "Audio/Sink" for playback and "Audio/Source" for recording.

api.alsa.path

For direct hardware access. Only PipeWire can access the audio hardware and ALSA applications must go through PipeWire.

audio.channels

Configures both input and output for 8-channel audio in case of AUDIO-AM62D-EVM.

These configurations create two fundamental nodes in PipeWire's audio graph:

  • Sink Node: Terminal endpoint for 8-channel audio playback
  • Source Node: Starting point for 8-channel audio capture

For more information, please refer Alsa Configuration.