mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
imx: misc: ele_mu: Update ELE MU driver
Extend the RX timeout value to 10s, because when authentication is failed the ELE needs long time (>2s for 28M image) to return the result. Print rx wait info per 1s. Also correct TX and RX status registers in debug. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
71a21425d2
commit
78b4cf7530
1 changed files with 15 additions and 5 deletions
|
@ -42,7 +42,7 @@ int mu_hal_sendmsg(ulong base, u32 reg_index, u32 msg)
|
|||
|
||||
assert(reg_index < MU_TR_COUNT);
|
||||
|
||||
debug("sendmsg sr 0x%x\n", readl(&mu_base->sr));
|
||||
debug("sendmsg tsr 0x%x\n", readl(&mu_base->tsr));
|
||||
|
||||
/* Wait TX register to be empty. */
|
||||
ret = readl_poll_timeout(&mu_base->tsr, val, val & mask, 10000);
|
||||
|
@ -64,14 +64,24 @@ int mu_hal_receivemsg(ulong base, u32 reg_index, u32 *msg)
|
|||
u32 mask = MU_SR_RF0_MASK << reg_index;
|
||||
u32 val;
|
||||
int ret;
|
||||
u32 count = 10;
|
||||
|
||||
assert(reg_index < MU_RR_COUNT);
|
||||
|
||||
debug("receivemsg sr 0x%x\n", readl(&mu_base->sr));
|
||||
debug("receivemsg rsr 0x%x\n", readl(&mu_base->rsr));
|
||||
|
||||
/* Wait RX register to be full. */
|
||||
ret = readl_poll_timeout(&mu_base->rsr, val, val & mask, 10000);
|
||||
if (ret < 0) {
|
||||
do {
|
||||
/* Wait RX register to be full. */
|
||||
ret = readl_poll_timeout(&mu_base->rsr, val, val & mask, 1000000);
|
||||
if (ret < 0) {
|
||||
count--;
|
||||
printf("mu receive msg wait %us\n", 10 - count);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} while (count > 0);
|
||||
|
||||
if (count == 0) {
|
||||
debug("%s timeout\n", __func__);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue