; 0xF0) == 0)
> - return HYP_ERR_NO_SEC_EXT;
> + if ((reg & CPUID_ARM_VIRT_MASK) != 1 << CPUID_ARM_VIRT_SHIFT)
> + return HYP_ERR_NO_VIRT_EXT;
>
> set_generic_timer_frequency();
>
> @@ -147,8 +160,12 @@ int armv7_switch_nonsec(void)
>
> kick_secondary_cpus(gicdptr);
>
> - /* call the non-sec switching code on this CPU also */
> + /* call the HYP switching code on this CPU also */
> _nonsec_init();
> + _hyp_init();
> +
> + if ((read_cpsr() & 0x1F) != 0x1a)
> + return HYP_ERR_NOT_HYP_MODE;
>
> return 0;
> }
> --
> 1.7.12.1
>
> ___
> kvmarm mailing list
> kvm...@lists.cs.columbia.edu
> https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm
>
regards,
Nikolay Nikolaev
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
c interrupt controller (GIC) */
> +
> +#define GIC_DIST_OFFSET0x1000
> +#define GICD_CTLR 0x
> +#define GICD_TYPER 0x0004
> +#define GICD_IGROUPRn 0x0080
> +#define GICD_SGIR 0x0F00
> +
> +#define GIC_CPU_OFFS
case NONSEC_VIRT_SUCCESS:
> + debug("entered non-secure state\n");
> + break;
> + case NONSEC_ERR_NO_SEC_EXT:
> + printf("nonsec: Security extensions not implemented.\n");
> + break;
> + case N
ard/armltd/vexpress/vexpress_smp.S| 36 ++
> include/common.h| 2 +
> include/configs/vexpress_ca15_tc2.h | 4 +-
> 11 files changed, 501 insertions(+), 4 deletions(-)
> create mode 100644 arch/arm/cpu/armv7/nonsec_virt.S
> create mode 1006
4 matches
Mail list logo