We are encountering a machine check exception caused by the assertion of the Transfer Error Ack (TEA) signal on an 8308 processor - here's the dump we get from the Linux kernel:
[ 218.873172] Machine check in kernel mode.
[ 218.877200] Caused by (from SRR1=41030): Transfer error ack signal
[ 218.883386] Oops: Machine check, sig: 7 [#1]
[ 218.887645] PREEMPT General Dynamics UK CMC BPM
[ 218.892171] Modules linked in: tun acexpci(O) uio_pci_generic uio_gduk_cmc_bpm_arinc(O) uio_gduk_cmc_bpm_discrete(O)
[ 218.902722] CPU: 0 PID: 547 Comm: mrtdemo Tainted: P M O 4.4.88-gduk-cmc-bpm+ #24
[ 218.911145] task: defb9480 ti: dfff6000 task.ti: ded82000
[ 218.916536] NIP: e51997b0 LR: e51997a8 CTR: e5199330
[ 218.921498] REGS: dfff7e50 TRAP: 0200 Tainted: P M O (4.4.88-gduk-cmc-bpm+)
[ 218.929648] MSR: 00041030 <ME,IR,DR> CR: 24000482 XER: 20000000
[ 218.935768] DAR: c006cbdc DSISR: c0720000
We believe it is related to a PCIe bus transaction however beyond that we have been unable to diagnose this any further. There seems to be very little information I can find in the documentation regarding this signal. The E300 core Reference Manual states that a machine check can be caused by assertion of TEA - which is external to the core but internal to the 8308. The 830 Reference Manual touches on it but not in great detail. Our initial thoughts were that is was triggered by the arbiter detecting a fault on one of the slaves (in this instance, presumably the PCIe controller) hence it was an ETEA event triggering this. However the AMR register has all these bits masked out so that seems to rule this out.
So any help on understanding what triggers TEA under these circumstances would be helpful.