diff mbox series

[8/9] hw/arm/vexpress: Don't set info->secure_boot if CPU doesn't have EL3

Message ID 20180821132811.17675-9-peter.maydell@linaro.org
State New
Headers show
Series arm: Wire up GICv2 virt support on A15/A7 boards | expand

Commit Message

Peter Maydell Aug. 21, 2018, 1:28 p.m. UTC
Don't request that the arm_load_kernel() code should boot in secure
state if the CPU doesn't have a secure state. Currently this
doesn't make a difference because the boot.c code only examines
the secure_boot flag in code guarded by an ARM_FEATURE_EL3 check,
but upcoming changes for supporting booting into Hyp mode will
change that.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/arm/vexpress.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Luc Michel Aug. 22, 2018, 8:27 a.m. UTC | #1
On 8/21/18 3:28 PM, Peter Maydell wrote:
> Don't request that the arm_load_kernel() code should boot in secure
> state if the CPU doesn't have a secure state. Currently this
> doesn't make a difference because the boot.c code only examines
> the secure_boot flag in code guarded by an ARM_FEATURE_EL3 check,
> but upcoming changes for supporting booting into Hyp mode will
> change that.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Luc Michel <luc.michel@greensocs.com>

> ---
>  hw/arm/vexpress.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
> index dc47ed84c20..3631f4de3a4 100644
> --- a/hw/arm/vexpress.c
> +++ b/hw/arm/vexpress.c
> @@ -705,8 +705,8 @@ static void vexpress_common_init(MachineState *machine)
>      daughterboard->bootinfo.smp_bootreg_addr = map[VE_SYSREGS] + 0x30;
>      daughterboard->bootinfo.gic_cpu_if_addr = daughterboard->gic_cpu_if_addr;
>      daughterboard->bootinfo.modify_dtb = vexpress_modify_dtb;
> -    /* Indicate that when booting Linux we should be in secure state */
> -    daughterboard->bootinfo.secure_boot = true;
> +    /* When booting Linux we should be in secure state if the CPU has one. */
> +    daughterboard->bootinfo.secure_boot = vms->secure;
>      arm_load_kernel(ARM_CPU(first_cpu), &daughterboard->bootinfo);
>  }
>  
>
diff mbox series

Patch

diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index dc47ed84c20..3631f4de3a4 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -705,8 +705,8 @@  static void vexpress_common_init(MachineState *machine)
     daughterboard->bootinfo.smp_bootreg_addr = map[VE_SYSREGS] + 0x30;
     daughterboard->bootinfo.gic_cpu_if_addr = daughterboard->gic_cpu_if_addr;
     daughterboard->bootinfo.modify_dtb = vexpress_modify_dtb;
-    /* Indicate that when booting Linux we should be in secure state */
-    daughterboard->bootinfo.secure_boot = true;
+    /* When booting Linux we should be in secure state if the CPU has one. */
+    daughterboard->bootinfo.secure_boot = vms->secure;
     arm_load_kernel(ARM_CPU(first_cpu), &daughterboard->bootinfo);
 }