diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c index dbf6c9d..57a8a1a 100644 --- a/bl1/bl1_main.c +++ b/bl1/bl1_main.c @@ -35,8 +35,7 @@ #include #include #include - -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 0000000..b2ebf21 --- /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 cb0519a..a7159fb 100644 --- a/bl2/bl2_main.c +++ b/bl2/bl2_main.c @@ -38,6 +38,7 @@ #include #include #include +#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 0000000..2a66d42 --- /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 b8c603a..a5539d9 100644 --- a/include/bl31/bl31.h +++ b/include/bl31/bl31.h @@ -41,6 +41,7 @@ /******************************************************************************* * 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 ab2137d..90d6700 100644 --- a/include/bl31/runtime_svc.h +++ b/include/bl31/runtime_svc.h @@ -261,6 +261,7 @@ 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 a41e82b..32167eb 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 700a4e9..1275358 100644 --- a/services/std_svc/psci/psci_afflvl_on.c +++ b/services/std_svc/psci/psci_afflvl_on.c @@ -29,14 +29,17 @@ */ #include +#include #include #include +#include #include #include #include #include #include #include +#include #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 ec7b89f..67e209d 100644 --- a/services/std_svc/psci/psci_afflvl_suspend.c +++ b/services/std_svc/psci/psci_afflvl_suspend.c @@ -37,6 +37,7 @@ #include #include #include +#include #include "psci_private.h" typedef int (*afflvl_suspend_handler)(unsigned long,