document ahci quirks. i called the man page "sdahci" not "sdiahci" because the interface should be the same even for a different manufacturer's controller. Notes: Sun Mar 30 18:10:57 EDT 2008 geoff applied after editing. Reference: /n/sources/patch/applied/sdahciman Date: Sun Mar 30 23:01:00 CES 2008 Signed-off-by: quanstro@quanstro.net Reviewed-by: geoff --- /sys/man/3/sdahci Thu Jan 1 00:00:00 1970 +++ /sys/man/3/sdahci Mon Mar 31 00:08:01 2008 @@ -0,0 +1,157 @@ +.TH SDAHCI 3 +.SH NAME +sdahci \- AHCI (Advanced Host Controller Interface) SATA (Serial ATA) storage device drivers +.SH SYNOPSIS +.nf +.B bind -a #S /dev +.sp 0.3v +.BI /dev/sdctl +.sp 0.3v +.BI /dev/sd E 0/ctl +.BI /dev/sd E 0/raw +.BI /dev/sd E 0/data +\&... +.fi +.SH DESCRIPTION +The +.I sdahci +drivers provide access to AHCI devices via the +.IR sd (3) +interface. +The AHCI programming interface supports up to 32 +hot-swappable ATAPI or hard disk-like devices per controller. +The legacy IDE interface provided by +.B sdata.c +supports up to four drives which are not hot-swappable. +.PP +AHCI controllers are detected automatically. +Currently Intel and AMD controllers are detected. +Intel controllers need to have AHCI enabled in the BIOS. +For +.L ich +parts this typically means enabling +enhanced mode and AHCI. +For ESB (Enterprise South Bridge) -based +parts, only enhanced mode needs to be enabled. +Intel +.BR ich9 -based +AHCI does not support hot swapping and +drives must be connected to the lowest-numbered free port. +.PP +The top level control file, +.BR /dev/sdctl , +supports the following control messages for +.IR sdahci : +.TF "\fLahci idprint " +.TP +.B ahci debug +Toggle debug messages. Default is off. +.TP +.B ahci idprint +Toggle printing of drive identification messages. Default is on. +Prints short messages when a drive is identified or removed. +.TP +.B ahci aprint +Print verbose ATAPI debugging messages. Default is off. +.PD +.PP +The device-level +.B ctl +file supports: +.TF "\fLsmartdisable" +.TP +.B flushcache +Send the ATA/ATAPI +.B FLUSH CACHE +command +.RB ( 0xe7 +or +.BR 0xea ). +This command may take up to 60 seconds to complete. +.TP +.B identify +Send the ATA/ATAPI +.B IDENTIFY DEVICE +command +.RB ( 0xec ). +If device information has changed, the new size, +features and serial will be noted. +If changed, I/O on existing file +descriptors will result in the error string +.LR "media or partition has changed" . +.TP +.BI "mode " speed +Change the connection +.I speed +to one of +.BR auto , +.BR satai or +.BR sataii . +.TP +.B nop +Send the ATA +.B NOP +command +.RB ( 0 ) +if the device supports it. Per standard, the result is always an error. +.TP +.B smart +Send the ATA/ATAPI +.B SMART RETURN STATUS +command +.RB ( 0xda ). +This will fail unless SMART is enabled on the drive. +.TP +.B smartdisable +Disable SMART on the drive. SMART is a persistent property of the drive. +.TP +.B smartenable +Enable SMART on the drive. +.TP +.BI "state " state +Force a transition to the named +.IR state . +The states are: +.RS +.TF portreset +.TP +.B null +ignored (may only be reached manually); +.TP +.B missing +not detected; +.TP +.B new +powered down or newly discovered; +.TP +.B ready +ready for commands; +.TP +.B reset +being reset gently; +.TP +.B portreset +being fully reset; +.TP +.B offline +device failed +.B portreset +(a port reset will be attempted periodically). +.RE +.PD +.PP +For devices present at boot, the transition is from state +.B new +to state +.BR ready . +.SH SOURCE +.B /sys/src/9/pc/sdiahci.c +.SH SEE ALSO +.IR sd (3), +.IR 9load (8) +.br +.BR http://download.intel.com/technology/serialata/pdf/rev1_2.pdf . +.SH BUGS +None of enclosure management, LED control and port multipliers are supported. +.PP +ATAPI devices may not be reset when they have outstanding commands.