• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 #include <assert.h>
7 #include <console.h>
8 #include <platform.h>
9 #include <xlat_mmu_helpers.h>
10 
11 /*
12  * The following platform setup functions are weakly defined. They
13  * provide typical implementations that may be re-used by multiple
14  * platforms but may also be overridden by a platform if required.
15  */
16 #pragma weak bl31_plat_enable_mmu
17 #pragma weak bl32_plat_enable_mmu
18 #pragma weak bl31_plat_runtime_setup
19 #if !ERROR_DEPRECATED
20 #pragma weak plat_get_syscnt_freq2
21 #endif /* ERROR_DEPRECATED */
22 
bl31_plat_enable_mmu(uint32_t flags)23 void bl31_plat_enable_mmu(uint32_t flags)
24 {
25 	enable_mmu_el3(flags);
26 }
27 
bl32_plat_enable_mmu(uint32_t flags)28 void bl32_plat_enable_mmu(uint32_t flags)
29 {
30 	enable_mmu_el1(flags);
31 }
32 
bl31_plat_runtime_setup(void)33 void bl31_plat_runtime_setup(void)
34 {
35 	/*
36 	 * Finish the use of console driver in BL31 so that any runtime logs
37 	 * from BL31 will be suppressed.
38 	 */
39 	console_uninit();
40 }
41 
42 #if !ENABLE_PLAT_COMPAT
43 /*
44  * Helper function for platform_get_pos() when platform compatibility is
45  * disabled. This is to enable SPDs using the older platform API to continue
46  * to work.
47  */
platform_core_pos_helper(unsigned long mpidr)48 unsigned int platform_core_pos_helper(unsigned long mpidr)
49 {
50 	int idx = plat_core_pos_by_mpidr(mpidr);
51 	assert(idx >= 0);
52 	return idx;
53 }
54 #endif
55 
56 
57 #if !ERROR_DEPRECATED
plat_get_syscnt_freq2(void)58 unsigned int plat_get_syscnt_freq2(void)
59 {
60 	unsigned long long freq = plat_get_syscnt_freq();
61 
62 	assert(freq >> 32 == 0);
63 
64 	return (unsigned int)freq;
65 }
66 #endif /* ERROR_DEPRECATED */
67