Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions tools/topology/topology2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ add_custom_target(topologies2 ALL
# Create directory structure to be provided for deployment
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/target/sof-ipc4-tplg
COMMAND ${CMAKE_COMMAND} -E create_symlink sof-ipc4-tplg ${CMAKE_CURRENT_BINARY_DIR}/target/sof-ace-tplg
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/target/sof-tplg
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/target/development
# copy the topology files only to target
COMMAND ${CMAKE_COMMAND} -E copy_if_different production/*.tplg ${CMAKE_CURRENT_BINARY_DIR}/target/sof-ipc4-tplg/
COMMAND ${CMAKE_COMMAND} -E copy_if_different production/ipc3/*.tplg ${CMAKE_CURRENT_BINARY_DIR}/target/sof-tplg/
COMMAND ${CMAKE_COMMAND} -E copy_if_different development/*.tplg ${CMAKE_CURRENT_BINARY_DIR}/target/development/
)

Expand Down Expand Up @@ -37,6 +39,18 @@ add_custom_target(abi_target
DEPENDS abi.conf
)

# Atom platforms use IPC3 even when the source topology is written using the
# topology2 object model. Keep a separate ABI manifest so IPC3 and IPC4 output
# can be built together without changing the existing production topologies.
add_custom_command(OUTPUT abi-ipc3.conf
COMMAND > abi-ipc3.conf ${CMAKE_CURRENT_SOURCE_DIR}/get_abi.sh
${SOF_ROOT_SOURCE_DIRECTORY} "ipc3"
DEPENDS ${SOF_ROOT_SOURCE_DIRECTORY}/src/include/kernel/abi.h
)
add_custom_target(abi_ipc3_target
DEPENDS abi-ipc3.conf
)

add_dependencies(topologies2 topology2_dev topology2_prod)
add_subdirectory(development)
add_subdirectory(production)
23 changes: 23 additions & 0 deletions tools/topology/topology2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@ variables such as `DMIC_DRIVER_VERSION`, `SSP_BLOB_VERSION`, and `NUM_HDMIS`.

Supported platforms:

* `cht` — Intel Cherry Trail / Atom (IPC3; currently Yoga Book RT5677 only)
* `tgl` — Intel Tiger Lake / Alder Lake (CAVS 2.5)
* `mtl` — Intel Meteor Lake (ACE 1.x)
* `lnl` — Intel Lunar Lake (ACE 2.x)
Expand All @@ -397,10 +398,32 @@ Select the cmake file matching the target platform generation:

| Platform | CMake Target File |
|---|---|
| Cherry Trail IPC3 | `tplg-targets-ipc3.cmake` |
| Tiger Lake / Alder Lake | `tplg-targets-cavs25.cmake` |
| Meteor Lake | `tplg-targets-ace1.cmake` |
| Lunar Lake | `tplg-targets-ace2.cmake` |
| Panther Lake | `tplg-targets-ace3.cmake` |
| HDA generic | `tplg-targets-hda-generic.cmake` |

### Cherry Trail IPC3

Topology2 describes the source format and does not require the target firmware
to use IPC4. Cherry Trail firmware uses IPC3, so its targets are built with a
separate IPC3 ABI manifest and installed under `target/sof-tplg` instead of the
IPC4/ACE topology directory.

The Yoga Book topology can be built directly with:

```bash
cmake --build . --target topology2_prod_ipc3_sof-cht-rt5677
python3 ../tools/topology/topology2/verify-cht-rt5677.py \
topology/topology2/production/ipc3/sof-cht-rt5677.tplg
```

`sof-cht-rt5677.tplg` configures SSP2 for DSP_B with an inverted bit clock and
non-inverted frame clock, 48 kHz stereo S24_LE, four 25-bit TDM slots, a
4.8 MHz bit clock, and a 19.2 MHz codec MCLK. These values must stay aligned
with the Linux `cht-yogabook` machine driver. The verifier parses the compiled
artifact and rejects changes to the SSP link or the PCM0/PCM1 stereo contract.

Development and testing topologies go in `development/tplg-targets.cmake`.
Loading