[PATCH 0/6] Update of cache maintenance for ARM and Raspberry Pi specially, generic libdl correction.

Alan Cudmore alan.cudmore at gmail.com
Fri Jul 22 00:08:32 UTC 2016


Hi Pavel,
I just updated my rtems-git repository and see these changes. It runs on the Pi 2, Pi A+, Model B, and Pi Zero for me. I definitely see the speedup in the benchmarks. 

Thanks!
Alan

> On Jul 17, 2016, at 6:48 PM, pisa at cmp.felk.cvut.cz wrote:
> 
> From: Pavel Pisa <pisa at cmp.felk.cvut.cz>
> 
> The changes correct libdl operation on targets which do not snoop
> data change during instruction cache fill.
> 
> Text section/the first 1 MB of data has been noncacheable
> after VideoCore support inclusion. Enabling cache of this
> area has revealed problem with stalled data left by loader
> in the cache. Cache manager updates overcomes these troubles.
> 
> The changes lead to 40x speedup of dhrystones test on RPi2
> and 20x on RPi1.
> 
> There is still some problem with VideoCore graphic support.
> VideoCore mailbox seems to work correctly for other simpler
> operation but some parameters during graphic setup lead
> to error.
> 
> Pavel Pisa (6):
>  arm/raspberrypi: cache manager can be used for mailbox synchronization
>    now. Remove workarounds.
>  bsps/arm: do not disable MMU during translation table management
>    operations.
>  arm/bsps: CP15 and basic cache support entire cache clean for more
>    architecture variants now.
>  arm/raspberrypi: use cache manager operations to flush/invalidate all
>    cache levels.
>  arm/raspberrypi: reorder and update MMU config table to nor force RW
>    section later to RO.
>  libdl/rtl-obj.c: synchronize cache after code relocation.
> 
> c/src/lib/libbsp/arm/raspberrypi/misc/vc.c         | 35 +----------
> .../libbsp/arm/raspberrypi/startup/bspstarthooks.c | 14 ++---
> .../arm/raspberrypi/startup/mm_config_table.c      | 31 +++++++---
> .../libbsp/arm/shared/arm-cp15-set-ttb-entries.c   | 50 +++++++++++++---
> .../arm/shared/armv467ar-basic-cache/cache_.h      | 22 ++++++-
> c/src/lib/libbsp/arm/shared/include/arm-cache-l1.h |  6 +-
> c/src/lib/libcpu/arm/shared/include/arm-cp15.h     | 60 ++++++++++++++++++-
> cpukit/libdl/rtl-elf.c                             |  3 +
> cpukit/libdl/rtl-obj.c                             | 67 +++++++++++++++++++++-
> cpukit/libdl/rtl-obj.h                             |  9 +++
> cpukit/libdl/rtl-rap.c                             |  3 +
> 11 files changed, 235 insertions(+), 65 deletions(-)
> 
> -- 
> 1.9.1
> 



More information about the devel mailing list