ATA_PERIODIC_POLL on ATA_I82801HBM_S1 causes lockups

Alexander Motin mav at FreeBSD.org
Tue Jun 14 20:31:18 UTC 2011


Rick van der Zwet wrote:
> On 14 June 2011 15:26, Alexander Motin <mav at 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
>> ===================================================================
>> --- ata-intel.c (revision 223019)
>> +++ ata-intel.c (working copy)
>> @@ -288,7 +288,9 @@
>>                        ATA_OUTL(ctlr->r_res2, 0x0C,
>>                            ATA_INL(ctlr->r_res2, 0x0C) | 0xf);
>>                }
>> -       } else {
>> +       /* Skip BAR(5) on ICH8M Apples, system locks up on access. */
>> +       } else if (ctlr->chip->chipid != ATA_I82801HBM_S1 ||
>> +           pci_get_subvendor(dev) != 0x106b) {
>>                ctlr->r_type2 = SYS_RES_IOPORT;
>>                ctlr->r_rid2 = PCIR_BAR(5);
>>                ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
> 
> Works like a charm.

Thank you. Committed at r223097.

-- 
Alexander Motin


More information about the freebsd-current mailing list