diff options
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | bl1/bl1_context_mgmt.c | 4 | ||||
-rw-r--r-- | bl1/bl1_fwu.c | 42 | ||||
-rw-r--r-- | bl1/tbbr/tbbr_img_desc.c | 30 | ||||
-rw-r--r-- | docs/diagrams/default_reset_code.png | bin | 60028 -> 41796 bytes | |||
-rw-r--r-- | docs/diagrams/reset_code_flow.dia | bin | 4318 -> 4399 bytes | |||
-rw-r--r-- | docs/diagrams/reset_code_no_boot_type_check.png | bin | 59028 -> 42942 bytes | |||
-rw-r--r-- | docs/diagrams/reset_code_no_checks.png | bin | 51209 -> 39753 bytes | |||
-rw-r--r-- | docs/diagrams/reset_code_no_cpu_check.png | bin | 52471 -> 38566 bytes | |||
-rw-r--r-- | docs/porting-guide.md | 3 | ||||
-rw-r--r-- | drivers/arm/pl011/pl011_console.S | 9 | ||||
-rw-r--r-- | include/common/bl_common.h | 42 | ||||
-rw-r--r-- | include/common/el3_common_macros.S | 21 | ||||
-rw-r--r-- | include/plat/arm/board/common/board_arm_def.h | 3 | ||||
-rw-r--r-- | include/plat/arm/common/arm_def.h | 2 | ||||
-rw-r--r-- | include/plat/common/common_def.h | 11 | ||||
-rw-r--r-- | lib/stdlib/std.c | 45 | ||||
-rw-r--r-- | plat/arm/common/arm_bl1_fwu.c | 11 | ||||
-rw-r--r-- | plat/arm/common/arm_common.mk | 4 |
19 files changed, 107 insertions, 134 deletions
@@ -197,7 +197,19 @@ BL_COMMON_SOURCES += common/bl_common.c \ lib/aarch64/cache_helpers.S \ lib/aarch64/misc_helpers.S \ lib/aarch64/xlat_helpers.c \ - lib/stdlib/std.c \ + lib/stdlib/abort.c \ + lib/stdlib/assert.c \ + lib/stdlib/exit.c \ + lib/stdlib/mem.c \ + lib/stdlib/printf.c \ + lib/stdlib/putchar.c \ + lib/stdlib/puts.c \ + lib/stdlib/sscanf.c \ + lib/stdlib/strchr.c \ + lib/stdlib/strcmp.c \ + lib/stdlib/strlen.c \ + lib/stdlib/strncmp.c \ + lib/stdlib/subr_prf.c \ plat/common/aarch64/platform_helpers.S INCLUDES += -Iinclude/bl1 \ diff --git a/bl1/bl1_context_mgmt.c b/bl1/bl1_context_mgmt.c index 6355190e..bd40608b 100644 --- a/bl1/bl1_context_mgmt.c +++ b/bl1/bl1_context_mgmt.c @@ -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: @@ -74,7 +74,7 @@ void bl1_prepare_next_image(unsigned int image_id) next_bl_ep = &image_desc->ep_info; /* Get the image security state. */ - security_state = GET_SEC_STATE(next_bl_ep->h.attr); + security_state = GET_SECURITY_STATE(next_bl_ep->h.attr); /* Setup the Secure/Non-Secure context if not done already. */ if (!cm_get_context(security_state)) diff --git a/bl1/bl1_fwu.c b/bl1/bl1_fwu.c index 80ce831a..f3338051 100644 --- a/bl1/bl1_fwu.c +++ b/bl1/bl1_fwu.c @@ -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: @@ -135,8 +135,8 @@ static int bl1_fwu_image_copy(unsigned int image_id, } /* Only Normal world is allowed to copy a Secure image. */ - if ((GET_SEC_STATE(flags) == SECURE) || - (GET_SEC_STATE(image_desc->ep_info.h.attr) == NON_SECURE)) { + if ((GET_SECURITY_STATE(flags) == SECURE) || + (GET_SECURITY_STATE(image_desc->ep_info.h.attr) == NON_SECURE)) { WARN("BL1-FWU: Copy not allowed for Non-Secure " "image from Secure-world\n"); return -EPERM; @@ -156,10 +156,10 @@ static int bl1_fwu_image_copy(unsigned int image_id, * If last block is more than expected then * clip the block to the required image size. */ - if (image_desc->image_info.copied_size + block_size > + if (image_desc->copied_size + block_size > image_desc->image_info.image_size) { block_size = image_desc->image_info.image_size - - image_desc->image_info.copied_size; + image_desc->copied_size; WARN("BL1-FWU: Copy argument block_size > remaining image size." " Clipping block_size\n"); } @@ -173,13 +173,13 @@ static int bl1_fwu_image_copy(unsigned int image_id, INFO("BL1-FWU: Continuing image copy in blocks\n"); /* Copy image for given block size. */ - base_addr += image_desc->image_info.copied_size; - image_desc->image_info.copied_size += block_size; + base_addr += image_desc->copied_size; + image_desc->copied_size += block_size; memcpy((void *)base_addr, (const void *)image_src, block_size); flush_dcache_range(base_addr, block_size); /* Update the state if last block. */ - if (image_desc->image_info.copied_size == + if (image_desc->copied_size == image_desc->image_info.image_size) { image_desc->state = IMAGE_STATE_COPIED; INFO("BL1-FWU: Image copy in blocks completed\n"); @@ -234,7 +234,7 @@ static int bl1_fwu_image_copy(unsigned int image_id, INFO("BL1-FWU: Started image copy in blocks\n"); } - image_desc->image_info.copied_size = block_size; + image_desc->copied_size = block_size; } return 0; @@ -257,14 +257,14 @@ static int bl1_fwu_image_auth(unsigned int image_id, if (!image_desc) return -EPERM; - if (GET_SEC_STATE(flags) == SECURE) { + if (GET_SECURITY_STATE(flags) == SECURE) { if (image_desc->state != IMAGE_STATE_RESET) { WARN("BL1-FWU: Authentication from secure world " "while in invalid state\n"); return -EPERM; } } else { - if (GET_SEC_STATE(image_desc->ep_info.h.attr) == SECURE) { + if (GET_SECURITY_STATE(image_desc->ep_info.h.attr) == SECURE) { if (image_desc->state != IMAGE_STATE_COPIED) { WARN("BL1-FWU: Authentication of secure image " "from non-secure world while not in copied state\n"); @@ -369,10 +369,10 @@ static int bl1_fwu_image_execute(unsigned int image_id, * Image is NOT in AUTHENTICATED state. */ if ((!image_desc) || - (GET_SEC_STATE(flags) == SECURE) || - (GET_SEC_STATE(image_desc->ep_info.h.attr) == NON_SECURE) || - (GET_EXEC_STATE(image_desc->image_info.h.attr) == NON_EXECUTABLE) || - (image_desc->state != IMAGE_STATE_AUTHENTICATED)) { + (GET_SECURITY_STATE(flags) == SECURE) || + (GET_SECURITY_STATE(image_desc->ep_info.h.attr) == NON_SECURE) || + (EP_GET_EXE(image_desc->ep_info.h.attr) == NON_EXECUTABLE) || + (image_desc->state != IMAGE_STATE_AUTHENTICATED)) { WARN("BL1-FWU: Execution not allowed due to invalid state/args\n"); return -EPERM; } @@ -402,7 +402,7 @@ static register_t bl1_fwu_image_resume(register_t image_param, { image_desc_t *image_desc; unsigned int resume_sec_state; - unsigned int caller_sec_state = GET_SEC_STATE(flags); + unsigned int caller_sec_state = GET_SECURITY_STATE(flags); /* Get the image descriptor for last executed secure image id. */ image_desc = bl1_plat_get_image_desc(sec_exec_image_id); @@ -417,8 +417,8 @@ static register_t bl1_fwu_image_resume(register_t image_param, assert(image_desc); } - assert(GET_SEC_STATE(image_desc->ep_info.h.attr) == SECURE); - assert(GET_EXEC_STATE(image_desc->image_info.h.attr) == EXECUTABLE); + assert(GET_SECURITY_STATE(image_desc->ep_info.h.attr) == SECURE); + assert(EP_GET_EXE(image_desc->ep_info.h.attr) == EXECUTABLE); if (caller_sec_state == SECURE) { assert(image_desc->state == IMAGE_STATE_EXECUTED); @@ -458,7 +458,7 @@ static int bl1_fwu_sec_image_done(void **handle, unsigned int flags) image_desc_t *image_desc; /* Make sure caller is from the secure world */ - if (GET_SEC_STATE(flags) == NON_SECURE) { + if (GET_SECURITY_STATE(flags) == NON_SECURE) { WARN("BL1-FWU: Image done not allowed from normal world\n"); return -EPERM; } @@ -468,8 +468,8 @@ static int bl1_fwu_sec_image_done(void **handle, unsigned int flags) /* image_desc must correspond to a valid secure executing image */ assert(image_desc); - assert(GET_SEC_STATE(image_desc->ep_info.h.attr) == SECURE); - assert(GET_EXEC_STATE(image_desc->image_info.h.attr) == EXECUTABLE); + assert(GET_SECURITY_STATE(image_desc->ep_info.h.attr) == SECURE); + assert(EP_GET_EXE(image_desc->ep_info.h.attr) == EXECUTABLE); assert(image_desc->state == IMAGE_STATE_EXECUTED); /* Update the flags. */ diff --git a/bl1/tbbr/tbbr_img_desc.c b/bl1/tbbr/tbbr_img_desc.c index 42de8517..7651f1c0 100644 --- a/bl1/tbbr/tbbr_img_desc.c +++ b/bl1/tbbr/tbbr_img_desc.c @@ -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: @@ -35,42 +35,46 @@ image_desc_t bl1_tbbr_image_descs[] = { { .image_id = FWU_CERT_ID, - .image_info.h.attr = SET_EXEC_STATE(NON_EXECUTABLE), + SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY, + VERSION_1, image_info_t, 0), .image_info.image_base = BL2_BASE, - .ep_info.h.attr = SET_SEC_STATE(SECURE), + SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY, + VERSION_1, entry_point_info_t, SECURE), }, #if NS_BL1U_BASE { .image_id = NS_BL1U_IMAGE_ID, - .image_info.h.attr = SET_EXEC_STATE(EXECUTABLE), - .image_info.image_base = NS_BL1U_BASE, - .ep_info.h.attr = SET_SEC_STATE(NON_SECURE), + SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, + VERSION_1, entry_point_info_t, NON_SECURE | EXECUTABLE), .ep_info.pc = NS_BL1U_BASE, }, #endif #if SCP_BL2U_BASE { .image_id = SCP_BL2U_IMAGE_ID, - .image_info.h.attr = SET_EXEC_STATE(NON_EXECUTABLE), + SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY, + VERSION_1, image_info_t, 0), .image_info.image_base = SCP_BL2U_BASE, - .ep_info.h.attr = SET_SEC_STATE(SECURE), + SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY, + VERSION_1, entry_point_info_t, SECURE), }, #endif #if BL2U_BASE { .image_id = BL2U_IMAGE_ID, - .image_info.h.attr = SET_EXEC_STATE(EXECUTABLE), + SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, + VERSION_1, image_info_t, 0), .image_info.image_base = BL2U_BASE, - .ep_info.h.attr = SET_SEC_STATE(SECURE), + SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, + VERSION_1, entry_point_info_t, SECURE | EXECUTABLE), .ep_info.pc = BL2U_BASE, }, #endif #if NS_BL2U_BASE { .image_id = NS_BL2U_IMAGE_ID, - .image_info.h.attr = SET_EXEC_STATE(NON_EXECUTABLE), - .image_info.image_base = NS_BL2U_BASE, - .ep_info.h.attr = SET_SEC_STATE(NON_SECURE), + SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, + VERSION_1, entry_point_info_t, NON_SECURE), }, #endif BL2_IMAGE_DESC, diff --git a/docs/diagrams/default_reset_code.png b/docs/diagrams/default_reset_code.png Binary files differindex e7e0d855..d8675e4a 100644 --- a/docs/diagrams/default_reset_code.png +++ b/docs/diagrams/default_reset_code.png diff --git a/docs/diagrams/reset_code_flow.dia b/docs/diagrams/reset_code_flow.dia Binary files differindex 5de00dad..133c9cf6 100644 --- a/docs/diagrams/reset_code_flow.dia +++ b/docs/diagrams/reset_code_flow.dia diff --git a/docs/diagrams/reset_code_no_boot_type_check.png b/docs/diagrams/reset_code_no_boot_type_check.png Binary files differindex 8ce7e97a..23e865f6 100644 --- a/docs/diagrams/reset_code_no_boot_type_check.png +++ b/docs/diagrams/reset_code_no_boot_type_check.png diff --git a/docs/diagrams/reset_code_no_checks.png b/docs/diagrams/reset_code_no_checks.png Binary files differindex 8a02f0f8..26a179bc 100644 --- a/docs/diagrams/reset_code_no_checks.png +++ b/docs/diagrams/reset_code_no_checks.png diff --git a/docs/diagrams/reset_code_no_cpu_check.png b/docs/diagrams/reset_code_no_cpu_check.png Binary files differindex 8b05ea4d..4150dbef 100644 --- a/docs/diagrams/reset_code_no_cpu_check.png +++ b/docs/diagrams/reset_code_no_cpu_check.png diff --git a/docs/porting-guide.md b/docs/porting-guide.md index 004f70d6..741ee207 100644 --- a/docs/porting-guide.md +++ b/docs/porting-guide.md @@ -654,7 +654,8 @@ CPU-specific linear index into blocks of memory (for example while allocating per-CPU stacks). This function will be invoked very early in the initialization sequence which mandates that this function should be implemented in assembly and should not rely on the avalability of a C -runtime environment. +runtime environment. This function can clobber x0 - x8 and must preserve +x9 - x29. This function plays a crucial role in the power domain topology framework in PSCI and details of this can be found in [Power Domain Topology Design]. diff --git a/drivers/arm/pl011/pl011_console.S b/drivers/arm/pl011/pl011_console.S index f29f895b..5e97e911 100644 --- a/drivers/arm/pl011/pl011_console.S +++ b/drivers/arm/pl011/pl011_console.S @@ -69,15 +69,6 @@ func console_core_init mov w4, #PL011_UARTCR_UARTEN bic w3, w3, w4 str w3, [x0, #UARTCR] - /* Flush the transmit FIFO */ - ldr w3, [x0, #UARTLCR_H] - mov w4, #PL011_UARTLCR_H_FEN - bic w3, w3, w4 - str w3, [x0, #UARTLCR_H] - /* Wait for the end of Tx of current character */ -busy_loop: - ldr w3, [x0, #UARTFR] - tbnz w3, #PL011_UARTFR_BUSY_BIT, busy_loop /* Program the baudrate */ /* Divisor = (Uart clock * 4) / baudrate */ lsl w1, w1, #2 diff --git a/include/common/bl_common.h b/include/common/bl_common.h index e5e6717b..f13dc316 100644 --- a/include/common/bl_common.h +++ b/include/common/bl_common.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-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: @@ -53,28 +53,12 @@ #define ENTRY_POINT_INFO_ARGS_OFFSET 0x18 /* The following are used to set/get image attributes. */ -#define EXECUTABLE (0x1) -#define NON_EXECUTABLE (0x0) -#define PARAM_EP_EXECUTE_MASK (0x1) -#define PARAM_EP_EXECUTE_SHIFT (0x1) #define PARAM_EP_SECURITY_MASK (0x1) -#define PARAM_EP_SECURITY_SHIFT (0x0) #define GET_SECURITY_STATE(x) (x & PARAM_EP_SECURITY_MASK) #define SET_SECURITY_STATE(x, security) \ ((x) = ((x) & ~PARAM_EP_SECURITY_MASK) | (security)) -#define GET_EXEC_STATE(x) \ - (((x) >> PARAM_EP_EXECUTE_SHIFT) & PARAM_EP_EXECUTE_MASK) - -#define SET_EXEC_STATE(x) \ - (((x) & PARAM_EP_EXECUTE_MASK) << PARAM_EP_EXECUTE_SHIFT) - -#define GET_SEC_STATE(x) \ - (((x) >> PARAM_EP_SECURITY_SHIFT) & PARAM_EP_SECURITY_MASK) - -#define SET_SEC_STATE(x) \ - (((x) & PARAM_EP_SECURITY_MASK) << PARAM_EP_SECURITY_SHIFT) /* * The following are used for image state attributes. @@ -99,11 +83,17 @@ #define EP_GET_ST(x) (x & EP_ST_MASK) #define EP_SET_ST(x, ee) ((x) = ((x) & ~EP_ST_MASK) | (ee)) -#define PARAM_EP 0x01 -#define PARAM_IMAGE_BINARY 0x02 -#define PARAM_BL31 0x03 +#define EP_EXE_MASK 0x8 +#define NON_EXECUTABLE 0x0 +#define EXECUTABLE 0x8 +#define EP_GET_EXE(x) (x & EP_EXE_MASK) +#define EP_SET_EXE(x, ee) ((x) = ((x) & ~EP_EXE_MASK) | (ee)) + +#define PARAM_EP 0x01 +#define PARAM_IMAGE_BINARY 0x02 +#define PARAM_BL31 0x03 -#define VERSION_1 0x01 +#define VERSION_1 0x01 #define INVALID_IMAGE_ID (0xFFFFFFFF) @@ -114,6 +104,14 @@ (_p)->h.attr = (uint32_t)(_attr) ; \ } while (0) +/* Following is used for populating structure members statically. */ +#define SET_STATIC_PARAM_HEAD(_p, _type, _ver, _p_type, _attr) \ + ._p.h.type = (uint8_t)(_type), \ + ._p.h.version = (uint8_t)(_ver), \ + ._p.h.size = (uint16_t)sizeof(_p_type), \ + ._p.h.attr = (uint32_t)(_attr) + + /******************************************************************************* * Constants to indicate type of exception to the common exception handler. ******************************************************************************/ @@ -224,7 +222,6 @@ typedef struct image_info { param_header_t h; uintptr_t image_base; /* physical address of base of image */ uint32_t image_size; /* bytes read from image file */ - uint32_t copied_size; /* image size copied in blocks */ } image_info_t; /***************************************************************************** @@ -238,6 +235,7 @@ typedef struct image_desc { * Refer IMAGE_STATE_XXX defined above. */ unsigned int state; + uint32_t copied_size; /* image size copied in blocks */ image_info_t image_info; entry_point_info_t ep_info; } image_desc_t; diff --git a/include/common/el3_common_macros.S b/include/common/el3_common_macros.S index 6f7136f9..32df7d76 100644 --- a/include/common/el3_common_macros.S +++ b/include/common/el3_common_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: @@ -171,9 +171,19 @@ do_cold_boot: .endif /* _warm_boot_mailbox */ + /* --------------------------------------------------------------------- + * It is a cold boot. + * Perform any processor specific actions upon reset e.g. cache, TLB + * invalidations etc. + * --------------------------------------------------------------------- + */ + bl reset_handler + + el3_arch_init_common \_exception_vectors + .if \_secondary_cold_boot /* ------------------------------------------------------------- - * It is a cold boot. + * Check if this is a primary or secondary CPU cold boot. * The primary CPU will set up the platform while the * secondaries are placed in a platform-specific state until the * primary CPU performs the necessary actions to bring them out @@ -193,13 +203,10 @@ .endif /* _secondary_cold_boot */ /* --------------------------------------------------------------------- - * Perform any processor specific actions upon reset e.g. cache, TLB - * invalidations etc. + * Initialize memory now. Secondary CPU initialization won't get to this + * point. * --------------------------------------------------------------------- */ - bl reset_handler - - el3_arch_init_common \_exception_vectors .if \_init_memory bl platform_mem_init diff --git a/include/plat/arm/board/common/board_arm_def.h b/include/plat/arm/board/common/board_arm_def.h index aaf419e2..b065537d 100644 --- a/include/plat/arm/board/common/board_arm_def.h +++ b/include/plat/arm/board/common/board_arm_def.h @@ -91,5 +91,8 @@ #define PLAT_ARM_FIP_BASE V2M_FLASH0_BASE #define PLAT_ARM_FIP_MAX_SIZE V2M_FLASH0_SIZE +#define PLAT_ARM_NVM_BASE V2M_FLASH0_BASE +#define PLAT_ARM_NVM_SIZE V2M_FLASH0_SIZE + #endif /* __BOARD_ARM_DEF_H__ */ diff --git a/include/plat/arm/common/arm_def.h b/include/plat/arm/common/arm_def.h index dab75450..d04f9d6f 100644 --- a/include/plat/arm/common/arm_def.h +++ b/include/plat/arm/common/arm_def.h @@ -294,7 +294,7 @@ #define BL2U_BASE BL2_BASE #define BL2U_LIMIT BL31_BASE #define NS_BL2U_BASE ARM_NS_DRAM1_BASE -#define NS_BL1U_BASE (V2M_FLASH0_BASE + 0x03EB8000) +#define NS_BL1U_BASE (PLAT_ARM_NVM_BASE + 0x03EB8000) /* * ID of the secure physical generic timer interrupt used by the TSP. diff --git a/include/plat/common/common_def.h b/include/plat/common/common_def.h index 916720c5..9fac9fa2 100644 --- a/include/plat/common/common_def.h +++ b/include/plat/common/common_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: @@ -72,11 +72,12 @@ #define BL2_IMAGE_DESC { \ .image_id = BL2_IMAGE_ID, \ - .image_info.h.version = VERSION_1, \ - .image_info.h.attr = SET_EXEC_STATE(EXECUTABLE),\ + SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, \ + VERSION_1, image_info_t, 0), \ .image_info.image_base = BL2_BASE, \ - .ep_info.h.attr = SET_SEC_STATE(SECURE), \ - .ep_info.pc = BL2_BASE \ + SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, \ + VERSION_1, entry_point_info_t, SECURE | EXECUTABLE),\ + .ep_info.pc = BL2_BASE, \ } #endif /* __COMMON_DEF_H__ */ diff --git a/lib/stdlib/std.c b/lib/stdlib/std.c deleted file mode 100644 index 5f6ef752..00000000 --- a/lib/stdlib/std.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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. - */ - - -/* Include the various implemented functions */ -#include "abort.c" -#include "assert.c" -#include "exit.c" -#include "mem.c" -#include "printf.c" -#include "putchar.c" -#include "puts.c" -#include "sscanf.c" -#include "strchr.c" -#include "strcmp.c" -#include "strlen.c" -#include "strncmp.c" -#include "subr_prf.c" diff --git a/plat/arm/common/arm_bl1_fwu.c b/plat/arm/common/arm_bl1_fwu.c index 9a0d93ad..2a18d341 100644 --- a/plat/arm/common/arm_bl1_fwu.c +++ b/plat/arm/common/arm_bl1_fwu.c @@ -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: @@ -33,11 +33,12 @@ #include <debug.h> #include <errno.h> #include <plat_arm.h> +#include <platform_def.h> #include <tbbr_img_desc.h> /* Struct to keep track of usable memory */ -typedef struct bl1_mem_info{ +typedef struct bl1_mem_info { uintptr_t mem_base; unsigned int mem_size; } bl1_mem_info_t; @@ -58,8 +59,8 @@ bl1_mem_info_t fwu_addr_map_non_secure[] = { .mem_size = ARM_NS_DRAM1_SIZE }, { - .mem_base = V2M_FLASH0_BASE, - .mem_size = V2M_FLASH0_SIZE + .mem_base = PLAT_ARM_NVM_BASE, + .mem_size = PLAT_ARM_NVM_SIZE }, { .mem_size = 0 @@ -79,7 +80,7 @@ int bl1_plat_mem_check(uintptr_t mem_base, /* * Check the given image source and size. */ - if (GET_SEC_STATE(flags) == SECURE) + if (GET_SECURITY_STATE(flags) == SECURE) mmap = fwu_addr_map_secure; else mmap = fwu_addr_map_non_secure; diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk index 2647f043..425e0d36 100644 --- a/plat/arm/common/arm_common.mk +++ b/plat/arm/common/arm_common.mk @@ -129,8 +129,8 @@ ifneq (${TRUSTED_BOARD_BOOT},0) PLAT_INCLUDES += -Iinclude/bl1/tbbr - BL1_SOURCES += ${AUTH_SOURCES} \ - bl1/tbbr/tbbr_img_desc.c \ + BL1_SOURCES += ${AUTH_SOURCES} \ + bl1/tbbr/tbbr_img_desc.c \ plat/arm/common/arm_bl1_fwu.c BL2_SOURCES += ${AUTH_SOURCES} |