Driver for AHCI SATA interfaces (QNX Neutrino)
Note:
You must be root or have the right abilities to start this driver.
Syntax:
devb-ahci [cam option[,option]...]
[mem option[,option]...]
[ahci option[,option]...]
[blk option[,option]...] &
Options:
Note:
Use commas (,) to separate the options.
You can put the cam, mem, ahci, and blk
groups of options in any order.
- cam options
- The cam options control
libcam.so.
If specified, they must follow the cam keyword.
- mem options
-
- name=tname
- The typed memory name to use.
This option lets you restrict the driver to use memory only from a particular region, which is often necessary for
DMA and smmuman. If you set this option, it can benefit performance to set the same option in the
blk layer as well, depending on the size of the typed memory region.
The cam layer will move data between the blk layer and the typed memory.
Note:
It's up to the startup to set up typed memory. For more information, see
Typed memory
in the
Interprocess Communication (IPC) chapter of the
System Architecture guide.
- ahci options
- The ahci options control the driver's interface to the AHCI controller.
If you've installed multiple controllers, you can repeat these options for each controller.
Remember, however, to specify the ahci keyword before each controller's
set of options.
- Interface-specific options:
- did=did
- The device ID of the controller.
- ioport=addr
- The address of the interface.
- irq=req
- The interrupt used by the controller.
- nobmstr
- Don't use busmastering. Specify this option if you want to disable DMA.
- nports=num
- Set the number of ports.
- pci=index
- The PCI index of the controller in the machine, where index
is a value between 0 and the number of adapters.
- pi=bitmap
- Set the ports implemented bitmap.
For example, pi=0x4 specifies port 2.
- port=N,device
- Specify options for device on port N.
- priority=prio
- Set the priority of the processing thread.
The default is 21.
- pwrdwn
- Power down the device on exit.
- rtime=timeout
- Set the reset timeout, in seconds.
The default is 40.
- timeout=timeout
- Set the I/O request timeout, in seconds.
The default is 10.
- vid=vid
- The vendor ID of the controller.
- Device-specific options:
- chs
- Use Cylinder-Head-Sector mode.
The default is LBA.
- geometry=heads:cyl:sect
- Specify the drive geometry.
- multiblk=blks
- Set multiblock mode, using the given number of blocks per interrupt.
- nobmstr
- Don't use busmastering. Specify this option if you want to disable DMA.
- nonremovable
- Report the device as being nonremovable.
- rahead=state
- Enable or disable device read-ahead, where state is on or
off.
- smart
- Enable SMART monitoring.
If there are problems with the drive, the driver puts a message in the system log (see
slog2info
and
slogger2).
Note:
The message is logged only at startup.
There currently isn't a mechanism to retrieve SMART data.
- verbose=level
- Set the device verbosity level.
- wcache=state
- Enable or disable device write cache, where state is on or
off.
- blk options
- The blk options control
io-blk.so.
If specified, they must follow the blk keyword.
Description:
The devb-ahci supports the Intel AHCI SATA controller
ith the following device IDs:
- ICH-6 82801FB_SATA 0x2651
- ICH-6 82801FBM_SATA 0x2653
- ICH-7 82801GB_SATA 0x27c1
- ICH-7 82801GBM_SATA 0x27c5
Note:
You need to enable AHCI mode in the BIOS.
Examples:
Detect all SATA controllers, and list all connected devices:
devb-ahci &
Detect all SATA controllers and use a typed memory region named dma
(which the startup must have set up):
devb-ahci mem name=/ram/dma &
Files:
The devb-ahci driver causes
io-blk.so to adopt various
block special devices under /dev. These devices
are normally named hdn,
where n is the physical unit number of the device.
This driver could also require the following shared objects:
Binary |
Required |
cam-disk.so |
For hard-disk access. |
libcam.so |
Always |
Exit status:
The devb-ahci driver terminates only if an error occurs during
startup, or if it has successfully forked itself upon startup because
it hadn't been initially started in the background.
- 0
- The devb-ahci driver wasn't started in the background and therefore forked itself.
The original process terminated with a zero exit status, the forked process continued.
- > 0
- An error occurred during startup.
Caveats:
Unless overridden with the blk automount= option
(see io-blk.so), devices
are mounted as:
Device |
Mountpoint |
Filesystem type |
/dev/hd0t177 |
/hd |
qnx6 |
/dev/hd0t6 |
/dos |
dos |
/dev/hd0t11 |
/dos |
dos |
While there's no limit to the size of a disk or partition, the limit on I/O (i.e., the
lseek(),
read() and
write() functions)
depends on the type of filesystem mounted and on whether you use the 32- or 64-bit versions of these functions.
This I/O limit has no effect on the partition size for mounted filesystems.
The maximum number of blocks is 232.
Known supported functions include:
chmod(),
chown(),
close(),
closedir(),
creat(),
devctl(),
dup(),
dup2(),
fcntl(),
fpathconf(),
fstat(),
lseek(),
mkdir(),
mkfifo(),
mknod(),
open(),
opendir(),
pathconf(),
read(),
readdir(),
readlink(),
rewinddir(),
rmdir(),
stat(),
symlink(),
unlink() (not supported for directories),
utime(),
write()
Note that certain calls (such as
pipe(), as well as
read() and
write() on FIFOs) may
require the pipe
manager.