devb-ahci-mx8x

Driver for AHCI SATA interfaces for this board.

Note:
You must be root or have the right abilities to start this driver.

Syntax:

devb-ahci-mx8x [cam option[,option]...]
               [mem option[,option]...]
               [ahci option[,option]...]
               [blk option[,option]...]

Runs on:

QNX OS

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 the common access methods:
async=[priority]
Perform CPU cache invalidation after an I/O operation in a thread at priority. In some cases, and on some boards, this can provide a performance boost. By default async is off and the default priority is 21.
bounce=size
Specify the size of the driver's bounce buffer. The size argument can include a case-insensitve suffix that indicates the units: B (bytes; the default), K (kilobytes), M (megabytes), or P (pages). The bounce buffer is used if a specific piece of hardware can't directly access io-blk block cache buffers. The most common example is chips that don't support scatter-gather. The default is 32 KB.
cache[=on|off]
Specify to perform cache invalidation or cache flushes on the buffers. Map the bounce buffer as PROT_NOCACHE (cache=off) or not (cache or cache=on).
lun=mask
Enable Logical Unit Number (LUN) scan for the devices specified in mask. The mask is a hex bitmask specifying which IDs to scan for; the default is 0x00.
maxio=wr:rd
Set max I/O write, read blocks. Default 4096, limited by device.
noio
Completely remove the I/O ability. Both ThreadCtl(_NTO_TCTL_IO) and ThreadCtl(_NTO_TCTL_IO_PRIV) won't be called.
nopriv
Don't call ThreadCtl(_NTO_TCTL_IO_PRIV).
quiet
Be quiet: don't display any information on startup.
retries=num
Specify the number of times to retry an operation before indicating to the filesystem that an I/O error occurred. The default is 10.
smmu= [0 | 1 | off | on]
Disable or enable the SMMU Manager support using one of these values:
  • 0 or off— (default) disable SMMU Manager support.
  • 1 or on— enable SMMU Manager support.
If the SMMU Manager service (smmuman) service isn't running, the driver won't start and a message is logged to the system logger (slogger2).
user=UID:GID
Operate as the specified user and group IDs. The driver retains the necessary process-manager abilities.
verbose
Increase the verbosity of the low-level hardware driver.
mem options
name=tname
The typed memory name to use.
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) in the QNX OS Utilities Reference guide.
    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-mx8x supports the Intel AHCI SATA controller with 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-mx8x &

Detect all SATA controllers and use a typed memory region named dma (which the startup must have set up):

devb-ahci-mx8x mem name=/ram/dma &

Files:

The devb-ahci-mx8x 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-mx8x 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-mx8x 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 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:

Note that certain calls (such as pipe(), as well as read() and write() on FIFOs) may require the pipe manager.

Page updated: