BETA4 installer doesn't attach my HDD controller; BETA3 did
Todd Wasson
tsw5 at duke.edu
Fri Dec 7 09:11:03 PST 2007
Julian, Andrey, and Soren, thank all of you for your help. I applied
Soren's patch (as I just pulled it from the tree via csup) and the
problem appears to be resolved. I appreciate your assistance and the
fast turnaround time on this.
Todd
On Dec 7, 2007, at 5:51 AM, Søren Schmidt wrote:
> Andrey V. Elsukov wrote:
>> Todd Wasson wrote:
>>>> Todd Wasson wrote:
>>>>> I've got a Maxtor 6Y080L0 YAR41VW0 drive on a JMicron JMB368
>>>>> UDMA133
>>>>> controller, and in the BETA4 installer the controller doesn't
>>>>> seem to
>>>>> be properly attaching, which leads to the drive not being
>>>>> found. The
>>>>> relevant sections from dmesg (as I'm not sure where else to look
>>>>> while
>>>>> running the installer CD) are:
>>>>
>>>> Did you try "Safe Boot" key 3.
>>
>> I think this changes may create a regression:
>>
>> 1. the BETA3's version:
>>
>> ctlr->r_type2 = SYS_RES_MEMORY;
>> ctlr->r_rid2 = PCIR_BAR(5);
>> if ((ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
>> &ctlr->r_rid2, RF_ACTIVE))){
>> if ((error = ata_ahci_chipinit(dev)))
>> return error;
>> }
>> We have two checks here. Probably your controller doesn't allocate a
>> memory resource for the AHCI, but it works because it skips second
>> checks.
>>
>> 2. the BETA4's version:
>>
>> if ((error = ata_ahci_chipinit(dev)))
>> return error;
>>
>> In this version driver doesn't pass it. I've already sent patch
>> for test to your PR, but i attach it again.
>> May be Soren can comment it?
> Yeah, there's a bug allright, attached patch is the right way to fix
> it, I'll commit when I get a few..
>
> -Søren
>
>
> ? JMicrom-p1
> ? ich-sata-fix
> Index: ata-chipset.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v
> retrieving revision 1.209
> diff -u -r1.209 ata-chipset.c
> --- ata-chipset.c 26 Nov 2007 19:08:08 -0000 1.209
> +++ ata-chipset.c 7 Dec 2007 10:49:06 -0000
> @@ -2260,7 +2309,7 @@
> pci_write_config(dev, 0x40, 0x80c0a131, 4);
> pci_write_config(dev, 0x80, 0x01200000, 4);
>
> - if ((error = ata_ahci_chipinit(dev)))
> + if (ctlr->chip->cfg1 && (error = ata_ahci_chipinit(dev)))
> return error;
>
> ctlr->allocate = ata_jmicron_allocate;
More information about the freebsd-current
mailing list