Flash or ram file system on a pc card with SRAM ?

We try to use a 2MB SRAM pc card together with QNX 6.1 mounted in a PCMCIA
adapter and want to mount a file system on this RAM area if possible - but
how?

The pc card has an attribute EEPROM, here is the output of some of the QNX
6.1 utilities:


Output from: pci -v


Class = Bridge (CardBus)

Vendor ID = 1180h, Ricoh Co Ltd

Device ID = 476h, RL5C476 CardBus controller

… etc.


output from pin (SRAM card mounted in socket 2)


Sock Func Type Flags PID Base Size IRQ

1 Empty ----MF---------- None

1 Empty ----MF---------- None

2 Unknown C—MF---------- None

2 Empty ----MF---------- None


output from pin cis


Socket : 2 - Function : 0

Device : SRAM 2048k

Card tuple version : 4.01

Manufacturer :

Name of product: : 2MB SRAM C

Add’nl info (lot#) :

Add’nl info (programming):

Sttribute Device : EEPROM 2k


Is it possible to use devf-generic, devf-ram, flashctl or is it nessary to
write our own device driver to the SRAM card ?

It is impossible to mount a file system then our application must be changed
to use a linear address space on the SRAM card (write/read) where is the
start address?

Any ideas or sample code how to get the SRAM pc card up and running on RTP
(or Neutrino 2) ?

Thanks in advance.

Otto Nielsen

Hi Otto,

What is the output of pci -vvv with the pccard inserted and the devp-pccard
driver running?

Thanks

Erick.


Otto Nielsen <otnie@wmdata.com> wrote:

We try to use a 2MB SRAM pc card together with QNX 6.1 mounted in a PCMCIA
adapter and want to mount a file system on this RAM area if possible - but
how?

The pc card has an attribute EEPROM, here is the output of some of the QNX
6.1 utilities:


Output from: pci -v


Class = Bridge (CardBus)

Vendor ID = 1180h, Ricoh Co Ltd

Device ID = 476h, RL5C476 CardBus controller

… etc.


output from pin (SRAM card mounted in socket 2)


Sock Func Type Flags PID Base Size IRQ

1 Empty ----MF---------- None

1 Empty ----MF---------- None

2 Unknown C—MF---------- None

2 Empty ----MF---------- None


output from pin cis


Socket : 2 - Function : 0

Device : SRAM 2048k

Card tuple version : 4.01

Manufacturer :

Name of product: : 2MB SRAM C

Add’nl info (lot#) :

Add’nl info (programming):

Sttribute Device : EEPROM 2k


Is it possible to use devf-generic, devf-ram, flashctl or is it nessary to
write our own device driver to the SRAM card ?

It is impossible to mount a file system then our application must be changed
to use a linear address space on the SRAM card (write/read) where is the
start address?

Any ideas or sample code how to get the SRAM pc card up and running on RTP
(or Neutrino 2) ?

Thanks in advance.

Otto Nielsen

What is the output of pci -vvv with the pccard inserted and the
devp-pccard



driver running?

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 = 0
Device number = 20
Function num = 0
Status Reg = 210h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = da001000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
Secondary Bus Number = 2
Subordinate Bus Number = 2
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 = 10
Bridge Control = 700h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 0h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: ef 14 02 02 01 00 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 00 00 00 00 00 00 00 00 63 04 63 04 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: ef 14 02 02 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
0xE0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


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 = 0
Device number = 20
Function num = 1
Status Reg = 210h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = da005000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
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 = 2
PCI Int Pin = INT B
Interrupt line = 5
Bridge Control = 700h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 0h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: ef 14 02 02 01 00 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 00 00 00 00 00 00 00 00 63 04 63 04 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: ef 14 02 02 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
0xE0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Repost of my message news:9r37t9$qg5$1@inn.qnx.com

What is the output of pci -vvv with the pccard inserted
and the devp-pccard driver running?

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 = 0
Device number = 20
Function num = 0
Status Reg = 210h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = da001000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
Secondary Bus Number = 2
Subordinate Bus Number = 2
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 = 10
Bridge Control = 700h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 0h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: ef 14 02 02 01 00 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 00 00 00 00 00 00 00 00 63 04 63 04 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: ef 14 02 02 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
0xE0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


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 = 0
Device number = 20
Function num = 1
Status Reg = 210h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = da005000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
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 = 2
PCI Int Pin = INT B
Interrupt line = 5
Bridge Control = 700h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 0h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: ef 14 02 02 01 00 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 00 00 00 00 00 00 00 00 63 04 63 04 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: ef 14 02 02 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
0xE0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


“Hardware Support Account” <> hw@qnx.com> > wrote in message
news:9r1cvs$fn4$> 3@nntp.qnx.com> …
Hi Otto,

What is the output of pci -vvv with the pccard inserted and the
devp-pccard
driver running?

Thanks

Erick.


Otto Nielsen <> otnie@wmdata.com> > wrote:
We try to use a 2MB SRAM pc card together with QNX 6.1 mounted in a
PCMCIA
adapter and want to mount a file system on this RAM area if possible -
but
how?
The pc card has an attribute EEPROM, here is the output of some of the
QNX
6.1 utilities:

Output from: pci -v

Class = Bridge (CardBus)
Vendor ID = 1180h, Ricoh Co Ltd
Device ID = 476h, RL5C476 CardBus controller
… etc.

output from pin (SRAM card mounted in socket 2)

Sock Func Type Flags PID Base Size IRQ
1 Empty ----MF---------- None
1 Empty ----MF---------- None
2 Unknown C—MF---------- None
2 Empty ----MF---------- None

output from pin cis

Socket : 2 - Function : 0
Device : SRAM 2048k
Card tuple version : 4.01
Manufacturer :
Name of product: : 2MB SRAM C
Add’nl info (lot#) :
Add’nl info (programming):
Sttribute Device : EEPROM 2k

Is it possible to use devf-generic, devf-ram, flashctl or is it nessary
to
write our own device driver to the SRAM card ?
It is impossible to mount a file system then our application must be
changed
to use a linear address space on the SRAM card (write/read) where is the
start address?
Any ideas or sample code how to get the SRAM pc card up and running on
RTP
(or Neutrino 2) ?

Thanks in advance.

Otto Nielsen

Hi Otto,

Thanks for the information. Just a bit of clarity. Are you
making a driver for a PCCard? or are you using a PCCard
that is SRAM and you want to mount it as a filesystem?

Thanks

Erick.


Otto Nielsen <otnie@wmdata.com> wrote:

Repost of my message news:9r37t9$qg5$> 1@inn.qnx.com> …

What is the output of pci -vvv with the pccard inserted
and the devp-pccard driver running?

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 = 0
Device number = 20
Function num = 0
Status Reg = 210h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = da001000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
Secondary Bus Number = 2
Subordinate Bus Number = 2
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 = 10
Bridge Control = 700h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 0h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: ef 14 02 02 01 00 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 00 00 00 00 00 00 00 00 63 04 63 04 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: ef 14 02 02 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
0xE0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00



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 = 0
Device number = 20
Function num = 1
Status Reg = 210h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = da005000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
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 = 2
PCI Int Pin = INT B
Interrupt line = 5
Bridge Control = 700h
Subsystem Vendor ID = 14efh
Subsystem ID = 202h
Legacy Mode Base Address = 0h
System Control = 0h
Retry Status = 0h
Card Control = 0h
Device Control = 0h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: ef 14 02 02 01 00 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 00 00 00 00 00 00 00 00 63 04 63 04 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: ef 14 02 02 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 19 fe
0xE0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


“Hardware Support Account” <> hw@qnx.com> > wrote in message
news:9r1cvs$fn4$> 3@nntp.qnx.com> …
Hi Otto,

What is the output of pci -vvv with the pccard inserted and the
devp-pccard
driver running?

Thanks

Erick.


Otto Nielsen <> otnie@wmdata.com> > wrote:
We try to use a 2MB SRAM pc card together with QNX 6.1 mounted in a
PCMCIA
adapter and want to mount a file system on this RAM area if possible -
but
how?
The pc card has an attribute EEPROM, here is the output of some of the
QNX
6.1 utilities:

Output from: pci -v

Class = Bridge (CardBus)
Vendor ID = 1180h, Ricoh Co Ltd
Device ID = 476h, RL5C476 CardBus controller
… etc.

output from pin (SRAM card mounted in socket 2)

Sock Func Type Flags PID Base Size IRQ
1 Empty ----MF---------- None
1 Empty ----MF---------- None
2 Unknown C—MF---------- None
2 Empty ----MF---------- None

output from pin cis

Socket : 2 - Function : 0
Device : SRAM 2048k
Card tuple version : 4.01
Manufacturer :
Name of product: : 2MB SRAM C
Add’nl info (lot#) :
Add’nl info (programming):
Sttribute Device : EEPROM 2k

Is it possible to use devf-generic, devf-ram, flashctl or is it nessary
to
write our own device driver to the SRAM card ?
It is impossible to mount a file system then our application must be
changed
to use a linear address space on the SRAM card (write/read) where is the
start address?
Any ideas or sample code how to get the SRAM pc card up and running on
RTP
(or Neutrino 2) ?

Thanks in advance.

Otto Nielsen

Hi Eric

We want to mount a file system on the SRAM memory on the pc card.
(If possible use a flash file system on the SRAM instead of flash memory)

Our current implementation saves data in e.g. four files in a catalog in the
filesystem on the IDE hard disk.

We want to replace the hard disk with a flash pc card with ATA i/f (program
files and other permanent/static files) this part of the problem is solved.

The application saves data in e.g. four files and updates the information
very often (seconds, minutes or hours) = data must be stored i SRAM (not on
flash).

We have seen a “problem” with the hard disk solution when the power is
removed: data in memory was not written on the hard disk when power was
lost. It was necessary to implement a flush command after the write data
statement (function causes any buffered but unwritten data to be written to
the file). The time used for this update overhead must not be too big.

An alternative to a “standard” file system is to make our own driver for the
SRAM on the pc card, but if is possible to use “standard” components and get
a good performance in the file system on the SRAM pc card - then we will
stay with the “standard” solution.

Our current implementation is based on QNX Neutrino but it could be
necessary / nice to move to QNX RTP 6.x

Kind regards
Otto

“Hardware Support Account” <hw@qnx.com> wrote in message
news:9rs7us$mfg$1@nntp.qnx.com

Hi Otto,

Thanks for the information. Just a bit of clarity. Are you
making a driver for a PCCard? or are you using a PCCard
that is SRAM and you want to mount it as a filesystem?

Thanks

Erick.