Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jun 2011 22:25:52 +0200
From:      Rick van der Zwet <info@rickvanderzwet.nl>
To:        Alexander Motin <mav@freebsd.org>
Cc:        FreeBSD-Current <freebsd-current@freebsd.org>
Subject:   Re: ATA_PERIODIC_POLL on ATA_I82801HBM_S1 causes lockups
Message-ID:  <BANLkTi=wL_OrEuF5xdwQuUK%2Bd6NHxK3fnw@mail.gmail.com>
In-Reply-To: <4DF76176.7030207@FreeBSD.org>
References:  <mailpost.1308032279.3200006.77402.mailing.freebsd.current@FreeBSD.cs.nctu.edu.tw> <4DF76176.7030207@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 14 June 2011 15:26, Alexander Motin <mav@freebsd.org> wrote:
> Rick van der Zwet wrote:
>> The ICH8M found in the MacBookPro4,1 has an known issue [1] which
>> locks up when enabling the periodic poll using sidpr (introduced a
>> ``little'' while ago in r214016), making it impossible to boot.
>>
>> Attached patch disables the polling and thus fixes the issue.
>>
>> Br. /Rick
>> [1] http://www.spinics.net/lists/linux-ide/msg23487.html
>
> Thank you for reminder, but your patch is not exactly right. Could you
> test this one:
>
> Index: ata-intel.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- ata-intel.c (revision 223019)
> +++ ata-intel.c (working copy)
> @@ -288,7 +288,9 @@
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ATA_OUTL(ctlr->r_res2, 0x0=
C,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ATA_INL(ctlr->r_re=
s2, 0x0C) | 0xf);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0}
> - =A0 =A0 =A0 } else {
> + =A0 =A0 =A0 /* Skip BAR(5) on ICH8M Apples, system locks up on access. =
*/
> + =A0 =A0 =A0 } else if (ctlr->chip->chipid !=3D ATA_I82801HBM_S1 ||
> + =A0 =A0 =A0 =A0 =A0 pci_get_subvendor(dev) !=3D 0x106b) {
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ctlr->r_type2 =3D SYS_RES_IOPORT;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ctlr->r_rid2 =3D PCIR_BAR(5);
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ctlr->r_res2 =3D bus_alloc_resource_any(de=
v, ctlr->r_type2,

Works like a charm.

Br. /Rick
--=20
http://rickvanderzwet.nl



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTi=wL_OrEuF5xdwQuUK%2Bd6NHxK3fnw>