On 11 July 2017 at 11:38, Edgar E. Iglesias <edgar.igles...@xilinx.com> wrote: > Another way could also be to have get_phys_addr() fill in generic > fields in the FaultInfo struct and then have a faultinfo_to_fsr > mapping function to populate FSR/PAR. Do you see any issues with that?
Yes, that's probably better. It's how the pseudocode in the ARM ARM deals with the problem: there's a FaultRecord structure which is populated by AArch32.CreateFaultRecord() and AArch64.CreateFaultRecord(), and then it isn't actually turned into an FSR or ESR_ELx format value until needed (eg in AArch64.FaultSyndrome which calls EncodeLDFSC to get the long-form fault code bits, or similar functions on the AArch32 side which end up calling EncodeSDFSC() for short-form code bits). thanks -- PMM