Blame view

kernel/linux-rt-4.4.41/arch/arm/mach-socfpga/headsmp.S 948 Bytes
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  /*
   *  Copyright (c) 2003 ARM Limited
   *  Copyright (c) u-boot contributors
   *  Copyright (c) 2012 Pavel Machek <pavel@denx.de>
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
   */
  #include <linux/linkage.h>
  #include <linux/init.h>
  #include <asm/memory.h>
  #include <asm/assembler.h>
  
  	.arch	armv7-a
  	.arm
  
  ENTRY(secondary_trampoline)
  	/* CPU1 will always fetch from 0x0 when it is brought out of reset.
  	 * Thus, we can just subtract the PAGE_OFFSET to get the physical
  	 * address of &cpu1start_addr. This would not work for platforms
  	 * where the physical memory does not start at 0x0.
  	*/
  ARM_BE8(setend	be)
  	adr	r0, 1f
  	ldmia	r0, {r1, r2}
  	sub	r2, r2, #PAGE_OFFSET
  	ldr	r3, [r2]
  	ldr	r4, [r3]
  ARM_BE8(rev	r4, r4)
  	bx	r4
  
  	.align
  1:	.long	.
  	.long	socfpga_cpu1start_addr
  ENTRY(secondary_trampoline_end)