[PATCH 00/10] HYP mode boot and cache manager updates for ARM and RaspberryPi specially.

pisa at cmp.felk.cvut.cz pisa at cmp.felk.cvut.cz
Mon Jul 4 00:07:04 UTC 2016


From: Pavel Pisa <pisa at cmp.felk.cvut.cz>

These changes allows to boot Raspberry Pi 2 with recent firmware
which start system in ARM hypervisor (HYP) mode.

There are more changes to correct/make compile cache manager
functions for more boards (till now only Zynq, Altera Cyclone
and LPC32xx have non empty implementation included).

Cache maintenance is required for communication with VideoCore
on RPi2. Actual series leaves local workaround solution
in that place but mailbox code has been tested to work
even with proposed deeper change in cache manager.

I am not sure about last three patches but at least
series including
  arm/raspberrypi: update VideoCore cache flush workaround
     to work on RPi2.
should be in shape for mainline and should help other
projects working on RPi.

Pavel Pisa (10):
  arm/score and shared: define ARM hypervisor mode and alternate vector
    table base access.
  bsps/arm: Support recent bootloaders starting kernel in HYP mode
  arm/raspberrypi: Enable HYP to SVC switch for this BSP.
  score/arm: Ensure that copile time alignment is 64 bytes for Cortex-A
    multilib.
  arm/raspberrypi: update VideoCore cache flush workaround to work on
    RPi2.
  rtems+bsps/cache: Define cache manager operations for code
    synchronization and maximal alignment.
  bsp/arm: Report correct maximal cache line length for ARM Cortex-A +
    L2C-310.
  bsps/arm: Change code to explicit selection of cache implementation
    for ARM BSPs.
  libdl/rtl-obj.c: ensure that loaded code is synchronized through
    caches.
  bsps/arm: basic on core cache support changed to use l1 functions.

 c/src/lib/libbsp/arm/beagle/Makefile.am            |   5 +-
 c/src/lib/libbsp/arm/csb336/Makefile.am            |   6 +-
 c/src/lib/libbsp/arm/csb337/Makefile.am            |   6 +-
 c/src/lib/libbsp/arm/lpc32xx/Makefile.am           |   6 +-
 c/src/lib/libbsp/arm/raspberrypi/Makefile.am       |  11 +-
 c/src/lib/libbsp/arm/raspberrypi/configure.ac      |   4 +
 c/src/lib/libbsp/arm/raspberrypi/misc/vc.c         |  15 +-
 c/src/lib/libbsp/arm/raspberrypi/preinstall.am     |   4 -
 c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am   |   5 +-
 c/src/lib/libbsp/arm/shared/arm-l2c-310/cache_.h   |   4 +
 .../arm/shared/armv467ar-basic-cache/cache_.h      | 171 +++++++++++++++++++++
 c/src/lib/libbsp/arm/shared/include/arm-cache-l1.h |  71 ++++-----
 .../lib/libbsp/arm/shared/include/linker-symbols.h |   4 +
 c/src/lib/libbsp/arm/shared/include/start.h        |  13 +-
 c/src/lib/libbsp/arm/shared/start/start.S          |  73 ++++++++-
 .../arm/shared/startup/bsp-start-in-hyp-support.S  |  77 ++++++++++
 c/src/lib/libbsp/arm/shared/startup/linkcmds.base  |   9 +-
 c/src/lib/libbsp/arm/smdk2410/Makefile.am          |   6 +-
 c/src/lib/libcpu/arm/shared/include/arm-cp15.h     |  61 +++++++-
 c/src/lib/libcpu/arm/shared/include/cache_.h       | 134 ++++------------
 c/src/lib/libcpu/shared/src/cache_manager.c        |  42 +++++
 cpukit/libcsupport/src/cachealignedalloc.c         |   2 +-
 cpukit/libdl/rtl-obj.c                             |   2 +
 cpukit/rtems/include/rtems/rtems/cache.h           |  29 ++++
 cpukit/score/cpu/arm/rtems/score/arm.h             |   4 +
 cpukit/score/cpu/arm/rtems/score/cpu.h             |   8 +-
 26 files changed, 592 insertions(+), 180 deletions(-)
 create mode 100644 c/src/lib/libbsp/arm/shared/armv467ar-basic-cache/cache_.h
 create mode 100644 c/src/lib/libbsp/arm/shared/startup/bsp-start-in-hyp-support.S

-- 
1.9.1



More information about the devel mailing list