Re: WIP: ATA to CAM integration



Matthew Dillon wrote:
More on the port multiplier spec. It turns out that the port-multiplier
port selector is in the command table, so it is per command-tag. There
is confusion in the spec though:

section 9.1:

In this mode of operation, a communication path is opened between the
HBA and a device through the Port Multiplier. Since Port Multipliers are
meant to be simple, the burden of making a connection is on the AHCI
software, to ensure that multiple commands are not outstanding to
different devices behind the Port Multiplier.

section 9.1.2:

"Since queued commands result in two different operations (command issue,
clear of BSY, then data transfer), if commands were sent to different
ports, the Port Multiplier may issue FISes back to the HBA in
an interleaved manner from different ports. This will break an HBA that
only supports command-based switching. Therefore, when executing native
command queueing commands, system software must only add commands
to the command list that target a single port behind the Port Multiplier,
wait for the commands to finish (PxSACT bits all cleared), then add
commands for a different port. Additionally, the tags used
must match the command slot entries."

--

It's unclear to me what this means. Can we use NCQ to queue multiple
commands to multiple ports behind a single port multiplier in parallel
or can't we? It's very confusing.

As I read the above, this:
> ensure that multiple commands are not outstanding to
> different devices behind the Port Multiplier

combined with this:
> system software must only add commands
> to the command list that target a *single port* behind the Port Multiplier,
> *wait for the commands to finish*

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.

Gary
_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: How to Create a TCP/IP PrinterPort on a MS Cluster 2k3 via Scr
    ... thus the creation of the port on the node. ... Download the Windows Server 2003 resource kit and add prnadmin.dll to the ... Do you actually think I would post these scripts if it didnt work? ... In your response include the commands you used. ...
    (microsoft.public.windows.server.clustering)
  • Re: GPRS dial up in Windows CE
    ... Use an application such as hyperterminal to send AT commands to your GSM ... the COM port that connects to your GSM. ... APN is depending on your sim: ... Uncheck Force long distance ...
    (microsoft.public.windowsce.platbuilder)
  • Re: telnet on port 25
    ... I think you can send some commands to send messages through the smtp server. ... > using port 25. ... I have never connected on port 25 using telnet ... > contact the sender using an alternative means of communication. ...
    (AIX-L)
  • Re: WIP: ATA to CAM integration
    ... HBA and a device through the Port Multiplier. ... "Since queued commands result in two different operations (command issue, ... to the command list that target a single port behind the Port Multiplier, ...
    (freebsd-arch)
  • Re: WIP: ATA to CAM integration
    ... More on the port multiplier spec. ... is confusion in the spec though: ... HBA and a device through the Port Multiplier. ... "Since queued commands result in two different operations (command issue, ...
    (freebsd-arch)