|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
|
|
|
+ * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
|
|
|
*
|
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
|
*/
|
|
@@ -23,6 +23,7 @@
|
|
|
#include <string.h>
|
|
|
#include <tegra_def.h>
|
|
|
#include <tegra_private.h>
|
|
|
+#include <utils_def.h>
|
|
|
|
|
|
/* length of Trusty's input parameters (in bytes) */
|
|
|
#define TRUSTY_PARAMS_LEN_BYTES (4096*2)
|
|
@@ -33,29 +34,17 @@ extern void zeromem16(void *mem, unsigned int length);
|
|
|
* Declarations of linker defined symbols which will help us find the layout
|
|
|
* of trusted SRAM
|
|
|
******************************************************************************/
|
|
|
-extern unsigned long __TEXT_START__;
|
|
|
-extern unsigned long __TEXT_END__;
|
|
|
-extern unsigned long __RW_START__;
|
|
|
-extern unsigned long __RW_END__;
|
|
|
-extern unsigned long __RODATA_START__;
|
|
|
-extern unsigned long __RODATA_END__;
|
|
|
-extern unsigned long __BL31_END__;
|
|
|
+
|
|
|
+IMPORT_SYM(unsigned long, __RW_START__, BL31_RW_START);
|
|
|
+IMPORT_SYM(unsigned long, __RW_END__, BL31_RW_END);
|
|
|
+IMPORT_SYM(unsigned long, __RODATA_START__, BL31_RODATA_BASE);
|
|
|
+IMPORT_SYM(unsigned long, __RODATA_END__, BL31_RODATA_END);
|
|
|
+IMPORT_SYM(unsigned long, __TEXT_START__, TEXT_START);
|
|
|
+IMPORT_SYM(unsigned long, __TEXT_END__, TEXT_END);
|
|
|
|
|
|
extern uint64_t tegra_bl31_phys_base;
|
|
|
extern uint64_t tegra_console_base;
|
|
|
|
|
|
-/*
|
|
|
- * The next 3 constants identify the extents of the code, RO data region and the
|
|
|
- * limit of the BL3-1 image. These addresses are used by the MMU setup code and
|
|
|
- * therefore they must be page-aligned. It is the responsibility of the linker
|
|
|
- * script to ensure that __RO_START__, __RO_END__ & __BL31_END__ linker symbols
|
|
|
- * refer to page-aligned addresses.
|
|
|
- */
|
|
|
-#define BL31_RW_START (unsigned long)(&__RW_START__)
|
|
|
-#define BL31_RW_END (unsigned long)(&__RW_END__)
|
|
|
-#define BL31_RODATA_BASE (unsigned long)(&__RODATA_START__)
|
|
|
-#define BL31_RODATA_END (unsigned long)(&__RODATA_END__)
|
|
|
-#define BL31_END (unsigned long)(&__BL31_END__)
|
|
|
|
|
|
static entry_point_info_t bl33_image_ep_info, bl32_image_ep_info;
|
|
|
static plat_params_from_bl2_t plat_bl31_params_from_bl2 = {
|
|
@@ -311,8 +300,8 @@ void bl31_plat_arch_setup(void)
|
|
|
unsigned long rw_size = BL31_RW_END - BL31_RW_START;
|
|
|
unsigned long rodata_start = BL31_RODATA_BASE;
|
|
|
unsigned long rodata_size = BL31_RODATA_END - BL31_RODATA_BASE;
|
|
|
- unsigned long code_base = (unsigned long)(&__TEXT_START__);
|
|
|
- unsigned long code_size = (unsigned long)(&__TEXT_END__) - code_base;
|
|
|
+ unsigned long code_base = TEXT_START;
|
|
|
+ unsigned long code_size = TEXT_END - TEXT_START;
|
|
|
const mmap_region_t *plat_mmio_map = NULL;
|
|
|
#if USE_COHERENT_MEM
|
|
|
unsigned long coh_start, coh_size;
|