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>
