diff options
-rw-r--r-- | bl1/bl1_main.c | 3 | ||||
-rw-r--r-- | bl1/bl1_private.h | 40 | ||||
-rw-r--r-- | bl2/bl2_main.c | 1 | ||||
-rw-r--r-- | bl2/bl2_private.h | 39 | ||||
-rw-r--r-- | include/bl31/bl31.h | 1 | ||||
-rw-r--r-- | include/bl31/runtime_svc.h | 1 | ||||
-rw-r--r-- | include/lib/aarch64/arch.h | 12 | ||||
-rw-r--r-- | services/std_svc/psci/psci_afflvl_on.c | 3 | ||||
-rw-r--r-- | services/std_svc/psci/psci_afflvl_suspend.c | 1 |
9 files changed, 87 insertions, 14 deletions
diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c index dbf6c9d0..57a8a1a1 100644 --- a/bl1/bl1_main.c +++ b/bl1/bl1_main.c @@ -35,8 +35,7 @@ #include <platform.h> #include <semihosting.h> #include <bl1.h> - -void bl1_arch_next_el_setup(void); +#include "bl1_private.h" /******************************************************************************* * Function to perform late architectural and platform specific initialization. diff --git a/bl1/bl1_private.h b/bl1/bl1_private.h new file mode 100644 index 00000000..b2ebf214 --- /dev/null +++ b/bl1/bl1_private.h @@ -0,0 +1,40 @@ +/* + * 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_PRIVATE_H__ +#define __BL1_PRIVATE_H__ + +/****************************************** + * Function prototypes + *****************************************/ +extern void bl1_arch_setup(void); +extern void bl1_arch_next_el_setup(void); + +#endif /* __BL1_PRIVATE_H__ */ diff --git a/bl2/bl2_main.c b/bl2/bl2_main.c index cb0519a6..a7159fbe 100644 --- a/bl2/bl2_main.c +++ b/bl2/bl2_main.c @@ -38,6 +38,7 @@ #include <bl_common.h> #include <bl2.h> #include <debug.h> +#include "bl2_private.h" /******************************************************************************* * The only thing to do in BL2 is to load further images and pass control to diff --git a/bl2/bl2_private.h b/bl2/bl2_private.h new file mode 100644 index 00000000..2a66d42c --- /dev/null +++ b/bl2/bl2_private.h @@ -0,0 +1,39 @@ +/* + * 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_PRIVATE_H__ +#define __BL2_PRIVATE_H__ + +/****************************************** + * Function prototypes + *****************************************/ +extern void bl2_arch_setup(void); + +#endif /* __BL2_PRIVATE_H__ */ diff --git a/include/bl31/bl31.h b/include/bl31/bl31.h index b8c603ad..a5539d92 100644 --- a/include/bl31/bl31.h +++ b/include/bl31/bl31.h @@ -41,6 +41,7 @@ extern unsigned long bl31_entrypoint; /******************************************************************************* * Function prototypes ******************************************************************************/ +extern void bl31_arch_setup(void); extern void bl31_next_el_arch_setup(uint32_t security_state); extern void bl31_set_next_image_type(uint32_t type); extern uint32_t bl31_get_next_image_type(void); diff --git a/include/bl31/runtime_svc.h b/include/bl31/runtime_svc.h index ab2137df..90d6700a 100644 --- a/include/bl31/runtime_svc.h +++ b/include/bl31/runtime_svc.h @@ -261,6 +261,7 @@ extern void runtime_svc_init(); extern uint64_t __RT_SVC_DESCS_START__; extern uint64_t __RT_SVC_DESCS_END__; extern uint64_t get_exception_stack(uint64_t mpidr); +extern void runtime_exceptions(void); extern void fault_handler(void *handle); #endif /*__ASSEMBLY__*/ #endif /* __RUNTIME_SVC_H__ */ diff --git a/include/lib/aarch64/arch.h b/include/lib/aarch64/arch.h index a41e82b6..32167eb3 100644 --- a/include/lib/aarch64/arch.h +++ b/include/lib/aarch64/arch.h @@ -330,16 +330,4 @@ #define EC_BITS(x) (x >> ESR_EC_SHIFT) & ESR_EC_MASK -#ifndef __ASSEMBLY__ -/******************************************************************************* - * Function prototypes - ******************************************************************************/ - -extern void early_exceptions(void); -extern void runtime_exceptions(void); -extern void bl1_arch_setup(void); -extern void bl2_arch_setup(void); -extern void bl31_arch_setup(void); -#endif /*__ASSEMBLY__*/ - #endif /* __ARCH_H__ */ diff --git a/services/std_svc/psci/psci_afflvl_on.c b/services/std_svc/psci/psci_afflvl_on.c index 700a4e97..1275358a 100644 --- a/services/std_svc/psci/psci_afflvl_on.c +++ b/services/std_svc/psci/psci_afflvl_on.c @@ -29,14 +29,17 @@ */ #include <stdio.h> +#include <stdint.h> #include <string.h> #include <assert.h> +#include <bl31.h> #include <debug.h> #include <arch_helpers.h> #include <console.h> #include <platform.h> #include <psci.h> #include <context_mgmt.h> +#include <runtime_svc.h> #include "psci_private.h" typedef int (*afflvl_on_handler)(unsigned long, diff --git a/services/std_svc/psci/psci_afflvl_suspend.c b/services/std_svc/psci/psci_afflvl_suspend.c index ec7b89f2..67e209de 100644 --- a/services/std_svc/psci/psci_afflvl_suspend.c +++ b/services/std_svc/psci/psci_afflvl_suspend.c @@ -37,6 +37,7 @@ #include <platform.h> #include <psci.h> #include <context_mgmt.h> +#include <runtime_svc.h> #include "psci_private.h" typedef int (*afflvl_suspend_handler)(unsigned long, |