WIP: ATA to CAM integration
dillon at apollo.backplane.com
Fri Jun 5 17:28:16 UTC 2009
:Latest AHCI specifications define feature named FIS Based Switching. It
:allows controller independently track state of every device beyond port
:multiplier. It should be quite easy to use it, but actually none of my
:controllers have that capability.
Damn. The FBSS capability bit is not set on my (AMD) MCP77 based AHCI
SATA controller. That sucks.
ahci0: AHCI 1.2 capabilities 0xe3229f05<S64A,NCQ,SSNTF,SAL,SCLO,SPM,PMD>,
Do you know of any host controllers which support FBS ? Any of the
Intel parts or machines per-chance?
:As I have said, without controller FIS Based Switching capability it is
:impossible. FBS defines separate memory areas for controller, to track
:there state of each drive behind PM. Without it, only one drive can be
:active at a time, as controller will not be able to track when each
:drive is able to receive next command..
Now it makes sense... the 1.0 spec only had one RFIS per port. With
only one RFIS area per port it is impossible to track multiple ports
behind the PM simultaniously.
The 1.3 specification (along with FBSS being set) has 16 RFIS areas
per port, plus BSY bits for each, thus fixing the problem.
This is really annoying. It effectively serializes access to multiple
disks behind a port multiplier on non-FBSS controllers. That makes
non-FBSS port-multiplied disk enclosures almost worthless from a
<dillon at backplane.com>
More information about the freebsd-current