Robert Murrell
|
Problems with pci-bios recognizing ide device.
|
Robert Murrell
01/11/2016 3:24 PM
post115468
|
Problems with pci-bios recognizing ide device.
I have been investigating a problem with slow access times to a Compact Flash drive. Our system uses a Vortex86DX
processor with integral RDC IDE controller (vid 0x17f3, did 0x1011). We are using QNX 6.5.0 base (not SP1). This is a
copy of the support request I sent to the board manufacturer, but I would like to pass it by this forum for ideas on how
to get this working correctly. The problem seems to be that the IDE driver is using PIO mode 4 instead of UDMA mode 2.
I have been investigation a problem with slow file system access times under QNX 6.5.0 on the CM-435. We are using
InnoDisk 4GB industrial compact flash cards as recommended and provided by Adlink. The BIOS reports the following on
the InnoDisk card:
* Device :Hard
* Vendor :InnoDisk Corp. - iCF4000 4GB
* Size :4.1GB
* LBA Mode :Supported
* Block Mode:2Sectors
* PIO Mode :4
* Async DMA :MultiWord DMA-2
* Ultra DMA :Ultra DMA-2
* S.M.A.R.T.:Supported
QNX starts with startup-bios, pci-bios, and devb-eide. When running, the ‘pci -v’ command reports the following for
the IDE device:
Class = Mass Storage (IDE)
Vendor ID = 17f3h, RDC Semiconductor, Inc.
Device ID = 1011h, Unknown Unknown
PCI index = 0h
Class Codes = 01018ah
Revision ID = 1h
Bus number = 0
Device number = 12
Function num = 0
Status Reg = 200h
Command Reg = 5h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 40h
Cache Line Size= 4h un-cacheable
BAR - 0 [I/O] = 0h length 8 enabled
BAR - 1 [I/O] = 0h length 4 enabled
BAR - 2 [I/O] = 0h length 8 enabled
BAR - 3 [I/O] = 0h length 4 enabled
BAR - 4 [I/O] = fff0h length 16 enabled
Subsystem Vendor ID = 17f3h
Subsystem ID = 1011h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = INT A
Interrupt line = 14
CPU Interrupt = eh
The QNX system logger (slogger) is reporting the following from the devb-eide driver startup:
Jan 01 00:00:06 3 17 0 Range check failed (IO) - Dev 1011 - Vend 17f3 - Class 1018a - Addr 0 - Size 8
Jan 01 00:00:06 3 17 0 Range check failed (IO) - Dev 1011 - Vend 17f3 - Class 1018a - Addr 0 - Size 4
Jan 01 00:00:06 3 17 0 Range check failed (IO) - Dev 1011 - Vend 17f3 - Class 1018a - Addr 0 - Size 8
Jan 01 00:00:06 3 17 0 Range check failed (IO) - Dev 1011 - Vend 17f3 - Class 1018a - Addr 0 - Size 4
Jan 01 00:00:06 3 17 0 Range check failed (IO) - Dev 1011 - Vend 17f3 - Class 1018a - Addr fff0 - Size 10
Jan 01 00:00:06 2 17 0 scan_windows: Alloc failed fff1 - Size 10
Jan 01 00:00:06 2 19 0 devb-eide 1.00A (Jul 9 2010 13:54:17)
Jan 01 00:00:06 2 5 0 libcam.so (Jul 9 2010 13:53:08) bver 6040207
Jan 01 00:00:06 2 19 0 eide_identify_devices: Generic IDE vid 0x17f3, did 0x1011, class 0x1018a rev 1, busno 0
, dfunc 60
Jan 01 00:00:06 2 19 0 eide_identify_devices: cmd_addr 0x1f0, cntl_addr 0x3f4, irq 0xe, chnl 0, udma -1, mdma
-1, sdma -1, pio 0
Jan 01 00:00:06 2 19 0 eide_identify_devices: probing dev 0 status 50, error 0
Jan 01 00:00:06 2 19 0 eide_identify_devices: probing dev 1 status 0, error 30
Jan 01 00:00:06 2 19 0 eide_display_identify: mdl InnoDisk Corp. - iCF4000 4GB sn 20141007AAF600000492 fw
100511E tid 0, cable 80, max udma 4, cur udma 0, max mdma 2, cur mdma 0, max sdma -1, cur sdma -1, pio 4, mblk 2
The first 6 errors appear to be from pci-bios. The last error is from devb-eide and reports that it is accessing the
drive in PIO Mode 4 instead of UDMA Mode 2.
For reference, here is what ‘pci –v’ reports for a Dell D800:
Class = Mass Storage (IDE)
Vendor ID = 8086h, Intel Corporation
Device ID = 24cah, 82801DBM (ICH4-M) IDE Controller
PCI index = 0h
Class Codes = 01018ah
Revision ID = 1h
Bus number = 0
Device number = 31
Function num = 1
Status...
View Full Message
|
|
|