uboot/examples/api/crt0.S
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2007 Semihalf
   3 *
   4 * Written by: Rafal Jaworowski <raj@semihalf.com>
   5 *
   6 * SPDX-License-Identifier:     GPL-2.0+
   7 */
   8
   9#if defined(CONFIG_PPC)
  10
  11        .text
  12        .globl _start
  13_start:
  14        lis     %r11, search_hint@ha
  15        addi    %r11, %r11, search_hint@l
  16        stw     %r1, 0(%r11)
  17        b       main
  18
  19
  20        .globl syscall
  21syscall:
  22        lis     %r11, syscall_ptr@ha
  23        addi    %r11, %r11, syscall_ptr@l
  24        lwz     %r11, 0(%r11)
  25        mtctr   %r11
  26        bctr
  27
  28#elif defined(CONFIG_ARM)
  29
  30        .text
  31        .globl _start
  32_start:
  33        ldr     ip, =search_hint
  34        str     sp, [ip]
  35        b       main
  36
  37
  38        .globl syscall
  39syscall:
  40        ldr     ip, =syscall_ptr
  41        ldr     pc, [ip]
  42
  43#elif defined(CONFIG_MIPS)
  44#include <asm/asm.h>
  45        .text
  46        .globl __start
  47        .ent __start
  48__start:
  49        PTR_S   $sp, search_hint
  50        b       main
  51        .end __start
  52
  53        .globl syscall
  54        .ent syscall
  55syscall:
  56        PTR_S   $ra, return_addr
  57        PTR_L   $t9, syscall_ptr
  58        jalr    $t9
  59        nop
  60        PTR_L   $ra, return_addr
  61        jr      $ra
  62        nop
  63        .end syscall
  64
  65return_addr:
  66        .align 8
  67        .long 0
  68#else
  69#error No support for this arch!
  70#endif
  71
  72        .globl syscall_ptr
  73syscall_ptr:
  74        .align  8
  75        .long   0
  76
  77        .globl search_hint
  78search_hint:
  79        .long   0
  80