diff options
author | Simon Glass <sjg@chromium.org> | 2016-11-07 18:47:14 +0300 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2016-11-15 01:24:04 +0300 |
commit | 2dcd4e9ee1b6dc0f0ba1d89a7af3987ea47dda23 (patch) | |
tree | bee452040b1403b2feab1709c8fff3b44e80bbfa /arch/x86/lib/crt0_x86_64_efi.S | |
parent | d36badfdc6a47ae1377dde809c9ea6f6249f5c15 (diff) | |
download | u-boot-2dcd4e9ee1b6dc0f0ba1d89a7af3987ea47dda23.tar.xz |
x86: Move efi .S files into the 'lib' directory
These files now need to be in a standard place so that they can be located
by generic Makefile rules. Move them to the 'lib' directory.
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/x86/lib/crt0_x86_64_efi.S')
-rw-r--r-- | arch/x86/lib/crt0_x86_64_efi.S | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/arch/x86/lib/crt0_x86_64_efi.S b/arch/x86/lib/crt0_x86_64_efi.S new file mode 100644 index 0000000000..c5cbf4108b --- /dev/null +++ b/arch/x86/lib/crt0_x86_64_efi.S @@ -0,0 +1,51 @@ +/* + * crt0-efi-x86_64.S - x86_64 EFI startup code. + * Copyright (C) 1999 Hewlett-Packard Co. + * Contributed by David Mosberger <davidm@hpl.hp.com>. + * Copyright (C) 2005 Intel Co. + * Contributed by Fenghua Yu <fenghua.yu@intel.com>. + * + * All rights reserved. + * SPDX-License-Identifier: BSD-3-Clause + */ + .text + .align 4 + + .globl _start +_start: + subq $8, %rsp + pushq %rcx + pushq %rdx + +0: + lea image_base(%rip), %rdi + lea _DYNAMIC(%rip), %rsi + + popq %rcx + popq %rdx + pushq %rcx + pushq %rdx + call _relocate + + popq %rdi + popq %rsi + + call efi_main + addq $8, %rsp + +.exit: + ret + + /* + * hand-craft a dummy .reloc section so EFI knows it's a relocatable + * executable: + */ + .data +dummy: .long 0 + +#define IMAGE_REL_ABSOLUTE 0 + .section .reloc, "a" +label1: + .long dummy-label1 /* Page RVA */ + .long 10 /* Block Size (2*4+2) */ + .word (IMAGE_REL_ABSOLUTE << 12) + 0 /* reloc for dummy */ |