Subject: Re: What does "external abort on non-linefetch" mean?

From: "Chien-Min Lee" <[email-masked]>
Date: Tue, 29 Aug 2000 22:10:22 +0800 (CST)

Hello:
> > This means that you passed an invalid address to the DMA controller.
> Surely not.  If this is true, the SA1110 does not follow the ARM ARM.  Data
> aborts are not supposed to be spuriously raised.

   Thanks for your replies.

   The problem seems from virt_to_phys().
   I jus pass the physical address translated by this macro to DMA DBSA/DBSB, 
   and start DMA transfer to get data from device.
   Then I translated the physical address in DBSA/DBSB to virtual address,
   and drain the left data in device's fifo to following memory address.

   In above sequence, sometimes it just works well, but sometimes it crash 
   with "external abort on non-linefetch" error.

   Now, I use another variable to keep the required physical address, 
   and void using virt_to_phys()/phys_to_virt().
   At least the "external..." error does not come again.
   
   I still use test5-rmk1-np1 patch...

   best regards

   kirk

----== Mailed via Openfind ==-----
http://mail2000.com.tw/ ���ѧK�O�q�l�l��H�c

unsubscribe: body of `unsubscribe linux-arm-kernel' to [email-masked]

---

From: Nicolas Pitre <[email-masked]>
Date: Tue, 29 Aug 2000 11:09:28 -0400 (EDT)

>    and drain the left data in device's fifo to following memory address.

May I suggest you use the generic SA1100 DMA API in my latest patch?  The
next patch will also include documentation.

Nicolas