Date: Sat, 14 Jan 2006 13:26:11 -0800 From: Sebastian <list@mindling.com> To: freebsd <freebsd-questions@freebsd.org> Subject: Getting around WRITE_DMA errors Message-ID: <43C96C73.9010904@mindling.com>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43C96C73.9010904>