[PATCH 00/10] Raspberry Pi 2 (BCM2836) SMP support

pisa at cmp.felk.cvut.cz pisa at cmp.felk.cvut.cz
Sat Sep 3 12:31:16 UTC 2016


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

The series implements Raspberry Pi 2 (BCM2836) SMP support.

The first two patches modify ARM Cortex-A common CP15 support
to expose clean by level cache operations to the BSP code.
Clean and invalidation of L1 cache is required when the secondary
CPU is booted. But the secondary CPU must not trash content
of shared cache levels because primary CPU is already running
from it.

Next patches provides basic SMP implementation.
BCM2836 core mailboxes are used to implement inter-processor
interrupts.

The last two patches change reimplement clock driver to
use GPU/system timer instead of ARM timer because original
approach has been incompatible with SMP support.
SMP support requires timecounter source and it implemented
easier from GPU/system timer which is based on free-running
counter.

Pavel Pisa (9):
  bsps/arm: use defines for cache type register format field.
  bsps/arm: remove lock in arm_cp15_set_translation_table_entries().
  bsps/arm: reorganize CP15 code to allow clean and invalidate ARMv7
    cache by level.
  arm/raspberrypi: more definitions of BCM2836 core local peripherals.
  arm/raspberrypi: rename linkcmds to linkcmds.in to allow their
    configure processing.
  arm/raspberrypi: propagate number of configured CPUs into linker
    script.
  bsps/arm: basic BCM2836 SMP implementation.
  arm/raspberrypi: correct and extend definitions for GPU timer.
  arm/raspberrypi: use GPU/system timer as clock source.

Rohini Kulkarni (1):
  arm/raspberrypi: include definitions of BCM2836 SMP mailboxes.

 c/src/lib/libbsp/arm/raspberrypi/Makefile.am       |   5 +-
 c/src/lib/libbsp/arm/raspberrypi/clock/clockdrv.c  |  98 +++++++----
 c/src/lib/libbsp/arm/raspberrypi/configure.ac      |  19 ++-
 c/src/lib/libbsp/arm/raspberrypi/include/bsp.h     |   3 +
 c/src/lib/libbsp/arm/raspberrypi/include/irq.h     |   5 +
 .../libbsp/arm/raspberrypi/include/raspberrypi.h   | 182 ++++++++++++++++++++-
 c/src/lib/libbsp/arm/raspberrypi/irq/irq.c         |  18 ++
 c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp.c  | 122 ++++++++++++++
 .../libbsp/arm/raspberrypi/startup/bspstarthooks.c |  35 +++-
 .../raspberrypi/startup/{linkcmds => linkcmds.in}  |   4 +-
 .../arm/raspberrypi/startup/mm_config_table.c      |   8 +
 .../libbsp/arm/shared/arm-cp15-set-ttb-entries.c   |  10 +-
 c/src/lib/libcpu/arm/shared/include/arm-cp15.h     | 147 ++++++++++-------
 13 files changed, 539 insertions(+), 117 deletions(-)
 create mode 100644 c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp.c
 rename c/src/lib/libbsp/arm/raspberrypi/startup/{linkcmds => linkcmds.in} (95%)

-- 
1.9.1



More information about the devel mailing list