Date: Fri, 16 Nov 2007 15:43:05 +0100 From: Ulf Lilleengen <lulf@stud.ntnu.no> To: Alexander Sabourenkov <screwdriver@lxnt.info> Cc: Thierry Herbelot <thierry@herbelot.com>, freebsd-hackers@freebsd.org, freebsd-current@freebsd.org, "Matthew D. Fuller" <fullermd@over-yonder.net>, sos@FreeBSD.org Subject: Re: Patch RFC: Promise SATA300 TX4 hardware bug workaround. Message-ID: <20071116144304.GA7950@stud.ntnu.no> In-Reply-To: <472A548B.50406@lxnt.info> References: <472A548B.50406@lxnt.info>
next in thread | previous in thread | raw e-mail | index | archive | help
On fre, nov 02, 2007 at 01:34:51 +0300, Alexander Sabourenkov wrote: > Hello. > > I have ported the workaround for the hardware bug that causes data > corruption on Promise SATA300 TX4 cards to RELENG_7. > > Bug description: > SATA300 TX4 hardware chokes if last PRD entry (in a dma transfer) is > larger than 164 bytes. This was found while analysing vendor-supplied > linux driver. > > Workaround: > Split trailing PRD entry if it's larger that 164 bytes. > > Two supplied patches do fix problem on my machine. > > There is, however, a style problem with them. It seems like PRD entry > count is limited at 256. I have not found a good way to guarantee that > one entry is always available to do the split, thus the ugly solution of > patching ata-dma.c. > > > Patches, patched and original files are at http://lxnt.info/tx4/freebsd/. > Hi, I tried the patch, but I end up with the partition table being incorrectly read (probably) on the drives connected to my TX4 card. Normally, there's one partition on the drive, but when I apply the patch, the drive provider (ad6) is all that shows up in /dev. When I revert the patch, the partition (ad6s1) shows up in /dev again. I applied both the ata-chipset patch and ata-dma patch to a RELENG_7 system. -- Ulf Lilleengen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071116144304.GA7950>