• Tony Lindgren's avatar
    soc: ti: omap-prm: Fix external abort for am335x pruss · b2325370
    Tony Lindgren authored
    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 effe89e4 ("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: effe89e4 ("soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva")
    Reported-by: default avatarMatti Vaittinen <mazziesaccount@gmail.com>
    Tested-by: default avatarMatti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    b2325370
omap_prm.c 25.3 KB