flash disk problems

I have a PIII machine with a Ricoh RL5C476 based dual
slot PC Card PCI adapter. I am trying to access a
SanDisk CF and a Toshiba PCMCIA hard disk without success.

Typical scenario:
pin gives:
Sock Func Type Flags PID Base Size IRQ
1 0 Disk C—I-±-------- None 0x200 16 10
1 Empty ----MF---------- None
2 0 Disk C—I-±-------- None 0x210 16 11
2 Empty ----MF---------- None

i start devb-eide:

devb-eide eide ioport=0x200,irq=10

A /dev/hd1 is created, in come cases a /dev/hd1t79 has also been
created.
Cannot access the disk though. Any command like ls, mount or fdisk
hangs.

Some kind of error message is printed repeating in the window where i
started the drivers like:
simq_timer: building abort ccb
ata_start_ccb: func 10
simq_timer: building abort ccb
ata_start_ccb: func 10

I’ve tried to give devp-pccard other IRQs without success.

Any ideas?

Encloses output of pin, pci-v and uname-a.

Cheers / Tom

I do use the nobios flag as well:

devb-eide eide ioport=0x200,irq=10,nobios

Previously, Tomas H gstr m wrote in qdn.public.qnxrtp.os:

I have a PIII machine with a Ricoh RL5C476 based dual
slot PC Card PCI adapter. I am trying to access a
SanDisk CF and a Toshiba PCMCIA hard disk without success.

Typical scenario:
pin gives:
Sock Func Type Flags PID Base Size IRQ
1 0 Disk C—I-±-------- None 0x200 16 10
1 Empty ----MF---------- None
2 0 Disk C—I-±-------- None 0x210 16 11
2 Empty ----MF---------- None

i start devb-eide:

devb-eide eide ioport=0x200,irq=10

A /dev/hd1 is created, in come cases a /dev/hd1t79 has also been
created.
Cannot access the disk though. Any command like ls, mount or fdisk
hangs.

Some kind of error message is printed repeating in the window where i
started the drivers like:
simq_timer: building abort ccb
ata_start_ccb: func 10
simq_timer: building abort ccb
ata_start_ccb: func 10

This indicates that the interrupt is not working. Is this a PCI adapter
in a desktop machine? If yes, does it have a seperate cable that plugs
into the ISA bus for interrupts? Have you checked in the bios to see
what interrupts are assigned to the ISA bus? From the pci output below,
I can see that IRQs 10 and 11 are already assigned to the PCI bus and
you cannot share interrupts between the ISA and PCI buses.

I’ve tried to give devp-pccard other IRQs without success.

Any ideas?

Encloses output of pin, pci-v and uname-a.

Cheers / Tom
QNX sireos-qnx1 6.1.0 2001/08/23-19:38:50edt x86pc x86

PCI version = 2.10

Class = Bridge (Host/PCI)
Vendor ID = 8086h, Intel Corporation
Device ID = 1130h, 82815/82815EM/EP Host-Hub Interface Bridge / DRAM Ctrlr
PCI index = 0h
Class Codes = 060000h
Revision ID = 2h
Bus number = 0
Device number = 0
Function num = 0
Status Reg = 2090h
Command Reg = 6h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 0h
Subsystem Vendor ID = 1043h
Subsystem ID = 8027h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = NC
Interrupt line = 0
Capabilities Pointer = 88h
Capability ID = 9h
Capabilities = f104h - 0h
Capability ID = 2h
Capabilities = 20h - 1f000207h

Class = Bridge (PCI/PCI)
Vendor ID = 8086h, Intel Corporation
Device ID = 1131h, 82815/82815EM/EP AGP Bridge
PCI index = 0h
Class Codes = 060400h
Revision ID = 2h
Bus number = 0
Device number = 1
Function num = 0
Status Reg = 20h
Command Reg = 7h
Header type = 1h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 0h
Primary Bus Number = 0h
Secondary Bus Number = 1h
Subordinate Bus Number = 1h
Secondary Latency Timer = 0h
I/O Base = e0h
I/O Limit = d0h
Secondary Status = a2a0h
Memory Base = f400h
Memory Limit = f4f0h
Prefetchable Memory Base = f5f0h
Prefetchable Memory Limit= f7f0h
Prefetchable Base Upper 32 Bits = 0h
Prefetchable Limit Upper 32 Bits = 0h
I/O Base Upper 16 Bits = ffffh
I/O Limit Upper 16 Bits = ffffh
Bridge Control = 8ns
PCI Int Pin = NC
Interrupt line = 0

