File indexing completed on 2025-05-11 08:23:57
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include <rtems/asm.h>
0019 #include <rtems/score/cpu.h>
0020 #include <libcpu/io.h>
0021 #include "ppc-asm.h"
0022
0023 .section ".got2","aw"
0024 .align 2
0025
0026 .LCTOC1 = .+32768
0027
0028 .section ".got2","aw"
0029 .Ltable = .-.LCTOC1
0030 .long .LCTOC1
0031
0032 .Lbss_start = .-.LCTOC1
0033 .long bsp_section_sbss_begin
0034
0035 .Lend = .-.LCTOC1
0036 .long bsp_section_bss_end
0037
0038 .Lstack = .-.LCTOC1
0039 .long _ISR_Stack_area_end
0040
0041 .text
0042 .Lptr:
0043 .long .LCTOC1-.Laddr
0044
0045 .globl __rtems_entry_point
0046 .type __rtems_entry_point,@function
0047 __rtems_entry_point:
0048 #if 1
0049 .globl _start
0050 .type _start,@function
0051 _start:
0052 #endif
0053 bl .Laddr
0054 .Laddr:
0055 mflr r4
0056 lwz r5,(.Lptr-.Laddr)(r4)
0057 add r5,r5,r4
0058 lwz r4,.Ltable(r5)
0059 subf r4,r4,r5
0060
0061
0062 lwz r6,.Lbss_start(r5)
0063 lwz r7,.Lend(r5)
0064 add r6,r6,r4
0065 add r7,r7,r4
0066
0067 cmplw 1,r6,r7
0068 bc 4,4,.Ldone
0069
0070 subf r8,r6,r7
0071 srwi r9,r8,2
0072 mtctr r9
0073 li r0,0
0074 addi r6,r6,-4
0075 .Lloop:
0076 stwu r0,4(r6)
0077 bdnz .Lloop
0078
0079 .Ldone:
0080
0081 lwz r0,.Lstack(r5)
0082 cmplwi 1,r0,0
0083 bc 12,6,.Lnostack
0084 mr sp,r0
0085
0086 .Lnostack:
0087 #ifdef __ALTIVEC__
0088
0089
0090
0091
0092 mfmsr r0
0093 oris r0, r0, (1<<(31-16-6))
0094 mtmsr r0
0095 isync
0096
0097
0098
0099 li r0, 0
0100 mtvrsave r0
0101 vxor 0,0,0
0102 mtvscr 0
0103 #endif
0104
0105 addi sp,sp,-4
0106
0107 li r3, CPU_STACK_ALIGNMENT-1
0108 andc sp, sp, r3
0109 lis r0,0
0110 stw r0,0(sp)
0111 stwu sp,-CPU_STACK_ALIGNMENT(sp)
0112 bl FUNC_NAME(__eabi)
0113
0114
0115 li r3, 0
0116 bl FUNC_NAME(boot_card)
0117
0118 .globl FUNC_NAME(bsp_reset)
0119 FUNC_NAME(bsp_reset):
0120 li 10,99
0121 sc
0122
0123 .Lstart:
0124 .size _start,.Lstart-_start