mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
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:
parent
1ef923851a
commit
bb97545565
1 changed files with 13 additions and 0 deletions
|
@ -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 */
|
||||
|
|
Loading…
Add table
Reference in a new issue