Skip to content
  1. May 22, 2025
  2. May 13, 2025
    • Mikael's avatar
      Move message handler setup to separate task · 900dd510
      Mikael authored
      
      
      The OpenAMP library has changed how the wait_remote_ready functions work
      for Remoteproc and RPMsg, instead of using metal_yield while waiting for
      the remote side to get ready, they now use metal_sleep_usec.
      
      This causes issues in the message handler implementation because
      FreeRTOS implements the sleep function using vTaskDelay, which can only
      be used after the scheduler has been started and the message handler
      performs its Remoteproc setup before starting the scheduler.
      
      To solve this, the Remoteproc setup has been moved to its own task that
      will be run before any other task. This allows the use of vTaskDelay
      during the setup.
      
      Change-Id: Idf9e86e62ff0ff4bd716d33987cb70bc34743229
      Signed-off-by: Mikael's avatarMikael Olsson <mikael.olsson@arm.com>
      25.05-rc1
      900dd510
  3. Apr 30, 2025
    • Jonny Svärd's avatar
      Cache related changes from core_driver update · 2e76c528
      Jonny Svärd authored
      
      
      The driver now calls the cache flush/clean before each NPU command
      stream with a full list of base pointers/base addresses and their size.
      This allows full freedom to implement any desired logic for cache
      coherence management outside of the driver. This changes the function
      prototype for the flush and invalidate functions.
      
      This commit provides example implementations of the flush and invalidate
      functions, looping over the base addresses. Note the important cast (on
      32bit systems) for the base addresses, which is there to avoid sign
      expansion when casting to a pointer from a type bigger than the pointer
      size.
      
      Change-Id: Ia3faa05aba8aac7c1c7bb59c05dd3f5d2b44caa0
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      2e76c528
  4. Apr 29, 2025
  5. Apr 16, 2025
  6. Feb 26, 2025
  7. Jan 24, 2025
    • Jonny Svärd's avatar
      Remove invalid CMake argument · 7f84db56
      Jonny Svärd authored
      
      
      DEPENDS is not valid argument for a custom command with a target, and
      prior versions of CMake (v<3.31) silently ignored those. This specific
      dependency is already covered as the threadx_demo application itself
      depends on the threadx target, so the line has been ignored and can be
      safely removed.
      
      Change-Id: If4e73ca8595c1e2fa211537887a0bda48d655439
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      25.02-rc1
      7f84db56
  8. Jan 23, 2025
  9. Jan 14, 2025
  10. Jan 07, 2025
  11. Dec 16, 2024
  12. Nov 27, 2024
  13. Nov 18, 2024
    • Jonny Svärd's avatar
      Update README.md with Corstone-320 information · 510b96d3
      Jonny Svärd authored
      
      
      Update the README with information regarding Corstone-320, and the
      Ethos-U85 NPU.
      
      Change-Id: I8109cc605b3dc27d7cdae0755a304f92327470fc
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      2 tags
      510b96d3
    • Jonny Svärd's avatar
      Move .rodata in Corstone-300 linker script · 1340e11e
      Jonny Svärd authored
      
      
      Move *(.rodata) and *(.rodata.*) from ITCM to DTCM (exec region) and use
      the DRAM as load region, to avoid the ITCM memory from overflowing when
      building the message_handler_openamp application in particular, using
      gcc. CMSIS startup code will copy the data from DRAM to DTCM using the
      added copy_table entry.
      
      The message_handler_openamp application contains fallback support for
      all TFLM operators (using a "MicroMutableAllOpResolver"), which is
      causing the firmware size to get quite big and go past the memory size
      of ITCM (512KiB) for Corstone-300.
      
      Change-Id: I521ae3e417c65387bde3aa89e005580502823bef
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      1340e11e
  14. Nov 15, 2024
    • Jonny Svärd's avatar
      Add CMAKE_OBJCOPY defaults to toolchain files · 0c23b3ad
      Jonny Svärd authored
      
      
      Specify arm-none-eabi-objcopy as default objcopy binary to use for both
      armclang and gcc toolchain files.
      
      The core_platform threadx_demo application depends on CMAKE_OBJCOPY to
      mark the RTOS default HardFault_Handler function as weak, to not clash
      with the target provided HardFault_Handler. On some systems, especially
      x86_64 the host version of objcopy can not handle the Arm format and
      linking fails. To avoid this problem, specify a default objcopy binary
      to use.
      
      Change-Id: I8504dbbe0803db028eb873e8d82c3e5a21983336
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      0c23b3ad
  15. Nov 08, 2024
  16. Oct 29, 2024
    • Jonny Svärd's avatar
      Cache usage optimizations · 29884ca8
      Jonny Svärd authored
      
      
      Align tensor arena to 32 bytes (cache line). Alignment is defined in the
      code with an attribute, and in the scatter and linker files where
      possible.
      
      Remove ethosu_flush_dcache() implementation, this is no longer
      recommended to be implemented. Application code where the CPU cache is
      used and program writes to shared memory between CPU and NPU should take
      care of cache coherency.
      
      Full cache invalidation is no longer supported as this might cause
      issues on certain systems/implementations, especially in async cases.
      
      Change-Id: I599d33d60af4cfebe288a651edddb33b6b5434ee
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      29884ca8
  17. Oct 24, 2024
  18. Oct 22, 2024
    • Jonny Svärd's avatar
      run_ctest.py: Remove FVP version checks · c35f7566
      Jonny Svärd authored
      
      
      Remove faulty version check from run_ctest script. The initial releases
      of the Corstone-300 FVP contained some bugs causing things to not run
      properly, however those are now several years old and are most likely
      not used anymore.
      
      Change-Id: I5cdbb55cfe2dd832573058aafe2a10e2f95b88e7
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      c35f7566
  19. Oct 17, 2024
  20. Sep 23, 2024
  21. Sep 16, 2024
  22. Aug 09, 2024
  23. Jun 24, 2024
  24. Jun 17, 2024
    • Jonny Svärd's avatar
      Simplify timing-adapter settings · 36293102
      Jonny Svärd authored
      
      
      The targets only have one NPU so simplify the timing adapters settings
      by removing unnecessary nesting and complexity.
      
      Corstone-310 does not have timing adapters in the NPU model, so remove
      that dead timing adapter code completely.
      
      Change-Id: Iabe95c5e6354f5168beefa3ddfff4a348c4a7021
      Signed-off-by: Jonny Svärd's avatarJonny Svärd <jonny.svaerd@arm.com>
      36293102
  25. May 21, 2024
    • Mikael's avatar
      Fix uninitialized variable in trustzone secure · b96537fe
      Mikael authored
      
      
      The block_idx_end variable is left uninitialized and contains an
      undeterminate value. This can cause issues later when it is compared to
      block_idx because the comparison may not have the desired outcome.
      
      To resolve this, the block_idx_end variable is now zero initialized.
      
      Change-Id: I0767eeb4dc18ea668e6f14a386b67e4ddb9c654a
      Signed-off-by: Mikael's avatarMikael Olsson <mikael.olsson@arm.com>
      2 tags
      b96537fe
  26. May 20, 2024
  27. Apr 22, 2024
  28. Apr 19, 2024
    • Mikael's avatar
      Fix rpmsg not being zero initialized · b2407962
      Mikael authored
      
      
      The rpmsg struct used in response messages is not zero initialized so
      later response messages may contain old data. To resolve this, the rpmsg
      struct is now zero initialized for each new message.
      
      Change-Id: I116fa443eca7b6ec3d8817909fd3c59bd69427cb
      Signed-off-by: Mikael's avatarMikael Olsson <mikael.olsson@arm.com>
      b2407962
  29. Apr 18, 2024
  30. Apr 16, 2024
    • Mikael's avatar
      Fix zero init of class members in message handler · c218583a
      Mikael authored
      
      
      There are instances of class members not being zero initialized in the
      message handler. To avoid possible issues with using the class members
      when they have an intermediate value, the constructors have been updated
      to zero initialize all the member variables.
      
      Change-Id: Ib539410a8f1486f8155272731f5cb7006c22ac7a
      Signed-off-by: Mikael's avatarMikael Olsson <mikael.olsson@arm.com>
      c218583a
  31. Apr 11, 2024
  32. Apr 02, 2024
    • Mikael's avatar
      Fix semaphore clean up in RProc destructor · 30902c30
      Mikael authored
      
      
      The semaphore created in the RProc constructor is never cleaned up. To
      resolve this, the destructor will now delete the semaphore.
      
      Change-Id: Ib641a87129bacf3d7ba097c4e89aa77fa255e2f8
      Signed-off-by: Mikael's avatarMikael Olsson <mikael.olsson@arm.com>
      30902c30
    • Mikael's avatar
      Fix Rpmsg constructor not initializing members · f870d11f
      Mikael authored
      
      
      The constructor for the Rpmsg class does not zero-initialize its member
      variables. This causes issues with the remoteproc library because it
      thinks function pointers in the variables are set to valid functions
      when they are actually just uninitialized values and using these
      function pointer causes crashes and unexpected behavior.
      
      To resolve this, the Rpmsg class constructor has been changed to
      zero-initialize all its member variables.
      
      Change-Id: Ic34fd52bc39ed3018e5f67474949f10adc8cb7a8
      Signed-off-by: Mikael's avatarMikael Olsson <mikael.olsson@arm.com>
      f870d11f
  33. Mar 21, 2024
    • Mikael's avatar
      Change tensor arena size to be a power of two · 10ecba81
      Mikael authored
      
      
      The size of the memory used for the message handler's tensor arena will
      always be rounded up to the next power of two when the Linux kernel
      allocates it. Therefore, to align the tensor arena size with how the
      memory is allocated and be able to use the full size allocated, the
      tensor arena size must now be a power of two.
      
      Change-Id: Ib67e77d1ffeb233ad12762a56ddbc20d26c71052
      Signed-off-by: Mikael's avatarMikael Olsson <mikael.olsson@arm.com>
      10ecba81
Loading