1/* 2 * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7#include <arch.h> 8#include <asm_macros.S> 9#include <platform_def.h> 10 11 .weak plat_report_exception 12 .weak plat_crash_console_init 13 .weak plat_crash_console_putc 14 .weak plat_crash_console_flush 15 .weak plat_reset_handler 16 .weak plat_disable_acp 17 .weak bl1_plat_prepare_exit 18 .weak plat_error_handler 19 .weak plat_panic_handler 20 .weak bl2_plat_preload_setup 21 .weak plat_try_next_boot_source 22 23#if !ENABLE_PLAT_COMPAT 24 .globl platform_get_core_pos 25 26#define MPIDR_RES_BIT_MASK 0xff000000 27 28 /* ------------------------------------------------------------------ 29 * int platform_get_core_pos(int mpidr) 30 * Returns the CPU index of the CPU specified by mpidr. This is 31 * defined when platform compatibility is disabled to enable Trusted 32 * Firmware components like SPD using the old platform API to work. 33 * This API is deprecated and it assumes that the mpidr specified is 34 * that of a valid and present CPU. Instead, plat_my_core_pos() 35 * should be used for CPU index of the current CPU and 36 * plat_core_pos_by_mpidr() should be used for CPU index of a 37 * CPU specified by its mpidr. 38 * ------------------------------------------------------------------ 39 */ 40func_deprecated platform_get_core_pos 41 bic x0, x0, #MPIDR_RES_BIT_MASK 42 mrs x1, mpidr_el1 43 bic x1, x1, #MPIDR_RES_BIT_MASK 44 cmp x0, x1 45 beq plat_my_core_pos 46 b platform_core_pos_helper 47endfunc_deprecated platform_get_core_pos 48#endif 49 50 /* ----------------------------------------------------- 51 * Placeholder function which should be redefined by 52 * each platform. 53 * ----------------------------------------------------- 54 */ 55func plat_report_exception 56 ret 57endfunc plat_report_exception 58 59 /* ----------------------------------------------------- 60 * Placeholder function which should be redefined by 61 * each platform. 62 * ----------------------------------------------------- 63 */ 64func plat_crash_console_init 65 mov x0, #0 66 ret 67endfunc plat_crash_console_init 68 69 /* ----------------------------------------------------- 70 * Placeholder function which should be redefined by 71 * each platform. 72 * ----------------------------------------------------- 73 */ 74func plat_crash_console_putc 75 ret 76endfunc plat_crash_console_putc 77 78 /* ----------------------------------------------------- 79 * Placeholder function which should be redefined by 80 * each platform. 81 * ----------------------------------------------------- 82 */ 83func plat_crash_console_flush 84 ret 85endfunc plat_crash_console_flush 86 87 /* ----------------------------------------------------- 88 * Placeholder function which should be redefined by 89 * each platform. This function should preserve x19 - x29. 90 * ----------------------------------------------------- 91 */ 92func plat_reset_handler 93 ret 94endfunc plat_reset_handler 95 96 /* ----------------------------------------------------- 97 * Placeholder function which should be redefined by 98 * each platform. This function is allowed to use 99 * registers x0 - x17. 100 * ----------------------------------------------------- 101 */ 102func plat_disable_acp 103 ret 104endfunc plat_disable_acp 105 106 /* ----------------------------------------------------- 107 * void bl1_plat_prepare_exit(entry_point_info_t *ep_info); 108 * Called before exiting BL1. Default: do nothing 109 * ----------------------------------------------------- 110 */ 111func bl1_plat_prepare_exit 112 ret 113endfunc bl1_plat_prepare_exit 114 115 /* ----------------------------------------------------- 116 * void plat_error_handler(int err) __dead2; 117 * Endless loop by default. 118 * ----------------------------------------------------- 119 */ 120func plat_error_handler 121 wfi 122 b plat_error_handler 123endfunc plat_error_handler 124 125 /* ----------------------------------------------------- 126 * void plat_panic_handler(void) __dead2; 127 * Endless loop by default. 128 * ----------------------------------------------------- 129 */ 130func plat_panic_handler 131 wfi 132 b plat_panic_handler 133endfunc plat_panic_handler 134 135 /* ----------------------------------------------------- 136 * Placeholder function which should be redefined by 137 * each platfrom. 138 * ----------------------------------------------------- 139 */ 140func bl2_plat_preload_setup 141 ret 142endfunc bl2_plat_preload_setup 143 144 /* ----------------------------------------------------- 145 * Placeholder function which should be redefined by 146 * each platfrom. 147 * ----------------------------------------------------- 148 */ 149func plat_try_next_boot_source 150 mov x0, #0 151 ret 152endfunc plat_try_next_boot_source 153