123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- #include <arch.h>
- #include <asm_macros.S>
- #include <common/bl_common.h>
- .globl bl2u_entrypoint
- func bl2u_entrypoint
-
- mov x20, x1
- mov x21, x2
-
- adr x0, early_exceptions
- msr vbar_el1, x0
- isb
-
- msr daifclr, #DAIF_ABT_BIT
-
- mov x1, #(SCTLR_I_BIT | SCTLR_A_BIT | SCTLR_SA_BIT)
- mrs x0, sctlr_el1
- orr x0, x0, x1
- bic x0, x0, #SCTLR_DSSBS_BIT
- msr sctlr_el1, x0
- isb
-
- adr x0, __RW_START__
- adr x1, __RW_END__
- sub x1, x1, x0
- bl inv_dcache_range
-
- adrp x0, __BSS_START__
- add x0, x0, :lo12:__BSS_START__
- adrp x1, __BSS_END__
- add x1, x1, :lo12:__BSS_END__
- sub x1, x1, x0
- bl zeromem
-
- bl plat_set_my_stack
-
- #if STACK_PROTECTOR_ENABLED
- bl update_stack_protector_canary
- #endif
-
- mov x0, x20
- mov x1, x21
- bl bl2u_early_platform_setup
- bl bl2u_plat_arch_setup
- #if ENABLE_PAUTH
-
- bl pauth_init_enable_el1
- #endif
-
- bl bl2u_main
-
- no_ret plat_panic_handler
- endfunc bl2u_entrypoint
|