diff options
author | Juan Castillo <juan.castillo@arm.com> | 2015-01-13 12:21:04 +0000 |
---|---|---|
committer | Dan Handley <dan.handley@arm.com> | 2015-01-28 18:27:54 +0000 |
commit | db6071c99b100e7393a769277d5b5dfdf43aaf9b (patch) | |
tree | bfdaaf14df0453d2c363beaae90639d37e4e4d92 /plat/juno | |
parent | e509d05728ac0a625e67d62197ad8bef73db6d88 (diff) |
TBB: add PolarSSL based authentication module
This patch implements an authentication module based on the
PolarSSL library (v1.3.9) to verify the Chain of Trust when
Trusted Boot is enabled.
PolarSSL sources must be fetched separately. The POLARSSL_DIR
build option may be used to indicate the path to the PolarSSL
main directory (this directory must contain the 'include' and
'library' subdirectories).
To be able to build PolarSSL sources as a part of the Trusted
Firmware build process, the DISABLE_PEDANTIC flag in polarssl.mk
will tell the build system to remove the -pedantic option from
the CFLAGS.
Inclusion of PolarSSL increases the memory requirements of the BL1
and BL2 images. The following are the changes made to the FVP and
Juno platforms to cater for this when TRUSTED_BOARD_BOOT is
defined:
Changes on FVP:
- BL1 and BL2 stacks have been increased to 4 KB
- BL1(rw) section has been increased to 32 KB.
- BL2 memory region has been increased to 112 KB
Changes on Juno:
- BL1 and BL2 stacks have been increased to 4 KB
- BL1(rw) section has been increased to 32 KB.
- Trusted ROM region in Flash has been increased to 128 KB.
- BL2 memory region has been increased to 116 KB
Change-Id: Ie87d80d43408eb6239c4acd0ec5ab2120e4e9e80
Diffstat (limited to 'plat/juno')
-rw-r--r-- | plat/juno/include/platform_def.h | 14 | ||||
-rw-r--r-- | plat/juno/juno_def.h | 6 |
2 files changed, 19 insertions, 1 deletions
diff --git a/plat/juno/include/platform_def.h b/plat/juno/include/platform_def.h index cd077021..c64b6829 100644 --- a/plat/juno/include/platform_def.h +++ b/plat/juno/include/platform_def.h @@ -45,7 +45,11 @@ ******************************************************************************/ /* Size of cacheable stacks */ -#define PLATFORM_STACK_SIZE 0x800 +#if TRUSTED_BOARD_BOOT && (IMAGE_BL1 || IMAGE_BL2) +#define PLATFORM_STACK_SIZE 0x1000 +#else +#define PLATFORM_STACK_SIZE 0x800 +#endif #define FIRMWARE_WELCOME_STR "Booting Trusted Firmware\n" @@ -87,7 +91,11 @@ * 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. */ +#if TRUSTED_BOARD_BOOT +#define BL1_RW_BASE (TZRAM_BASE + TZRAM_SIZE - 0x8000) +#else #define BL1_RW_BASE (TZRAM_BASE + TZRAM_SIZE - 0x6000) +#endif #define BL1_RW_LIMIT (TZRAM_BASE + TZRAM_SIZE) /******************************************************************************* @@ -97,7 +105,11 @@ * Put BL2 just below BL3-1. BL2_BASE is calculated using the current BL2 debug * size plus a little space for growth. */ +#if TRUSTED_BOARD_BOOT +#define BL2_BASE (BL31_BASE - 0x1D000) +#else #define BL2_BASE (BL31_BASE - 0xC000) +#endif #define BL2_LIMIT BL31_BASE /******************************************************************************* diff --git a/plat/juno/juno_def.h b/plat/juno/juno_def.h index 8e1a83df..8a85aecd 100644 --- a/plat/juno/juno_def.h +++ b/plat/juno/juno_def.h @@ -47,7 +47,13 @@ /* Use the bypass address */ #define TZROM_BASE FLASH_BASE + BL1_ROM_BYPASS_OFFSET #endif +/* Actual ROM size on Juno is 64 KB, but TBB requires at least 80 KB in debug + * mode. We can test TBB on Juno bypassing the ROM and using 128 KB of flash */ +#if TRUSTED_BOARD_BOOT +#define TZROM_SIZE 0x00020000 +#else #define TZROM_SIZE 0x00010000 +#endif #define TZRAM_BASE 0x04001000 #define TZRAM_SIZE 0x0003F000 |