Class = Bridge (PCI/PCI)
Vendor ID = 8086h, Intel Corporation
Device ID = 244eh, 82801BA Hub Interface to PCI Bridge
PCI index = 0h
Class Codes = 060400h
Revision ID = 2h
Bus number = 0
Device number = 30
Function num = 0
Status Reg = 80h
Command Reg = 107h
Header type = 1h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 0h
Primary Bus Number = 0h
Secondary Bus Number = 2h
Subordinate Bus Number = 2h
Secondary Latency Timer = 20h
I/O Base = c0h
I/O Limit = d0h
Secondary Status = 2280h
Memory Base = f380h
Memory Limit = f3f0h
Prefetchable Memory Base = f500h
Prefetchable Memory Limit= f5e0h
Prefetchable Base Upper 32 Bits = 0h
Prefetchable Limit Upper 32 Bits = 0h
I/O Base Upper 16 Bits = ffffh
I/O Limit Upper 16 Bits = ffffh
Bridge Control = 6ns
PCI Int Pin = NC
Interrupt line = 0

Class = Bridge (PCI/ISA)
Vendor ID = 8086h, Intel Corporation
Device ID = 2440h, 82801BA LPC Interface Bridge, ICH2
PCI index = 0h
Class Codes = 060100h
Revision ID = 2h
Bus number = 0
Device number = 31
Function num = 0
Status Reg = 280h
Command Reg = 10fh
Header type = 0h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 0h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = NC
Interrupt line = 0

Class = Mass Storage (IDE)
Vendor ID = 8086h, Intel Corporation
Device ID = 244bh, 82801BA IDE Controller
PCI index = 0h
Class Codes = 010180h
Revision ID = 2h
Bus number = 0
Device number = 31
Function num = 1
Status Reg = 280h
Command Reg = 5h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 0h
PCI IO Address = b800h length 16 enabled
Subsystem Vendor ID = 1043h
Subsystem ID = 8027h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = NC
Interrupt line = 0

Class = Serial Bus (SMBus)
Vendor ID = 8086h, Intel Corporation
Device ID = 2443h, 82801BA/BAM SMBus Controller
PCI index = 0h
Class Codes = 0c0500h
Revision ID = 2h
Bus number = 0
Device number = 31
Function num = 3
Status Reg = 280h
Command Reg = 1h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 0h
PCI IO Address = e800h length 16 enabled
Subsystem Vendor ID = 1043h
Subsystem ID = 8027h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = INT B
Interrupt line = 10

Class = Display (VGA)
Vendor ID = 102bh, Matrox
Device ID = 525h, MGA-G400 Millennium G400
PCI index = 0h
Class Codes = 030000h
Revision ID = 82h
Bus number = 1
Device number = 0
Function num = 0
Status Reg = 290h
Command Reg = 6h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 40h
Cache Line Size= 8h un-cacheable
PCI Mem Address = f6000000h prefetchable 32bit length 33554432 enabled
PCI Mem Address = f4800000h 32bit length 16384 enabled
PCI Mem Address = f4000000h 32bit length 8388608 enabled
Subsystem Vendor ID = 102bh
Subsystem ID = 7c0h
Max Lat = 32ns
Min Gnt = 16ns
PCI Int Pin = INT A
Interrupt line = 11
Capabilities Pointer = dch
Capability ID = 1h
Capabilities = 22h - 0h
Capability ID = 2h
Capabilities = 20h - 1f000207h

Class = Multimedia (Audio)
Vendor ID = 1102h, Creative Labs
Device ID = 2h, EMU10000 Sound Blaster Live!
PCI index = 0h
Class Codes = 040100h
Revision ID = 7h
Bus number = 2
Device number = 10
Function num = 0
Status Reg = 290h
Command Reg = 5h
Header type = 0h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
PCI IO Address = d800h length 32 enabled
Subsystem Vendor ID = 1102h
Subsystem ID = 8061h
Max Lat = 20ns
Min Gnt = 2ns
PCI Int Pin = INT A
Interrupt line = 9
Capabilities Pointer = dch
Capability ID = 1h
Capabilities = 601h - 0h

