summaryrefslogtreecommitdiff
path: root/drivers/firmware
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2020-03-23 16:42:34 +0300
committerMichal Simek <michal.simek@xilinx.com>2020-04-06 13:52:45 +0300
commit73319eee878c3321a90ae0cc8e0ca8e6ebf0f1fd (patch)
tree44d07ae304ff288e99237a8b7d72673796d59353 /drivers/firmware
parentf8451f144e3d8fe704bd78416e93a68fd7781123 (diff)
downloadu-boot-73319eee878c3321a90ae0cc8e0ca8e6ebf0f1fd.tar.xz
firmware: zynqmp: Enable IPI code calling also in EL3
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>
Diffstat (limited to 'drivers/firmware')
-rw-r--r--drivers/firmware/firmware-zynqmp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firmware/firmware-zynqmp.c b/drivers/firmware/firmware-zynqmp.c
index 2a2aa2f4f1..c37642569d 100644
--- a/drivers/firmware/firmware-zynqmp.c
+++ b/drivers/firmware/firmware-zynqmp.c
@@ -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);