summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bl1/bl1_main.c1
-rw-r--r--bl2/bl2_main.c1
-rw-r--r--bl31/bl31_main.c1
-rw-r--r--bl32/tsp/tsp_main.c1
-rw-r--r--common/bl_common.c5
-rw-r--r--include/bl1/bl1.h46
-rw-r--r--include/bl2/bl2.h66
-rw-r--r--include/bl31/bl31.h4
-rw-r--r--include/bl32/bl32.h48
-rw-r--r--include/common/bl_common.h8
-rw-r--r--include/plat/common/platform.h112
-rw-r--r--plat/fvp/bl1_plat_setup.c1
-rw-r--r--plat/fvp/bl2_plat_setup.c1
-rw-r--r--plat/fvp/bl32_plat_setup.c2
-rw-r--r--plat/fvp/fvp_private.h17
15 files changed, 106 insertions, 208 deletions
diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c
index 6028f4f1..6771142e 100644
--- a/bl1/bl1_main.c
+++ b/bl1/bl1_main.c
@@ -32,7 +32,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
-#include <bl1.h>
#include <debug.h>
#include <platform.h>
#include <platform_def.h>
diff --git a/bl2/bl2_main.c b/bl2/bl2_main.c
index 55ae3c0e..46c70a12 100644
--- a/bl2/bl2_main.c
+++ b/bl2/bl2_main.c
@@ -32,7 +32,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
-#include <bl2.h>
#include <debug.h>
#include <platform.h>
#include <platform_def.h>
diff --git a/bl31/bl31_main.c b/bl31/bl31_main.c
index ff7caf1d..71c64643 100644
--- a/bl31/bl31_main.c
+++ b/bl31/bl31_main.c
@@ -34,6 +34,7 @@
#include <bl_common.h>
#include <bl31.h>
#include <context_mgmt.h>
+#include <platform.h>
#include <runtime_svc.h>
#include <stdio.h>
diff --git a/bl32/tsp/tsp_main.c b/bl32/tsp/tsp_main.c
index 05737aef..eaabe613 100644
--- a/bl32/tsp/tsp_main.c
+++ b/bl32/tsp/tsp_main.c
@@ -30,7 +30,6 @@
#include <arch_helpers.h>
#include <bl_common.h>
-#include <bl32.h>
#include <debug.h>
#include <platform.h>
#include <platform_def.h>
diff --git a/common/bl_common.c b/common/bl_common.c
index 911ad4c1..3bc314c6 100644
--- a/common/bl_common.c
+++ b/common/bl_common.c
@@ -74,9 +74,10 @@ void change_security_state(unsigned int target_security_state)
/*******************************************************************************
- * The next function is a weak definition. Platform specific
- * code can override it if it wishes to.
+ * The next function has a weak definition. Platform specific code can override
+ * it if it wishes to.
******************************************************************************/
+#pragma weak init_bl2_mem_layout
/*******************************************************************************
* Function that takes a memory layout into which BL2 has been either top or
diff --git a/include/bl1/bl1.h b/include/bl1/bl1.h
deleted file mode 100644
index b1bbf244..00000000
--- a/include/bl1/bl1.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __BL1_H__
-#define __BL1_H__
-
-
-/******************************************
- * Forward declarations
- *****************************************/
-struct meminfo;
-
-/******************************************
- * Function prototypes
- *****************************************/
-void bl1_platform_setup(void);
-struct meminfo *bl1_plat_sec_mem_layout(void);
-
-#endif /* __BL1_H__ */
diff --git a/include/bl2/bl2.h b/include/bl2/bl2.h
deleted file mode 100644
index fffe5a63..00000000
--- a/include/bl2/bl2.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __BL2_H__
-#define __BL2_H__
-
-/******************************************
- * Forward declarations
- *****************************************/
-struct meminfo;
-struct bl31_params;
-struct entry_point_info;
-
-/******************************************
- * Function prototypes
- *****************************************/
-void bl2_platform_setup(void);
-struct meminfo *bl2_plat_sec_mem_layout(void);
-
-/*******************************************************************************
- * This function returns a pointer to the shared memory that the platform has
- * kept aside to pass trusted firmware related information that BL3-1
- * could need
- ******************************************************************************/
-struct bl31_params *bl2_plat_get_bl31_params(void);
-
-/*******************************************************************************
- * This function returns a pointer to the shared memory that the platform
- * has kept to point to entry point information of BL31 to BL2
- ******************************************************************************/
-struct entry_point_info *bl2_plat_get_bl31_ep_info(void);
-
-/************************************************************************
- * This function flushes to main memory all the params that are
- * passed to BL3-1
- **************************************************************************/
-void bl2_plat_flush_bl31_params(void);
-
-#endif /* __BL2_H__ */
diff --git a/include/bl31/bl31.h b/include/bl31/bl31.h
index ef325687..8d22dc98 100644
--- a/include/bl31/bl31.h
+++ b/include/bl31/bl31.h
@@ -37,7 +37,6 @@
* Forward declarations
*****************************************/
struct entry_point_info;
-struct bl31_parms;
/*******************************************************************************
* Function prototypes
@@ -48,9 +47,6 @@ void bl31_set_next_image_type(uint32_t type);
uint32_t bl31_get_next_image_type(void);
void bl31_prepare_next_image_entry();
struct entry_point_info *bl31_get_next_image_info(uint32_t type);
-void bl31_early_platform_setup(struct bl31_params *from_bl2,
- void *plat_params_from_bl2);
-void bl31_platform_setup(void);
void bl31_register_bl32_init(int32_t (*)(void));
#endif /* __BL31_H__ */
diff --git a/include/bl32/bl32.h b/include/bl32/bl32.h
deleted file mode 100644
index ede7c48e..00000000
--- a/include/bl32/bl32.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __BL32_H__
-#define __BL32_H__
-
-#include <stdint.h>
-
-/******************************************
- * Forward declarations
- *****************************************/
-struct meminfo;
-
-/******************************************
- * Function prototypes
- *****************************************/
-void bl32_platform_setup(void);
-struct meminfo *bl32_plat_sec_mem_layout(void);
-uint64_t bl32_main(void);
-
-#endif /* __BL32_H__ */
diff --git a/include/common/bl_common.h b/include/common/bl_common.h
index 79f2329b..2f3bade1 100644
--- a/include/common/bl_common.h
+++ b/include/common/bl_common.h
@@ -196,13 +196,6 @@ CASSERT(sizeof(unsigned long) ==
******************************************************************************/
unsigned long page_align(unsigned long, unsigned);
void change_security_state(unsigned int);
-void init_bl2_mem_layout(meminfo_t *,
- meminfo_t *,
- unsigned int,
- unsigned long) __attribute__((weak));
-void init_bl31_mem_layout(const meminfo_t *,
- meminfo_t *,
- unsigned int) __attribute__((weak));
unsigned long image_size(const char *);
int load_image(meminfo_t *,
const char *,
@@ -210,7 +203,6 @@ int load_image(meminfo_t *,
unsigned long,
image_info_t *,
entry_point_info_t *);
-unsigned long *get_el_change_mem_ptr(void);
extern const char build_message[];
#endif /*__ASSEMBLY__*/
diff --git a/include/plat/common/platform.h b/include/plat/common/platform.h
index b3f6806e..7e2e9120 100644
--- a/include/plat/common/platform.h
+++ b/include/plat/common/platform.h
@@ -41,33 +41,25 @@ struct plat_pm_ops;
struct meminfo;
struct image_info;
struct entry_point_info;
+struct bl31_params;
/*******************************************************************************
- * Function and variable prototypes
+ * Function declarations
******************************************************************************/
-void bl1_plat_arch_setup(void);
-void bl2_plat_arch_setup(void);
-void bl31_plat_arch_setup(void);
-int platform_setup_pm(const struct plat_pm_ops **);
-unsigned int platform_get_core_pos(unsigned long mpidr);
+/*******************************************************************************
+ * Mandatory common functions
+ ******************************************************************************/
+uint64_t plat_get_syscnt_freq(void);
void enable_mmu_el1(void);
void enable_mmu_el3(void);
-void configure_mmu_el1(unsigned long total_base,
- unsigned long total_size,
- unsigned long,
- unsigned long,
- unsigned long,
- unsigned long);
-void configure_mmu_el3(unsigned long total_base,
- unsigned long total_size,
- unsigned long,
- unsigned long,
- unsigned long,
- unsigned long);
-void plat_report_exception(unsigned long);
+int plat_get_image_source(const char *image_name,
+ uintptr_t *dev_handle,
+ uintptr_t *image_spec);
unsigned long plat_get_ns_image_entrypoint(void);
-unsigned long platform_get_stack(unsigned long mpidr);
-uint64_t plat_get_syscnt_freq(void);
+
+/*******************************************************************************
+ * Mandatory interrupt management functions
+ ******************************************************************************/
uint32_t ic_get_pending_interrupt_id(void);
uint32_t ic_get_pending_interrupt_type(void);
uint32_t ic_acknowledge_interrupt(void);
@@ -76,12 +68,19 @@ void ic_end_of_interrupt(uint32_t id);
uint32_t plat_interrupt_type_to_line(uint32_t type,
uint32_t security_state);
-int plat_get_max_afflvl(void);
-unsigned int plat_get_aff_count(unsigned int, unsigned long);
-unsigned int plat_get_aff_state(unsigned int, unsigned long);
-int plat_get_image_source(const char *image_name,
- uintptr_t *dev_handle,
- uintptr_t *image_spec);
+/*******************************************************************************
+ * Optional common functions (may be overridden)
+ ******************************************************************************/
+unsigned int platform_get_core_pos(unsigned long mpidr);
+unsigned long platform_get_stack(unsigned long mpidr);
+void plat_report_exception(unsigned long);
+
+/*******************************************************************************
+ * Mandatory BL1 functions
+ ******************************************************************************/
+void bl1_plat_arch_setup(void);
+void bl1_platform_setup(void);
+struct meminfo *bl1_plat_sec_mem_layout(void);
/*
* Before calling this function BL2 is loaded in memory and its entrypoint
@@ -92,6 +91,40 @@ int plat_get_image_source(const char *image_name,
void bl1_plat_set_bl2_ep_info(struct image_info *image,
struct entry_point_info *ep);
+/*******************************************************************************
+ * Optional BL1 functions (may be overridden)
+ ******************************************************************************/
+void init_bl2_mem_layout(struct meminfo *,
+ struct meminfo *,
+ unsigned int,
+ unsigned long);
+
+/*******************************************************************************
+ * Mandatory BL2 functions
+ ******************************************************************************/
+void bl2_plat_arch_setup(void);
+void bl2_platform_setup(void);
+struct meminfo *bl2_plat_sec_mem_layout(void);
+
+/*
+ * This function returns a pointer to the shared memory that the platform has
+ * kept aside to pass trusted firmware related information that BL3-1
+ * could need
+ */
+struct bl31_params *bl2_plat_get_bl31_params(void);
+
+/*
+ * This function returns a pointer to the shared memory that the platform
+ * has kept to point to entry point information of BL31 to BL2
+ */
+struct entry_point_info *bl2_plat_get_bl31_ep_info(void);
+
+/*
+ * This function flushes to main memory all the params that are
+ * passed to BL3-1
+ */
+void bl2_plat_flush_bl31_params(void);
+
/*
* Before calling this function BL31 is loaded in memory and its entrypoint
* is set by load_image. This is a placeholder for the platform to change
@@ -125,5 +158,30 @@ void bl2_plat_get_bl32_meminfo(struct meminfo *mem_info);
/* Gets the memory layout for BL33 */
void bl2_plat_get_bl33_meminfo(struct meminfo *mem_info);
+/*******************************************************************************
+ * Optional BL2 functions (may be overridden)
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Mandatory BL3-1 functions
+ ******************************************************************************/
+void bl31_early_platform_setup(struct bl31_params *from_bl2,
+ void *plat_params_from_bl2);
+void bl31_plat_arch_setup(void);
+void bl31_platform_setup(void);
+struct entry_point_info *bl31_get_next_image_info(uint32_t type);
+
+/*******************************************************************************
+ * Mandatory PSCI functions (BL3-1)
+ ******************************************************************************/
+int platform_setup_pm(const struct plat_pm_ops **);
+int plat_get_max_afflvl(void);
+unsigned int plat_get_aff_count(unsigned int, unsigned long);
+unsigned int plat_get_aff_state(unsigned int, unsigned long);
+
+/*******************************************************************************
+ * Mandatory BL3-2 functions (only if platform contains a BL3-2)
+ ******************************************************************************/
+void bl32_platform_setup(void);
#endif /* __PLATFORM_H__ */
diff --git a/plat/fvp/bl1_plat_setup.c b/plat/fvp/bl1_plat_setup.c
index 5fbebc16..34e74e25 100644
--- a/plat/fvp/bl1_plat_setup.c
+++ b/plat/fvp/bl1_plat_setup.c
@@ -31,7 +31,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
-#include <bl1.h>
#include <console.h>
#include <mmio.h>
#include <platform.h>
diff --git a/plat/fvp/bl2_plat_setup.c b/plat/fvp/bl2_plat_setup.c
index 87efe28f..2cfb8bca 100644
--- a/plat/fvp/bl2_plat_setup.c
+++ b/plat/fvp/bl2_plat_setup.c
@@ -31,7 +31,6 @@
#include <arch_helpers.h>
#include <assert.h>
#include <bl_common.h>
-#include <bl2.h>
#include <console.h>
#include <platform.h>
#include <platform_def.h>
diff --git a/plat/fvp/bl32_plat_setup.c b/plat/fvp/bl32_plat_setup.c
index 79303142..b583349f 100644
--- a/plat/fvp/bl32_plat_setup.c
+++ b/plat/fvp/bl32_plat_setup.c
@@ -28,9 +28,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <arch_helpers.h>
#include <bl_common.h>
-#include <bl32.h>
#include <console.h>
#include <platform.h>
#include "fvp_def.h"
diff --git a/plat/fvp/fvp_private.h b/plat/fvp/fvp_private.h
index cde1fd0a..04e8b818 100644
--- a/plat/fvp/fvp_private.h
+++ b/plat/fvp/fvp_private.h
@@ -56,8 +56,25 @@ typedef struct bl2_to_bl31_params_mem {
} bl2_to_bl31_params_mem_t;
/*******************************************************************************
+ * Forward declarations
+ ******************************************************************************/
+struct meminfo;
+
+/*******************************************************************************
* Function and variable prototypes
******************************************************************************/
+void configure_mmu_el1(unsigned long total_base,
+ unsigned long total_size,
+ unsigned long,
+ unsigned long,
+ unsigned long,
+ unsigned long);
+void configure_mmu_el3(unsigned long total_base,
+ unsigned long total_size,
+ unsigned long,
+ unsigned long,
+ unsigned long,
+ unsigned long);
unsigned long platform_get_cfgvar(unsigned int);
int platform_config_setup(void);