Skip to content

Commit

Permalink
intel_debug: introduction: Split firmware lookup table into two for m…
Browse files Browse the repository at this point in the history
…onolithic and modular

Separate the firmware lookup table for monolithic 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 <[email protected]>
  • Loading branch information
ujfalusi committed Dec 17, 2024
1 parent ef63f89 commit 7d5c67e
Showing 1 changed file with 53 additions and 40 deletions.
93 changes: 53 additions & 40 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 @@ -142,16 +142,24 @@ See :ref:`llext_modules` for technical details.

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

1.3.1. Modular SOF releases
---------------------------
1.3.1. Monolithic SOF releases
------------------------------

See :ref:`loadable-libraries` for details about library support in general.
The release contains:
- **sof-PLAT.ri** : The firmware binary
- **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. Optional, only supported with IPC4 and on Meteor Lake and newer platforms.

The released libraries are:
1.3.2. Modular SOF releases
---------------------------

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.

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.
- additional libraries referenced by topology files or drivers will be loaded based on the UUID of the module from the library path.
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 **monolithic 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 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 7d5c67e

Please sign in to comment.