Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Dec 2007 10:53:56 +0300
From:      "Andrey V. Elsukov" <bu7cher@yandex.ru>
To:        Todd Wasson <tsw5@duke.edu>
Cc:        =?UTF-8?B?U8O4cmVuIFNjaG1pZHQ=?= <sos@FreeBSD.org>, "Julian H. Stacey" <jhs@berklix.org>, freebsd-current@freebsd.org
Subject:   Re: BETA4 installer doesn't attach my HDD controller; BETA3 did
Message-ID:  <4758FC14.2080606@yandex.ru>
In-Reply-To: <C8EA53AF-B580-40D7-AFDB-E4F8C3DB8233@duke.edu>
References:  <1B3A2410-9C2A-4126-AC92-8E38B4A0D79A@duke.edu> <200712061726.lB6HQCIu023253@fire.js.berklix.net> <C8EA53AF-B580-40D7-AFDB-E4F8C3DB8233@duke.edu>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
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?

-- 
WBR, Andrey V. Elsukov

[-- Attachment #2 --]
--- src/sys/dev/ata/ata-chipset.c	2007-11-22 00:15:00.000000000 +0300
+++ src/sys/dev/ata/ata-chipset.c	2007-12-07 10:07:21.000000000 +0300
@@ -2243,7 +2243,7 @@ ata_jmicron_chipinit(device_t dev)
 	return ENXIO;
 
     /* do we have multiple PCI functions ? */
-    if (pci_read_config(dev, 0xdf, 1) & 0x40) {
+    if ((pci_read_config(dev, 0xdf, 1) & 0x40) || ctlr->chip->cfg1 == 0) {
 	/* are we on the AHCI part ? */
 	if (ata_ahci_chipinit(dev) != ENXIO)
 	    return 0;
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4758FC14.2080606>