From 531924df8b697436c606ffca1a7c7e08c2e89877 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 8 Sep 2016 07:24:29 +0200 Subject: bsp/raspberrypi: Rename file --- c/src/lib/libbsp/arm/raspberrypi/Makefile.am | 2 +- c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp.c | 83 ++++++++++++++++++++++ .../libbsp/arm/raspberrypi/startup/bspsmp_api.c | 83 ---------------------- 3 files changed, 84 insertions(+), 84 deletions(-) create mode 100644 c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp.c delete mode 100644 c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp_api.c diff --git a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am index dfcc3e5db3..f0b8737254 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/Makefile.am +++ b/c/src/lib/libbsp/arm/raspberrypi/Makefile.am @@ -101,7 +101,7 @@ libbsp_a_SOURCES += startup/bspstart.c libbsp_a_SOURCES += startup/cmdline.c libbsp_a_SOURCES += startup/bspgetworkarea.c if HAS_SMP -libbsp_a_SOURCES += startup/bspsmp_api.c +libbsp_a_SOURCES += startup/bspsmp.c libbsp_a_SOURCES += startup/bspsmp_init.c endif diff --git a/c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp.c b/c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp.c new file mode 100644 index 0000000000..c3e5451442 --- /dev/null +++ b/c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp.c @@ -0,0 +1,83 @@ +/** + * @file + * + * @ingroup raspberrypi + * + * @brief Raspberry pi SMP management functions provided to SuperCore + */ + +/* + * Copyright (c) 2016 Pavel Pisa + * + * Czech Technical University in Prague + * Zikova 1903/4 + * 166 36 Praha 6 + * Czech Republic + * + * Reuses some ideas from Rohini Kulkarni + * GSoC 2015 project and Altera Cyclone-V SMP code + * by embedded brains GmbH + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +bool _CPU_SMP_Start_processor( uint32_t cpu_index ) +{ + bool started; + uint32_t cpu_index_self = _SMP_Get_current_processor(); + + if (cpu_index != cpu_index_self) { + + BCM2835_REG(BCM2836_MAILBOX_3_WRITE_SET_BASE + 0x10 * cpu_index) = (uint32_t)_start; + + /* + * Wait for secondary processor to complete its basic initialization so + * that we can enable the unified L2 cache. + */ + started = _Per_CPU_State_wait_for_non_initial_state(cpu_index, 0); + } else { + started = false; + } + + return started; +} + +uint32_t _CPU_SMP_Initialize(void) +{ + uint32_t cpu_count = (uint32_t)bsp_processor_count; + + if ( cpu_count > 4 ) + cpu_count = 4; + + return cpu_count; +} + +void _CPU_SMP_Finalize_initialization( uint32_t cpu_count ) +{ + /* Do nothing */ +} + +void _CPU_SMP_Prepare_start_multitasking( void ) +{ + /* Do nothing */ +} + +void _CPU_SMP_Send_interrupt( uint32_t target_cpu_index ) +{ + /* Generates IPI */ + BCM2835_REG(BCM2836_MAILBOX_3_WRITE_SET_BASE + + 0x10 * target_cpu_index) = 0x1; +} diff --git a/c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp_api.c b/c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp_api.c deleted file mode 100644 index c3e5451442..0000000000 --- a/c/src/lib/libbsp/arm/raspberrypi/startup/bspsmp_api.c +++ /dev/null @@ -1,83 +0,0 @@ -/** - * @file - * - * @ingroup raspberrypi - * - * @brief Raspberry pi SMP management functions provided to SuperCore - */ - -/* - * Copyright (c) 2016 Pavel Pisa - * - * Czech Technical University in Prague - * Zikova 1903/4 - * 166 36 Praha 6 - * Czech Republic - * - * Reuses some ideas from Rohini Kulkarni - * GSoC 2015 project and Altera Cyclone-V SMP code - * by embedded brains GmbH - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -bool _CPU_SMP_Start_processor( uint32_t cpu_index ) -{ - bool started; - uint32_t cpu_index_self = _SMP_Get_current_processor(); - - if (cpu_index != cpu_index_self) { - - BCM2835_REG(BCM2836_MAILBOX_3_WRITE_SET_BASE + 0x10 * cpu_index) = (uint32_t)_start; - - /* - * Wait for secondary processor to complete its basic initialization so - * that we can enable the unified L2 cache. - */ - started = _Per_CPU_State_wait_for_non_initial_state(cpu_index, 0); - } else { - started = false; - } - - return started; -} - -uint32_t _CPU_SMP_Initialize(void) -{ - uint32_t cpu_count = (uint32_t)bsp_processor_count; - - if ( cpu_count > 4 ) - cpu_count = 4; - - return cpu_count; -} - -void _CPU_SMP_Finalize_initialization( uint32_t cpu_count ) -{ - /* Do nothing */ -} - -void _CPU_SMP_Prepare_start_multitasking( void ) -{ - /* Do nothing */ -} - -void _CPU_SMP_Send_interrupt( uint32_t target_cpu_index ) -{ - /* Generates IPI */ - BCM2835_REG(BCM2836_MAILBOX_3_WRITE_SET_BASE + - 0x10 * target_cpu_index) = 0x1; -} -- cgit v1.2.3