DMA disable for sandisk CF cards ?

Warner Losh imp at bsdimp.com
Thu Jul 21 08:08:59 GMT 2005


> 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


More information about the freebsd-small mailing list