]> git.baikalelectronics.ru Git - kernel.git/commit
soc: ti: omap-prm: Fix external abort for am335x pruss
authorTony Lindgren <tony@atomide.com>
Thu, 30 Sep 2021 08:30:03 +0000 (11:30 +0300)
committerTony Lindgren <tony@atomide.com>
Thu, 30 Sep 2021 08:30:03 +0000 (11:30 +0300)
commit332901c00677fc51b6b53a05d47719a177fd2332
tree61b4fc6bd6cc8e5e5bd7ce2304be1bc5c7e94552
parentb901123b83fca756ffcd85ea50a6cd9637d66d0c
soc: ti: omap-prm: Fix external abort for am335x pruss

Starting with v5.15-rc1, we may now see some am335x beaglebone black
device produce the following error on pruss probe:

Unhandled fault: external abort on non-linefetch (0x1008) at 0xe0326000

This has started with the enabling of pruss for am335x in the dts files.

Turns out the is caused by the PRM reset handling not waiting for the
reset bit to clear. To fix the issue, let's always wait for the reset
bit to clear, even if there is a separate reset status register.

We attempted to fix a similar issue for dra7 iva with a udelay() in
commit f601ff2c3c0c ("soc: ti: omap-prm: Fix occasional abort on reset
deassert for dra7 iva"). There is no longer a need for the udelay()
for dra7 iva reset either with the check added for reset bit clearing.

Cc: Drew Fustini <pdp7pdp7@gmail.com>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: "H. Nikolaus Schaller" <hns@goldelico.com>
Cc: Robert Nelson <robertcnelson@gmail.com>
Cc: Yongqin Liu <yongqin.liu@linaro.org>
Fixes: f601ff2c3c0c ("soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva")
Reported-by: Matti Vaittinen <mazziesaccount@gmail.com>
Tested-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/soc/ti/omap_prm.c