icache: Fix icbi potentially clobbering the icache (#192)
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 5 Jun 2020 06:23:23 +0000 (16:23 +1000)
committerGitHub <noreply@github.com>
Fri, 5 Jun 2020 06:23:23 +0000 (16:23 +1000)
commitb863791e38e3ff252a4867bb6c0a16a278a0c29c
tree2dad42f93a229ec665bad371e98c2cc7728c5a05
parent983f4fefe15800e9c235baeae4a99a5b1737e6da
icache: Fix icbi potentially clobbering the icache (#192)

icbi currently just resets the icache. This has some nasty side
effects such as also clearing the TLB, but also the wishbone interface.

That means that any ongoing cycle will be dropped.

However, most of our slaves don't handle that well and will continue
sending acks for already issued requests.

Under some circumstances we can thus restart an icache load and get
spurious ack/data from the wishbone left over from the "cancelled"
sequence.

This has broken booting Linux for me.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
core.vhdl
icache.vhdl
icache_tb.vhdl