Ticket #2343: bsp_smp_startup.patch

File bsp_smp_startup.patch, 1.5 KB (added by Jonathan Brandmeyer, on 05/08/15 at 22:33:32)

Patch

  • c/src/lib/libbsp/arm/xilinx-zynq/startup/bspsmp.c

    diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspsmp.c b/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspsmp.c
    index 3940352..dec9ac0 100644
    a b  
    1313 */
    1414
    1515#include <rtems/score/smpimpl.h>
     16#include <bsp/start.h>
    1617
    1718bool _CPU_SMP_Start_processor(uint32_t cpu_index)
    1819{
     20  if ( cpu_index == 1 ) {
     21        void (**cpu1_start_address)(void) = (void (**)(void)) 0xfffffff0;
     22
     23        if (*cpu1_start_address != &_start) {
     24          *cpu1_start_address = &_start;
     25          _CPU_SMP_Processor_event_broadcast();
     26        }
     27        // else, the bootloader has already done it.
     28  }
     29
    1930  /*
    2031   * Wait for secondary processor to complete its basic initialization so that
    2132   * we can enable the unified L2 cache.
    2233   */
    2334  return _Per_CPU_State_wait_for_non_initial_state(cpu_index, 0);
    2435}
     36
  • c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstartmmu.c

    diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstartmmu.c b/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstartmmu.c
    index c7a1089..cf63fec 100644
    a b zynq_mmu_config_table[] = { 
    2626    .begin = 0xe0000000U,
    2727    .end = 0xe0200000U,
    2828    .flags = ARMV7_MMU_DEVICE
    29   }, {
     29  },
     30  {
    3031    .begin = 0xf8000000U,
    3132    .end = 0xf9000000U,
    3233    .flags = ARMV7_MMU_DEVICE
    33   }
     34  },
     35  {
     36        // hi-mapped 64k of CCM, as device memory.
     37    .begin = 0xffff0000U,
     38    .end = 0xffffffffU,
     39    .flags = ARMV7_MMU_DEVICE
     40  },
    3441};
    3542
    3643/*