Getting around WRITE_DMA errors
Sebastian
list at mindling.com
Sat Jan 14 13:26:07 PST 2006
Hi,
Installing 6.0-RELEASE on a new machine. (Have tried 5.4 too). Using a
PCChips M848ALU motherboard with onboard SiS
IDE controller, and a Hitachi 160gb disk.
When my disk is in UDMA6 (133) mode, FreeBSD dies painfully with many
errors like:
ad0: WARNING - WRITE_DMA48 UDMA ICRC error (retrying request)
LBA=316139999
ad0: WARNING - WRITE_DMA48 UDMA ICRC error (retrying request)
LBA=316139999
ad0: FAILURE - WRITE_DMA48 status=51(READY,DSC,ERROR)
error=4(ABORTED) LBA=316139999
It then panics and dumps:
panic: initiate_write_inodeblock_ufs2: already started
If I disable dma using "set hw.ata.ata_dma=0" at boot, or simply boot in
safe mode, it goes into PI04 mode and works fine. Also, if I change to a
lesser UDMA value using atacontrol after boot, such as:
# atacontrol mode ad0 UDMA4
... it also seems to behave just fine. I've tried UDMA3, UDMA4, UDMA5,
all seemingly without errors. But when I use UDMA6, the machine
immediately dies when the disk gets written to.
So my question:
What's the best way to tell FreeBSD to always use UDMA5 mode on that
disk at boot time (before it attempts to use the drive)?
Thanks,
Sebastian
More information about the freebsd-questions
mailing list