1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /*
- * Copyright 2018-2022 NXP
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
- #include <arch.h>
- #include <asm_macros.S>
- #include <platform_def.h>
- .globl plat_secondary_cold_boot_setup
- .globl plat_is_my_cpu_primary
- .globl plat_reset_handler
- .globl platform_mem_init
- func platform_mem1_init
- ret
- endfunc platform_mem1_init
- func platform_mem_init
- ret
- endfunc platform_mem_init
- func l2_mem_init
- /* Initialize the L2 RAM latency */
- mrs x1, S3_1_c11_c0_2
- mov x0, #0x1C7
- /* Clear L2 Tag RAM latency and L2 Data RAM latency */
- bic x1, x1, x0
- /* Set L2 data ram latency bits [2:0] */
- orr x1, x1, #0x2
- /* set L2 tag ram latency bits [8:6] */
- orr x1, x1, #0x80
- msr S3_1_c11_c0_2, x1
- isb
- ret
- endfunc l2_mem_init
- func apply_platform_errata
- ret
- endfunc apply_platform_errata
- func plat_reset_handler
- mov x29, x30
- #if (defined(IMAGE_BL2) && RESET_TO_BL2)
- bl l2_mem_init
- #endif
- bl apply_platform_errata
- #if defined(IMAGE_BL31)
- ldr x0, =POLICY_SMMU_PAGESZ_64K
- cbz x0, 1f
- /* Set the SMMU page size in the SACR register */
- bl _set_smmu_pagesz_64
- #endif
- 1:
- /*
- * May be cntfrq_el0 needs to be assigned
- * the value COUNTER_FREQUENCY
- */
- mov x30, x29
- ret
- endfunc plat_reset_handler
- /*
- * void plat_secondary_cold_boot_setup (void);
- *
- * This function performs any platform specific actions
- * needed for a secondary cpu after a cold reset e.g
- * mark the cpu's presence, mechanism to place it in a
- * holding pen etc.
- */
- func plat_secondary_cold_boot_setup
- /* ls1046a does not do cold boot for secondary CPU */
- cb_panic:
- b cb_panic
- endfunc plat_secondary_cold_boot_setup
- /*
- * unsigned int plat_is_my_cpu_primary (void);
- *
- * Find out whether the current cpu is the primary cpu.
- */
- func plat_is_my_cpu_primary
- mrs x0, mpidr_el1
- and x0, x0, #(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK)
- cmp x0, 0x0
- cset w0, eq
- ret
- endfunc plat_is_my_cpu_primary
|