From 155fa2a3515421b4fdb10fffa7b63d649c4ff38e Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Mon, 16 Dec 2024 18:24:35 +0200 Subject: [PATCH] intel_debug: introduction: Split firmware lookup table for single/modular 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 --- getting_started/intel_debug/introduction.rst | 101 +++++++++++-------- 1 file changed, 57 insertions(+), 44 deletions(-) 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.