summaryrefslogtreecommitdiffstats
path: root/purgatory/arch/arm64/entry.S
blob: adf16f476043ae82454431cade111d7b11bb528d (plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
 * ARM64 purgatory.
 */

.macro	size, sym:req
	.size \sym, . - \sym
.endm

.text

.globl purgatory_start
purgatory_start:

	adr	x19, .Lstack
	mov	sp, x19

	bl	purgatory

	/* Start new image. */
	ldr	x17, arm64_kernel_entry
	ldr	x0, arm64_dtb_addr
	mov	x1, xzr
	mov	x2, xzr
	mov	x3, xzr
	br	x17

size purgatory_start

.ltorg

.align 4
	.rept	256
	.quad	0
	.endr
.Lstack:

.data

.align 3

.globl arm64_kernel_entry
arm64_kernel_entry:
	.quad	0
size arm64_kernel_entry

.globl arm64_dtb_addr
arm64_dtb_addr:
	.quad	0
size arm64_dtb_addr

.end