u-boot/arch/arm
Aneesh Bansal bdc22074c5 secure_boot: split the secure boot functionality in two parts
There are two phases in Secure Boot
1. ISBC: In BootROM, validate the BootLoader (U-Boot).
2. ESBC: In U-Boot, continuing the Chain of Trust by
         validating and booting LINUX.

For ESBC phase, there is no difference in SoC's based on ARM or
PowerPC cores.

But the exit conditions after ISBC phase i.e. entry conditions for
U-Boot are different for ARM and PowerPC.
PowerPC:

If Secure Boot is executed, a separate U-Boot target is required
which must be compiled with a diffrent Text Base as compared to
Non-Secure Boot. There are some LAW and TLB settings which are
required specifically for Secure Boot scenario.

ARM:
ARM based SoC's have a fixed memory map and exit conditions from
BootROM are same irrespective of boot mode (Secure or Non-Secure).

Thus the current Secure Boot functionlity has been split into
two parts:
CONFIG_CHAIN_OF_TRUST
This will have the following functionality as part of U-Boot:
1. Enable commands like esbc_validate, esbc_halt
2. Change the environment settings based on bootmode, determined
   at run time:
     - If bootmode is non-secure, no change
     - If bootmode is secure, set the following:
         - bootdelay = 0 (Don't give boot prompt)
         - bootcmd = Validate and execute the bootscript.

CONFIG_SECURE_BOOT
This is defined only for creating a different compile time target
for secure boot.

Traditionally, both these functionalities were defined under
CONFIG_SECURE_BOOT. This patch is aimed at removing the requirement
for a separate Secure Boot target for ARM based SoC's.
CONFIG_CHAIN_OF_TRUST will be defined and boot mode will be
determine at run time.

Another Security Requirement for running CHAIN_OF_TRUST is that
U-Boot environemnt must not be picked from flash/external memory.
This cannot be done based on bootmode at run time in current U-Boot
architecture. Once this dependency is resolved, no separate
SECURE_BOOT target will be required for ARM based SoC's.

Currently, the only code under CONFIG_SECURE_BOOT for ARM SoC's is
defining CONFIG_ENV_IS_NOWHERE

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
2016-01-27 08:12:32 -08:00
..
cpu armv8: Enable all 8 DPMAC ports in LS2080A Personality 2016-01-25 08:24:17 -08:00
dts rockchip: Add support for Raxda Rock 2 2016-01-21 20:42:37 -07:00
imx-common imx_common: check for Serial Downloader in spl_boot_device 2016-01-03 15:57:56 +01:00
include secure_boot: split the secure boot functionality in two parts 2016-01-27 08:12:32 -08:00
lib ARM: bootm: Try to use relocated ramdisk 2016-01-21 20:03:59 -07:00
mach-at91 arm: at91/spl: atmel_sfr: move saic redirect to separate file 2015-11-30 22:27:55 +01:00
mach-bcm283x Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
mach-davinci arm: Remove da830evm board 2015-09-28 10:48:23 -04:00
mach-exynos arm: exynos: clean up checkpatch issues 2015-11-02 10:38:22 +09:00
mach-highbank ARM: highbank: move SoC sources to mach-highbank 2015-02-21 08:23:51 -05:00
mach-integrator integrator: switch to DM serial port 2015-08-12 20:47:49 -04:00
mach-keystone ARM: k2g: add SD card and eMMC support 2015-10-22 14:22:25 -04:00
mach-kirkwood arm: mvebu/kirkwood: Use common timer functions 2016-01-14 14:08:59 +01:00
mach-mvebu mvebu: Support Synology DS414 2016-01-14 14:08:59 +01:00
mach-orion5x arm: support Thumb-1 with CONFIG_SYS_THUMB_BUILD 2015-11-10 15:03:48 +01:00
mach-rockchip rockchip: Add support for Raxda Rock 2 2016-01-21 20:42:37 -07:00
mach-s5pc1xx arm: s5pc1xx: move SoC to mach-s5pc1xx 2015-11-30 17:17:01 +09:00
mach-socfpga socfpga: Modify qts-filter args to allow input for bsp generated files and quartus project directories 2016-01-16 07:07:23 +01:00
mach-stm32 stm32: move stm32 specific code to mach-stm32 2016-01-20 10:19:41 -05:00
mach-tegra Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
mach-uniphier ARM: uniphier: remove unneeded if conditionals 2016-01-20 08:40:33 +09:00
mach-versatile arm: Remove versatileab board 2015-09-11 15:01:25 -04:00
mach-zynq ARM: zynq: Add default ps7_init_gpl.c/h for ZYBO 2015-12-18 13:15:57 +01:00
thumb1/include/asm/proc-armv arm: support Thumb-1 with CONFIG_SYS_THUMB_BUILD 2015-11-10 15:03:48 +01:00
config.mk arm: Include the .got section in the binary 2015-05-14 18:49:34 -06:00
Kconfig stm32: move stm32 specific code to mach-stm32 2016-01-20 10:19:41 -05:00
Kconfig.debug arm: debug: add Kconfig entries for lowlevel debug 2014-10-26 22:23:12 +01:00
Makefile stm32: move stm32 specific code to mach-stm32 2016-01-20 10:19:41 -05:00