firmware: zynqmp: Enable IPI code calling also in EL3
authorMichal Simek <michal.simek@xilinx.com>
Mon, 23 Mar 2020 13:42:34 +0000 (14:42 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 6 Apr 2020 10:52:45 +0000 (12:52 +0200)
U-Boot proper can still run in EL3 without using firmware interface wired
via ATF. For supporting this use case there is a need to check EL level
where U-Boot runs and based on that choose the way how to talk to firmware.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/firmware/firmware-zynqmp.c

index 2a2aa2f4f169f4c878673de02a889448a23d951c..c37642569ddaf27453ab21a63068dd56d78002e9 100644 (file)
@@ -51,7 +51,7 @@ static int ipi_req(const u32 *req, size_t req_len, u32 *res, size_t res_maxlen)
 
 static int send_req(const u32 *req, size_t req_len, u32 *res, size_t res_maxlen)
 {
-       if (IS_ENABLED(CONFIG_SPL_BUILD))
+       if (IS_ENABLED(CONFIG_SPL_BUILD) || current_el() == 3)
                return ipi_req(req, req_len, res, res_maxlen);
 
        return xilinx_pm_request(req[0], 0, 0, 0, 0, res);