diff --git a/getting_started/intel_debug/introduction.rst b/getting_started/intel_debug/introduction.rst index fe66798..bde1c63 100755 --- a/getting_started/intel_debug/introduction.rst +++ b/getting_started/intel_debug/introduction.rst @@ -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 @@ -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. @@ -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.