Re: M54xx FEC and DMA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Philippe,

On 16/10/12 00:43, Philippe De Muyter wrote:
Hello Stany,

[CCing linux-m68k@xxxxxxxxxxxxxxx]

On Mon, Oct 15, 2012 at 03:37:25PM +0200, Stany MARCEL wrote:
Hello,



I have sent a patch on linuxm68k mailing list, a few minutes ago, that
permits to use your driver correctly with MMU without caching issues.



The strategy is to map a memory zone used for dma allocation as non
cachable.

Bright idea.




It is a lot better than a complete flush at each network operation, and
correct my issue of lost UDP frames.



With this and the read write operation replaced by __raw_* one Your FEC
and MCD DMA works very well for me.

Thanks for the positive feedback.

I was not aware of any difference between __raw_writel and writel on m68k.

For the non-MMU case, I see:
arch/m68k/include/asm/io_no.h:#define __raw_writel writel

but now I have found  for the MMU case:
arch/m68k/include/asm/io_mm.h:#define writel(val,addr) out_le32((addr),(val))
arch/m68k/include/asm/raw_io.h:#define __raw_writel(val,addr) out_be32((addr),(val))

and I understand your problem (out_le32 vs out_be32), but I wonder:
should we not:

- try to understand/fix the difference between __raw_writel and writel in
CONFIG_MMU case (Greg, Geert ?)

Yes, I figure they should be the same (on ColdFire at least).

Typically you should use writel in a driver. From the kernels documentation,
Documentation/DocBook/deviceiobook.tmpl:

      <para>
        The read and write functions are defined to be ordered. That is the
        compiler is not permitted to reorder the I/O sequence. When the
        ordering can be compiler optimised, you can use <function>
        __readb</function> and friends to indicate the relaxed ordering. Use
        this with care.
      </para>

Whereas __raw_writel is really raw, no ordering, no barriers, no
bye-swapping, no nothing. Just direct write of the register.

Regards
Greg


--
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@xxxxxxxxxxxx
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux