summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Pisa <pisa@cmp.felk.cvut.cz>2016-07-02 13:15:02 +0200
committerPavel Pisa <pisa@cmp.felk.cvut.cz>2016-07-04 15:55:57 +0200
commitfe106ad5e2bedc8087d9e8e4dfeefc671f1202ca (patch)
tree7f0f4df574a96b93ae7f7714094c780fb08e1432
parentbsps/arm: Support recent bootloaders starting kernel in HYP mode (diff)
downloadrtems-fe106ad5e2bedc8087d9e8e4dfeefc671f1202ca.tar.bz2
arm/raspberrypi: Enable HYP to SVC switch for this BSP.
This support is required when newer firmware is used on Raspberry Pi 2 boards.
-rw-r--r--c/src/lib/libbsp/arm/raspberrypi/Makefile.am3
-rw-r--r--c/src/lib/libbsp/arm/raspberrypi/configure.ac4
2 files changed, 7 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am
index abb68652aa..c9208d4f8a 100644
--- a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am
+++ b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am
@@ -94,6 +94,9 @@ libbsp_a_SOURCES += ../../shared/sbrk.c
libbsp_a_SOURCES += ../../shared/src/stackalloc.c
libbsp_a_SOURCES += ../shared/startup/bsp-start-memcpy.S
libbsp_a_SOURCES += ../shared/arm-cp15-set-ttb-entries.c
+if BSP_START_IN_HYP_SUPPORT
+libbsp_a_SOURCES += ../shared/startup/bsp-start-in-hyp-support.S
+endif
# Startup
libbsp_a_SOURCES += ../../shared/bspreset_loop.c
diff --git a/c/src/lib/libbsp/arm/raspberrypi/configure.ac b/c/src/lib/libbsp/arm/raspberrypi/configure.ac
index 2676bef72e..ecaee3de6a 100644
--- a/c/src/lib/libbsp/arm/raspberrypi/configure.ac
+++ b/c/src/lib/libbsp/arm/raspberrypi/configure.ac
@@ -24,6 +24,10 @@ AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
RTEMS_BSPOPTS_SET([BSP_START_RESET_VECTOR],[*],[])
RTEMS_BSPOPTS_HELP([BSP_START_RESET_VECTOR],[reset vector address for BSP start])
+RTEMS_BSPOPTS_SET([BSP_START_IN_HYP_SUPPORT],[*],[1])
+RTEMS_BSPOPTS_HELP([BSP_START_IN_HYP_SUPPORT], [Support start of BSP in ARM HYP mode])
+AM_CONDITIONAL(BSP_START_IN_HYP_SUPPORT,test "$BSP_START_IN_HYP_SUPPORT" = "1")
+
RTEMS_BSPOPTS_SET([I2C_IO_MODE],[*],[1])
RTEMS_BSPOPTS_HELP([I2C_IO_MODE],[Define to 1 to use interrupt-driven I/O with the Raspberry Pi I2C bus. If defined to other value the access will be polled-driven.])