If the driver doesn't detect the interface or drives attached to it:
- Check the supported-hardware part of our website to see if the interface
is supported; see the Community area of our website,
http://www.qnx.com.
Even if your interface isn't listed as being supported, the EIDE controller
can work
in a generic mode that uses programmed input/output (PIO) modes, which is
slower, but works in almost all cases.
- Ensure that the interface is correctly set up in the BIOS, and that the
BIOS can see the drives correctly.
- Check that the drives are set up correctly; each slave drive must have a corresponding
master as per the ATAPI specs.
A single chain can't have two master drives or two slave drives.
- Ensure that the power connection is functioning correctly.
- Pass the device ID and vendor ID to the driver.
- Pass the I/O port and IRQ to devb-eide.
Here are some other problems that you might encounter and what you should try:
- If the driver hangs, disable busmastering (e.g., devb-eide eide nobmstr).
- If you see sloginfo entries of:
eide_transfer_downgrade: UDMA CRC error (downgrading to MDMA),
reduce the transfer mode and check the cables.
- If you see sloginfo entries of:
eide_timer: timeout path XX, device XX,
verify that the driver is using the correct interrupt, reduce the
transfer mode, and check the cables.
- If a PCMCIA disk doesn't work when configured in contiguous I/O
mapped addressing, i.e., 0x320 (not 0x1f0,
0x170),
specify the interface control block address.
The control block address is offset 12 from the base.
If a PCMCIA interface is located at I/O port 0x320 and IRQ 7,
specify:
devb-eide eide ioport=0x320:0x32c,irq=7,noslave
- If your devices support UDMA 4 or higher, but sloginfo reports
that the driver is using a lower mode, make sure you're using an 80-conductor cable.
- If you have an 80-conductor cable and your devices support UDMA 4 or higher,
but sloginfo reports that the driver is using a lower mode,
the device firmware might be out-of-date.
The driver relies on the device firmware to detect the cable type.
You can check to see if the device manufacturer has
a firmware upgrade or you can use the udma= xxx
command-line option to override the mode.
For example:
devb-eide eide vid=0x8086,did=0x2411,pci=0,chnl=1,master=udma=4
If the drives are detected, but they're running slowly:
- Use
sloginfo
to examine the devb-* driver output in the system log.
It will tell you the current speed of the driver (e.g.,
max udma 5, cur udma 3).
Note:
Neutrino automatically uses the maximum UDMA mode, unless you've specified
a maximum in the BIOS.
The following table shows the maximum mode and rate for each disk specification.
The PIO, MDMA, and lower UDMA modes use a 40-pin cable;
higher UDMA modes require an 80-pin cable:
Specification |
PIO |
MDMA |
UDMA (40-pin) |
UDMA (80-pin) |
Maximum rate |
ATA |
0 |
0 |
N/A |
N/A |
4 M/s |
ATA 2 |
4 |
2 |
N/A |
N/A |
16 M/s |
ATA 3 |
4 |
2 |
N/A |
N/A |
16 M/s |
ATA 4 |
4 |
2 |
2 |
N/A |
33 M/s |
ATA 5 |
4 |
2 |
2 |
4 |
66 M/s |
ATA 6 |
4 |
2 |
2 |
5 |
100 M/s |
ATA 7 |
4 |
2 |
2 |
6 |
133 M/s |
Note:
The maximum rate is the maximum theoretical burst interface throughput.
Sustained throughput depends on many factors, such as the drive cache size,
drive rotation speed, PCI bus, and filesystem.
Don't expect a UDMA-6 drive to have a sustained throughput of 100M/s.
- Check to make sure that the device you're attempting to connect
can operate at the expected UDMA modes.
- Correct the assignment of primary/secondary and master/slave interfaces.
For example, putting two hard drives as primary/secondary rather
than master/slave on the primary may allow driver parallelism.