u-boot/arch/arm/include/asm
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
..
arch-am33xx ARM: am43xx: Enable QUAD read and EDMA support for ti_qspi 2015-11-17 23:43:29 +05:30
arch-armada100 ARM: remove CONFIG_ARM926EJS defines 2014-11-20 11:28:25 -05:00
arch-armv7 ARMv7: Factor out reusable timer_wait from sunxi/psci_sun7i.S 2015-07-20 11:44:38 -07:00
arch-bcm281xx usb: gadget: bcm_udc_otg files 2015-07-22 08:57:54 +02:00
arch-bcmcygnus arm: bcmcygnus: Enable Ethernet support 2015-08-12 20:47:28 -04:00
arch-bcmnsp arm: add Cygnus and NSP boards 2014-08-30 07:46:40 -04:00
arch-ep93xx arm: ep9315: Return back Cirrus Logic EDB9315A board support 2014-07-04 23:45:48 +02:00
arch-fsl-layerscape armv8: ls2040a: Add support of LS2040A SoC 2016-01-25 08:24:17 -08:00
arch-hi6220 driver: gpio: hikey: Fix pointer conversion warnings for hikey 2015-11-12 15:58:59 -05:00
arch-imx imx: cpu: move common chip revision id's 2015-10-30 15:20:56 +01:00
arch-lpc32xx arm: lpc32xx: switch SPL builds to driver model 2016-01-13 21:05:22 -05:00
arch-ls102xa driver/ddr/fsl: Add workaround for A009663 2016-01-25 08:24:15 -08:00
arch-mvebu arm: marvell: Move arch-kirkwood/spi.h to arch-mvebu/spi.h 2014-10-23 09:59:20 -04:00
arch-mx5 imx: cpu: move common chip revision id's 2015-10-30 15:20:56 +01:00
arch-mx6 imx: mx6: fix reg base address when runtime usage 2015-12-07 15:03:08 +01:00
arch-mx7 imx: lcdif: use one register structure for i.MXes 2015-11-12 17:38:09 +01:00
arch-mx25 imx: cpu: move common chip revision id's 2015-10-30 15:20:56 +01:00
arch-mx27 i2c, mxc: rework i2c base address names for different SoCs 2015-05-26 14:17:00 +02:00
arch-mx31 imx-common: consolidate macros and prototypes into sys_proto.h 2015-09-02 15:29:14 +02:00
arch-mx35 imx-common: consolidate macros and prototypes into sys_proto.h 2015-09-02 15:29:14 +02:00
arch-mxs ARM: mxs: allow boards to select DC-DC switching clock source 2016-01-03 15:56:36 +01:00
arch-omap3 omap-common: Common function to display die id, replacing omap3-specific version 2015-10-22 14:18:30 -04:00
arch-omap4 Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
arch-omap5 bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
arch-orion5x edminiv2: switch to SPL 2015-02-25 07:59:50 +01:00
arch-pxa arm: pxa: use common timer functions 2015-08-24 20:30:37 +02:00
arch-rmobile Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
arch-rockchip rockchip: spl: Support full-speed CPU in SPL 2016-01-21 20:42:37 -07:00
arch-s3c24x0 mtd: nand: s3c: Unify the register definition and naming 2014-11-26 23:21:43 -06:00
arch-sa1100 Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
arch-spear arm: spear: Add command to switch between 1-bit HW ECC and SW BCH4 2015-09-11 17:15:14 -04:00
arch-stm32f1 Change e-mail address of Kamil Lulko 2015-12-05 18:22:32 -05:00
arch-stm32f4 stm32: Convert serial driver to DM 2015-12-12 15:56:08 -05:00
arch-stv0991 stv0991: configure clock & pad muxing for qspi 2015-07-03 13:50:53 +05:30
arch-sunxi sunxi: Add support for the I2C controller which is part of the PRCM 2016-01-21 07:30:01 +01:00
arch-tegra Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
arch-tegra20 ARM: tegra: Implement clk_m 2015-09-16 16:10:22 -07:00
arch-tegra30 Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
arch-tegra114 Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
arch-tegra124 Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
arch-tegra210 ARM: tegra: Implement clk_m 2015-09-16 16:10:22 -07:00
arch-vf610 vf610: refactor DDRMC code 2015-10-02 10:42:31 +02:00
arch-zynqmp zynq: sdhci: Move driver to DM 2015-12-07 10:14:29 +01:00
armv8 armv8: New MMU setup code allowing to use 48+ bits PA/VA 2016-01-19 22:25:36 +00:00
imx-common iomux-v3: Take MX6D in consideration for imx_iomux_v3_setup_pad() 2015-11-25 09:41:29 +01:00
iproc-common arm: add Cygnus and NSP boards 2014-08-30 07:46:40 -04:00
kona-common bcm281xx: add support for "USB OTG clock" 2014-12-29 16:31:23 -05:00
proc-armv ARM: add missing HYP mode constant 2014-07-28 17:06:35 +02:00
ti-common driver: net: keystone_net: add support for rgmii phy 2015-10-22 14:22:23 -04:00
armv7.h virt-dt: Allow reservation of secure region when in a RAM carveout 2015-05-13 09:24:14 -07:00
armv7m.h Change e-mail address of Kamil Lulko 2015-12-05 18:22:32 -05:00
assembler.h arm: build arch memset/memcpy in Thumb2 mode 2015-01-09 10:20:22 -05:00
atomic.h arm, ubifs: fix gcc5.x compiler warning 2016-01-20 10:03:58 -05:00
bitops.h arm, ubifs: fix gcc5.x compiler warning 2016-01-20 10:03:58 -05:00
bootm.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
byteorder.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
cache.h arm: support Thumb-1 with CONFIG_SYS_THUMB_BUILD 2015-11-10 15:03:48 +01:00
config.h armv8/fsl_lsch3: Change arch to fsl-layerscape 2015-10-29 10:34:00 -07:00
davinci_rtc.h am33xx, davinci: Create and use <asm/davinci_rtc.h> 2013-11-01 15:30:22 -04:00
dma-mapping.h arm: asm: dma-mapping: added dma_free_coherent API 2015-04-14 05:48:09 +02:00
ehci-omap.h Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
emif.h am33xx: Re-enable SW levelling for DDR2 2015-06-15 10:57:26 -04:00
errno.h Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
fsl_secure_boot.h secure_boot: split the secure boot functionality in two parts 2016-01-27 08:12:32 -08:00
gic.h arm64 patch: gicv3 support 2014-04-08 00:15:12 +02:00
global_data.h armv8: New MMU setup code allowing to use 48+ bits PA/VA 2016-01-19 22:25:36 +00:00
gpio.h gpio: Replace ARM gpio.h with the common API in include/asm-generic 2012-01-09 20:10:32 -06:00
hardware.h Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
io.h Data types defined for 64 bit physical address 2015-10-29 10:33:57 -07:00
linkage.h arm: adapt asm/linkage.h from Linux 2012-05-15 08:31:26 +02:00
mach-types.h arm: Remove snowball and u8500_href boards 2015-09-11 14:08:06 -04:00
macro.h Armv8: Initializing CNTVOFF_EL2 2015-04-16 11:27:15 +02:00
memory.h include: delete include/linux/config.h 2013-11-08 15:25:13 -05:00
omap_common.h omap-common: Common get_board_serial function to pass serial through ATAG 2015-10-22 14:18:31 -04:00
omap_gpio.h gpio: omap: Drop 'method' parameter 2015-08-12 20:48:06 -04:00
omap_mmc.h omap_hsmmc: update struct hsmmc to accomodate base address from DT 2015-10-22 14:22:28 -04:00
omap_musb.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
pl310.h arm: socfpga: enable data/inst prefetch and shared override in the L2 2015-10-17 01:47:31 +02:00
posix_types.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
processor.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
psci.h ARM: Add board-specific initialization hook for PSCI 2015-05-13 09:24:15 -07:00
ptrace.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
sections.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
secure.h ARM: HYP/non-sec: allow relocation to secure RAM 2014-07-28 17:19:09 +02:00
setup.h arm bootm: Allow to pass board specified atags 2012-10-30 15:28:05 -07:00
spl.h spl: change return values of spl_*_load_image() 2015-11-18 14:50:02 -05:00
string.h arm: Use optimized memcpy and memset from linux 2011-04-27 19:38:07 +02:00
system.h armv8: Add Secure Monitor/Hypervisor Call (SMC/HVC) infrastructure 2016-01-19 22:25:36 +00:00
types.h Data types defined for 64 bit physical address 2015-10-29 10:33:57 -07:00
u-boot-arm.h common: Move dram_init() declaration to common location 2015-02-09 15:08:48 +01:00
u-boot.h arm: Drop old non-generic-board code 2015-09-28 10:48:24 -04:00
unaligned.h arm64: core support 2014-01-09 16:08:44 +01:00
utils.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00