Class = Input (Unknown)
Vendor ID = 1102h, Creative Labs
Device ID = 7002h, EMU10000 Game Port
PCI index = 0h
Class Codes = 098000h
Revision ID = 7h
Bus number = 2
Device number = 10
Function num = 1
Status Reg = 290h
Command Reg = 5h
Header type = 0h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
PCI IO Address = d400h length 8 enabled
Subsystem Vendor ID = 1102h
Subsystem ID = 20h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = NC
Interrupt line = 0
Capabilities Pointer = dch
Capability ID = 1h
Capabilities = 601h - 0h

Class = Network (Ethernet)
Vendor ID = 10b7h, 3Com Corporation
Device ID = 9055h, 3C905B-TX Fast Etherlink 10/100 PCI TX NIC
PCI index = 0h
Class Codes = 020000h
Revision ID = 30h
Bus number = 2
Device number = 12
Function num = 0
Status Reg = 210h
Command Reg = 17h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 8h un-cacheable
PCI IO Address = d000h length 128 enabled
PCI Mem Address = f3800000h 32bit length 128 enabled
Subsystem Vendor ID = 10b7h
Subsystem ID = 9055h
PCI Expansion ROM = f3820000h length 131072 enabled
Max Lat = 10ns
Min Gnt = 10ns
PCI Int Pin = INT A
Interrupt line = 9
Capabilities Pointer = dch
Capability ID = 1h
Capabilities = 7601h - 0h

Class = Multimedia (Video)
Vendor ID = 109eh, Brooktree Corporation
Device ID = 350h, BT848 TV/PCI with DMA Push
PCI index = 0h
Class Codes = 040000h
Revision ID = 12h
Bus number = 2
Device number = 13
Function num = 0
Status Reg = 280h
Command Reg = 6h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
PCI Mem Address = f5000000h prefetchable 32bit length 4096 enabled
Max Lat = 40ns
Min Gnt = 16ns
PCI Int Pin = INT A
Interrupt line = 9

Class = Bridge (CardBus)
Vendor ID = 1180h, Ricoh Co Ltd
Device ID = 476h, RL5C476 CardBus controller
PCI index = 0h
Class Codes = 060700h
Revision ID = 80h
Bus number = 2
Device number = 14
Function num = 0
Status Reg = 210h
Command Reg = 7h
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = f3801000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 2
Secondary Bus Number = 3
Subordinate Bus Number = 3
Secondary Latency Timer = 20h
Memory Base 0 = 0h
Memory Limit 0 = 0h
Memory Base 1 = 0h
Memory Limit 1 = 0h
I/O Base 0 = 0h
I/O Limit 0 = 0h
I/O Base 1 = 0h
I/O Limit 1 = 0h
PCI Int Pin = 1
PCI Int Pin = INT A
Interrupt line = no connection
Bridge Control = 480h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 2h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h

Class = Bridge (CardBus)
Vendor ID = 1180h, Ricoh Co Ltd
Device ID = 476h, RL5C476 CardBus controller
PCI index = 1h
Class Codes = 060700h
Revision ID = 80h
Bus number = 2
Device number = 14
Function num = 1
Status Reg = 210h
Command Reg = 7h
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = f3802000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 2
Secondary Bus Number = 4
Subordinate Bus Number = 4
Secondary Latency Timer = 20h
Memory Base 0 = 0h
Memory Limit 0 = 0h
Memory Base 1 = 0h
Memory Limit 1 = 0h
I/O Base 0 = 0h
I/O Limit 0 = 0h
I/O Base 1 = 0h
I/O Limit 1 = 0h
PCI Int Pin = 2
PCI Int Pin = INT B
Interrupt line = no connection
Bridge Control = 480h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 2h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h

Sock Func Type Flags PID Base Size IRQ
1 0 Disk C—I-±-------- None 0x200 16 10
1 Empty ----MF---------- None
2 0 Disk C—I-±-------- None 0x210 16 11
2 Empty ----MF---------- None

