Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TEST] Volume LLEXT #9172

Closed
wants to merge 23 commits into from
Closed

[TEST] Volume LLEXT #9172

wants to merge 23 commits into from

Commits on Jun 26, 2024

  1. llext: fix Windows builds

    Under windows the Python interpreter has to be called explicitly.
    Without it an attempt to execute a Python script fails silently.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    d5b3a93 View commit details
    Browse the repository at this point in the history
  2. ipc4: a failure to find a driver might not be fatal

    When ipc4_get_drv() fails to find a driver, it might mean, that the
    driver needs to be linked dynamically. Printing an error in such a
    case wrongly fails CI testing.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    4f4783d View commit details
    Browse the repository at this point in the history
  3. samples: (cosmetic) clean up Kconfig spacing

    Use consistent TABs and spaces in src/samples/audio/Kconfig
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    4120cc1 View commit details
    Browse the repository at this point in the history
  4. llext: add a convenience Kconfig option to build LLEXT modules

    Add a Kconfig option that can be used to flip all LLEXT-supporting
    code to a modular build. Use that global flag for smart-amp-test,
    mixin-mixout and eq-iir.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    0bf7192 View commit details
    Browse the repository at this point in the history
  5. mtl: build all supporting code as LLEXT modules

    Enable CONFIG_LIBRARY_DEFAULT_MODULAR for MTL to build all supporting
    code as LLEXT modules.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    43ebb89 View commit details
    Browse the repository at this point in the history
  6. llext: add maximum instance count support

    Maximum instance count cannot be zero, they have to be supplied by
    respective modules.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    1b2026c View commit details
    Browse the repository at this point in the history
  7. rimage: propagate maximum module instance counts

    Use maximum instance count from modules when building a manifest.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    f41e726 View commit details
    Browse the repository at this point in the history
  8. log: disable the logging task before clearing log state

    If logging state is cleared while the logging task is still running,
    it can lead to an inconsistent state. Stop the logging task before
    clearing the state.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    2937c5b View commit details
    Browse the repository at this point in the history
  9. eq_iir: reduce logging verbosity during freeing

    When pipelines are destroyed, component drivers' .reset() and .free()
    are called. If those drivers were loaded dynamically their memory is
    then unmapped. But logging takes place in a low priority task, so it
    is important that no logging is done from those methods.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    8bd91c1 View commit details
    Browse the repository at this point in the history
  10. llext: add missing modules to LNL overlay

    LNL modules overlay is missing eq_iir and mixin_mixout entries, add
    them there.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    03d8b8a View commit details
    Browse the repository at this point in the history
  11. llext: automatically calculate module addresses

    Currently LLEXT module starting addresses are hard-coded in their
    respective CMakeLists.txt files. This is very wasteful, since it's
    unknown in what order modules are loaded, inflexible and not easily
    extendible to other platforms. Switch to calculating addresses
    automatically based on a single per-platform Kconfig value.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    7467ecf View commit details
    Browse the repository at this point in the history
  12. src: convert to a loadable module

    Build src as a loadable llext module.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    799ef93 View commit details
    Browse the repository at this point in the history
  13. volume: move gain.toml and peakvol.toml into volume.toml

    To make volume an LLEXT module it should have a single TOML
    configuration file named volume.toml. This is easy to do, using
    respective Kconfig options.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    faea605 View commit details
    Browse the repository at this point in the history
  14. llext: export 2 symbols, required for modular volume

    When building volume as an LLEXT module, two more symbols are
    required: __divdi3() and module_set_configuration(), export them.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    f39cb29 View commit details
    Browse the repository at this point in the history
  15. volume: add LLEXT support

    This makes it possible to build volume as an LLEXT module to be
    loaded at run-time.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    ec2676a View commit details
    Browse the repository at this point in the history
  16. eq-fir: enable building as an llext module

    Add support for LLEXT building to eq-fir.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    18337c5 View commit details
    Browse the repository at this point in the history
  17. asrc: enable building as an llext module

    Add support for LLEXT building to asrc.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    0221491 View commit details
    Browse the repository at this point in the history
  18. drc: enable building as an llext module

    Add support for LLEXT building to drc. Since multiband DRC calls
    functions from DRC, we cannot so far build it if DRC is configured as
    a module. In the future it should be possible to build both as
    modules and to export symbols between them.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    3ce65e6 View commit details
    Browse the repository at this point in the history
  19. llext: export symbols, required for eq_fir

    When built as an llext module, eq_fir requires several base-firmware
    provided symbols, export them.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    87cd5ba View commit details
    Browse the repository at this point in the history
  20. drc: make modular on MTL and LNL

    Export missing symbols for modular DRC builds and select it as a
    module on MTL and LNL. DRC isn't built by default, so we cannot
    use CONFIG_LIBRARY_DEFAULT_MODULAR for it.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    9c4ff6d View commit details
    Browse the repository at this point in the history
  21. west: update to Zephyr with latest LLEXT fixes

    Test Zephyr PR 74568 which fixed a recent breakage.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    f0616f8 View commit details
    Browse the repository at this point in the history
  22. [DNM] Disable KCPS_DYNAMIC_CLOCK_CONTROL to test speaker-test

    Disabling CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL appears to fix
    speaker-test failures with LLEXT.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    b702762 View commit details
    Browse the repository at this point in the history
  23. llext: fix multi-core use cases

    MOD_INIT_INSTANCE IPCs can be processed on different cores, different
    cores can use the same modules. Make shared data uncached.
    
    Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    lyakh committed Jun 26, 2024
    Configuration menu
    Copy the full SHA
    a62fcda View commit details
    Browse the repository at this point in the history