Skip to content

Commit 53f7c96

Browse files
committed
intel_debug: introduction: Add information about modular SOF release content
The firmware supports library loading starting with Meteor Lake and the release system is prepared to offer modular SOF releases starting with Panther Lake (but can be supported from MTL onward). Update the documentation of the SOF release content to reflect this. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
1 parent e26df4f commit 53f7c96

File tree

1 file changed

+52
-7
lines changed

1 file changed

+52
-7
lines changed

getting_started/intel_debug/introduction.rst

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,10 @@ User space and filesystem requirements
9494
Selecting the SOF driver is not enough. Audio is properly configured only if
9595
the following elements are present on the file system.
9696

97-
1. Firmware binary
97+
1. Firmware
98+
-----------
99+
100+
1.1. Base firmware
98101
------------------
99102

100103
The firmware file, ``/lib/firmware/intel/sof/sof-tgl.ri`` (example
@@ -117,6 +120,48 @@ Linux kernel to query whether or not the firmware authentication is enabled,
117120
which means `dmesg` logs cannot be provided to alert the user to an ME
118121
configuration issue.
119122

123+
.. _loadable-libraries:
124+
125+
1.2. Loadable libraries
126+
-----------------------
127+
128+
An IPC4 library is a container of a single or multiple modules (bundle) which
129+
can be loaded to the firmware after it is booted up.
130+
Library loading is supported on Meteor Lake (ACE1) or newer platforms.
131+
132+
Background information: the base firmware always resides in DSP SRAM while the
133+
loaded library is stored in DRAM memory and only the needed code is copied to
134+
SRAM for execution. By moving modules out from the base firmware to a library
135+
can reduce the overall SRAM use depending on the device configuration and
136+
topology.
137+
138+
See :ref:`llext_modules` for technical details.
139+
140+
1.3. Monolithic and modular SOF releases
141+
----------------------------------------
142+
143+
SOF project releases for Intel platforms are either monolithic (only a single firmware binary) or modular (base firmware and external libraries).
144+
145+
1.3.1. Modular SOF releases
146+
---------------------------
147+
148+
See :ref:`loadable-libraries` for details about library support in general.
149+
150+
The released libraries are:
151+
- **sof-PLAT-openmodules.ri** : the bundle contains modules for audio processing not included in the base firmware
152+
153+
- **sof-PLAT-debug.ri** : the bundle contains modules that are needed for firmware debugging and profiling. Used by developers and for bug reporting if needed
154+
155+
- **UUID.bin** : Mainly 3rd party libraries identified by UUID. If the library contains multiple modules then a UUID symlink must be provided for each one.
156+
157+
Notes:
158+
- The Kernel will attempt to load \*-openmodules.ri followed by \*-debug.ri from the library path after the base firmware boot if they exist.
159+
- additional libraries referenced by topology files or drivers will be loaded based on the UUID of the module from the library path.
160+
161+
162+
1.4 Firmware lookup paths
163+
-------------------------
164+
120165
Linux SOF will look up firmware files at the following paths:
121166

122167
.. _intel_firmware_paths:
@@ -144,14 +189,14 @@ Linux SOF will look up firmware files at the following paths:
144189
- IPC4
145190
- /lib/firmware/intel/sof-ipc4/PLAT/community/sof-PLAT.ri
146191
- PLAT = tgl, adl, rpl, mtl, lnl, ...
147-
* - Tiger Lake and newer Loadable Module
192+
* - Meteor Lake and newer Loadable libraries
148193
- IPC4
149-
- /lib/firmware/intel/sof-ipc4-lib/PLAT/UUID.bin
150-
- PLAT as above, UUID = UUID of the module
151-
* - Tiger Lake and newer Loadable Module (community signed)
194+
- /lib/firmware/intel/sof-ipc4-lib/PLAT/
195+
- PLAT = mtl, lnl, ...
196+
* - Meteor Lake and newer Loadable libraries (community signed)
152197
- IPC4
153-
- /lib/firmware/intel/sof-ipc4-lib/PLAT/community/UUID.bin
154-
- PLAT as above, UUID = UUID of the module
198+
- /lib/firmware/intel/sof-ipc4-lib/PLAT/community/
199+
- PLAT = mtl, lnl, ...
155200

156201
Important notices:
157202
- The standard Linux firmware search path and order is followed. The above table covers the base "/lib/firmware" case. See https://docs.kernel.org/driver-api/firmware/fw_search_path.html for more information.

0 commit comments

Comments
 (0)