source: rtems/bsps/powerpc/qoriq/start/restart.S @ 8f8ccee

5
Last change on this file since 8f8ccee was 9964895, checked in by Sebastian Huber <sebastian.huber@…>, on 04/20/18 at 08:35:35

bsps: Move startup files to bsps

Adjust build support files to new directory layout.

This patch is a part of the BSP source reorganization.

Update #3285.

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*
2 * Copyright (c) 2016 embedded brains GmbH.  All rights reserved.
3 *
4 *  embedded brains GmbH
5 *  Dornierstr. 4
6 *  82178 Puchheim
7 *  Germany
8 *  <rtems@embedded-brains.de>
9 *
10 * The license and distribution terms for this file may be
11 * found in the file LICENSE in this distribution or at
12 * http://www.rtems.org/license/LICENSE.
13 */
14
15#include <libcpu/powerpc-utility.h>
16
17#define FIRST_TLB 0
18
19#define SCRATCH_TLB QORIQ_TLB1_ENTRY_COUNT - 1
20
21        .global qoriq_restart_secondary_processor
22
23        .section ".bsp_start_text", "ax"
24
25qoriq_restart_secondary_processor:
26
27        mr      r14, r3
28
29        /* Invalidate all TS1 MMU entries */
30        li      r3, 1
31        bl      qoriq_tlb1_invalidate_all_by_ts
32
33        /* Add TS1 entry for the first 4GiB of RAM */
34        li      r3, SCRATCH_TLB
35        li      r4, FSL_EIS_MAS1_TS
36        li      r5, FSL_EIS_MAS2_I
37        li      r6, FSL_EIS_MAS3_SR | FSL_EIS_MAS3_SW | FSL_EIS_MAS3_SX
38        li      r7, 0
39        li      r8, 0
40        li      r9, 11
41        bl      qoriq_tlb1_write
42
43        bl      qoriq_l1cache_invalidate
44
45        /* Set MSR and use TS1 for address translation */
46        LWI     r0, QORIQ_INITIAL_MSR | MSR_IS | MSR_DS
47        mtmsr   r0
48        isync
49
50        /* Invalidate all TS0 MMU entries */
51        li      r3, 0
52        bl      qoriq_tlb1_invalidate_all_by_ts
53
54        /* Add TS0 entry for the first 4GiB of RAM */
55        li      r3, FIRST_TLB
56        li      r4, 0
57        li      r5, FSL_EIS_MAS2_I
58        li      r6, FSL_EIS_MAS3_SR | FSL_EIS_MAS3_SW | FSL_EIS_MAS3_SX
59        li      r7, 0
60        li      r8, 0
61        li      r9, 11
62        bl      qoriq_tlb1_write
63
64        /* Use TS0 for address translation */
65        LWI     r0, QORIQ_INITIAL_MSR
66        mtmsr   r0
67        isync
68
69        bl      qoriq_l1cache_invalidate
70
71        /* Wait for restart request */
72        li      r0, 0
73.Lrestartagain:
74        lwz     r4, 4(r14)
75        cmpw    r0, r4
76        beq     .Lrestartagain
77        isync
78        mtctr   r4
79        lwz     r3, 12(r14)
80        bctr
Note: See TracBrowser for help on using the repository browser.