Index: c/src/lib/libbsp/powerpc/qoriq/include/bsp.h
===================================================================
--- c/src/lib/libbsp/powerpc/qoriq/include/bsp.h	(revision 64a04ac3c71c55020b18f22be754ddb3ea23b9fa)
+++ c/src/lib/libbsp/powerpc/qoriq/include/bsp.h	(revision 6c5c2f39d05543c2d30e8fc44e93dd961c68e43d)
@@ -60,6 +60,4 @@
 #define RTEMS_BSP_NETWORK_DRIVER_NAME4 "intercom1"
 
-void qoriq_secondary_cpu_initialize(void);
-
 #ifdef __cplusplus
 }
Index: c/src/lib/libbsp/powerpc/qoriq/start/start.S
===================================================================
--- c/src/lib/libbsp/powerpc/qoriq/start/start.S	(revision 64a04ac3c71c55020b18f22be754ddb3ea23b9fa)
+++ c/src/lib/libbsp/powerpc/qoriq/start/start.S	(revision 6c5c2f39d05543c2d30e8fc44e93dd961c68e43d)
@@ -209,5 +209,5 @@
 	LA	r13, _SDA_BASE_
 
-	b	qoriq_secondary_cpu_initialize
+	b	bsp_start_on_secondary_processor
 
 	b	twiddle
Index: c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c
===================================================================
--- c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c	(revision 64a04ac3c71c55020b18f22be754ddb3ea23b9fa)
+++ c/src/lib/libbsp/powerpc/qoriq/startup/bspsmp.c	(revision 6c5c2f39d05543c2d30e8fc44e93dd961c68e43d)
@@ -23,4 +23,5 @@
 #include <bsp/qoriq.h>
 #include <bsp/vectors.h>
+#include <bsp/bootcard.h>
 #include <bsp/irq-generic.h>
 #include <bsp/linker-symbols.h>
@@ -108,5 +109,5 @@
 }
 
-void qoriq_secondary_cpu_initialize(void)
+void bsp_start_on_secondary_processor(void)
 {
   const Per_CPU_Control *second_cpu = _Per_CPU_Get_by_index(1);
Index: c/src/lib/libbsp/sparc/leon3/include/leon.h
===================================================================
--- c/src/lib/libbsp/sparc/leon3/include/leon.h	(revision 64a04ac3c71c55020b18f22be754ddb3ea23b9fa)
+++ c/src/lib/libbsp/sparc/leon3/include/leon.h	(revision 6c5c2f39d05543c2d30e8fc44e93dd961c68e43d)
@@ -328,11 +328,4 @@
 int apbuart_inbyte_nonblocking(struct apbuart_regs *regs);
 
-/**
- * @brief Initializes a secondary processor.
- *
- * @param[in] cpu The processor executing this function.
- */
-void leon3_secondary_cpu_initialize(uint32_t cpu);
-
 void leon3_cpu_counter_initialize(void);
 
Index: c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c
===================================================================
--- c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c	(revision 64a04ac3c71c55020b18f22be754ddb3ea23b9fa)
+++ c/src/lib/libbsp/sparc/leon3/startup/bspsmp.c	(revision 6c5c2f39d05543c2d30e8fc44e93dd961c68e43d)
@@ -15,4 +15,5 @@
 
 #include <bsp.h>
+#include <bsp/bootcard.h>
 #include <leon.h>
 #include <rtems/bspIo.h>
@@ -34,9 +35,11 @@
 }
 
-void leon3_secondary_cpu_initialize(uint32_t cpu_index)
+void bsp_start_on_secondary_processor()
 {
+  uint32_t cpu_index_self = _CPU_SMP_Get_current_processor();
+
   leon3_set_cache_control_register(0x80000F);
   /* Unmask IPI interrupts at Interrupt controller for this CPU */
-  LEON3_IrqCtrl_Regs->mask[cpu_index] |= 1U << LEON3_MP_IRQ;
+  LEON3_IrqCtrl_Regs->mask[cpu_index_self] |= 1U << LEON3_MP_IRQ;
 
   _SMP_Start_multitasking_on_secondary_processor();
Index: c/src/lib/libbsp/sparc/shared/start/start.S
===================================================================
--- c/src/lib/libbsp/sparc/shared/start/start.S	(revision 64a04ac3c71c55020b18f22be754ddb3ea23b9fa)
+++ c/src/lib/libbsp/sparc/shared/start/start.S	(revision 6c5c2f39d05543c2d30e8fc44e93dd961c68e43d)
@@ -242,5 +242,5 @@
 	mov	%sp, %fp		! set frame pointer
 
-	call	SYM(leon3_secondary_cpu_initialize) ! does not return
+	call	SYM(bsp_start_on_secondary_processor) ! does not return
 	 sub	%sp, CPU_MINIMUM_STACK_FRAME_SIZE, %sp
 	ba	SYM(bsp_reset)		! just in case
Index: testsuites/smptests/smpfatal08/init.c
===================================================================
--- testsuites/smptests/smpfatal08/init.c	(revision 64a04ac3c71c55020b18f22be754ddb3ea23b9fa)
+++ testsuites/smptests/smpfatal08/init.c	(revision 6c5c2f39d05543c2d30e8fc44e93dd961c68e43d)
@@ -21,4 +21,6 @@
 #include <rtems/score/smpimpl.h>
 
+#include <bsp/bootcard.h>
+
 #include <assert.h>
 #include <stdlib.h>
@@ -31,19 +33,8 @@
  */
 
-#if defined(__PPC__)
-void qoriq_secondary_cpu_initialize(void)
+void bsp_start_on_secondary_processor(void)
 {
   /* Provided to avoid multiple definitions of the CPU SMP support functions */
 }
-#endif
-
-#if defined(__sparc__)
-void leon3_secondary_cpu_initialize(uint32_t cpu_index)
-{
-  (void) cpu_index;
-
-  /* Provided to avoid multiple definitions of the CPU SMP support functions */
-}
-#endif
 
 uint32_t _CPU_SMP_Initialize(void)
