1/* 2 * Copyright 2018-2020 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8#include <arch.h> 9#include <asm_macros.S> 10 11#include <platform_def.h> 12 13.globl plat_secondary_cold_boot_setup 14.globl plat_is_my_cpu_primary 15.globl plat_reset_handler 16.globl platform_mem_init 17 18 19func platform_mem1_init 20 ret 21endfunc platform_mem1_init 22 23 24func platform_mem_init 25 ret 26endfunc platform_mem_init 27 28 29func apply_platform_errata 30 31 ret 32endfunc apply_platform_errata 33 34 35func plat_reset_handler 36 mov x29, x30 37 bl apply_platform_errata 38 39#if defined(IMAGE_BL31) 40 ldr x0, =POLICY_SMMU_PAGESZ_64K 41 cbz x0, 1f 42 /* Set the SMMU page size in the sACR register */ 43 bl _set_smmu_pagesz_64 44#endif 451: 46 mov x30, x29 47 48 ret 49endfunc plat_reset_handler 50 51 52/* void plat_secondary_cold_boot_setup (void); 53 * 54 * This function performs any platform specific actions 55 * needed for a secondary cpu after a cold reset e.g 56 * mark the cpu's presence, mechanism to place it in a 57 * holding pen etc. 58 */ 59func plat_secondary_cold_boot_setup 60 /* lx2160a does not do cold boot for secondary CPU */ 61cb_panic: 62 b cb_panic 63endfunc plat_secondary_cold_boot_setup 64 65 66/* unsigned int plat_is_my_cpu_primary (void); 67 * 68 * Find out whether the current cpu is the primary 69 * cpu. 70 */ 71func plat_is_my_cpu_primary 72 mrs x0, mpidr_el1 73 and x0, x0, #(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK) 74 cmp x0, 0x0 75 cset w0, eq 76 ret 77endfunc plat_is_my_cpu_primary 78