xilinx: zynqmp: Read bootmode register using PM API
Read boot mode register using pm_mmio_read if pmu is
present otherwise access it directly using mmio_read_32().
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
diff --git a/plat/xilinx/zynqmp/aarch64/zynqmp_common.c b/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
index fd054be..ace4a0a 100644
--- a/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
+++ b/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
@@ -10,6 +10,7 @@
#include <platform.h>
#include <xlat_tables.h>
#include "../zynqmp_private.h"
+#include "pm_api_sys.h"
/*
* Table of regions to map using the MMU.
@@ -241,7 +242,12 @@
unsigned int zynqmp_get_bootmode(void)
{
- uint32_t r = mmio_read_32(CRL_APB_BOOT_MODE_USER);
+ uint32_t r;
+
+ if (zynqmp_is_pmu_up())
+ pm_mmio_read(CRL_APB_BOOT_MODE_USER, &r);
+ else
+ r = mmio_read_32(CRL_APB_BOOT_MODE_USER);
return r & CRL_APB_BOOT_MODE_MASK;
}