diff --git a/hal/armv7a/zynq7000/zynq.c b/hal/armv7a/zynq7000/zynq.c index 0bbcbb2cf..11d0d6b1f 100644 --- a/hal/armv7a/zynq7000/zynq.c +++ b/hal/armv7a/zynq7000/zynq.c @@ -645,7 +645,10 @@ int hal_platformctl(void *ptr) break; case pctl_reboot: - zynq_softRst(); + if ((data->action == pctl_set) && (data->reboot.magic == PCTL_REBOOT_MAGIC)) { + zynq_softRst(); + } + /* TODO add boot reason for pctl_get */ break; case pctl_sdwpcd: diff --git a/include/arch/armv7a/zynq7000/zynq7000.h b/include/arch/armv7a/zynq7000/zynq7000.h index 4c267ff92..732a1272a 100644 --- a/include/arch/armv7a/zynq7000/zynq7000.h +++ b/include/arch/armv7a/zynq7000/zynq7000.h @@ -16,6 +16,8 @@ #ifndef _PHOENIX_ARCH_ZYNQ7000_H_ #define _PHOENIX_ARCH_ZYNQ7000_H_ +#define PCTL_REBOOT_MAGIC 0xaa55aa55UL + /* clang-format off */ /* AMBA peripherals */