diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c index dbf6c9d0830f4d14020bd73e753fff974c486d3d..57a8a1a1265190a8d2ca8675b45f56180e4d1e24 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 0000000000000000000000000000000000000000..b2ebf214992ff24379dc3e90e46c050905d6fbb6 --- /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 cb0519a60e9ce38584a2e33c522c1927bd8550db..a7159fbe025e63bd6fa26e2cdc29b157a4f3a06a 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 0000000000000000000000000000000000000000..2a66d42c537db4019e339da7b4a8d5ceada48d0a --- /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 b8c603ad7683a1a7344b249b768e0dc8cf0de8c3..a5539d924bb6d6eaa73be07ad69b3465539c67d7 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 ab2137dffd343e5bf83858c33b0fc1aeed87cd50..90d6700a441e2fdfc33f45429d6f5302f6cf45a5 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 a41e82b6479f0bcf737654136e1df991c630b1a5..32167eb3b15105ffb88a88463916c942a81f59d3 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 700a4e9736fb32ae2a91192f48d680107c44e5b0..1275358a70e7f5d0d5e2ea20b7acaa60074a9a84 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 ec7b89f278d99bc3cb6cf79b26dd4867d0039941..67e209de1c0d4f48173bb76128302e6175015268 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,