MPC8308 TEA signal

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MPC8308 TEA signal

606 Views
fridgemagnet
Contributor I

Hi,

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.

Rgs,

Jon

0 Kudos
Reply
1 Reply

500 Views
alexander_yakov
NXP Employee
NXP Employee

Sorry for delayed response to this.

TEA means "Transfer Error Acknowledge". Typically, TEA is asserted by bus monitor for bus transaction, if this transaction is not finished in reasonable time. The most frequent reason to get bus monitor timeout - is access to invalid memory location ("invalid" means not assigned to any memory controller).

In your case, if you say this may somehow related to PCIe, than there may be another reason, but in general - machine check is the only way to terminate the transaction, if by any reason requested data can not be supplied to core.

To debug the situation, I recommend analyzing register dump you have to determine a particular instruction which is causer the error, understand what this instruction is exactly doing, and etc.


Have a great day,
Alexander
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply