~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/blackfin/mach-bf561/secondary.S

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
#include <asm/asm-offsets.h>
14
14
#include <asm/trace.h>
15
15
 
16
 
__INIT
 
16
/*
 
17
 * This code must come first as CoreB is hardcoded (in hardware)
 
18
 * to start at the beginning of its L1 instruction memory.
 
19
 */
 
20
.section .l1.text.head
17
21
 
18
22
/* Lay the initial stack into the L1 scratch area of Core B */
19
23
#define INITIAL_STACK   (COREB_L1_SCRATCH_START + L1_SCRATCH_LENGTH - 12)
160
164
.LWAIT_HERE:
161
165
        jump .LWAIT_HERE;
162
166
ENDPROC(_coreb_trampoline_start)
163
 
ENTRY(_coreb_trampoline_end)
164
167
 
 
168
#ifdef CONFIG_HOTPLUG_CPU
165
169
.section ".text"
166
 
ENTRY(_set_sicb_iwr)
167
 
        P0.H = hi(SICB_IWR0);
168
 
        P0.L = lo(SICB_IWR0);
169
 
        P1.H = hi(SICB_IWR1);
170
 
        P1.L = lo(SICB_IWR1);
171
 
        [P0] = R0;
172
 
        [P1] = R1;
173
 
        SSYNC;
174
 
        RTS;
175
 
ENDPROC(_set_sicb_iwr)
176
 
 
177
 
ENTRY(_coreb_sleep)
 
170
ENTRY(_coreb_die)
178
171
        sp.l = lo(INITIAL_STACK);
179
172
        sp.h = hi(INITIAL_STACK);
180
173
        fp = sp;
181
174
        usp = sp;
182
175
 
183
 
        call _set_sicb_iwr;
184
 
 
185
176
        CLI R2;
186
177
        SSYNC;
187
178
        IDLE;
188
179
        STI R2;
189
180
 
190
181
        R0 = IWR_DISABLE_ALL;
191
 
        R1 = IWR_DISABLE_ALL;
192
 
        call _set_sicb_iwr;
 
182
        P0.H = hi(SYSMMR_BASE);
 
183
        P0.L = lo(SYSMMR_BASE);
 
184
        [P0 + (SICB_IWR0 - SYSMMR_BASE)] = R0;
 
185
        [P0 + (SICB_IWR1 - SYSMMR_BASE)] = R0;
 
186
        SSYNC;
193
187
 
194
188
        p0.h = hi(COREB_L1_CODE_START);
195
189
        p0.l = lo(COREB_L1_CODE_START);
196
190
        jump (p0);
197
 
ENDPROC(_coreb_sleep)
 
191
ENDPROC(_coreb_die)
 
192
#endif
198
193
 
199
 
__CPUINIT
 
194
__INIT
200
195
ENTRY(_coreb_start)
201
196
        [--sp] = reti;
202
197