Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jul 2005 02:07:03 -0600 (MDT)
From:      Warner Losh <imp@bsdimp.com>
To:        NKoch@demig.de
Cc:        freebsd-small@freebsd.org, non_secure@yahoo.com
Subject:   Re: DMA disable for sandisk CF cards ?
Message-ID:  <20050721.020703.41710119.imp@bsdimp.com>
In-Reply-To: <001e01c58dbe$f6739600$4801a8c0@ws-ew-3.W2KDEMIG>
References:  <20050721020028.6398.qmail@web53301.mail.yahoo.com> <001e01c58dbe$f6739600$4801a8c0@ws-ew-3.W2KDEMIG>

next in thread | previous in thread | raw e-mail | index | archive | help
> May be, I miss the point. Why do you want to disable
> dma on the cf card, when you can instruct FreeBSD
> to just not use dma (atacontrol(8)) ?

Because newer CF cards, like the SanDisk, negotiate DMA with the
controller.  However, most of the IDE <-> CF Adapters aren't properly
wired for this, as they only implement CF 1.5 and not CF 2.0.  So,
when FreeBSD goes to access the device, you get all kinds of timeout
errors.  If you are lucky, ata will failback to PIO mode.  Most of the
time it has bitten me, I've not been lucky :-(.

hw.ata.ata_dma=0 is the magic.  You can set it at the boot loader
prompt, or you can add it to /boot/loader.conf.  atacontrol is way too
late, since this disabling must be done prior to geom's scan for root
(or the moral equivalent in 4.x).

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050721.020703.41710119.imp>