ARM: trigger non-secure state switch during bootm execution

To actually trigger the non-secure switch we just implemented, call
the switching routine from within the bootm command implementation.
This way we automatically enable this feature without further user
intervention.

Signed-off-by: Andre Przywara <andre.przywara@linaro.org>
This commit is contained in:
Andre Przywara 2013-09-19 18:06:43 +02:00 committed by Albert ARIBAUD
parent 1ef923851a
commit bb97545565

View file

@ -22,6 +22,10 @@
#include <asm/bootm.h>
#include <linux/compiler.h>
#ifdef CONFIG_ARMV7_NONSEC
#include <asm/armv7.h>
#endif
DECLARE_GLOBAL_DATA_PTR;
static struct tag *params;
@ -181,6 +185,14 @@ static void setup_end_tag(bd_t *bd)
__weak void setup_board_tags(struct tag **in_params) {}
static void do_nonsec_virt_switch(void)
{
#if defined(CONFIG_ARMV7_NONSEC) || defined(CONFIG_ARMV7_VIRT)
if (armv7_switch_nonsec() == 0)
debug("entered non-secure state\n");
#endif
}
/* Subcommand: PREP */
static void boot_prep_linux(bootm_headers_t *images)
{
@ -217,6 +229,7 @@ static void boot_prep_linux(bootm_headers_t *images)
printf("FDT and ATAGS support not compiled in - hanging\n");
hang();
}
do_nonsec_virt_switch();
}
/* Subcommand: GO */