Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Jun 2009 20:05:34 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        Gary Corcoran <gcorcoran@rcn.com>
Cc:        FreeBSD-Current <freebsd-current@freebsd.org>, freebsd-arch@freebsd.org
Subject:   Re: WIP: ATA to CAM integration
Message-ID:  <4A29505E.6070902@FreeBSD.org>
In-Reply-To: <4A294AD1.6040809@rcn.com>
References:  <4A254B45.8050800@mavhome.dp.ua>	<200906050703.n5573x5Q071765@apollo.backplane.com> <200906051601.n55G10Mi075734@apollo.backplane.com> <4A294AD1.6040809@rcn.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Gary Corcoran wrote:
> suggests strongly that you many not send multiple commands out to a single
> port multiplier.  However, I agree that it's not crystal clear, and may not
> be what was intended.

AHCI rev. 1.3:

9.3 FIS-based Switching
FIS-based switching requires the HBA to keep track of additional device 
specific context within each HBA port. The HBA must be able to issue 
commands to a device while there are still commands outstanding
to other devices that are connected to the same host port through the 
Port Multiplier. The HBA must be able to switch DMA context on the fly; 
e.g. a Data FIS is received from target X, followed by a Data FIS
from target X+1.

9.3.1.1.1 Enable
When FIS-based switching is enabled, the hardware shall maintain a 
distinct BSY/DRQ bit for up to 16 devices. These bits are distinguished 
in the state machine as the pBsy and pDrq arrays. Hardware shall fetch 
commands in such a way as to try to ensure commands are issued to all 
devices that have BSY/DRQ cleared to ‘0’ and have commands in the 
command list. Instances of the BSY/DRQ bits are updated based on the 
Port Multiplier port field in Device to Host FISes.

-- 
Alexander Motin



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