blob: c364decd17ab99d20de74093cbc122a2f3a80aa7 [file] [log] [blame]
Pankaj Guptaf24e1a32020-12-09 14:02:41 +05301/*
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