Skip to content

Commit

Permalink
intel_debug: introduction: Split firmware lookup table for single/mod…
Browse files Browse the repository at this point in the history
…ular firmare release

Separate the firmware lookup table for single and modular SOF release
to be able to document the locations and file names the firmware will
be looking for the individual files.

Extend the description of the two type of SOF release and convert the
list-table to a normal table for better descriptions for the
configurations.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  • Loading branch information
ujfalusi committed Dec 17, 2024
1 parent ef63f89 commit 155fa2a
Showing 1 changed file with 57 additions and 44 deletions.
101 changes: 57 additions & 44 deletions getting_started/intel_debug/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ configuration issue.

An IPC4 library is a container of a single or multiple modules (bundle) which
can be loaded to the firmware after it is booted up.
Library loading is supported on Meteor Lake (ACE1) or newer platforms.
Library loading is supported on Meteor Lake (ACE1) or newer platforms.

Background information: the base firmware always resides in DSP SRAM while the
loaded library is stored in DRAM memory and only the needed code is copied to
Expand All @@ -137,20 +137,28 @@ topology.

See :ref:`llext_modules` for technical details.

1.3. Monolithic and modular SOF releases
----------------------------------------
1.3. Single and modular firmware releases
-----------------------------------------

SOF project releases for Intel platforms are either monolithic (only a single firmware binary) or modular (base firmware and external libraries).
SOF project releases for Intel platforms are either a single firmware or modular firmware based.

1.3.1. Modular SOF releases
---------------------------
1.3.1. Single firmware releases
-------------------------------

See :ref:`loadable-libraries` for details about library support in general.
The release contains:
- **sof-PLAT.ri** : The firmware binary
- **UUID.bin** : On demand loadable library identified by UUID. If the library contains multiple modules then a UUID symlink must be provided for each one. Optional, only supported with IPC4 and on Meteor Lake and newer platforms.

1.3.2. Modular firmware releases
--------------------------------

The released libraries are:
The release contains:
- **sof-PLAT.ri** : The base firmware
- **sof-PLAT-openmodules.ri** : the bundle contains modules for audio processing not included in the base firmware
- **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
- **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.
- **UUID.bin** : On demand loadable library identified by UUID. If the library contains multiple modules then a UUID symlink must be provided for each one.

See :ref:`loadable-libraries` for details about library support in general.

Notes:
- The Kernel will attempt to load \*-openmodules.ri followed by \*-debug.ri from the library path after the base firmware boot if they exist.
Expand All @@ -160,41 +168,46 @@ Notes:
1.4 Firmware lookup paths
-------------------------

Linux SOF will look up firmware files at the following paths:

.. _intel_firmware_paths:
.. list-table:: Firmware look-up paths per Intel platform
:widths: 55 5 50 25
:header-rows: 1

* - Platform
- IPC type
- Firmware load path
- Notes
* - Raptor Lake and older
- IPC3
- /lib/firmware/intel/sof/sof-PLAT.ri
- PLAT = glk, cml, ..., rpl
* - Raptor Lake and older (community signed)
- IPC3
- /lib/firmware/intel/sof/community/sof-PLAT.ri
- PLAT = glk, cml, ..., rpl
* - Tiger Lake and newer
- IPC4
- /lib/firmware/intel/sof-ipc4/PLAT/sof-PLAT.ri
- PLAT = tgl, adl, rpl, mtl, lnl, ...
* - Tiger Lake and newer (community signed)
- IPC4
- /lib/firmware/intel/sof-ipc4/PLAT/community/sof-PLAT.ri
- PLAT = tgl, adl, rpl, mtl, lnl, ...
* - Meteor Lake and newer Loadable libraries
- IPC4
- /lib/firmware/intel/sof-ipc4-lib/PLAT/
- PLAT = mtl, lnl, ...
* - Meteor Lake and newer Loadable libraries (community signed)
- IPC4
- /lib/firmware/intel/sof-ipc4-lib/PLAT/community/
- PLAT = mtl, lnl, ...
Linux SOF will look up firmware files at the following paths.

Look-up paths per Intel platform for **single firmware releases**

.. _intel_monolithic_firmware_paths:

+-----------------------------------------------------------+--------+------------------------------------------------+-----------+-----------------------------------+
|Platform |IPC type|Load path |File name |Notes |
+===========================================================+========+================================================+===========+===================================+
|Raptor Lake and older |IPC3 |/lib/firmware/intel/sof/ |sof-PLAT.ri|PLAT = glk, cml, ..., rpl |
+-----------------------------------------------------------+ +------------------------------------------------+ | |
|Raptor Lake and older (community signed) | |/lib/firmware/intel/sof/community/ | | |
+-----------------------------------------------------------+--------+------------------------------------------------+ +-----------------------------------+
|Tiger Lake and newer |IPC4 |/lib/firmware/intel/sof-ipc4/PLAT/ | |PLAT = tgl, adl, rpl, mtl, lnl, ...|
+-----------------------------------------------------------+ +------------------------------------------------+ | |
|Tiger Lake and newer (community signed) | |/lib/firmware/intel/sof-ipc4/PLAT/community/ | | |
+-----------------------------------------------------------+--------+------------------------------------------------+-----------+-----------------------------------+
|Meteor Lake and newer Loadable libraries |IPC4 |/lib/firmware/intel/sof-ipc4-lib/PLAT/ |UUID.bin |PLAT = mtl, lnl, ... |
+-----------------------------------------------------------+ +------------------------------------------------+ | |
|Meteor Lake and newer Loadable libraries (community signed)| |/lib/firmware/intel/sof-ipc4-lib/PLAT/community/| | |
+-----------------------------------------------------------+--------+------------------------------------------------+-----------+-----------------------------------+

Look-up paths per Intel platform for **modular firmware releases (IPC4 only)**

.. _intel_modular_firmware_paths:

+------------------------------------------------------------+------------------------------------------------+-------------------------+---------------+
|Platform |Load path |File name |Notes |
+============================================================+================================================+=========================+===============+
|Panther Lake and newer |/lib/firmware/intel/sof-ipc4/PLAT/ || |PLAT = ptl, ...|
| | || sof-PLAT.ri | |
| | || sof-PLAT-openmodules.ri| |
| | || sof-PLAT-debug.ri | |
+------------------------------------------------------------+------------------------------------------------+ | -- |
|Panther Lake and newer (community signed) |/lib/firmware/intel/sof-ipc4/PLAT/community/ | | |
+------------------------------------------------------------+------------------------------------------------+-------------------------+ -- |
|Panther Lake and newer Loadable libraries |/lib/firmware/intel/sof-ipc4-lib/PLAT/ |UUID.bin | |
+------------------------------------------------------------+------------------------------------------------+ | -- |
|Panther Lake and newer Loadable libraries (community signed)|/lib/firmware/intel/sof-ipc4-lib/PLAT/community/| | |
+------------------------------------------------------------+------------------------------------------------+-------------------------+---------------+

Important notices:
- 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.
Expand Down

0 comments on commit 155fa2a

Please sign in to comment.