SATA port multipliers

Alexander Motin mav at FreeBSD.org
Tue Jun 2 05:39:50 UTC 2009


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


More information about the freebsd-current mailing list