head_32.S (e5451c8f8330e03ad3cfa16048b4daf961af434f) head_32.S (7480e0aabd5f9e6c3e3b72ed206e89284e90f11f)
1/* $Id: head.S,v 1.7 2003/09/01 17:58:19 lethal Exp $
2 *
3 * arch/sh/kernel/head.S
4 *
5 * Copyright (C) 1999, 2000 Niibe Yutaka & Kaz Kojima
6 * Copyright (C) 2010 Matt Fleming
7 *
8 * This file is subject to the terms and conditions of the GNU General Public

--- 52 unchanged lines hidden (view full) ---

61 ! Initialize Status Register
62 mov.l 1f, r0 ! MD=1, RB=0, BL=0, IMASK=0xF
63 ldc r0, sr
64 ! Initialize global interrupt mask
65#ifdef CONFIG_CPU_HAS_SR_RB
66 mov #0, r0
67 ldc r0, r6_bank
68#endif
1/* $Id: head.S,v 1.7 2003/09/01 17:58:19 lethal Exp $
2 *
3 * arch/sh/kernel/head.S
4 *
5 * Copyright (C) 1999, 2000 Niibe Yutaka & Kaz Kojima
6 * Copyright (C) 2010 Matt Fleming
7 *
8 * This file is subject to the terms and conditions of the GNU General Public

--- 52 unchanged lines hidden (view full) ---

61 ! Initialize Status Register
62 mov.l 1f, r0 ! MD=1, RB=0, BL=0, IMASK=0xF
63 ldc r0, sr
64 ! Initialize global interrupt mask
65#ifdef CONFIG_CPU_HAS_SR_RB
66 mov #0, r0
67 ldc r0, r6_bank
68#endif
69
70#ifdef CONFIG_OF
71 mov r4, r12 ! Store device tree blob pointer in r12
72#endif
69
70 /*
71 * Prefetch if possible to reduce cache miss penalty.
72 *
73 * We do this early on for SH-4A as a micro-optimization,
74 * as later on we will have speculative execution enabled
75 * and this will become less of an issue.
76 */

--- 232 unchanged lines hidden (view full) ---

309 mov #0, r0
3109: cmp/hs r2, r1
311 bf/s 9b ! while (r1 < r2)
312 mov.l r0,@-r2
313
31410:
315#endif
316
73
74 /*
75 * Prefetch if possible to reduce cache miss penalty.
76 *
77 * We do this early on for SH-4A as a micro-optimization,
78 * as later on we will have speculative execution enabled
79 * and this will become less of an issue.
80 */

--- 232 unchanged lines hidden (view full) ---

313 mov #0, r0
3149: cmp/hs r2, r1
315 bf/s 9b ! while (r1 < r2)
316 mov.l r0,@-r2
317
31810:
319#endif
320
321#ifdef CONFIG_OF
322 mov.l 8f, r0 ! Make flat device tree available early.
323 jsr @r0
324 mov r12, r4
325#endif
326
317 ! Additional CPU initialization
318 mov.l 6f, r0
319 jsr @r0
320 nop
321
322 SYNCO() ! Wait for pending instructions..
323
324 ! Start kernel

--- 9 unchanged lines hidden (view full) ---

334#endif
335ENTRY(stack_start)
3362: .long init_thread_union+THREAD_SIZE
3373: .long __bss_start
3384: .long _end
3395: .long start_kernel
3406: .long cpu_init
3417: .long init_thread_union
327 ! Additional CPU initialization
328 mov.l 6f, r0
329 jsr @r0
330 nop
331
332 SYNCO() ! Wait for pending instructions..
333
334 ! Start kernel

--- 9 unchanged lines hidden (view full) ---

344#endif
345ENTRY(stack_start)
3462: .long init_thread_union+THREAD_SIZE
3473: .long __bss_start
3484: .long _end
3495: .long start_kernel
3506: .long cpu_init
3517: .long init_thread_union
352#if defined(CONFIG_OF)
3538: .long sh_fdt_init
354#endif
342
343#ifdef CONFIG_PMB
344.LPMB_ADDR: .long PMB_ADDR
345.LPMB_DATA: .long PMB_DATA
346.LPMB_DATA_MASK: .long PMB_PFN_MASK | PMB_V
347.LFIRST_ADDR_ENTRY: .long PAGE_OFFSET | PMB_V
348.LFIRST_DATA_ENTRY: .long __MEMORY_START | PMB_V
349.LMMUCR: .long MMUCR
350.LMEMORY_SIZE: .long __MEMORY_SIZE
351#ifdef CONFIG_UNCACHED_MAPPING
352.Lcached_to_uncached: .long cached_to_uncached
353.Luncached_size: .long uncached_size
354#endif
355#endif
355
356#ifdef CONFIG_PMB
357.LPMB_ADDR: .long PMB_ADDR
358.LPMB_DATA: .long PMB_DATA
359.LPMB_DATA_MASK: .long PMB_PFN_MASK | PMB_V
360.LFIRST_ADDR_ENTRY: .long PAGE_OFFSET | PMB_V
361.LFIRST_DATA_ENTRY: .long __MEMORY_START | PMB_V
362.LMMUCR: .long MMUCR
363.LMEMORY_SIZE: .long __MEMORY_SIZE
364#ifdef CONFIG_UNCACHED_MAPPING
365.Lcached_to_uncached: .long cached_to_uncached
366.Luncached_size: .long uncached_size
367#endif
368#endif