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

LLEXT: run non-performance critical code in DRAM #9522

Merged
merged 9 commits into from
Nov 27, 2024

Commits on Nov 26, 2024

  1. math: add a missing symbol export

    norm_int32() is called by LLEXT modules when built with gcc, export
    it.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    22aafaa View commit details
    Browse the repository at this point in the history
  2. rimage: (cosmetic) remove dangling spaces

    Remove multiple end-of-line spaces in comments.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    62a97d8 View commit details
    Browse the repository at this point in the history
  3. LLEXT: add support for detached executable sections

    With this commit functions can be marked to be placed in custom
    sections, e.g. by adding __attribute__((section(".text.dram"))) to
    them. Those sections will then become "detached," i.e. they won't be
    linked into the main address space of the module. Instead they will
    be linked at a low address, after which Zephyr LLEXT linked will
    prepare them to be used at their original location, e.g. in DRAM.
    This commit modifies the SOF LLEXT link helper to use low addresses
    for linking of such sections.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    9943406 View commit details
    Browse the repository at this point in the history
  4. LLEXT: (cosmetic) simplify calling llext_manager_link()

    Re-use values from the caller instead of re-calculating them in the
    function.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    418a510 View commit details
    Browse the repository at this point in the history
  5. LLEXT: simplify manifest array address calculation

    The LLEXT manifest array can be accessed in DRAM, no need to
    recalculate its address in SRAM.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    8a0bf9b View commit details
    Browse the repository at this point in the history
  6. LLEXT: rimage: add support for detached sections

    Rimage shouldn't include detached sections in image size calculations
    to avoid creating meaninglessly large values.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    a97175e View commit details
    Browse the repository at this point in the history
  7. LLEXT: add support for detached sections

    We link detached sections, to be used in DRAM, at low addresses,
    beginning at 0. Add a callback for Zephyr llext to recognise our
    detached sections.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    4cd64dd View commit details
    Browse the repository at this point in the history
  8. LLEXT: add a macro to place selected functions in .text.dram

    With this macro modules can use "__cold" in front of their function
    definitions to place them in the .text.dram section, which will force
    their execution in DRAM without being copied to SRAM.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    0a9b72b View commit details
    Browse the repository at this point in the history
  9. drc: move .init() and .free() to DRAM

    DRC's .init() and .free() functions aren't performance-critical,
    move them to DRAM for modular builds.
    
    Signed-off-by: Guennadi Liakhovetski <[email protected]>
    lyakh committed Nov 26, 2024
    Configuration menu
    Copy the full SHA
    7062a86 View commit details
    Browse the repository at this point in the history