Implement access permission checks
authorPaul Mackerras <paulus@ozlabs.org>
Mon, 20 Apr 2020 02:43:06 +0000 (12:43 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 8 May 2020 02:12:01 +0000 (12:12 +1000)
commitd47fbf88d14f2ca90d6b37378d698b9133e66631
tree34ceaf230e19c98cc1bb3e6aa597063a9531f3d1
parent42d0fcc5119e28c2e8807076f25b19e9b04dea83
Implement access permission checks

This adds logic to the dcache to check the permissions encoded in
the PTE that it gets from the dTLB.  The bits that are checked are:

R must be 1
C must be 1 for a store
EAA(0) - if this is 1, MSR[PR] must be 0
EAA(2) must be 1 for a store
EAA(1) | EAA(2) must be 1 for a load

In addition, ATT(0) is used to indicate a cache-inhibited access.

This now implements DSISR bits 36, 38 and 45.

(Bit numbers above correspond to the ISA, i.e. using big-endian
numbering.)

MSR[PR] is now conveyed to loadstore1 for use in permission checking.

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