Author: yongari
Date: Fri Apr  1 16:45:26 2011
New Revision: 220249
URL: http://svn.freebsd.org/changeset/base/220249

Log:
  64bit DMA caused data corruption. Unfortunately there is no known
  workaround to use 64bit DMA.
  Disable 64bit DMA on Attansic L1 controller.
  
  Tested by:    Yamagi Burmeister (lists <> yamagi dot org)
  MFC after:    1 week

Modified:
  head/sys/dev/age/if_age.c

Modified: head/sys/dev/age/if_age.c
==============================================================================
--- head/sys/dev/age/if_age.c   Fri Apr  1 16:06:19 2011        (r220248)
+++ head/sys/dev/age/if_age.c   Fri Apr  1 16:45:26 2011        (r220249)
@@ -1092,11 +1092,14 @@ again:
         * Create Tx/Rx buffer parent tag.
         * L1 supports full 64bit DMA addressing in Tx/Rx buffers
         * so it needs separate parent DMA tag.
+        * XXX
+        * It seems enabling 64bit DMA causes data corruption. Limit
+        * DMA address space to 32bit.
         */
        error = bus_dma_tag_create(
            bus_get_dma_tag(sc->age_dev), /* parent */
            1, 0,                       /* alignment, boundary */
-           BUS_SPACE_MAXADDR,          /* lowaddr */
+           BUS_SPACE_MAXADDR_32BIT,    /* lowaddr */
            BUS_SPACE_MAXADDR,          /* highaddr */
            NULL, NULL,                 /* filter, filterarg */
            BUS_SPACE_MAXSIZE_32BIT,    /* maxsize */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to