mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-17 20:54:10 +00:00
remoteproc: qcom_q6v5: Assign mpss region to Q6 before MBA boot
On secure devices which support warm reset, the MBA firmware requires access to the modem region to clear them out. Hence provide Q6 access to this region before MBA boot. This will be a nop during a modem SSR. Reviewed-by: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Sibi Sankar <sibis@codeaurora.org> Link: https://lore.kernel.org/r/20200917175840.18708-1-sibis@codeaurora.org Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
434ac4d514
commit
4360f93ac3
1 changed files with 13 additions and 3 deletions
|
@ -931,6 +931,17 @@ static int q6v5_mba_load(struct q6v5 *qproc)
|
||||||
goto assert_reset;
|
goto assert_reset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some versions of the MBA firmware will upon boot wipe the MPSS region as well, so provide
|
||||||
|
* the Q6 access to this region.
|
||||||
|
*/
|
||||||
|
ret = q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm, false, true,
|
||||||
|
qproc->mpss_phys, qproc->mpss_size);
|
||||||
|
if (ret) {
|
||||||
|
dev_err(qproc->dev, "assigning Q6 access to mpss memory failed: %d\n", ret);
|
||||||
|
goto disable_active_clks;
|
||||||
|
}
|
||||||
|
|
||||||
/* Assign MBA image access in DDR to q6 */
|
/* Assign MBA image access in DDR to q6 */
|
||||||
ret = q6v5_xfer_mem_ownership(qproc, &qproc->mba_perm, false, true,
|
ret = q6v5_xfer_mem_ownership(qproc, &qproc->mba_perm, false, true,
|
||||||
qproc->mba_phys, qproc->mba_size);
|
qproc->mba_phys, qproc->mba_size);
|
||||||
|
@ -1135,10 +1146,9 @@ static int q6v5_mpss_load(struct q6v5 *qproc)
|
||||||
max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K);
|
max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* In case of a modem subsystem restart on secure devices, the modem
|
* In case of a modem subsystem restart on secure devices, the modem
|
||||||
* memory can be reclaimed only after MBA is loaded. For modem cold
|
* memory can be reclaimed only after MBA is loaded.
|
||||||
* boot this will be a nop
|
|
||||||
*/
|
*/
|
||||||
q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm, true, false,
|
q6v5_xfer_mem_ownership(qproc, &qproc->mpss_perm, true, false,
|
||||||
qproc->mpss_phys, qproc->mpss_size);
|
qproc->mpss_phys, qproc->mpss_size);
|
||||||
|
|
Loading…
Add table
Reference in a new issue