Skip to content

Commit ef63f89

Browse files
ujfalusilgirdwood
authored andcommitted
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. 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 ef63f89

File tree

1 file changed

+50
-7
lines changed

1 file changed

+50
-7
lines changed

getting_started/intel_debug/introduction.rst

Lines changed: 50 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,46 @@ 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+
- **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
153+
- **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.
154+
155+
Notes:
156+
- The Kernel will attempt to load \*-openmodules.ri followed by \*-debug.ri from the library path after the base firmware boot if they exist.
157+
- additional libraries referenced by topology files or drivers will be loaded based on the UUID of the module from the library path.
158+
159+
160+
1.4 Firmware lookup paths
161+
-------------------------
162+
120163
Linux SOF will look up firmware files at the following paths:
121164

122165
.. _intel_firmware_paths:
@@ -144,14 +187,14 @@ Linux SOF will look up firmware files at the following paths:
144187
- IPC4
145188
- /lib/firmware/intel/sof-ipc4/PLAT/community/sof-PLAT.ri
146189
- PLAT = tgl, adl, rpl, mtl, lnl, ...
147-
* - Tiger Lake and newer Loadable Module
190+
* - Meteor Lake and newer Loadable libraries
148191
- 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)
192+
- /lib/firmware/intel/sof-ipc4-lib/PLAT/
193+
- PLAT = mtl, lnl, ...
194+
* - Meteor Lake and newer Loadable libraries (community signed)
152195
- IPC4
153-
- /lib/firmware/intel/sof-ipc4-lib/PLAT/community/UUID.bin
154-
- PLAT as above, UUID = UUID of the module
196+
- /lib/firmware/intel/sof-ipc4-lib/PLAT/community/
197+
- PLAT = mtl, lnl, ...
155198

156199
Important notices:
157200
- 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)