Patch RFC: Promise SATA300 TX4 hardware bug workaround.

Ulf Lilleengen lulf at
Fri Nov 16 07:06:53 PST 2007

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

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
freebsd-hackers at mailing list
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at"

More information about the freebsd-current mailing list