Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 Jun 2009 08:39:43 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        "James R. Van Artsdalen" <james-freebsd-current@jrv.org>,  current@FreeBSD.org
Subject:   Re: SATA port multipliers
Message-ID:  <4A24BB1F.5060403@FreeBSD.org>
In-Reply-To: <h0245d$2euq$1@FreeBSD.cs.nctu.edu.tw>
References:  <h0245d$2euq$1@FreeBSD.cs.nctu.edu.tw>

next in thread | previous in thread | raw e-mail | index | archive | help
James R. Van Artsdalen wrote:
> With this change (and other previously reported & PR'd patches) SATA
> port multipliers seem to be working for me, albeit half as fast as expected.
> 
> The ata_identify() call was commented out in February apparently due to
> other problems it caused but it appears to be the only thing that scans
> for drives behind an enclosure.
> 
> Index: sys/dev/ata/ata-all.c
> ===================================================================
> --- sys/dev/ata/ata-all.c    (revision 192136)
> +++ sys/dev/ata/ata-all.c    (working copy)
> @@ -291,7 +291,7 @@
>      ATA_LOCKING(dev, ATA_LF_UNLOCK);
>  
>      /* Add new children. */
> -/*    ata_identify(dev); */
> +    ata_identify(dev);
>  
>      if (bootverbose)
>      device_printf(dev, "reinit done ..\n");

ata_identify() also called in channel attach routine and it is enough to 
process port multipliers, same as usual drives. Calling it on reinit() 
would be good to be able to find new devices, but in current state it 
causes deadlock in some error conditions.

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A24BB1F.5060403>