We are getting a number of cache errors on starting an OS, so to try and avoid this, clear the errors when we first probe the cache.
Signed-off-by: Ben Dooks <ben.do...@codethink.co.uk> [ben.do...@codethink.co.uk: changed from sifive.com address] --- drivers/cache/cache-sifive-ccache.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/cache/cache-sifive-ccache.c b/drivers/cache/cache-sifive-ccache.c index 540e7df138..178bdcc82d 100644 --- a/drivers/cache/cache-sifive-ccache.c +++ b/drivers/cache/cache-sifive-ccache.c @@ -51,11 +51,18 @@ static const struct cache_ops sifive_ccache_ops = { static int sifive_ccache_probe(struct udevice *dev) { struct sifive_ccache *priv = dev_get_priv(dev); + void __iomem *base; - priv->base = dev_read_addr_ptr(dev); + priv->base = base = dev_read_addr_ptr(dev); if (!priv->base) return -EINVAL; + /* read and clear any current errors, possilbly from reset */ + (void)readl(base + 0x108); + (void)readl(base + 0x128); + (void)readl(base + 0x148); + (void)readl(base + 0x168); + return 0; } -- 2.40.1