diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/bl31/runtime_svc.h | 2 | ||||
-rw-r--r-- | include/common/context_mgmt.h | 7 | ||||
-rw-r--r-- | include/drivers/arm/arm_gic.h | 23 | ||||
-rw-r--r-- | include/drivers/arm/cci400.h | 7 | ||||
-rw-r--r-- | include/drivers/arm/gic_common.h | 65 | ||||
-rw-r--r-- | include/drivers/arm/pl011.h | 1 | ||||
-rw-r--r-- | include/drivers/auth/img_parser_mod.h | 2 | ||||
-rw-r--r-- | include/lib/bakery_lock.h | 3 | ||||
-rw-r--r-- | include/lib/cassert.h | 2 | ||||
-rw-r--r-- | include/lib/cpus/aarch64/cortex_a57.h | 7 | ||||
-rw-r--r-- | include/plat/arm/board/common/board_arm_def.h | 4 | ||||
-rw-r--r-- | include/plat/arm/common/aarch64/arm_macros.S | 30 | ||||
-rw-r--r-- | include/plat/arm/common/aarch64/cci_macros.S | 61 | ||||
-rw-r--r-- | include/plat/arm/common/arm_config.h | 6 | ||||
-rw-r--r-- | include/plat/arm/common/arm_def.h | 27 | ||||
-rw-r--r-- | include/plat/arm/common/plat_arm.h | 15 | ||||
-rw-r--r-- | include/plat/arm/css/common/css_def.h | 61 | ||||
-rw-r--r-- | include/plat/common/common_def.h | 7 | ||||
-rw-r--r-- | include/plat/common/platform.h | 2 | ||||
-rw-r--r-- | include/stdlib/sys/cdefs.h | 2 |
20 files changed, 148 insertions, 186 deletions
diff --git a/include/bl31/runtime_svc.h b/include/bl31/runtime_svc.h index 87f2dd2c..03f906ef 100644 --- a/include/bl31/runtime_svc.h +++ b/include/bl31/runtime_svc.h @@ -88,7 +88,7 @@ typedef struct rt_svc_desc { */ #define DECLARE_RT_SVC(_name, _start, _end, _type, _setup, _smch) \ static const rt_svc_desc_t __svc_desc_ ## _name \ - __attribute__ ((section("rt_svc_descs"), used)) = { \ + __section("rt_svc_descs") __used = { \ .start_oen = _start, \ .end_oen = _end, \ .call_type = _type, \ diff --git a/include/common/context_mgmt.h b/include/common/context_mgmt.h index 141b3481..11786a18 100644 --- a/include/common/context_mgmt.h +++ b/include/common/context_mgmt.h @@ -33,7 +33,6 @@ #include <arch.h> #include <bl_common.h> -#include <common_def.h> /******************************************************************************* * Forward declarations @@ -45,10 +44,10 @@ struct entry_point_info; ******************************************************************************/ void cm_init(void); void *cm_get_context_by_mpidr(uint64_t mpidr, - uint32_t security_state) __warn_deprecated; + uint32_t security_state) __deprecated; void cm_set_context_by_mpidr(uint64_t mpidr, void *context, - uint32_t security_state) __warn_deprecated; + uint32_t security_state) __deprecated; void *cm_get_context_by_index(unsigned int cpu_idx, unsigned int security_state); void cm_set_context_by_index(unsigned int cpu_idx, @@ -58,7 +57,7 @@ void *cm_get_context(uint32_t security_state); void cm_set_context(void *context, uint32_t security_state); inline void cm_set_next_context(void *context); void cm_init_context(uint64_t mpidr, - const struct entry_point_info *ep) __warn_deprecated; + const struct entry_point_info *ep) __deprecated; void cm_init_my_context(const struct entry_point_info *ep); void cm_init_context_by_index(unsigned int cpu_idx, const struct entry_point_info *ep); diff --git a/include/drivers/arm/arm_gic.h b/include/drivers/arm/arm_gic.h index 8c1f03fb..37ff5c9a 100644 --- a/include/drivers/arm/arm_gic.h +++ b/include/drivers/arm/arm_gic.h @@ -31,7 +31,6 @@ #ifndef __ARM_GIC_H__ #define __ARM_GIC_H__ -#include <common_def.h> #include <stdint.h> /******************************************************************************* @@ -41,18 +40,18 @@ void arm_gic_init(uintptr_t gicc_base, uintptr_t gicd_base, uintptr_t gicr_base, const unsigned int *irq_sec_ptr, - unsigned int num_irqs) __warn_deprecated; -void arm_gic_setup(void) __warn_deprecated; -void arm_gic_cpuif_deactivate(void) __warn_deprecated; -void arm_gic_cpuif_setup(void) __warn_deprecated; -void arm_gic_pcpu_distif_setup(void) __warn_deprecated; + unsigned int num_irqs) __deprecated; +void arm_gic_setup(void) __deprecated; +void arm_gic_cpuif_deactivate(void) __deprecated; +void arm_gic_cpuif_setup(void) __deprecated; +void arm_gic_pcpu_distif_setup(void) __deprecated; uint32_t arm_gic_interrupt_type_to_line(uint32_t type, - uint32_t security_state) __warn_deprecated; -uint32_t arm_gic_get_pending_interrupt_type(void) __warn_deprecated; -uint32_t arm_gic_get_pending_interrupt_id(void) __warn_deprecated; -uint32_t arm_gic_acknowledge_interrupt(void) __warn_deprecated; -void arm_gic_end_of_interrupt(uint32_t id) __warn_deprecated; -uint32_t arm_gic_get_interrupt_type(uint32_t id) __warn_deprecated; + uint32_t security_state) __deprecated; +uint32_t arm_gic_get_pending_interrupt_type(void) __deprecated; +uint32_t arm_gic_get_pending_interrupt_id(void) __deprecated; +uint32_t arm_gic_acknowledge_interrupt(void) __deprecated; +void arm_gic_end_of_interrupt(uint32_t id) __deprecated; +uint32_t arm_gic_get_interrupt_type(uint32_t id) __deprecated; #endif /* __GIC_H__ */ diff --git a/include/drivers/arm/cci400.h b/include/drivers/arm/cci400.h index a5dc9a03..bfadc8f8 100644 --- a/include/drivers/arm/cci400.h +++ b/include/drivers/arm/cci400.h @@ -76,7 +76,6 @@ #ifndef __ASSEMBLY__ -#include <common_def.h> #include <stdint.h> /* Function declarations */ @@ -92,10 +91,10 @@ */ void cci_init(uintptr_t cci_base, int slave_iface3_cluster_ix, - int slave_iface4_cluster_ix) __warn_deprecated; + int slave_iface4_cluster_ix) __deprecated; -void cci_enable_cluster_coherency(unsigned long mpidr) __warn_deprecated; -void cci_disable_cluster_coherency(unsigned long mpidr) __warn_deprecated; +void cci_enable_cluster_coherency(unsigned long mpidr) __deprecated; +void cci_disable_cluster_coherency(unsigned long mpidr) __deprecated; #endif /* __ASSEMBLY__ */ #endif /* __CCI_400_H__ */ diff --git a/include/drivers/arm/gic_common.h b/include/drivers/arm/gic_common.h index 6a322a22..dd8efdc7 100644 --- a/include/drivers/arm/gic_common.h +++ b/include/drivers/arm/gic_common.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2016, 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: @@ -107,67 +107,4 @@ (GIC_HIGHEST_NS_PRIORITY << 16) | \ (GIC_HIGHEST_NS_PRIORITY << 24)) -#ifndef __ASSEMBLY__ - -#include <mmio.h> -#include <stdint.h> - -/******************************************************************************* - * GIC Distributor interface register accessors that are common to GICv3 & GICv2 - ******************************************************************************/ -static inline unsigned int gicd_read_ctlr(uintptr_t base) -{ - return mmio_read_32(base + GICD_CTLR); -} - -static inline unsigned int gicd_read_typer(uintptr_t base) -{ - return mmio_read_32(base + GICD_TYPER); -} - -static inline unsigned int gicd_read_iidr(uintptr_t base) -{ - return mmio_read_32(base + GICD_IIDR); -} - -static inline void gicd_write_ctlr(uintptr_t base, unsigned int val) -{ - mmio_write_32(base + GICD_CTLR, val); -} - -/******************************************************************************* - * GIC Distributor function prototypes - ******************************************************************************/ -unsigned int gicd_read_igroupr(uintptr_t base, unsigned int id); -unsigned int gicd_read_isenabler(uintptr_t base, unsigned int id); -unsigned int gicd_read_icenabler(uintptr_t base, unsigned int id); -unsigned int gicd_read_ispendr(uintptr_t base, unsigned int id); -unsigned int gicd_read_icpendr(uintptr_t base, unsigned int id); -unsigned int gicd_read_isactiver(uintptr_t base, unsigned int id); -unsigned int gicd_read_icactiver(uintptr_t base, unsigned int id); -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); -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); -void gicd_write_ispendr(uintptr_t base, unsigned int id, unsigned int val); -void gicd_write_icpendr(uintptr_t base, unsigned int id, unsigned int val); -void gicd_write_isactiver(uintptr_t base, unsigned int id, unsigned int val); -void gicd_write_icactiver(uintptr_t base, unsigned int id, unsigned int val); -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); -unsigned int gicd_get_igroupr(uintptr_t base, unsigned int id); -void gicd_set_igroupr(uintptr_t base, unsigned int id); -void gicd_clr_igroupr(uintptr_t base, unsigned int id); -void gicd_set_isenabler(uintptr_t base, unsigned int id); -void gicd_set_icenabler(uintptr_t base, unsigned int id); -void gicd_set_ispendr(uintptr_t base, unsigned int id); -void gicd_set_icpendr(uintptr_t base, unsigned int id); -void gicd_set_isactiver(uintptr_t base, unsigned int id); -void gicd_set_icactiver(uintptr_t base, unsigned int id); - - -#endif /* __ASSEMBLY__ */ #endif /* __GIC_COMMON_H__ */ diff --git a/include/drivers/arm/pl011.h b/include/drivers/arm/pl011.h index d5ea890d..ce6cdcf5 100644 --- a/include/drivers/arm/pl011.h +++ b/include/drivers/arm/pl011.h @@ -71,6 +71,7 @@ #define PL011_UARTFR_TXFF_BIT 5 /* Transmit FIFO full bit in UARTFR register */ #define PL011_UARTFR_RXFE_BIT 4 /* Receive FIFO empty bit in UARTFR register */ +#define PL011_UARTFR_BUSY_BIT 3 /* UART busy bit in UARTFR register */ /* Control reg bits */ #if !PL011_GENERIC_UART diff --git a/include/drivers/auth/img_parser_mod.h b/include/drivers/auth/img_parser_mod.h index d80e0fb7..79d7d797 100644 --- a/include/drivers/auth/img_parser_mod.h +++ b/include/drivers/auth/img_parser_mod.h @@ -77,7 +77,7 @@ int img_parser_get_auth_param(img_type_t img_type, /* Macro to register an image parser library */ #define REGISTER_IMG_PARSER_LIB(_type, _name, _init, _check_int, _get_param) \ static const img_parser_lib_desc_t __img_parser_lib_desc_##_type \ - __attribute__ ((section(".img_parser_lib_descs"), used)) = { \ + __section(".img_parser_lib_descs") __used = { \ .img_type = _type, \ .name = _name, \ .init = _init, \ diff --git a/include/lib/bakery_lock.h b/include/lib/bakery_lock.h index 86adb9cb..8a538917 100644 --- a/include/lib/bakery_lock.h +++ b/include/lib/bakery_lock.h @@ -100,8 +100,7 @@ inline void bakery_lock_init(bakery_lock_t *bakery) {} void bakery_lock_get(bakery_lock_t *bakery); void bakery_lock_release(bakery_lock_t *bakery); -#define DEFINE_BAKERY_LOCK(_name) bakery_lock_t _name \ - __attribute__ ((section("bakery_lock"))) +#define DEFINE_BAKERY_LOCK(_name) bakery_lock_t _name __section("bakery_lock") #define DECLARE_BAKERY_LOCK(_name) extern bakery_lock_t _name diff --git a/include/lib/cassert.h b/include/lib/cassert.h index e8089cbb..00ee4d59 100644 --- a/include/lib/cassert.h +++ b/include/lib/cassert.h @@ -40,6 +40,6 @@ * compiler warning. ******************************************************************************/ #define CASSERT(cond, msg) \ - typedef char msg[(cond) ? 1 : -1] __attribute__((unused)) + typedef char msg[(cond) ? 1 : -1] __unused #endif /* __CASSERT_H__ */ diff --git a/include/lib/cpus/aarch64/cortex_a57.h b/include/lib/cpus/aarch64/cortex_a57.h index c81259c8..c512129a 100644 --- a/include/lib/cpus/aarch64/cortex_a57.h +++ b/include/lib/cpus/aarch64/cortex_a57.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2016, 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: @@ -61,8 +61,9 @@ ******************************************************************************/ #define CPUACTLR_EL1 S3_1_C15_C2_0 /* Instruction def. */ -#define CPUACTLR_NO_ALLOC_WBWA (1 << 49) -#define CPUACTLR_DCC_AS_DCCI (1 << 44) +#define CPUACTLR_DIS_OVERREAD (1 << 52) +#define CPUACTLR_NO_ALLOC_WBWA (1 << 49) +#define CPUACTLR_DCC_AS_DCCI (1 << 44) /******************************************************************************* * L2 Control register specific definitions. diff --git a/include/plat/arm/board/common/board_arm_def.h b/include/plat/arm/board/common/board_arm_def.h index b4e43134..db2a8dfb 100644 --- a/include/plat/arm/board/common/board_arm_def.h +++ b/include/plat/arm/board/common/board_arm_def.h @@ -39,9 +39,7 @@ */ /* Size of cacheable stacks */ -#if DEBUG_XLAT_TABLE -# define PLATFORM_STACK_SIZE 0x800 -#elif IMAGE_BL1 +#if IMAGE_BL1 #if TRUSTED_BOARD_BOOT # define PLATFORM_STACK_SIZE 0x1000 #else diff --git a/include/plat/arm/common/aarch64/arm_macros.S b/include/plat/arm/common/aarch64/arm_macros.S index 384bb514..3b19a7d0 100644 --- a/include/plat/arm/common/aarch64/arm_macros.S +++ b/include/plat/arm/common/aarch64/arm_macros.S @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2016, 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: @@ -30,7 +30,6 @@ #ifndef __ARM_MACROS_S__ #define __ARM_MACROS_S__ -#include <cci.h> #include <gic_common.h> #include <gicv2.h> #include <gicv3.h> @@ -117,31 +116,4 @@ gicd_ispendr_loop: exit_print_gic_regs: .endm - -.section .rodata.cci_reg_name, "aS" -cci_iface_regs: - .asciz "cci_snoop_ctrl_cluster0", "cci_snoop_ctrl_cluster1" , "" - - /* ------------------------------------------------ - * The below required platform porting macro prints - * out relevant interconnect registers whenever an - * unhandled exception is taken in BL31. - * Clobbers: x0 - x9, sp - * ------------------------------------------------ - */ - .macro plat_print_interconnect_regs - adr x6, cci_iface_regs - /* Store in x7 the base address of the first interface */ - mov_imm x7, (PLAT_ARM_CCI_BASE + SLAVE_IFACE_OFFSET( \ - PLAT_ARM_CCI_CLUSTER0_SL_IFACE_IX)) - ldr w8, [x7, #SNOOP_CTRL_REG] - /* Store in x7 the base address of the second interface */ - mov_imm x7, (PLAT_ARM_CCI_BASE + SLAVE_IFACE_OFFSET( \ - PLAT_ARM_CCI_CLUSTER1_SL_IFACE_IX)) - ldr w9, [x7, #SNOOP_CTRL_REG] - /* Store to the crash buf and print to console */ - bl str_in_crash_buf_print - .endm - - #endif /* __ARM_MACROS_S__ */ diff --git a/include/plat/arm/common/aarch64/cci_macros.S b/include/plat/arm/common/aarch64/cci_macros.S new file mode 100644 index 00000000..40f9d7e0 --- /dev/null +++ b/include/plat/arm/common/aarch64/cci_macros.S @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2016, 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 __CCI_MACROS_S__ +#define __CCI_MACROS_S__ + +#include <cci.h> +#include <platform_def.h> + +.section .rodata.cci_reg_name, "aS" +cci_iface_regs: + .asciz "cci_snoop_ctrl_cluster0", "cci_snoop_ctrl_cluster1" , "" + + /* ------------------------------------------------ + * The below required platform porting macro prints + * out relevant interconnect registers whenever an + * unhandled exception is taken in BL31. + * Clobbers: x0 - x9, sp + * ------------------------------------------------ + */ + .macro plat_print_interconnect_regs + adr x6, cci_iface_regs + /* Store in x7 the base address of the first interface */ + mov_imm x7, (PLAT_ARM_CCI_BASE + SLAVE_IFACE_OFFSET( \ + PLAT_ARM_CCI_CLUSTER0_SL_IFACE_IX)) + ldr w8, [x7, #SNOOP_CTRL_REG] + /* Store in x7 the base address of the second interface */ + mov_imm x7, (PLAT_ARM_CCI_BASE + SLAVE_IFACE_OFFSET( \ + PLAT_ARM_CCI_CLUSTER1_SL_IFACE_IX)) + ldr w9, [x7, #SNOOP_CTRL_REG] + /* Store to the crash buf and print to console */ + bl str_in_crash_buf_print + .endm + +#endif /* __CCI_MACROS_S__ */ diff --git a/include/plat/arm/common/arm_config.h b/include/plat/arm/common/arm_config.h index 24c1f0a1..03808498 100644 --- a/include/plat/arm/common/arm_config.h +++ b/include/plat/arm/common/arm_config.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2014-2016, 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: @@ -35,8 +35,8 @@ enum arm_config_flags { /* Whether Base memory map is in use */ ARM_CONFIG_BASE_MMAP = 0x1, - /* Whether CCI should be enabled */ - ARM_CONFIG_HAS_CCI = 0x2, + /* Whether interconnect should be enabled */ + ARM_CONFIG_HAS_INTERCONNECT = 0x2, /* Whether TZC should be configured */ ARM_CONFIG_HAS_TZC = 0x4 }; diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h index 60491711..8d753637 100644 --- a/include/plat/arm/common/arm_def.h +++ b/include/plat/arm/common/arm_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2016, 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: @@ -235,44 +235,31 @@ #define BL1_RO_LIMIT (PLAT_ARM_TRUSTED_ROM_BASE \ + PLAT_ARM_TRUSTED_ROM_SIZE) /* - * Put BL1 RW at the top of the Trusted SRAM. BL1_RW_BASE is calculated using - * the current BL1 RW debug size plus a little space for growth. + * Put BL1 RW at the top of the Trusted SRAM. */ -#if TRUSTED_BOARD_BOOT #define BL1_RW_BASE (ARM_BL_RAM_BASE + \ ARM_BL_RAM_SIZE - \ - 0x9000) -#else -#define BL1_RW_BASE (ARM_BL_RAM_BASE + \ - ARM_BL_RAM_SIZE - \ - 0x6000) -#endif + PLAT_ARM_MAX_BL1_RW_SIZE) #define BL1_RW_LIMIT (ARM_BL_RAM_BASE + ARM_BL_RAM_SIZE) /******************************************************************************* * BL2 specific defines. ******************************************************************************/ /* - * Put BL2 just below BL31. BL2_BASE is calculated using the current BL2 debug - * size plus a little space for growth. + * Put BL2 just below BL31. */ -#if TRUSTED_BOARD_BOOT -#define BL2_BASE (BL31_BASE - 0x1D000) -#else -#define BL2_BASE (BL31_BASE - 0xC000) -#endif +#define BL2_BASE (BL31_BASE - PLAT_ARM_MAX_BL2_SIZE) #define BL2_LIMIT BL31_BASE /******************************************************************************* * BL31 specific defines. ******************************************************************************/ /* - * Put BL31 at the top of the Trusted SRAM. BL31_BASE is calculated using the - * current BL31 debug size plus a little space for growth. + * Put BL31 at the top of the Trusted SRAM. */ #define BL31_BASE (ARM_BL_RAM_BASE + \ ARM_BL_RAM_SIZE - \ - 0x1D000) + PLAT_ARM_MAX_BL31_SIZE) #define BL31_PROGBITS_LIMIT BL1_RW_BASE #define BL31_LIMIT (ARM_BL_RAM_BASE + ARM_BL_RAM_SIZE) diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h index 3b6a04ba..8d7e83b5 100644 --- a/include/plat/arm/common/plat_arm.h +++ b/include/plat/arm/common/plat_arm.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2016, 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: @@ -37,11 +37,6 @@ #include <stdint.h> #include <xlat_tables.h> -/* - * Extern declarations common to ARM standard platforms - */ -extern const mmap_region_t plat_arm_mmap[]; - #define ARM_CASSERT_MMAP \ CASSERT((ARRAY_SIZE(plat_arm_mmap) + ARM_BL_REGIONS) \ <= MAX_MMAP_REGIONS, \ @@ -131,9 +126,6 @@ void arm_configure_mmu_el3(unsigned long total_base, #endif /* __ARM_RECOM_STATE_ID_ENC__ */ -/* CCI utility functions */ -void arm_cci_init(void); - /* IO storage utility functions */ void arm_io_setup(void); @@ -194,6 +186,9 @@ void plat_arm_gic_cpuif_disable(void); void plat_arm_gic_pcpu_init(void); void plat_arm_security_setup(void); void plat_arm_pwrc_setup(void); +void plat_arm_interconnect_init(void); +void plat_arm_interconnect_enter_coherency(void); +void plat_arm_interconnect_exit_coherency(void); /* * Optional functions required in ARM standard platforms @@ -204,6 +199,6 @@ int plat_arm_get_alt_image_source( uintptr_t *dev_handle, uintptr_t *image_spec); unsigned int plat_arm_calc_core_pos(u_register_t mpidr); - +const mmap_region_t *plat_arm_get_mmap(void); #endif /* __PLAT_ARM_H__ */ diff --git a/include/plat/arm/css/common/css_def.h b/include/plat/arm/css/common/css_def.h index 7a5d1939..f92126ba 100644 --- a/include/plat/arm/css/common/css_def.h +++ b/include/plat/arm/css/common/css_def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2016, 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: @@ -43,7 +43,6 @@ /* Following covers CSS Peripherals excluding NSROM and NSRAM */ #define CSS_DEVICE_BASE 0x20000000 #define CSS_DEVICE_SIZE 0x0e000000 -#define MHU_BASE 0x2b1f0000 #define NSRAM_BASE 0x2e000000 #define NSRAM_SIZE 0x00008000 @@ -76,31 +75,47 @@ * SCP <=> AP boot configuration * * The SCP/AP boot configuration is a 32-bit word located at a known offset from - * the start of the Trusted SRAM. Part of this configuration is which CPU is the - * primary, according to the shift and mask definitions below. + * the start of the Trusted SRAM. * * Note that the value stored at this address is only valid at boot time, before * the SCP_BL2 image is transferred to SCP. */ -#define SCP_BOOT_CFG_ADDR (ARM_TRUSTED_SRAM_BASE + 0x80) -#define PRIMARY_CPU_SHIFT 8 -#define PRIMARY_CPU_BIT_WIDTH 4 - -/* - * Base address of the first memory region used for communication between AP - * and SCP. Used by the BOM and SCPI protocols. - * - * Note that this is located at the same address as SCP_BOOT_CFG_ADDR, which - * means the SCP/AP configuration data gets overwritten when the AP initiates - * communication with the SCP. - */ -#define SCP_COM_SHARED_MEM_BASE (ARM_TRUSTED_SRAM_BASE + 0x80) +#define SCP_BOOT_CFG_ADDR PLAT_CSS_SCP_COM_SHARED_MEM_BASE #define CSS_MAP_DEVICE MAP_REGION_FLAT( \ CSS_DEVICE_BASE, \ CSS_DEVICE_SIZE, \ MT_DEVICE | MT_RW | MT_SECURE) +/* Platform ID address */ +#define SSC_VERSION_OFFSET 0x040 + +#define SSC_VERSION_CONFIG_SHIFT 28 +#define SSC_VERSION_MAJOR_REV_SHIFT 24 +#define SSC_VERSION_MINOR_REV_SHIFT 20 +#define SSC_VERSION_DESIGNER_ID_SHIFT 12 +#define SSC_VERSION_PART_NUM_SHIFT 0x0 +#define SSC_VERSION_CONFIG_MASK 0xf +#define SSC_VERSION_MAJOR_REV_MASK 0xf +#define SSC_VERSION_MINOR_REV_MASK 0xf +#define SSC_VERSION_DESIGNER_ID_MASK 0xff +#define SSC_VERSION_PART_NUM_MASK 0xfff + +#ifndef __ASSEMBLY__ + +/* SSC_VERSION related accessors */ + +/* Returns the part number of the platform */ +#define GET_SSC_VERSION_PART_NUM(val) \ + (((val) >> SSC_VERSION_PART_NUM_SHIFT) & \ + SSC_VERSION_PART_NUM_MASK) + +/* Returns the configuration number of the platform */ +#define GET_SSC_VERSION_CONFIG(val) \ + (((val) >> SSC_VERSION_CONFIG_SHIFT) & \ + SSC_VERSION_CONFIG_MASK) + +#endif /* __ASSEMBLY__ */ /************************************************************************* * Required platform porting definitions common to all @@ -108,6 +123,13 @@ ************************************************************************/ /* + * The loading of SCP images(SCP_BL2 or SCP_BL2U) is done if there + * respective base addresses are defined (i.e SCP_BL2_BASE, SCP_BL2U_BASE). + * Hence, `CSS_LOAD_SCP_IMAGES` needs to be set to 1 if BL2 needs to load + * an SCP_BL2/SCP_BL2U image. + */ +#if CSS_LOAD_SCP_IMAGES +/* * Load address of SCP_BL2 in CSS platform ports * SCP_BL2 is loaded to the same place as BL31. Once SCP_BL2 is transferred to the * SCP, it is discarded and BL31 is loaded over the top. @@ -115,16 +137,13 @@ #define SCP_BL2_BASE BL31_BASE #define SCP_BL2U_BASE BL31_BASE +#endif /* CSS_LOAD_SCP_IMAGES */ /* Load address of Non-Secure Image for CSS platform ports */ #define PLAT_ARM_NS_IMAGE_OFFSET 0xE0000000 /* TZC related constants */ #define PLAT_ARM_TZC_FILTERS REG_ATTR_FILTER_BIT_ALL -#define PLAT_ARM_TZC_BASE 0x2a4a0000 - -/* System timer related constants */ -#define PLAT_ARM_NSTIMER_FRAME_ID 1 /* Trusted mailbox base address common to all CSS */ #define PLAT_ARM_TRUSTED_MAILBOX_BASE ARM_TRUSTED_SRAM_BASE diff --git a/include/plat/common/common_def.h b/include/plat/common/common_def.h index 744c22eb..916720c5 100644 --- a/include/plat/common/common_def.h +++ b/include/plat/common/common_def.h @@ -70,13 +70,6 @@ #define MAKE_ULL(x) x #endif -/* - * Macros to wrap declarations of deprecated APIs within Trusted Firmware. - * The callers of these APIs will continue to compile with a warning as long - * as the build flag ERROR_DEPRECATED is zero. - */ -#define __warn_deprecated __attribute__ ((deprecated)) - #define BL2_IMAGE_DESC { \ .image_id = BL2_IMAGE_ID, \ .image_info.h.version = VERSION_1, \ diff --git a/include/plat/common/platform.h b/include/plat/common/platform.h index 687c2212..f37a80f3 100644 --- a/include/plat/common/platform.h +++ b/include/plat/common/platform.h @@ -273,7 +273,7 @@ unsigned int plat_get_aff_state(unsigned int, unsigned long); * haven't migrated to the new platform API to compile on platforms which * have the compatibility layer disabled. */ -unsigned int platform_get_core_pos(unsigned long mpidr) __warn_deprecated; +unsigned int platform_get_core_pos(unsigned long mpidr) __deprecated; #endif /* __ENABLE_PLAT_COMPAT__ */ #endif /* __PLATFORM_H__ */ diff --git a/include/stdlib/sys/cdefs.h b/include/stdlib/sys/cdefs.h index 16fb1519..70c09fdb 100644 --- a/include/stdlib/sys/cdefs.h +++ b/include/stdlib/sys/cdefs.h @@ -283,8 +283,10 @@ #if __GNUC_PREREQ__(3, 1) #define __noinline __attribute__ ((__noinline__)) +#define __deprecated __attribute__ ((__deprecated__)) #else #define __noinline +#define __deprecated #endif #if __GNUC_PREREQ__(3, 3) |