Implement slbia as a dTLB/iTLB flush
authorPaul Mackerras <paulus@ozlabs.org>
Thu, 7 May 2020 10:02:21 +0000 (20:02 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 8 May 2020 02:12:02 +0000 (12:12 +1000)
commita658766fcf415bd40aa12cc26d34ec2a686188f8
tree406e925d0800abed72b267311d67b644ac19766f
parentf54a65f8cf69597d1ebaf9b56f6df33a2e5917a4
Implement slbia as a dTLB/iTLB flush

Slbia (with IH=7) is used in the Linux kernel to flush the ERATs
(our iTLB/dTLB), so make it do that.

This moves the logic to work out whether to flush a single entry
or the whole TLB from dcache and icache into mmu.  We now invalidate
all dTLB and iTLB entries when the AP (actual pagesize) field of
RB is non-zero on a tlbie[l], as well as when IS is non-zero.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
common.vhdl
dcache.vhdl
decode1.vhdl
execute1.vhdl
icache.vhdl
loadstore1.vhdl
mmu.vhdl