1/* 2 * Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6#include <arch.h> 7#include <asm_macros.S> 8#include <mt8173_def.h> 9 10 .globl plat_secondary_cold_boot_setup 11 .globl plat_report_exception 12 .globl platform_is_primary_cpu 13 .globl plat_my_core_pos 14 .globl plat_crash_console_init 15 .globl plat_crash_console_putc 16 17 /* ----------------------------------------------------- 18 * void plat_secondary_cold_boot_setup (void); 19 * 20 * This function performs any platform specific actions 21 * needed for a secondary cpu after a cold reset e.g 22 * mark the cpu's presence, mechanism to place it in a 23 * holding pen etc. 24 * ----------------------------------------------------- 25 */ 26func plat_secondary_cold_boot_setup 27 /* MT8173 Oak does not do cold boot for secondary CPU */ 28cb_panic: 29 b cb_panic 30endfunc plat_secondary_cold_boot_setup 31 32func platform_is_primary_cpu 33 and x0, x0, #(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK) 34 cmp x0, #MT8173_PRIMARY_CPU 35 cset x0, eq 36 ret 37endfunc platform_is_primary_cpu 38 39 /* ----------------------------------------------------- 40 * unsigned int plat_my_core_pos(void); 41 * 42 * result: CorePos = CoreId + (ClusterId << 2) 43 * ----------------------------------------------------- 44 */ 45func plat_my_core_pos 46 mrs x0, mpidr_el1 47 and x1, x0, #MPIDR_CPU_MASK 48 and x0, x0, #MPIDR_CLUSTER_MASK 49 add x0, x1, x0, LSR #6 50 ret 51endfunc plat_my_core_pos 52 53 /* --------------------------------------------- 54 * int plat_crash_console_init(void) 55 * Function to initialize the crash console 56 * without a C Runtime to print crash report. 57 * Clobber list : x0 - x4 58 * --------------------------------------------- 59 */ 60func plat_crash_console_init 61 mov_imm x0, MT8173_UART0_BASE 62 mov_imm x1, MT8173_UART_CLOCK 63 mov_imm x2, MT8173_BAUDRATE 64 b console_core_init 65endfunc plat_crash_console_init 66 67 /* --------------------------------------------- 68 * int plat_crash_console_putc(void) 69 * Function to print a character on the crash 70 * console without a C Runtime. 71 * Clobber list : x1, x2 72 * --------------------------------------------- 73 */ 74func plat_crash_console_putc 75 mov_imm x1, MT8173_UART0_BASE 76 b console_core_putc 77endfunc plat_crash_console_putc 78