From 4627fcdab1f0ef0bdf068688c210385889290493 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 17 Feb 2014 14:25:29 +0100 Subject: score: Rename bsp_smp_initialize() Rename bsp_smp_initialize() into _CPU_SMP_Initialize() since every CPU port must supply this function. --- c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c | 2 +- c/src/lib/libbsp/i386/shared/smp/smp-imps.c | 2 +- c/src/lib/libbsp/powerpc/qoriq/startup/smp.c | 2 +- c/src/lib/libbsp/shared/smp/smp_stub.c | 2 +- c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c | 2 +- cpukit/score/cpu/arm/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/i386/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/no_cpu/rtems/score/cpu.h | 18 ++++++++++++++++++ cpukit/score/cpu/powerpc/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/sparc/rtems/score/cpu.h | 2 ++ cpukit/score/include/rtems/bspsmp.h | 18 ------------------ cpukit/score/src/percpu.c | 3 +-- cpukit/score/src/smp.c | 2 +- 13 files changed, 33 insertions(+), 26 deletions(-) diff --git a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c index 3005bcf95f..9f465aa797 100644 --- a/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c +++ b/c/src/lib/libbsp/arm/shared/arm-a9mpcore-smp.c @@ -25,7 +25,7 @@ static void ipi_handler(void *arg) rtems_smp_process_interrupt(); } -uint32_t bsp_smp_initialize(uint32_t configured_cpu_count) +uint32_t _CPU_SMP_Initialize(uint32_t configured_cpu_count) { rtems_status_code sc; uint32_t max_cpu_count = arm_gic_irq_processor_count(); diff --git a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c index d8753c398a..a2dbc32fea 100644 --- a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c +++ b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c @@ -787,7 +787,7 @@ static void secondary_cpu_initialize(void) } #include -uint32_t bsp_smp_initialize( uint32_t configured_cpu_count ) +uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ) { int cores; /* XXX need to deal with finding too many cores */ diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c index 38a7305ea7..ea9d1cbb45 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c +++ b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c @@ -141,7 +141,7 @@ static void ipi_handler(void *arg) rtems_smp_process_interrupt(); } -uint32_t bsp_smp_initialize(uint32_t configured_cpu_count) +uint32_t _CPU_SMP_Initialize(uint32_t configured_cpu_count) { rtems_status_code sc; uint32_t cores = configured_cpu_count < CORE_COUNT ? diff --git a/c/src/lib/libbsp/shared/smp/smp_stub.c b/c/src/lib/libbsp/shared/smp/smp_stub.c index f1fa777bb4..b4a9cc3370 100644 --- a/c/src/lib/libbsp/shared/smp/smp_stub.c +++ b/c/src/lib/libbsp/shared/smp/smp_stub.c @@ -15,7 +15,7 @@ #include #include -uint32_t bsp_smp_initialize( uint32_t configured_cpu_count ) +uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ) { /* return the number of CPUs */ return 1; diff --git a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c index 071d3d3afc..baf4cfdba1 100644 --- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c +++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c @@ -47,7 +47,7 @@ void leon3_secondary_cpu_initialize(uint32_t cpu) rtems_smp_secondary_cpu_initialize(); } -uint32_t bsp_smp_initialize( uint32_t configured_cpu_count ) +uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ) { uint32_t max_cpu_count; uint32_t used_cpu_count; diff --git a/cpukit/score/cpu/arm/rtems/score/cpu.h b/cpukit/score/cpu/arm/rtems/score/cpu.h index a0c6b41a58..a58fa9e0c5 100644 --- a/cpukit/score/cpu/arm/rtems/score/cpu.h +++ b/cpukit/score/cpu/arm/rtems/score/cpu.h @@ -467,6 +467,8 @@ void _CPU_Context_volatile_clobber( uintptr_t pattern ); void _CPU_Context_validate( uintptr_t pattern ); #ifdef RTEMS_SMP + uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ); + RTEMS_COMPILER_PURE_ATTRIBUTE static inline uint32_t _CPU_SMP_Get_current_processor( void ) { diff --git a/cpukit/score/cpu/i386/rtems/score/cpu.h b/cpukit/score/cpu/i386/rtems/score/cpu.h index 4fe254c171..3c37006078 100644 --- a/cpukit/score/cpu/i386/rtems/score/cpu.h +++ b/cpukit/score/cpu/i386/rtems/score/cpu.h @@ -462,6 +462,8 @@ uint32_t _CPU_ISR_Get_level( void ); _CPU_Context_restore( (_the_context) ); #if defined(RTEMS_SMP) + uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ); + RTEMS_COMPILER_PURE_ATTRIBUTE uint32_t _CPU_SMP_Get_current_processor( void ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h index 9fdc7fc5a2..e250639aa3 100644 --- a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h +++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h @@ -1461,6 +1461,24 @@ CPU_Counter_ticks _CPU_Counter_difference( ); #ifdef RTEMS_SMP + /** + * @brief Performs CPU specific SMP initialization in the context of the main + * processor. + * + * This function is invoked on the main processor by RTEMS during + * initialization. All interrupt stacks are allocated at this point in case + * the CPU port allocates the interrupt stacks. + * + * The CPU port should start secondary processors now. + * + * @param[in] configured_cpu_count The count of processors requested by the + * application configuration. + * + * @return The count of processors available for the application in the system. + * This value is less than or equal to the configured count of processors. + */ + uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ); + /** * @brief Returns the index of the current processor. * diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/rtems/score/cpu.h index f4aa9c4f1a..5e9e5f9949 100644 --- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h +++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h @@ -1034,6 +1034,8 @@ void _CPU_Context_volatile_clobber( uintptr_t pattern ); void _CPU_Context_validate( uintptr_t pattern ); #ifdef RTEMS_SMP + uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ); + RTEMS_COMPILER_PURE_ATTRIBUTE static inline uint32_t _CPU_SMP_Get_current_processor( void ) { diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 6246b9158e..75b6542f52 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1161,6 +1161,8 @@ void _CPU_Context_restore( ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; #if defined(RTEMS_SMP) + uint32_t _CPU_SMP_Initialize( uint32_t configured_cpu_count ); + RTEMS_COMPILER_PURE_ATTRIBUTE uint32_t _CPU_SMP_Get_current_processor( void ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); diff --git a/cpukit/score/include/rtems/bspsmp.h b/cpukit/score/include/rtems/bspsmp.h index d634a363f0..9cdb6dc879 100644 --- a/cpukit/score/include/rtems/bspsmp.h +++ b/cpukit/score/include/rtems/bspsmp.h @@ -51,24 +51,6 @@ extern "C" { #ifndef ASM -/** - * @brief Performs BSP specific SMP initialization in the context of the main - * processor. - * - * This function is invoked on the main processor by RTEMS during - * initialization. All interrupt stacks are allocated at this point in case - * the CPU port allocates the interrupt stacks. - * - * The BSP may start secondary processors now. - * - * @param[in] configured_cpu_count The count of processors requested by the - * application configuration. - * - * @return The count of processors available for the application in the system. - * This value is less than or equal to the configured count of processors. - */ -uint32_t bsp_smp_initialize( uint32_t configured_cpu_count ); - /** * @brief Generate an interprocessor broadcast interrupt. * diff --git a/cpukit/score/src/percpu.c b/cpukit/score/src/percpu.c index 201c53be5a..aa95aa9c8d 100644 --- a/cpukit/score/src/percpu.c +++ b/cpukit/score/src/percpu.c @@ -29,7 +29,6 @@ #if defined(RTEMS_SMP) #include - #include void _SMP_Handler_initialize(void) { @@ -39,7 +38,7 @@ /* * Discover and initialize the secondary cores in an SMP system. */ - max_cpus = bsp_smp_initialize( max_cpus ); + max_cpus = _CPU_SMP_Initialize( max_cpus ); _SMP_Processor_count = max_cpus; diff --git a/cpukit/score/src/smp.c b/cpukit/score/src/smp.c index c03c148625..612c6e9044 100644 --- a/cpukit/score/src/smp.c +++ b/cpukit/score/src/smp.c @@ -138,7 +138,7 @@ void _SMP_Request_other_cores_to_shutdown( void ) /* * Do not use _SMP_Get_processor_count() since this value might be not * initialized yet. For example due to a fatal error in the middle of - * bsp_smp_initialize(). + * _CPU_SMP_Initialize(). */ uint32_t ncpus = rtems_configuration_get_maximum_processors(); -- cgit v1.2.3