diff --git a/soc/xlnx/zynqmp/soc.c b/soc/xlnx/zynqmp/soc.c index fc8c8e46097..571ca6d423e 100644 --- a/soc/xlnx/zynqmp/soc.c +++ b/soc/xlnx/zynqmp/soc.c @@ -10,6 +10,14 @@ #include #include +#include "soc.h" + +void sys_arch_reboot(int type) +{ + ARG_UNUSED(type); + + sys_write32(CRL_APB_RESET_CTRL_SRST_MASK, CRL_APB_RESET_CTRL); +} void soc_reset_hook(void) { diff --git a/soc/xlnx/zynqmp/soc.h b/soc/xlnx/zynqmp/soc.h index a3765eda0af..a5091e24e58 100644 --- a/soc/xlnx/zynqmp/soc.h +++ b/soc/xlnx/zynqmp/soc.h @@ -11,4 +11,7 @@ /* Define CMSIS configurations */ #define __CR_REV 1U +#define CRL_APB_RESET_CTRL 0xFF5E0218 +#define CRL_APB_RESET_CTRL_SRST_MASK BIT(4) + #endif /* _BOARD__H_ */