Date: Fri, 1 Apr 2011 16:45:26 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r220249 - head/sys/dev/age Message-ID: <201104011645.p31GjQk5052323@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201104011645.p31GjQk5052323>