]> git.sur5r.net Git - u-boot/blob - arch/x86/lib/crt0_x86_64_efi.S
Merge branch 'master' of http://git.denx.de/u-boot-mmc
[u-boot] / arch / x86 / lib / crt0_x86_64_efi.S
1 /*
2  * crt0-efi-x86_64.S - x86_64 EFI startup code.
3  * Copyright (C) 1999 Hewlett-Packard Co.
4  * Contributed by David Mosberger <davidm@hpl.hp.com>.
5  * Copyright (C) 2005 Intel Co.
6  * Contributed by Fenghua Yu <fenghua.yu@intel.com>.
7  *
8  * All rights reserved.
9  * SPDX-License-Identifier:     BSD-3-Clause
10  */
11         .text
12         .align 4
13
14         .globl _start
15 _start:
16         subq $8, %rsp
17         pushq %rcx
18         pushq %rdx
19
20 0:
21         lea image_base(%rip), %rdi
22         lea _DYNAMIC(%rip), %rsi
23
24         popq %rcx
25         popq %rdx
26         pushq %rcx
27         pushq %rdx
28         call _relocate
29
30         popq %rdi
31         popq %rsi
32
33         call efi_main
34         addq $8, %rsp
35
36 .exit:
37         ret
38
39         /*
40          * hand-craft a dummy .reloc section so EFI knows it's a relocatable
41          * executable:
42          */
43         .data
44 dummy:  .long   0
45
46 #define IMAGE_REL_ABSOLUTE      0
47         .section .reloc, "a"
48 label1:
49         .long   dummy-label1                            /* Page RVA */
50         .long   10                                      /* Block Size (2*4+2) */
51         .word   (IMAGE_REL_ABSOLUTE << 12) +  0         /* reloc for dummy */