summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Pisa <pisa@cmp.felk.cvut.cz>2016-09-01 21:55:51 +0200
committerPavel Pisa <pisa@cmp.felk.cvut.cz>2016-09-07 20:29:39 +0200
commit38a5385bc06a5e0b44a2cdebc51e9e8304b010ca (patch)
tree49c2d1520502f274d30bf70a3ab008deeebb8df8
parentarm/raspberrypi: rename linkcmds to linkcmds.in to allow their configure proc... (diff)
downloadrtems-38a5385bc06a5e0b44a2cdebc51e9e8304b010ca.tar.bz2
arm/raspberrypi: propagate number of configured CPUs into linker script.
-rw-r--r--c/src/lib/libbsp/arm/raspberrypi/configure.ac14
-rw-r--r--c/src/lib/libbsp/arm/raspberrypi/startup/linkcmds.in2
2 files changed, 16 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/raspberrypi/configure.ac b/c/src/lib/libbsp/arm/raspberrypi/configure.ac
index 48bd62cbf4..b772d6e762 100644
--- a/c/src/lib/libbsp/arm/raspberrypi/configure.ac
+++ b/c/src/lib/libbsp/arm/raspberrypi/configure.ac
@@ -40,6 +40,20 @@ RTEMS_BSPOPTS_SET([BSP_IS_RPI2],[*],[0])
RTEMS_BSPOPTS_HELP([BSP_IS_RPI2],[Set if the BSP variant is Raspberry Pi 2.])
AM_CONDITIONAL(RTEMS_RPI2,[test "$BSP_IS_RPI2" = "1"])
+# Hom many CPUs are used?
+RASPBERRYPI_CPUS="1"
+RTEMS_CHECK_SMP
+AM_CONDITIONAL(HAS_SMP,[test "$rtems_cv_HAS_SMP" = "yes"])
+AS_IF([test "$rtems_cv_HAS_SMP" = "yes"],
+ [RASPBERRYPI_CPUS="4"])
+
+AC_DEFUN([RASPBERRYPI_LINKCMD],[
+AC_ARG_VAR([$1],[$2; default $3])dnl
+[$1]=[$]{[$1]:-[$3]}
+])
+
+RASPBERRYPI_LINKCMD([RASPBERRYPI_CPUS],[Number of active cores],[${RASPBERRYPI_CPUS}])
+
RTEMS_BSP_CLEANUP_OPTIONS(0, 0)
AC_CONFIG_FILES([
diff --git a/c/src/lib/libbsp/arm/raspberrypi/startup/linkcmds.in b/c/src/lib/libbsp/arm/raspberrypi/startup/linkcmds.in
index fc72b5cfd0..d88c6d74b8 100644
--- a/c/src/lib/libbsp/arm/raspberrypi/startup/linkcmds.in
+++ b/c/src/lib/libbsp/arm/raspberrypi/startup/linkcmds.in
@@ -41,6 +41,8 @@ MEMORY {
RAM (AIW) : ORIGIN = 0x00008000, LENGTH = 128M - 32k
}
+bsp_processor_count = DEFINED (bsp_processor_count) ? bsp_processor_count : @RASPBERRYPI_CPUS@;
+
REGION_ALIAS ("REGION_START", RAM);
REGION_ALIAS ("REGION_VECTOR", VECTOR_RAM);
REGION_ALIAS ("REGION_TEXT", RAM);