AMO should always generate store faults never load faults. We are generating both.
Created by: rosethompson
This example code from pma would cause both load and store access fault for amo access fault.
assign PMALoadAccessFaultM = ReadAccessM & PMAAccessFault;
assign PMAStoreAmoAccessFaultM = (WriteAccessM | (|CMOpM)) & PMAAccessFault;
This is probably also wrong for other faults as well. The correction is simple
assign PMALoadAccessFaultM = (ReadAccessM & ~WriteAccessM) & PMAAccessFault;
assign PMAStoreAmoAccessFaultM = (WriteAccessM | (|CMOpM)) & PMAAccessFault;
Also need to write a regression test to show these work correctly.