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