diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-05-31 10:08:43 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-05-31 15:20:32 +0200 |
commit | bd39add8fafc01d9a469beba89a97557a2fd1125 (patch) | |
tree | db8d4cbbb1a22d1a28695296e0484b3b99d22b38 /c/src/lib/libbsp/powerpc/qoriq/start/start.S | |
parent | smp: Add PowerPC support (diff) | |
download | rtems-bd39add8fafc01d9a469beba89a97557a2fd1125.tar.bz2 |
bsp/qoriq: Add SMP support
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/start/start.S')
-rw-r--r-- | c/src/lib/libbsp/powerpc/qoriq/start/start.S | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S index c4debf55c7..7d74bd1424 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S +++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S @@ -7,10 +7,10 @@ */ /* - * Copyright (c) 2010-2012 embedded brains GmbH. All rights reserved. + * Copyright (c) 2010-2013 embedded brains GmbH. All rights reserved. * * embedded brains GmbH - * Obere Lagerstr. 30 + * Dornierstr. 4 * 82178 Puchheim * Germany * <rtems@embedded-brains.de> @@ -32,6 +32,7 @@ #define UBOOT_BOARD_INFO r15 .globl _start + .globl _start_core_1 .globl bsp_exc_vector_base .section ".bsp_start_text", "ax" @@ -169,6 +170,55 @@ copy: beqlr b memcpy +_start_core_1: + + /* Reset time base */ + li r0, 0 + mtspr TBWU, r0 + mtspr TBWL, r0 + + /* Get start stack */ + subi r1, r3, 16 + + /* Initial MMU setup */ + bl qoriq_tlb1_ts_0_only + li r3, SCRATCH_TLB + li r4, FSL_EIS_MAS1_TS + li r5, FSL_EIS_MAS2_I + li r6, FSL_EIS_MAS3_SR | FSL_EIS_MAS3_SW | FSL_EIS_MAS3_SX + li r7, 0 + li r8, 11 + bl qoriq_tlb1_write + + /* MSR initialization */ + LWI INITIAL_MSR, QORIQ_INITIAL_MSR + ori r0, INITIAL_MSR, MSR_IS | MSR_DS + mtmsr r0 + + /* SPEFSCR initialization */ + LWI r0, QORIQ_INITIAL_SPEFSCR + mtspr FSL_EIS_SPEFSCR, r0 + + /* Initialize start stack */ + li r0, 0 + stw r0, 0(r1) + + /* Configure MMU */ + li r3, FIRST_TLB + li r4, SCRATCH_TLB + bl qoriq_mmu_config + mtmsr INITIAL_MSR + li r3, SCRATCH_TLB + bl qoriq_tlb1_invalidate + + /* Set small-data anchors */ + LA r2, _SDA2_BASE_ + LA r13, _SDA_BASE_ + + b qoriq_secondary_cpu_initialize + + b twiddle + /* Exception vector prologues area */ .section ".bsp_start_text", "ax" .align 4 |