diff --git a/Makefile b/Makefile index 87e35e9..db15930 100644 --- a/Makefile +++ b/Makefile @@ -200,6 +200,8 @@ ${STDLIB_SRCS} INCLUDES += -Iinclude/bl1 \ + -Iinclude/bl2 \ + -Iinclude/bl2u \ -Iinclude/bl31 \ -Iinclude/common \ -Iinclude/common/${ARCH} \ diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c index b2e7c28..c333285 100644 --- a/bl1/bl1_main.c +++ b/bl1/bl1_main.c @@ -163,7 +163,7 @@ * TODO: Add support for alternative image load mechanism e.g using virtio/elf * loader etc. ******************************************************************************/ -void bl1_load_bl2(void) +static void bl1_load_bl2(void) { image_desc_t *image_desc; image_info_t *image_info; diff --git a/bl2/aarch64/bl2_arch_setup.c b/bl2/aarch64/bl2_arch_setup.c index 038a075..54052f7 100644 --- a/bl2/aarch64/bl2_arch_setup.c +++ b/bl2/aarch64/bl2_arch_setup.c @@ -1,11 +1,12 @@ /* - * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include #include +#include "../bl2_private.h" /******************************************************************************* * Place holder function to perform any S-EL1 specific architectural setup. At diff --git a/bl2/bl2_image_load_v2.c b/bl2/bl2_image_load_v2.c index f51dea8..d95c6b2 100644 --- a/bl2/bl2_image_load_v2.c +++ b/bl2/bl2_image_load_v2.c @@ -14,6 +14,7 @@ #include #include #include +#include "bl2_private.h" /******************************************************************************* diff --git a/bl2/bl2_main.c b/bl2/bl2_main.c index c85db2d..41d1745 100644 --- a/bl2/bl2_main.c +++ b/bl2/bl2_main.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include diff --git a/bl2/bl2_private.h b/bl2/bl2_private.h index ea2f33a..50295d6 100644 --- a/bl2/bl2_private.h +++ b/bl2/bl2_private.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -17,6 +17,6 @@ *****************************************/ void bl2_arch_setup(void); struct entry_point_info *bl2_load_images(void); -void bl2_run_next_image(const entry_point_info_t *bl_ep_info); +void bl2_run_next_image(const struct entry_point_info *bl_ep_info); #endif /* __BL2_PRIVATE_H__ */ diff --git a/bl2u/bl2u_main.c b/bl2u/bl2u_main.c index 09ad468..a7e3fb9 100644 --- a/bl2u/bl2u_main.c +++ b/bl2u/bl2u_main.c @@ -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 */ @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/bl31/bl31_context_mgmt.c b/bl31/bl31_context_mgmt.c index 05bf4e1..123e623 100644 --- a/bl31/bl31_context_mgmt.c +++ b/bl31/bl31_context_mgmt.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -99,7 +99,7 @@ * existing cm library routines. This function is expected to be invoked for * initializing the cpu_context for the CPU specified by MPIDR for first use. ******************************************************************************/ -void cm_init_context(unsigned long mpidr, const entry_point_info_t *ep) +void cm_init_context(uint64_t mpidr, const entry_point_info_t *ep) { if ((mpidr & MPIDR_AFFINITY_MASK) == (read_mpidr_el1() & MPIDR_AFFINITY_MASK)) diff --git a/bl31/bl31_main.c b/bl31/bl31_main.c index a34cf86..0664741 100644 --- a/bl31/bl31_main.c +++ b/bl31/bl31_main.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -17,6 +17,7 @@ #include #include #include +#include #include #if ENABLE_RUNTIME_INSTRUMENTATION diff --git a/common/desc_image_load.c b/common/desc_image_load.c index 672b80b..0ea247c 100644 --- a/common/desc_image_load.c +++ b/common/desc_image_load.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -10,8 +10,6 @@ #include -extern bl_mem_params_node_t *bl_mem_params_desc_ptr; -extern unsigned int bl_mem_params_desc_num; static bl_load_info_t bl_load_info; static bl_params_t next_bl_params; diff --git a/drivers/arm/gic/common/gic_common_private.h b/drivers/arm/gic/common/gic_common_private.h index 2021f9a..fa34e47 100644 --- a/drivers/arm/gic/common/gic_common_private.h +++ b/drivers/arm/gic/common/gic_common_private.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -49,6 +49,9 @@ unsigned int gicd_read_ipriorityr(uintptr_t base, unsigned int id); unsigned int gicd_read_icfgr(uintptr_t base, unsigned int id); unsigned int gicd_read_nsacr(uintptr_t base, unsigned int id); +unsigned int gicd_read_spendsgir(uintptr_t base, unsigned int id); +unsigned int gicd_read_cpendsgir(uintptr_t base, unsigned int id); +unsigned int gicd_read_itargetsr(uintptr_t base, unsigned int id); void gicd_write_igroupr(uintptr_t base, unsigned int id, unsigned int val); void gicd_write_isenabler(uintptr_t base, unsigned int id, unsigned int val); void gicd_write_icenabler(uintptr_t base, unsigned int id, unsigned int val); @@ -59,6 +62,9 @@ void gicd_write_ipriorityr(uintptr_t base, unsigned int id, unsigned int val); void gicd_write_icfgr(uintptr_t base, unsigned int id, unsigned int val); void gicd_write_nsacr(uintptr_t base, unsigned int id, unsigned int val); +void gicd_write_spendsgir(uintptr_t base, unsigned int id, unsigned int val); +void gicd_write_cpendsgir(uintptr_t base, unsigned int id, unsigned int val); +void gicd_write_itargetsr(uintptr_t base, unsigned int id, unsigned int val); /******************************************************************************* * GIC Distributor function prototypes for accessing the GIC registers diff --git a/drivers/arm/gic/v2/gicv2_helpers.c b/drivers/arm/gic/v2/gicv2_helpers.c index 0df50fb..421669f 100644 --- a/drivers/arm/gic/v2/gicv2_helpers.c +++ b/drivers/arm/gic/v2/gicv2_helpers.c @@ -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 */ @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "../common/gic_common_private.h" #include "gicv2_private.h" diff --git a/drivers/arm/gic/v2/gicv2_main.c b/drivers/arm/gic/v2/gicv2_main.c index 8798659..c65f972 100644 --- a/drivers/arm/gic/v2/gicv2_main.c +++ b/drivers/arm/gic/v2/gicv2_main.c @@ -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 */ @@ -22,7 +22,7 @@ * spinlock are used either at boot time (when only a single CPU is active), or * when the system is fully coherent. */ -spinlock_t gic_lock; +static spinlock_t gic_lock; /******************************************************************************* * Enable secure interrupts and use FIQs to route them. Disable legacy bypass diff --git a/drivers/arm/gic/v3/gicv3_main.c b/drivers/arm/gic/v3/gicv3_main.c index 8de5be3..45a2e5b 100644 --- a/drivers/arm/gic/v3/gicv3_main.c +++ b/drivers/arm/gic/v3/gicv3_main.c @@ -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 */ @@ -21,7 +21,7 @@ * spinlock are used either at boot time (when only a single CPU is active), or * when the system is fully coherent. */ -spinlock_t gic_lock; +static spinlock_t gic_lock; /* * Redistributor power operations are weakly bound so that they can be diff --git a/drivers/arm/gic/v3/gicv3_private.h b/drivers/arm/gic/v3/gicv3_private.h index 5203907..c4474a4 100644 --- a/drivers/arm/gic/v3/gicv3_private.h +++ b/drivers/arm/gic/v3/gicv3_private.h @@ -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 */ @@ -79,6 +79,8 @@ void gicr_clr_igrpmodr0(uintptr_t base, unsigned int id); void gicr_clr_igroupr0(uintptr_t base, unsigned int id); void gicr_set_ipriorityr(uintptr_t base, unsigned int id, unsigned int pri); +void gicr_set_icfgr0(uintptr_t base, unsigned int id, unsigned int cfg); +void gicr_set_icfgr1(uintptr_t base, unsigned int id, unsigned int cfg); /******************************************************************************* * Private GICv3 helper function prototypes diff --git a/drivers/arm/tzc/tzc400.c b/drivers/arm/tzc/tzc400.c index 34462a9..0999fa5 100644 --- a/drivers/arm/tzc/tzc400.c +++ b/drivers/arm/tzc/tzc400.c @@ -34,7 +34,7 @@ uint8_t num_regions; } tzc400_instance_t; -tzc400_instance_t tzc400; +static tzc400_instance_t tzc400; static inline unsigned int _tzc400_read_build_config(uintptr_t base) { diff --git a/drivers/arm/tzc/tzc_common_private.h b/drivers/arm/tzc/tzc_common_private.h index 89156ed..e1b7727 100644 --- a/drivers/arm/tzc/tzc_common_private.h +++ b/drivers/arm/tzc/tzc_common_private.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -93,7 +93,7 @@ * It is used to program region 0 ATTRIBUTES and ACCESS register. */ #define DEFINE_TZC_COMMON_CONFIGURE_REGION0(fn_name) \ - void _tzc##fn_name##_configure_region0(uintptr_t base, \ + static void _tzc##fn_name##_configure_region0(uintptr_t base, \ tzc_region_attributes_t sec_attr, \ unsigned int ns_device_access) \ { \ @@ -124,7 +124,7 @@ * that function). */ #define DEFINE_TZC_COMMON_CONFIGURE_REGION(fn_name) \ - void _tzc##fn_name##_configure_region(uintptr_t base, \ + static void _tzc##fn_name##_configure_region(uintptr_t base, \ unsigned int filters, \ int region_no, \ unsigned long long region_base, \ diff --git a/drivers/delay_timer/delay_timer.c b/drivers/delay_timer/delay_timer.c index c9f84d7..587724e 100644 --- a/drivers/delay_timer/delay_timer.c +++ b/drivers/delay_timer/delay_timer.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -12,7 +12,7 @@ /*********************************************************** * The delay timer implementation ***********************************************************/ -static const timer_ops_t *ops; +static const timer_ops_t *timer_ops; /*********************************************************** * Delay for the given number of microseconds. The driver must @@ -20,26 +20,27 @@ ***********************************************************/ void udelay(uint32_t usec) { - assert(ops != NULL && - (ops->clk_mult != 0) && - (ops->clk_div != 0) && - (ops->get_timer_value != NULL)); + assert(timer_ops != NULL && + (timer_ops->clk_mult != 0) && + (timer_ops->clk_div != 0) && + (timer_ops->get_timer_value != NULL)); uint32_t start, delta, total_delta; - assert(usec < UINT32_MAX / ops->clk_div); + assert(usec < UINT32_MAX / timer_ops->clk_div); - start = ops->get_timer_value(); + start = timer_ops->get_timer_value(); /* Add an extra tick to avoid delaying less than requested. */ - total_delta = div_round_up(usec * ops->clk_div, ops->clk_mult) + 1; + total_delta = + div_round_up(usec * timer_ops->clk_div, timer_ops->clk_mult) + 1; do { /* * If the timer value wraps around, the subtraction will * overflow and it will still give the correct result. */ - delta = start - ops->get_timer_value(); /* Decreasing counter */ + delta = start - timer_ops->get_timer_value(); /* Decreasing counter */ } while (delta < total_delta); } @@ -64,5 +65,5 @@ (ops_ptr->clk_div != 0) && (ops_ptr->get_timer_value != NULL)); - ops = ops_ptr; + timer_ops = ops_ptr; } diff --git a/drivers/io/io_fip.c b/drivers/io/io_fip.c index a23940d..487f586 100644 --- a/drivers/io/io_fip.c +++ b/drivers/io/io_fip.c @@ -69,7 +69,7 @@ /* Identify the device type as a virtual driver */ -io_type_t device_type_fip(void) +static io_type_t device_type_fip(void) { return IO_TYPE_FIRMWARE_IMAGE_PACKAGE; } diff --git a/drivers/io/io_memmap.c b/drivers/io/io_memmap.c index b7e26bd..bf59d6a 100644 --- a/drivers/io/io_memmap.c +++ b/drivers/io/io_memmap.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -28,7 +29,7 @@ static file_state_t current_file = {0}; /* Identify the device type as memmap */ -io_type_t device_type_memmap(void) +static io_type_t device_type_memmap(void) { return IO_TYPE_MEMMAP; } diff --git a/drivers/io/io_semihosting.c b/drivers/io/io_semihosting.c index f1dfa20..4abf44f 100644 --- a/drivers/io/io_semihosting.c +++ b/drivers/io/io_semihosting.c @@ -1,11 +1,12 @@ /* - * Copyright (c) 2014, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include #include +#include #include #include diff --git a/include/bl1/bl1.h b/include/bl1/bl1.h index b042100..dd03de0 100644 --- a/include/bl1/bl1.h +++ b/include/bl1/bl1.h @@ -64,6 +64,27 @@ #ifndef __ASSEMBLY__ #include +struct entry_point_info; + +register_t bl1_smc_wrapper(uint32_t smc_fid, + void *cookie, + void *handle, + unsigned int flags); + +register_t bl1_smc_handler(unsigned int smc_fid, + register_t x1, + register_t x2, + register_t x3, + register_t x4, + void *cookie, + void *handle, + unsigned int flags); + +void bl1_print_next_bl_ep_info(const struct entry_point_info *bl_ep_info); + +void bl1_main(void); +void bl1_plat_prepare_exit(entry_point_info_t *ep_info); + /* * Check if the total number of FWU SMC calls are as expected. */ diff --git a/include/bl2/bl2.h b/include/bl2/bl2.h new file mode 100644 index 0000000..f2bd07e --- /dev/null +++ b/include/bl2/bl2.h @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef BL2_H__ +#define BL2_H__ + +struct entry_point_info; + +void bl2_main(void); +struct entry_point_info *bl2_load_images(void); + +#endif /* BL2_H__ */ diff --git a/include/bl2u/bl2u.h b/include/bl2u/bl2u.h new file mode 100644 index 0000000..7017b3a --- /dev/null +++ b/include/bl2u/bl2u.h @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef BL2_H__ +#define BL2_H__ + +void bl2u_main(void); + +#endif /* BL2_H__ */ diff --git a/include/bl31/bl31.h b/include/bl31/bl31.h index b3567e2..7c35922 100644 --- a/include/bl31/bl31.h +++ b/include/bl31/bl31.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -13,10 +13,12 @@ * Function prototypes ******************************************************************************/ void bl31_next_el_arch_setup(uint32_t security_state); -void bl31_set_next_image_type(uint32_t type); +void bl31_set_next_image_type(uint32_t security_state); uint32_t bl31_get_next_image_type(void); void bl31_prepare_next_image_entry(void); -void bl31_register_bl32_init(int32_t (*)(void)); +void bl31_register_bl32_init(int32_t (*func)(void)); void bl31_warm_entrypoint(void); +void bl31_main(void); +void bl31_lib_init(void); #endif /* __BL31_H__ */ diff --git a/include/bl31/interrupt_mgmt.h b/include/bl31/interrupt_mgmt.h index d41edd0..905dcd6 100644 --- a/include/bl31/interrupt_mgmt.h +++ b/include/bl31/interrupt_mgmt.h @@ -124,7 +124,7 @@ int32_t register_interrupt_type_handler(uint32_t type, interrupt_type_handler_t handler, uint32_t flags); -interrupt_type_handler_t get_interrupt_type_handler(uint32_t interrupt_type); +interrupt_type_handler_t get_interrupt_type_handler(uint32_t type); int disable_intr_rm_local(uint32_t type, uint32_t security_state); int enable_intr_rm_local(uint32_t type, uint32_t security_state); diff --git a/include/common/bl_common.h b/include/common/bl_common.h index 6a249f5..4ef916f 100644 --- a/include/common/bl_common.h +++ b/include/common/bl_common.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -210,7 +210,6 @@ #else -uintptr_t page_align(uintptr_t, unsigned); int load_image(meminfo_t *mem_layout, unsigned int image_id, uintptr_t image_base, @@ -230,6 +229,7 @@ extern const char version_string[]; void print_entry_point_info(const entry_point_info_t *ep_info); +uintptr_t page_align(uintptr_t value, unsigned dir); #endif /*__ASSEMBLY__*/ diff --git a/include/common/desc_image_load.h b/include/common/desc_image_load.h index f183db5..73aa27c 100644 --- a/include/common/desc_image_load.h +++ b/include/common/desc_image_load.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -19,6 +19,9 @@ bl_params_node_t params_node_mem; } bl_mem_params_node_t; +extern bl_mem_params_node_t *bl_mem_params_desc_ptr; +extern unsigned int bl_mem_params_desc_num; + /* * Macro to register list of BL image descriptors, * defined as an array of bl_mem_params_node_t. diff --git a/include/common/runtime_svc.h b/include/common/runtime_svc.h index e179e4b..6150b32 100644 --- a/include/common/runtime_svc.h +++ b/include/common/runtime_svc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -126,5 +126,7 @@ extern uintptr_t __RT_SVC_DESCS_END__; void init_crash_reporting(void); +extern uint8_t rt_svc_descs_indices[MAX_RT_SVCS]; + #endif /*__ASSEMBLY__*/ #endif /* __RUNTIME_SVC_H__ */ diff --git a/include/drivers/arm/gicv3.h b/include/drivers/arm/gicv3.h index f2a5371..5f265c6 100644 --- a/include/drivers/arm/gicv3.h +++ b/include/drivers/arm/gicv3.h @@ -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 */ @@ -402,7 +402,7 @@ void gicv3_set_interrupt_priority(unsigned int id, unsigned int proc_num, unsigned int priority); void gicv3_set_interrupt_type(unsigned int id, unsigned int proc_num, - unsigned int group); + unsigned int type); void gicv3_raise_secure_g0_sgi(int sgi_num, u_register_t target); void gicv3_set_spi_routing(unsigned int id, unsigned int irm, u_register_t mpidr); diff --git a/include/drivers/arm/tzc400.h b/include/drivers/arm/tzc400.h index 038a3ba..7f354f8 100644 --- a/include/drivers/arm/tzc400.h +++ b/include/drivers/arm/tzc400.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -118,7 +118,7 @@ unsigned long long region_base, unsigned long long region_top, tzc_region_attributes_t sec_attr, - unsigned int ns_device_access); + unsigned int nsaid_permissions); void tzc400_set_action(tzc_action_t action); void tzc400_enable_filters(void); void tzc400_disable_filters(void); diff --git a/include/drivers/delay_timer.h b/include/drivers/delay_timer.h index 4e44a5e..b28f619 100644 --- a/include/drivers/delay_timer.h +++ b/include/drivers/delay_timer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -25,7 +25,7 @@ void mdelay(uint32_t msec); void udelay(uint32_t usec); -void timer_init(const timer_ops_t *ops); +void timer_init(const timer_ops_t *ops_ptr); #endif /* __DELAY_TIMER_H__ */ diff --git a/include/drivers/io/io_storage.h b/include/drivers/io/io_storage.h index 50907ff..485ed8c 100644 --- a/include/drivers/io/io_storage.h +++ b/include/drivers/io/io_storage.h @@ -70,7 +70,7 @@ /* Open a connection to a device */ int io_dev_open(const struct io_dev_connector *dev_con, const uintptr_t dev_spec, - uintptr_t *dev_handle); + uintptr_t *handle); /* Initialise a device explicitly - to permit lazy initialisation or diff --git a/include/lib/cpus/errata_report.h b/include/lib/cpus/errata_report.h index 14f2407..d2138bf 100644 --- a/include/lib/cpus/errata_report.h +++ b/include/lib/cpus/errata_report.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -20,6 +20,9 @@ static inline void print_errata_status(void) {} #endif +void errata_print_msg(unsigned int status, const char *cpu, const char *id); +int errata_needs_reporting(spinlock_t *lock, uint32_t *reported); + #endif /* __ASSEMBLY__ */ /* Errata status */ diff --git a/include/lib/el3_runtime/cpu_data.h b/include/lib/el3_runtime/cpu_data.h index 3f48de5..15d34eb 100644 --- a/include/lib/el3_runtime/cpu_data.h +++ b/include/lib/el3_runtime/cpu_data.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -102,6 +102,8 @@ #endif } __aligned(CACHE_WRITEBACK_GRANULE) cpu_data_t; +extern cpu_data_t percpu_data[PLATFORM_CORE_COUNT]; + #if CRASH_REPORTING /* verify assembler offsets match data structures */ CASSERT(CPU_DATA_CRASH_BUF_OFFSET == __builtin_offsetof diff --git a/include/lib/el3_runtime/pubsub.h b/include/lib/el3_runtime/pubsub.h index 9a85480..2c8a196 100644 --- a/include/lib/el3_runtime/pubsub.h +++ b/include/lib/el3_runtime/pubsub.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -49,9 +49,12 @@ * Have the function func called back when the specified event happens. This * macro places the function address into the pubsub section, which is picked up * and invoked by the invoke_pubsubs() function via. the PUBLISH_EVENT* macros. + * + * The extern declaration is there to satisfy MISRA C-2012 rule 8.4. */ #define SUBSCRIBE_TO_EVENT(event, func) \ - pubsub_cb_t __cb_func_##func##event __pubsub_section(event) = func + extern pubsub_cb_t __cb_func_##func##event __pubsub_section(event); \ + pubsub_cb_t __cb_func_##func##event __pubsub_section(event) = (func) /* * Iterate over subscribed handlers for a defined event. 'event' is the name of diff --git a/include/lib/pmf/pmf.h b/include/lib/pmf/pmf.h index cdff763..a3d3226 100644 --- a/include/lib/pmf/pmf.h +++ b/include/lib/pmf/pmf.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -162,7 +162,7 @@ int pmf_get_timestamp_smc(unsigned int tid, u_register_t mpidr, unsigned int flags, - unsigned long long *ts); + unsigned long long *ts_value); int pmf_setup(void); uintptr_t pmf_smc_handler(unsigned int smc_fid, u_register_t x1, diff --git a/include/lib/pmf/pmf_helpers.h b/include/lib/pmf/pmf_helpers.h index 9984d69..829ad6c 100644 --- a/include/lib/pmf/pmf_helpers.h +++ b/include/lib/pmf/pmf_helpers.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -45,8 +45,11 @@ /* * Convenience macro to allocate memory for a PMF service. + * + * The extern declaration is there to satisfy MISRA C-2012 rule 8.4. */ #define PMF_ALLOCATE_TIMESTAMP_MEMORY(_name, _total_id) \ + extern unsigned long long pmf_ts_mem_ ## _name[_total_id]; \ unsigned long long pmf_ts_mem_ ## _name[_total_id] \ __aligned(CACHE_WRITEBACK_GRANULE) \ __section("pmf_timestamp_array") \ @@ -60,10 +63,15 @@ /* * Convenience macros for capturing time-stamp. + * + * The extern declaration is there to satisfy MISRA C-2012 rule 8.4. */ #define PMF_DEFINE_CAPTURE_TIMESTAMP(_name, _flags) \ void pmf_capture_timestamp_ ## _name( \ unsigned int tid, \ + unsigned long long ts); \ + void pmf_capture_timestamp_ ## _name( \ + unsigned int tid, \ unsigned long long ts) \ { \ CASSERT(_flags, select_proper_config); \ @@ -76,6 +84,9 @@ } \ void pmf_capture_timestamp_with_cache_maint_ ## _name( \ unsigned int tid, \ + unsigned long long ts); \ + void pmf_capture_timestamp_with_cache_maint_ ## _name( \ + unsigned int tid, \ unsigned long long ts) \ { \ CASSERT(_flags, select_proper_config); \ @@ -89,9 +100,13 @@ /* * Convenience macros for retrieving time-stamp. + * + * The extern declaration is there to satisfy MISRA C-2012 rule 8.4. */ #define PMF_DEFINE_GET_TIMESTAMP(_name) \ unsigned long long pmf_get_timestamp_by_index_ ## _name( \ + unsigned int tid, unsigned int cpuid, unsigned int flags);\ + unsigned long long pmf_get_timestamp_by_index_ ## _name( \ unsigned int tid, unsigned int cpuid, unsigned int flags)\ { \ PMF_VALIDATE_TID(_name, tid); \ @@ -99,6 +114,8 @@ return __pmf_get_timestamp(base_addr, tid, cpuid, flags);\ } \ unsigned long long pmf_get_timestamp_by_mpidr_ ## _name( \ + unsigned int tid, u_register_t mpidr, unsigned int flags);\ + unsigned long long pmf_get_timestamp_by_mpidr_ ## _name( \ unsigned int tid, u_register_t mpidr, unsigned int flags)\ { \ PMF_VALIDATE_TID(_name, tid); \ diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h index b2c7bd2..0a80814 100644 --- a/include/plat/arm/common/plat_arm.h +++ b/include/plat/arm/common/plat_arm.h @@ -125,7 +125,7 @@ void arm_system_pwr_domain_save(void); void arm_system_pwr_domain_resume(void); void arm_program_trusted_mailbox(uintptr_t address); -int arm_psci_read_mem_protect(int *val); +int arm_psci_read_mem_protect(int *enabled); int arm_nor_psci_write_mem_protect(int val); void arm_nor_psci_do_mem_protect(void); int arm_psci_mem_protect_chk(uintptr_t base, u_register_t length); @@ -237,4 +237,8 @@ uint32_t cookie_lo, void *handle); +/* global variables */ +extern plat_psci_ops_t plat_arm_psci_pm_ops; +extern const mmap_region_t plat_arm_mmap[]; + #endif /* __PLAT_ARM_H__ */ diff --git a/include/plat/arm/css/common/css_pm.h b/include/plat/arm/css/common/css_pm.h index 3842875..0f92e60 100644 --- a/include/plat/arm/css/common/css_pm.h +++ b/include/plat/arm/css/common/css_pm.h @@ -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 */ @@ -33,4 +33,10 @@ void css_get_sys_suspend_power_state(psci_power_state_t *req_state); int css_node_hw_state(u_register_t mpidr, unsigned int power_level); +/* + * This mapping array has to be exported by the platform. Each element at + * a given index maps that core to an SCMI power domain. + */ +extern const uint32_t plat_css_core_pos_to_scmi_dmn_id_map[]; + #endif /* __CSS_PM_H__ */ diff --git a/include/plat/common/platform.h b/include/plat/common/platform.h index 411202d..aa181c8 100644 --- a/include/plat/common/platform.h +++ b/include/plat/common/platform.h @@ -301,7 +301,7 @@ * Mandatory PSCI functions (BL31) ******************************************************************************/ int plat_setup_psci_ops(uintptr_t sec_entrypoint, - const struct plat_psci_ops **); + const struct plat_psci_ops **psci_ops); const unsigned char *plat_get_power_domain_tree_desc(void); /******************************************************************************* @@ -311,7 +311,7 @@ void plat_psci_stat_accounting_stop(const psci_power_state_t *state_info); u_register_t plat_psci_stat_get_residency(unsigned int lvl, const psci_power_state_t *state_info, - int last_cpu_index); + int last_cpu_idx); plat_local_state_t plat_get_target_pwr_state(unsigned int lvl, const plat_local_state_t *states, unsigned int ncpu); @@ -386,12 +386,14 @@ unsigned int plat_get_aff_count(unsigned int, unsigned long); unsigned int plat_get_aff_state(unsigned int, unsigned long); + #else /* __ENABLE_PLAT_COMPAT__ */ /* * The below function enable Trusted Firmware components like SPDs which * haven't migrated to the new platform API to compile on platforms which * have the compatibility layer disabled. */ +unsigned int platform_core_pos_helper(unsigned long mpidr); unsigned int platform_get_core_pos(unsigned long mpidr) __deprecated; #endif /* __ENABLE_PLAT_COMPAT__ */ diff --git a/lib/extensions/spe/spe.c b/lib/extensions/spe/spe.c index a9bed49..dc35840 100644 --- a/lib/extensions/spe/spe.c +++ b/lib/extensions/spe/spe.c @@ -7,6 +7,7 @@ #include #include #include +#include /* * The assembler does not yet understand the psb csync mnemonic diff --git a/lib/psci/psci_private.h b/lib/psci/psci_private.h index 504fb9e..c58f329 100644 --- a/lib/psci/psci_private.h +++ b/lib/psci/psci_private.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -218,7 +218,7 @@ void psci_release_pwr_domain_locks(unsigned int end_pwrlvl, unsigned int cpu_idx); int psci_validate_suspend_req(const psci_power_state_t *state_info, - unsigned int is_power_down_state_req); + unsigned int is_power_down_state); unsigned int psci_find_max_off_lvl(const psci_power_state_t *state_info); unsigned int psci_find_target_suspend_lvl(const psci_power_state_t *state_info); void psci_set_pwr_domains_to_run(unsigned int end_pwrlvl); @@ -248,7 +248,7 @@ void psci_cpu_suspend_start(entry_point_info_t *ep, unsigned int end_pwrlvl, psci_power_state_t *state_info, - unsigned int is_power_down_state_req); + unsigned int is_power_down_state); void psci_cpu_suspend_finish(unsigned int cpu_idx, psci_power_state_t *state_info); diff --git a/lib/stdlib/abort.c b/lib/stdlib/abort.c index af19ccf..65ce4cc 100644 --- a/lib/stdlib/abort.c +++ b/lib/stdlib/abort.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include +#include /* * This is a basic implementation. This could be improved. diff --git a/lib/stdlib/exit.c b/lib/stdlib/exit.c index 3d23d7b..afc3f93 100644 --- a/lib/stdlib/exit.c +++ b/lib/stdlib/exit.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include +#include void exit(int v) { diff --git a/lib/stdlib/sscanf.c b/lib/stdlib/sscanf.c index 674ae79..a5876cf 100644 --- a/lib/stdlib/sscanf.c +++ b/lib/stdlib/sscanf.c @@ -1,9 +1,10 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ +#include #include /* diff --git a/lib/xlat_tables_v2/xlat_tables_internal.c b/lib/xlat_tables_v2/xlat_tables_internal.c index 75c5a91..653260c 100644 --- a/lib/xlat_tables_v2/xlat_tables_internal.c +++ b/lib/xlat_tables_v2/xlat_tables_internal.c @@ -115,7 +115,7 @@ /* * Returns a block/page table descriptor for the given level and attributes. */ -uint64_t xlat_desc(const xlat_ctx_t *ctx, mmap_attr_t attr, +static uint64_t xlat_desc(const xlat_ctx_t *ctx, mmap_attr_t attr, unsigned long long addr_pa, int level) { uint64_t desc; diff --git a/lib/xlat_tables_v2/xlat_tables_private.h b/lib/xlat_tables_v2/xlat_tables_private.h index 79efbeb..07963b1 100644 --- a/lib/xlat_tables_v2/xlat_tables_private.h +++ b/lib/xlat_tables_v2/xlat_tables_private.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -83,7 +83,7 @@ /* Enable MMU and configure it to use the specified translation tables. */ void enable_mmu_arch(unsigned int flags, uint64_t *base_table, - unsigned long long pa, uintptr_t max_va); + unsigned long long max_pa, uintptr_t max_va); /* * Return 1 if the MMU of the translation regime managed by the given xlat_ctx_t diff --git a/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.h b/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.h index aa89679..9ad32d7 100644 --- a/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.h +++ b/plat/arm/board/fvp/drivers/pwrc/fvp_pwrc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -40,13 +40,13 @@ /******************************************************************************* * Function & variable prototypes ******************************************************************************/ -void fvp_pwrc_write_pcoffr(u_register_t); -void fvp_pwrc_write_ppoffr(u_register_t); -void fvp_pwrc_write_pponr(u_register_t); -void fvp_pwrc_set_wen(u_register_t); -void fvp_pwrc_clr_wen(u_register_t); -unsigned int fvp_pwrc_read_psysr(u_register_t); -unsigned int fvp_pwrc_get_cpu_wkr(u_register_t); +void fvp_pwrc_write_pcoffr(u_register_t mpidr); +void fvp_pwrc_write_ppoffr(u_register_t mpidr); +void fvp_pwrc_write_pponr(u_register_t mpidr); +void fvp_pwrc_set_wen(u_register_t mpidr); +void fvp_pwrc_clr_wen(u_register_t mpidr); +unsigned int fvp_pwrc_read_psysr(u_register_t mpidr); +unsigned int fvp_pwrc_get_cpu_wkr(u_register_t mpidr); #endif /*__ASSEMBLY__*/ diff --git a/plat/arm/board/fvp/fvp_bl1_setup.c b/plat/arm/board/fvp/fvp_bl1_setup.c index c539a28..d50c20a 100644 --- a/plat/arm/board/fvp/fvp_bl1_setup.c +++ b/plat/arm/board/fvp/fvp_bl1_setup.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include +#include #include #include "fvp_private.h" diff --git a/plat/arm/board/fvp/fvp_bl2u_setup.c b/plat/arm/board/fvp/fvp_bl2u_setup.c index 283829a..361e84d 100644 --- a/plat/arm/board/fvp/fvp_bl2u_setup.c +++ b/plat/arm/board/fvp/fvp_bl2u_setup.c @@ -1,10 +1,11 @@ /* - * Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include +#include #include "fvp_def.h" #include "fvp_private.h" diff --git a/plat/arm/board/fvp/fvp_common.c b/plat/arm/board/fvp/fvp_common.c index 600af61..2df11d6 100644 --- a/plat/arm/board/fvp/fvp_common.c +++ b/plat/arm/board/fvp/fvp_common.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -18,6 +18,7 @@ #include #include #include "../fvp_def.h" +#include "fvp_private.h" /* Defines for GIC Driver build time selection */ #define FVP_GICV2 1 diff --git a/plat/arm/board/fvp/fvp_err.c b/plat/arm/board/fvp/fvp_err.c index 8d49595..d9ad517 100644 --- a/plat/arm/board/fvp/fvp_err.c +++ b/plat/arm/board/fvp/fvp_err.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -9,6 +9,7 @@ #include #include #include +#include #include /* diff --git a/plat/arm/board/fvp/fvp_pm.c b/plat/arm/board/fvp/fvp_pm.c index 7284584..f61cdb3 100644 --- a/plat/arm/board/fvp/fvp_pm.c +++ b/plat/arm/board/fvp/fvp_pm.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -16,6 +16,7 @@ #include #include #include +#include "../../../../drivers/arm/gic/v3/gicv3_private.h" #include "drivers/pwrc/fvp_pwrc.h" #include "fvp_def.h" #include "fvp_private.h" @@ -74,10 +75,10 @@ * support SYSTEM_SUSPEND and it is `faked` in firmware. Hence, for wake up * from `fake` system suspend the GIC must not be powered off. */ -void arm_gicv3_distif_pre_save(unsigned int proc_num) +void arm_gicv3_distif_pre_save(unsigned int rdist_proc_num) {} -void arm_gicv3_distif_post_restore(unsigned int proc_num) +void arm_gicv3_distif_post_restore(unsigned int rdist_proc_num) {} static void fvp_power_domain_on_finish_common(const psci_power_state_t *target_state) @@ -123,7 +124,7 @@ /******************************************************************************* * FVP handler called when a CPU is about to enter standby. ******************************************************************************/ -void fvp_cpu_standby(plat_local_state_t cpu_state) +static void fvp_cpu_standby(plat_local_state_t cpu_state) { assert(cpu_state == ARM_LOCAL_STATE_RET); @@ -140,7 +141,7 @@ * FVP handler called when a power domain is about to be turned on. The * mpidr determines the CPU to be turned on. ******************************************************************************/ -int fvp_pwr_domain_on(u_register_t mpidr) +static int fvp_pwr_domain_on(u_register_t mpidr) { int rc = PSCI_E_SUCCESS; unsigned int psysr; @@ -162,7 +163,7 @@ * FVP handler called when a power domain is about to be turned off. The * target_state encodes the power state that each level should transition to. ******************************************************************************/ -void fvp_pwr_domain_off(const psci_power_state_t *target_state) +static void fvp_pwr_domain_off(const psci_power_state_t *target_state) { assert(target_state->pwr_domain_state[ARM_PWR_LVL0] == ARM_LOCAL_STATE_OFF); @@ -192,7 +193,7 @@ * FVP handler called when a power domain is about to be suspended. The * target_state encodes the power state that each level should transition to. ******************************************************************************/ -void fvp_pwr_domain_suspend(const psci_power_state_t *target_state) +static void fvp_pwr_domain_suspend(const psci_power_state_t *target_state) { unsigned long mpidr; @@ -241,7 +242,7 @@ * being turned off earlier. The target_state encodes the low power state that * each level has woken up from. ******************************************************************************/ -void fvp_pwr_domain_on_finish(const psci_power_state_t *target_state) +static void fvp_pwr_domain_on_finish(const psci_power_state_t *target_state) { fvp_power_domain_on_finish_common(target_state); @@ -259,7 +260,7 @@ * TODO: At the moment we reuse the on finisher and reinitialize the secure * context. Need to implement a separate suspend finisher. ******************************************************************************/ -void fvp_pwr_domain_suspend_finish(const psci_power_state_t *target_state) +static void fvp_pwr_domain_suspend_finish(const psci_power_state_t *target_state) { /* * Nothing to be done on waking up from retention from CPU level. @@ -341,13 +342,15 @@ * layer. The `fake` SYSTEM_SUSPEND allows us to validate some of the driver * save and restore sequences on FVP. */ -void fvp_get_sys_suspend_power_state(psci_power_state_t *req_state) +#if !ARM_BL31_IN_DRAM +static void fvp_get_sys_suspend_power_state(psci_power_state_t *req_state) { unsigned int i; for (i = ARM_PWR_LVL0; i <= PLAT_MAX_PWR_LVL; i++) req_state->pwr_domain_state[i] = ARM_LOCAL_STATE_OFF; } +#endif /******************************************************************************* * Handler to filter PSCI requests. diff --git a/plat/arm/board/fvp/fvp_topology.c b/plat/arm/board/fvp/fvp_topology.c index 4a007f4..a1e3f7f 100644 --- a/plat/arm/board/fvp/fvp_topology.c +++ b/plat/arm/board/fvp/fvp_topology.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -8,11 +8,12 @@ #include #include #include +#include #include #include "drivers/pwrc/fvp_pwrc.h" /* The FVP power domain tree descriptor */ -unsigned char fvp_power_domain_tree_desc[FVP_CLUSTER_COUNT + 2]; +static unsigned char fvp_power_domain_tree_desc[FVP_CLUSTER_COUNT + 2]; CASSERT(FVP_CLUSTER_COUNT && FVP_CLUSTER_COUNT <= 256, assert_invalid_fvp_cluster_count); diff --git a/plat/arm/board/fvp/fvp_trusted_boot.c b/plat/arm/board/fvp/fvp_trusted_boot.c index d1e8b9f..39be4a6 100644 --- a/plat/arm/board/fvp/fvp_trusted_boot.c +++ b/plat/arm/board/fvp/fvp_trusted_boot.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "fvp_def.h" diff --git a/plat/arm/board/juno/juno_err.c b/plat/arm/board/juno/juno_err.c index 4682895..0fe7016 100644 --- a/plat/arm/board/juno/juno_err.c +++ b/plat/arm/board/juno/juno_err.c @@ -1,11 +1,12 @@ /* - * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include #include +#include #include #define V2M_SYS_NVFLAGS_ADDR (V2M_SYSREGS_BASE + V2M_SYS_NVFLAGS) diff --git a/plat/arm/board/juno/juno_topology.c b/plat/arm/board/juno/juno_topology.c index b9412b1..5f031c8 100644 --- a/plat/arm/board/juno/juno_topology.c +++ b/plat/arm/board/juno/juno_topology.c @@ -1,11 +1,13 @@ /* - * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include +#include #include +#include #include "juno_def.h" /* @@ -23,7 +25,7 @@ * i.e. CLUSTER1 CPUs are allocated indices from 0 to 3 and the higher * indices for CLUSTER0 CPUs. */ -const unsigned char juno_power_domain_tree_desc[] = { +static const unsigned char juno_power_domain_tree_desc[] = { /* No of root nodes */ JUNO_PWR_DOMAINS_AT_MAX_PWR_LVL, /* No of children for the root node */ diff --git a/plat/arm/board/juno/juno_trng.c b/plat/arm/board/juno/juno_trng.c index 124821b..d9ad1d4 100644 --- a/plat/arm/board/juno/juno_trng.c +++ b/plat/arm/board/juno/juno_trng.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -8,6 +8,7 @@ #include #include #include +#include "juno_decl.h" #include "juno_def.h" #define NSAMPLE_CLOCKS 1 /* min 1 cycle, max 231 cycles */ diff --git a/plat/arm/common/arm_bl1_setup.c b/plat/arm/common/arm_bl1_setup.c index 0b9c9ee..3a30eca 100644 --- a/plat/arm/common/arm_bl1_setup.c +++ b/plat/arm/common/arm_bl1_setup.c @@ -7,9 +7,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include diff --git a/plat/arm/common/arm_bl2u_setup.c b/plat/arm/common/arm_bl2u_setup.c index 03d908b..cc291fc 100644 --- a/plat/arm/common/arm_bl2u_setup.c +++ b/plat/arm/common/arm_bl2u_setup.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -10,6 +10,7 @@ #include #include #include +#include #include /* Weak definitions may be overridden in specific ARM standard platform */ diff --git a/plat/arm/common/arm_common.c b/plat/arm/common/arm_common.c index bf63973..3f0ea01 100644 --- a/plat/arm/common/arm_common.c +++ b/plat/arm/common/arm_common.c @@ -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 */ @@ -11,6 +11,7 @@ #include #include #include +#include #include extern const mmap_region_t plat_arm_mmap[]; diff --git a/plat/arm/common/arm_gicv3.c b/plat/arm/common/arm_gicv3.c index e273b77..b8ffd6b 100644 --- a/plat/arm/common/arm_gicv3.c +++ b/plat/arm/common/arm_gicv3.c @@ -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 */ @@ -35,8 +35,8 @@ * We save and restore the GICv3 context on system suspend. Allocate the * data in the designated EL3 Secure carve-out memory */ -gicv3_redist_ctx_t rdist_ctx __section("arm_el3_tzc_dram"); -gicv3_dist_ctx_t dist_ctx __section("arm_el3_tzc_dram"); +static gicv3_redist_ctx_t rdist_ctx __section("arm_el3_tzc_dram"); +static gicv3_dist_ctx_t dist_ctx __section("arm_el3_tzc_dram"); /* * MPIDR hashing function for translating MPIDRs read from GICR_TYPER register @@ -58,7 +58,7 @@ return plat_arm_calc_core_pos(mpidr); } -const gicv3_driver_data_t arm_gic_data = { +static const gicv3_driver_data_t arm_gic_data __unused = { .gicd_base = PLAT_ARM_GICD_BASE, .gicr_base = PLAT_ARM_GICR_BASE, .interrupt_props = arm_interrupt_props, diff --git a/plat/arm/common/arm_io_storage.c b/plat/arm/common/arm_io_storage.c index 5cabc54..652f5e9 100644 --- a/plat/arm/common/arm_io_storage.c +++ b/plat/arm/common/arm_io_storage.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/plat/arm/common/arm_nor_psci_mem_protect.c b/plat/arm/common/arm_nor_psci_mem_protect.c index c5263fd..3167a42 100644 --- a/plat/arm/common/arm_nor_psci_mem_protect.c +++ b/plat/arm/common/arm_nor_psci_mem_protect.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -12,7 +12,7 @@ #include #include -mem_region_t arm_ram_ranges[] = { +static mem_region_t arm_ram_ranges[] = { {ARM_NS_DRAM1_BASE, ARM_NS_DRAM1_SIZE}, #ifdef AARCH64 {ARM_DRAM2_BASE, ARM_DRAM2_SIZE}, diff --git a/plat/arm/common/arm_tzc400.c b/plat/arm/common/arm_tzc400.c index cf13326..6b706be 100644 --- a/plat/arm/common/arm_tzc400.c +++ b/plat/arm/common/arm_tzc400.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff --git a/plat/arm/css/common/css_bl1_setup.c b/plat/arm/css/common/css_bl1_setup.c index 7a2a6ff..b1b275c 100644 --- a/plat/arm/css/common/css_bl1_setup.c +++ b/plat/arm/css/common/css_bl1_setup.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -7,6 +7,7 @@ #include #include #include +#include #include void bl1_platform_setup(void) diff --git a/plat/arm/css/common/css_bl2u_setup.c b/plat/arm/css/common/css_bl2u_setup.c index d225151..4ceb5cd 100644 --- a/plat/arm/css/common/css_bl2u_setup.c +++ b/plat/arm/css/common/css_bl2u_setup.c @@ -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 */ @@ -7,6 +7,7 @@ #include #include #include +#include #include "../drivers/scp/css_scp.h" /* Weak definition may be overridden in specific CSS based platform */ diff --git a/plat/arm/css/common/css_topology.c b/plat/arm/css/common/css_topology.c index 9b114e2..bccf2c8 100644 --- a/plat/arm/css/common/css_topology.c +++ b/plat/arm/css/common/css_topology.c @@ -1,10 +1,11 @@ /* - * 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 */ #include +#include #if ARM_PLAT_MT #pragma weak plat_arm_get_cpu_pe_count diff --git a/plat/arm/css/drivers/scp/css_bom_bootloader.c b/plat/arm/css/drivers/scp/css_bom_bootloader.c index a92ce6b..08d6fc5 100644 --- a/plat/arm/css/drivers/scp/css_bom_bootloader.c +++ b/plat/arm/css/drivers/scp/css_bom_bootloader.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -12,6 +12,7 @@ #include #include "../scpi/css_mhu.h" #include "../scpi/css_scpi.h" +#include "css_scp.h" /* ID of the MHU slot used for the BOM protocol */ #define BOM_MHU_SLOT_ID 0 diff --git a/plat/arm/css/drivers/scp/css_pm_scmi.c b/plat/arm/css/drivers/scp/css_pm_scmi.c index e29cd86..f8bc20c 100644 --- a/plat/arm/css/drivers/scp/css_pm_scmi.c +++ b/plat/arm/css/drivers/scp/css_pm_scmi.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -62,16 +62,10 @@ } scmi_power_state_t; /* - * This mapping array has to be exported by the platform. Each element at - * a given index maps that core to an SCMI power domain. - */ -extern uint32_t plat_css_core_pos_to_scmi_dmn_id_map[]; - -/* * The global handle for invoking the SCMI driver APIs after the driver * has been initialized. */ -void *scmi_handle; +static void *scmi_handle; /* The SCMI channel global object */ static scmi_channel_t scmi_channel; diff --git a/plat/arm/soc/common/soc_css_security.c b/plat/arm/soc/common/soc_css_security.c index a8747f1..19bd76f 100644 --- a/plat/arm/soc/common/soc_css_security.c +++ b/plat/arm/soc/common/soc_css_security.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -8,6 +8,7 @@ #include #include #include +#include #include void soc_css_init_nic400(void) diff --git a/plat/common/plat_bl_common.c b/plat/common/plat_bl_common.c index 502bb54..b471a7e 100644 --- a/plat/common/plat_bl_common.c +++ b/plat/common/plat_bl_common.c @@ -36,6 +36,7 @@ { } +#if LOAD_IMAGE_V2 int bl2_plat_handle_pre_image_load(unsigned int image_id) { return 0; @@ -45,6 +46,7 @@ { return 0; } +#endif int plat_try_next_boot_source(void) { diff --git a/services/arm_arch_svc/arm_arch_svc_setup.c b/services/arm_arch_svc/arm_arch_svc_setup.c index eedac86..a809c42 100644 --- a/services/arm_arch_svc/arm_arch_svc_setup.c +++ b/services/arm_arch_svc/arm_arch_svc_setup.c @@ -33,7 +33,7 @@ /* * Top-level Arm Architectural Service SMC handler. */ -uintptr_t arm_arch_svc_smc_handler(uint32_t smc_fid, +static uintptr_t arm_arch_svc_smc_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, u_register_t x3, diff --git a/services/std_svc/std_svc_setup.c b/services/std_svc/std_svc_setup.c index ffc3471..eae078e 100644 --- a/services/std_svc/std_svc_setup.c +++ b/services/std_svc/std_svc_setup.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -58,7 +58,7 @@ * Top-level Standard Service SMC handler. This handler will in turn dispatch * calls to PSCI SMC handler */ -uintptr_t std_svc_smc_handler(uint32_t smc_fid, +static uintptr_t std_svc_smc_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, u_register_t x3,