Thanks for your fast reply. It’s a PCI adapter in a desktop machine.
The adapter doesn’t have any cable to the ISA bus (is this common to have?).
I have locked IRQ7 to the ISA bus since the adapter got that IRQ once,
other IRQ:s are available for PCI.
I have disabled USB, parallell port and internal soundcard.

Cheers, Tom

This indicates that the interrupt is not working. Is this a PCI adapter
in a desktop machine? If yes, does it have a seperate cable that plugs
into the ISA bus for interrupts? Have you checked in the bios to see
what interrupts are assigned to the ISA bus? From the pci output below,
I can see that IRQs 10 and 11 are already assigned to the PCI bus and
you cannot share interrupts between the ISA and PCI buses.

Previously, Tomas Högström wrote in qdn.public.qnxrtp.os:

Thanks for your fast reply. It’s a PCI adapter in a desktop machine.
The adapter doesn’t have any cable to the ISA bus (is this common to have?).

Most of the desktop adapters have these cables. You can try a command line
option to devp-pccard which will try and map the ISA interrupts to PCI
interrupts.

Start devp-pccard as ‘devp-pccard ss -m’ and see if your interrupt works
now. You might also have to force the interrupt to be used by devp-pccard
as follows:

devp-pccard -l7 ss -m

I have locked IRQ7 to the ISA bus since the adapter got that IRQ once,
other IRQ:s are available for PCI.
I have disabled USB, parallell port and internal soundcard.

Cheers, Tom

This indicates that the interrupt is not working. Is this a PCI adapter
in a desktop machine? If yes, does it have a seperate cable that plugs
into the ISA bus for interrupts? Have you checked in the bios to see
what interrupts are assigned to the ISA bus? From the pci output below,
I can see that IRQs 10 and 11 are already assigned to the PCI bus and
you cannot share interrupts between the ISA and PCI buses.

No luck I’m afraid. Summary below.
I guess this is when you go buy another adapter?

Cheers / Tom

reserve irq10 for ISA
reboot
pin: base=0x200, irq=10
devb-eide eide ioport=0x200,irq=10,nobios
“Path: 0 - EIDE
target=0 lun=0 DirectAccess(0) - SanDisk SDCFB-25 Rev:”
timeout error messages:
simq_timer: building abort ccb
ata_start_ccb: func 10

kill devb-eide
kill devp-pccard
devp-pccard ss -m &
pin: base=0x200, irq=7 <this irq is occupied by PCI board SMBus, cannot use it>
kill devp-pccard
devp-pccard -l10 ss -m &
pin: “unable to connect to PCCARD server (no such file or dir)”
kill devp-pccard
devp-pccard ss -m &
pin: “unable to connect to PCCARD server (no such file or dir)”
restart pci-bios
devp-pccard ss -m &
pin: base=0x200, irq=5 <this irq is not occupied by PCI board althoug not ISA reserved. let’s try it>
devb-eide eide ioport=0x200,irq=5,nobios
total computer freeze
reboot
kill devp-pccard
devp-pccard ss -m &
pin: “unable to connect to PCCARD server (no such file or dir)”
restart pci-bios
devp-pccard -l10 ss -m &
devb-eide eide ioport=0x200,irq=10,nobios
<then i think the following happened, didn’t take notes>
“Path: 0 - EIDE
target=0 lun=0 DirectAccess(0) - SanDisk SDCFB-25 Rev:”
timeout error messages:
simq_timer: building abort ccb
ata_start_ccb: func 10



Hugh Brown wrote:

Previously, Tomas Högström wrote in qdn.public.qnxrtp.os:
Thanks for your fast reply. It’s a PCI adapter in a desktop machine.
The adapter doesn’t have any cable to the ISA bus (is this common to have?).

Most of the desktop adapters have these cables. You can try a command line
option to devp-pccard which will try and map the ISA interrupts to PCI
interrupts.

Start devp-pccard as ‘devp-pccard ss -m’ and see if your interrupt works
now. You might also have to force the interrupt to be used by devp-pccard
as follows:

devp-pccard -l7 ss -m

