Commit 9c7eecce authored by danh-arm's avatar danh-arm
Browse files

Merge pull request #284 from kpet/kp/tf-issues-295

Add support to indicate size and end of assembly functions
parents cd319142 8b779620
...@@ -35,3 +35,4 @@ ...@@ -35,3 +35,4 @@
func semihosting_call func semihosting_call
hlt #0xf000 hlt #0xf000
ret ret
endfunc semihosting_call
...@@ -52,6 +52,7 @@ func platform_get_core_pos ...@@ -52,6 +52,7 @@ func platform_get_core_pos
and x0, x0, #MPIDR_CLUSTER_MASK and x0, x0, #MPIDR_CLUSTER_MASK
add x0, x1, x0, LSR #6 add x0, x1, x0, LSR #6
ret ret
endfunc platform_get_core_pos
/* ----------------------------------------------------- /* -----------------------------------------------------
* Placeholder function which should be redefined by * Placeholder function which should be redefined by
...@@ -61,6 +62,7 @@ func platform_get_core_pos ...@@ -61,6 +62,7 @@ func platform_get_core_pos
func platform_check_mpidr func platform_check_mpidr
mov x0, xzr mov x0, xzr
ret ret
endfunc platform_check_mpidr
/* ----------------------------------------------------- /* -----------------------------------------------------
* Placeholder function which should be redefined by * Placeholder function which should be redefined by
...@@ -69,6 +71,7 @@ func platform_check_mpidr ...@@ -69,6 +71,7 @@ func platform_check_mpidr
*/ */
func plat_report_exception func plat_report_exception
ret ret
endfunc plat_report_exception
/* ----------------------------------------------------- /* -----------------------------------------------------
* Placeholder function which should be redefined by * Placeholder function which should be redefined by
...@@ -78,6 +81,7 @@ func plat_report_exception ...@@ -78,6 +81,7 @@ func plat_report_exception
func plat_crash_console_init func plat_crash_console_init
mov x0, #0 mov x0, #0
ret ret
endfunc plat_crash_console_init
/* ----------------------------------------------------- /* -----------------------------------------------------
* Placeholder function which should be redefined by * Placeholder function which should be redefined by
...@@ -86,6 +90,7 @@ func plat_crash_console_init ...@@ -86,6 +90,7 @@ func plat_crash_console_init
*/ */
func plat_crash_console_putc func plat_crash_console_putc
ret ret
endfunc plat_crash_console_putc
/* ----------------------------------------------------- /* -----------------------------------------------------
* Placeholder function which should be redefined by * Placeholder function which should be redefined by
...@@ -94,6 +99,7 @@ func plat_crash_console_putc ...@@ -94,6 +99,7 @@ func plat_crash_console_putc
*/ */
func plat_reset_handler func plat_reset_handler
ret ret
endfunc plat_reset_handler
/* ----------------------------------------------------- /* -----------------------------------------------------
* Placeholder function which should be redefined by * Placeholder function which should be redefined by
...@@ -103,3 +109,4 @@ func plat_reset_handler ...@@ -103,3 +109,4 @@ func plat_reset_handler
*/ */
func plat_disable_acp func plat_disable_acp
ret ret
endfunc plat_disable_acp
...@@ -49,6 +49,7 @@ func platform_get_stack ...@@ -49,6 +49,7 @@ func platform_get_stack
mov x10, x30 // lr mov x10, x30 // lr
get_mp_stack platform_normal_stacks, PLATFORM_STACK_SIZE get_mp_stack platform_normal_stacks, PLATFORM_STACK_SIZE
ret x10 ret x10
endfunc platform_get_stack
/* ----------------------------------------------------- /* -----------------------------------------------------
* void platform_set_stack (unsigned long mpidr) * void platform_set_stack (unsigned long mpidr)
...@@ -62,6 +63,7 @@ func platform_set_stack ...@@ -62,6 +63,7 @@ func platform_set_stack
bl platform_get_stack bl platform_get_stack
mov sp, x0 mov sp, x0
ret x9 ret x9
endfunc platform_set_stack
/* ----------------------------------------------------- /* -----------------------------------------------------
* Per-cpu stacks in normal memory. Each cpu gets a * Per-cpu stacks in normal memory. Each cpu gets a
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
func platform_get_stack func platform_get_stack
get_up_stack platform_normal_stacks, PLATFORM_STACK_SIZE get_up_stack platform_normal_stacks, PLATFORM_STACK_SIZE
ret ret
endfunc platform_get_stack
/* ----------------------------------------------------- /* -----------------------------------------------------
* void platform_set_stack (unsigned long) * void platform_set_stack (unsigned long)
...@@ -61,6 +62,7 @@ func platform_set_stack ...@@ -61,6 +62,7 @@ func platform_set_stack
get_up_stack platform_normal_stacks, PLATFORM_STACK_SIZE get_up_stack platform_normal_stacks, PLATFORM_STACK_SIZE
mov sp, x0 mov sp, x0
ret ret
endfunc platform_set_stack
/* ----------------------------------------------------- /* -----------------------------------------------------
* Single cpu stack in normal memory. * Single cpu stack in normal memory.
......
...@@ -97,6 +97,7 @@ func plat_secondary_cold_boot_setup ...@@ -97,6 +97,7 @@ func plat_secondary_cold_boot_setup
wfi wfi
cb_panic: cb_panic:
b cb_panic b cb_panic
endfunc plat_secondary_cold_boot_setup
/* ----------------------------------------------------- /* -----------------------------------------------------
...@@ -148,6 +149,7 @@ warm_reset: ...@@ -148,6 +149,7 @@ warm_reset:
exit: exit:
ret x9 ret x9
_panic: b _panic _panic: b _panic
endfunc platform_get_entrypoint
/* ----------------------------------------------------- /* -----------------------------------------------------
...@@ -170,6 +172,7 @@ loop: ...@@ -170,6 +172,7 @@ loop:
subs w1, w1, #1 subs w1, w1, #1
b.gt loop b.gt loop
ret ret
endfunc platform_mem_init
/* --------------------------------------------- /* ---------------------------------------------
* void plat_report_exception(unsigned int type) * void plat_report_exception(unsigned int type)
...@@ -191,12 +194,14 @@ func plat_report_exception ...@@ -191,12 +194,14 @@ func plat_report_exception
add x1, x1, #V2M_SYS_LED add x1, x1, #V2M_SYS_LED
str w0, [x1] str w0, [x1]
ret ret
endfunc plat_report_exception
func platform_is_primary_cpu func platform_is_primary_cpu
and x0, x0, #(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK) and x0, x0, #(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK)
cmp x0, #FVP_PRIMARY_CPU cmp x0, #FVP_PRIMARY_CPU
cset x0, eq cset x0, eq
ret ret
endfunc platform_is_primary_cpu
/* Define a crash console for the plaform */ /* Define a crash console for the plaform */
#define FVP_CRASH_CONSOLE_BASE PL011_UART1_BASE #define FVP_CRASH_CONSOLE_BASE PL011_UART1_BASE
...@@ -213,6 +218,7 @@ func plat_crash_console_init ...@@ -213,6 +218,7 @@ func plat_crash_console_init
mov_imm x1, PL011_UART1_CLK_IN_HZ mov_imm x1, PL011_UART1_CLK_IN_HZ
mov_imm x2, PL011_BAUDRATE mov_imm x2, PL011_BAUDRATE
b console_core_init b console_core_init
endfunc plat_crash_console_init
/* --------------------------------------------- /* ---------------------------------------------
* int plat_crash_console_putc(int c) * int plat_crash_console_putc(int c)
...@@ -224,3 +230,4 @@ func plat_crash_console_init ...@@ -224,3 +230,4 @@ func plat_crash_console_init
func plat_crash_console_putc func plat_crash_console_putc
mov_imm x1, FVP_CRASH_CONSOLE_BASE mov_imm x1, FVP_CRASH_CONSOLE_BASE
b console_core_putc b console_core_putc
endfunc plat_crash_console_putc
...@@ -53,6 +53,7 @@ func platform_is_primary_cpu ...@@ -53,6 +53,7 @@ func platform_is_primary_cpu
cmp x0, x1 cmp x0, x1
cset x0, eq cset x0, eq
ret x9 ret x9
endfunc platform_is_primary_cpu
/* ----------------------------------------------------- /* -----------------------------------------------------
* void plat_secondary_cold_boot_setup (void); * void plat_secondary_cold_boot_setup (void);
...@@ -67,6 +68,7 @@ func plat_secondary_cold_boot_setup ...@@ -67,6 +68,7 @@ func plat_secondary_cold_boot_setup
/* Juno todo: Implement secondary CPU cold boot setup on Juno */ /* Juno todo: Implement secondary CPU cold boot setup on Juno */
cb_panic: cb_panic:
b cb_panic b cb_panic
endfunc plat_secondary_cold_boot_setup
/* ----------------------------------------------------- /* -----------------------------------------------------
...@@ -91,6 +93,7 @@ func platform_get_entrypoint ...@@ -91,6 +93,7 @@ func platform_get_entrypoint
lsl x0, x0, #TRUSTED_MAILBOX_SHIFT lsl x0, x0, #TRUSTED_MAILBOX_SHIFT
ldr x0, [x1, x0] ldr x0, [x1, x0]
ret x9 ret x9
endfunc platform_get_entrypoint
/* ----------------------------------------------------- /* -----------------------------------------------------
...@@ -140,3 +143,4 @@ func platform_cold_boot_init ...@@ -140,3 +143,4 @@ func platform_cold_boot_init
cb_init_panic: cb_init_panic:
b cb_init_panic b cb_init_panic
endfunc platform_cold_boot_init
...@@ -58,6 +58,7 @@ func plat_crash_console_init ...@@ -58,6 +58,7 @@ func plat_crash_console_init
mov_imm x1, PL011_UART3_CLK_IN_HZ mov_imm x1, PL011_UART3_CLK_IN_HZ
mov_imm x2, PL011_BAUDRATE mov_imm x2, PL011_BAUDRATE
b console_core_init b console_core_init
endfunc plat_crash_console_init
/* --------------------------------------------- /* ---------------------------------------------
* int plat_crash_console_putc(int c) * int plat_crash_console_putc(int c)
...@@ -69,6 +70,7 @@ func plat_crash_console_init ...@@ -69,6 +70,7 @@ func plat_crash_console_init
func plat_crash_console_putc func plat_crash_console_putc
mov_imm x1, JUNO_CRASH_CONSOLE_BASE mov_imm x1, JUNO_CRASH_CONSOLE_BASE
b console_core_putc b console_core_putc
endfunc plat_crash_console_putc
/* --------------------------------------------- /* ---------------------------------------------
* void plat_report_exception(unsigned int type) * void plat_report_exception(unsigned int type)
...@@ -90,6 +92,7 @@ func plat_report_exception ...@@ -90,6 +92,7 @@ func plat_report_exception
add x1, x1, #V2M_SYS_LED add x1, x1, #V2M_SYS_LED
str w0, [x1] str w0, [x1]
ret ret
endfunc plat_report_exception
/* /*
* Return 0 to 3 for the A53s and 4 or 5 for the A57s * Return 0 to 3 for the A53s and 4 or 5 for the A57s
...@@ -100,6 +103,7 @@ func platform_get_core_pos ...@@ -100,6 +103,7 @@ func platform_get_core_pos
eor x0, x0, #(1 << MPIDR_AFFINITY_BITS) // swap A53/A57 order eor x0, x0, #(1 << MPIDR_AFFINITY_BITS) // swap A53/A57 order
add x0, x1, x0, LSR #6 add x0, x1, x0, LSR #6
ret ret
endfunc platform_get_core_pos
/* ----------------------------------------------------- /* -----------------------------------------------------
...@@ -111,6 +115,7 @@ func platform_get_core_pos ...@@ -111,6 +115,7 @@ func platform_get_core_pos
*/ */
func platform_mem_init func platform_mem_init
ret ret
endfunc platform_mem_init
/* -------------------------------------------------------------------- /* --------------------------------------------------------------------
* void plat_reset_handler(void); * void plat_reset_handler(void);
...@@ -197,3 +202,4 @@ ret: ...@@ -197,3 +202,4 @@ ret:
isb isb
#endif /* FIRST_RESET_HANDLER_CALL */ #endif /* FIRST_RESET_HANDLER_CALL */
ret ret
endfunc plat_reset_handler
...@@ -64,6 +64,7 @@ func opteed_enter_sp ...@@ -64,6 +64,7 @@ func opteed_enter_sp
* --------------------------------------------- * ---------------------------------------------
*/ */
b el3_exit b el3_exit
endfunc opteed_enter_sp
/* --------------------------------------------- /* ---------------------------------------------
* This function is called 'x0' pointing to a C * This function is called 'x0' pointing to a C
...@@ -99,3 +100,4 @@ func opteed_exit_sp ...@@ -99,3 +100,4 @@ func opteed_exit_sp
*/ */
mov x0, x1 mov x0, x1
ret ret
endfunc opteed_exit_sp
\ No newline at end of file
...@@ -66,6 +66,7 @@ func tlkd_enter_sp ...@@ -66,6 +66,7 @@ func tlkd_enter_sp
* ---------------------------------------------- * ----------------------------------------------
*/ */
b el3_exit b el3_exit
endfunc tlkd_enter_sp
/* ---------------------------------------------- /* ----------------------------------------------
* This function is called with 'x0' pointing to * This function is called with 'x0' pointing to
...@@ -100,3 +101,4 @@ func tlkd_exit_sp ...@@ -100,3 +101,4 @@ func tlkd_exit_sp
*/ */
mov x0, x1 mov x0, x1
ret ret
endfunc tlkd_exit_sp
...@@ -64,6 +64,7 @@ func tspd_enter_sp ...@@ -64,6 +64,7 @@ func tspd_enter_sp
* --------------------------------------------- * ---------------------------------------------
*/ */
b el3_exit b el3_exit
endfunc tspd_enter_sp
/* --------------------------------------------- /* ---------------------------------------------
* This function is called 'x0' pointing to a C * This function is called 'x0' pointing to a C
...@@ -99,3 +100,4 @@ func tspd_exit_sp ...@@ -99,3 +100,4 @@ func tspd_exit_sp
*/ */
mov x0, x1 mov x0, x1
ret ret
endfunc tspd_exit_sp
...@@ -148,6 +148,7 @@ psci_aff_common_finish_entry: ...@@ -148,6 +148,7 @@ psci_aff_common_finish_entry:
bl psci_afflvl_power_on_finish bl psci_afflvl_power_on_finish
b el3_exit b el3_exit
endfunc psci_aff_on_finish_entry
/* -------------------------------------------- /* --------------------------------------------
* This function is called to indicate to the * This function is called to indicate to the
...@@ -163,4 +164,5 @@ func psci_power_down_wfi ...@@ -163,4 +164,5 @@ func psci_power_down_wfi
wfi wfi
wfi_spill: wfi_spill:
b wfi_spill b wfi_spill
endfunc psci_power_down_wfi
...@@ -120,6 +120,7 @@ do_stack_maintenance: ...@@ -120,6 +120,7 @@ do_stack_maintenance:
ldp x19, x20, [sp], #16 ldp x19, x20, [sp], #16
ldp x29, x30, [sp], #16 ldp x29, x30, [sp], #16
ret ret
endfunc psci_do_pwrdown_cache_maintenance
/* ----------------------------------------------------------------------- /* -----------------------------------------------------------------------
...@@ -164,3 +165,4 @@ func psci_do_pwrup_cache_maintenance ...@@ -164,3 +165,4 @@ func psci_do_pwrup_cache_maintenance
ldp x29, x30, [sp], #16 ldp x29, x30, [sp], #16
ret ret
endfunc psci_do_pwrup_cache_maintenance
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment