Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 04 Nov 2007 01:02:05 +0300
From:      Alexander Sabourenkov <screwdriver@lxnt.info>
To:        "Arno J. Klaassen" <arno@heho.snv.jussieu.fr>
Cc:        freebsd-hackers@freebsd.org, Thierry Herbelot <thierry@herbelot.com>, "Matthew D. Fuller" <fullermd@over-yonder.net>, =?UTF-8?B?U8O4cmVuIFNjaG1pZHQ=?= <sos@deepcore.dk>, sos@freebsd.org
Subject:   Re: Patch RFC:  Promise SATA300 TX4 hardware bug workaround.
Message-ID:  <472CEFDD.2020103@lxnt.info>
In-Reply-To: <wptzo4yqj7.fsf@heho.snv.jussieu.fr>
References:  <472A548B.50406@lxnt.info> <wpsl3oe7h9.fsf@heho.snv.jussieu.fr>	<472B9EA1.6060205@deepcore.dk> <wptzo4yqj7.fsf@heho.snv.jussieu.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
Arno J. Klaassen wrote:
>
> Rather than the marginal HW part, it seems, for me, closely related to
> MB/BIOS (as well (Alexander apperently has about the same setup as I
> have for this test)):
> 

[...]

> 
> I vaguely remember from another PR that the Promise card does
> something with PCI-bursting which fbsd does not detect and/or
> handle correctly (and beyond my simple skills as dumb tester, but
> maybe the linux-sources contain a clue about that as well).
> 

Analysis of chip initialization in vendor-supplied, Linux and FreeBSD
drivers shows that FreeBSD's one:
- does not enable something called 'BMR_BURST',
- performs hotplug init in one write (instead of two read-modify-writes ),
- does an extra write (offset 0x54) which is not done in other drivers.

Analysis text: http://lxnt.info/tx4/chipinit.text

Patch with ported chipinit (dangerous to use with anything from Promise
other than sata300 tx4 !!):
http://lxnt.info/tx4/freebsd/chipinit.patch (cumulative)
http://lxnt.info/tx4/freebsd/ata-chipset.c+chipinit (patched source)

Note two things:
1. I have not compiled or tested this patch. Please do.
2. I may have missed this bug because I'm frequently rebooting between
Linux and FreeBSD, and what Linux driver initialized may have lasted the
reboots.


-- 

./lxnt



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?472CEFDD.2020103>