I have locked IRQ7 to the ISA bus since the adapter got that IRQ once,
other IRQ:s are available for PCI.
I have disabled USB, parallell port and internal soundcard.

Cheers, Tom

This indicates that the interrupt is not working. Is this a PCI adapter
in a desktop machine? If yes, does it have a seperate cable that plugs
into the ISA bus for interrupts? Have you checked in the bios to see
what interrupts are assigned to the ISA bus? From the pci output below,
I can see that IRQs 10 and 11 are already assigned to the PCI bus and
you cannot share interrupts between the ISA and PCI buses.

If you are using the “ss -m” option to devp-pccard then IRQ10 must
be set to PCI in the bios and not ISA, as the -m option is trying to
route the ISA interrupt to the PCI bus. The other problem that you
have is that the bios in your machine does not recognize the CardBus
adapter and is not assigning any interrupts to it. You can see this
by looking at the ‘pci -v’ output and the Interrupt Line says “no
connection”.

Previously, Tomas Högström wrote in qdn.public.qnxrtp.os:

No luck I’m afraid. Summary below.
I guess this is when you go buy another adapter?

Cheers / Tom

reserve irq10 for ISA
reboot
pin: base=0x200, irq=10 <promising
devb-eide eide ioport=0x200,irq=10,nobios
“Path: 0 - EIDE
target=0 lun=0 DirectAccess(0) - SanDisk SDCFB-25 Rev:”
timeout error messages:
simq_timer: building abort ccb
ata_start_ccb: func 10

kill devb-eide
kill devp-pccard
devp-pccard ss -m &
pin: base=0x200, irq=7 <this irq is occupied by PCI board SMBus, cannot use it
kill devp-pccard
devp-pccard -l10 ss -m &
pin: “unable to connect to PCCARD server (no such file or dir)”
kill devp-pccard
devp-pccard ss -m &
pin: “unable to connect to PCCARD server (no such file or dir)”
restart pci-bios
devp-pccard ss -m &
pin: base=0x200, irq=5 <this irq is not occupied by PCI board althoug not ISA reserved. let’s try it
devb-eide eide ioport=0x200,irq=5,nobios
total computer freeze
reboot
kill devp-pccard
devp-pccard ss -m &
pin: “unable to connect to PCCARD server (no such file or dir)”
restart pci-bios
devp-pccard -l10 ss -m &
devb-eide eide ioport=0x200,irq=10,nobios
then i think the following happened, didn’t take notes
“Path: 0 - EIDE
target=0 lun=0 DirectAccess(0) - SanDisk SDCFB-25 Rev:”
timeout error messages:
simq_timer: building abort ccb
ata_start_ccb: func 10



Hugh Brown wrote:

Previously, Tomas Högström wrote in qdn.public.qnxrtp.os:
Thanks for your fast reply. It’s a PCI adapter in a desktop machine.
The adapter doesn’t have any cable to the ISA bus (is this common to have?).

Most of the desktop adapters have these cables. You can try a command line
option to devp-pccard which will try and map the ISA interrupts to PCI
interrupts.

Start devp-pccard as ‘devp-pccard ss -m’ and see if your interrupt works
now. You might also have to force the interrupt to be used by devp-pccard
as follows:

devp-pccard -l7 ss -m

I have locked IRQ7 to the ISA bus since the adapter got that IRQ once,
other IRQ:s are available for PCI.
I have disabled USB, parallell port and internal soundcard.

Cheers, Tom

This indicates that the interrupt is not working. Is this a PCI adapter
in a desktop machine? If yes, does it have a seperate cable that plugs
into the ISA bus for interrupts? Have you checked in the bios to see
what interrupts are assigned to the ISA bus? From the pci output below,
I can see that IRQs 10 and 11 are already assigned to the PCI bus and
you cannot share interrupts between the ISA and PCI buses.
\

In booting a(n) .altboot image I get about 20 dots followed by a ‘D’.
i.e. …D
then the system freezes.

What does this mean?

More importantly, how should I have known that from the docs?


Bill Caroselli – 1(626) 824-7983
Q-TPS Consulting
QTPS@EarthLink.net

I solved it by buying a good old Adtron PCMCIA adapter
with IDE interface instead. They always work (for disks and alike).

Tom