memory_cs
MEMORY_CS(4) MEMORY_CS(4)
NAME
memory_cs - MTD-aware PCMCIA memory card driver
SYNOPSIS
insmod memory_cs.o [pc_debug=n] [mem_speed=n] [word_width=n]
[force_size=n]
DESCRIPTION
Memory_cs is the Card Services driver for PCMCIA memory cards, and also
provides direct memory access for other types of cards. It provides
character-mode and block-mode for accessing any card's attribute and
common memory address spaces, analogous to /dev/mem. Memory_cs will
allocate a free major device number when it is loaded. It provides two
types of minor devices: "direct" character-mode devices for raw access
a card's entire PCMCIA common and attribute memory spaces, and "indi-
rect" devices for accessing specific memory partitions via an appropri-
ate Memory Technology Driver. The bitwise layout of minor device num-
bers is one memory device. 'x' is set if this is a direct-access
device, 'a' is set for attribute memory, and 'rr' is the region number
(for indirect devices). When memory_cs is bound to a card, it will
report its major and minor device numbers to cardmgr(8).
The default memory card initialization script creates character special
device files for the direct common memory and attribute memory devices.
It also creates character special devices for accessing the first
attribute and common memory partitions, and a block device for access-
ing the first common memory partition. These devices have the follow-
ing names:
/dev/mem#c
Common memory direct access, character special device.
/dev/mem#a
Attribute memory direct access, character special device.
/dev/mem#c0c
Common memory region 0, character special device.
/dev/mem#c0b
Common memory region 0, block special device.
/dev/mem#a0c
Attribute memory region 0, character special device.
The block special device for a card's common memory can be used to cre-
ate a filesystem on a card, and the device can be mounted in much the
same way as a floppy disk. In some cases, you may need to explicitly
specify the card's capacity when creating a filesystem.
The character special devices can be used to read and write arbitrary
numbers of bytes to arbitrary locations. For devices that need to be
explicitly erased before writing, if a write request is aligned and
sized on erase block boundaries for the target memory card, the driver
will erase the target region before writing to the card.
Since any PCMCIA card can be accessed as a memory card, memory_cs can
be bound to any card regardless of function, and regardless of what
other drivers might also be bound to that card. For example, this
driver can be bound to a card and then used to read out the contents of
the card's attribute memory.
PARAMETERS
pc_debug=n
Selects the PCMCIA debugging level. This parameter is only
available if the module is compiled with debugging enabled. A
non-zero value enables debugging.
mem_speed=n
Sets the access speed of the shared memory window for direct
access devices, in nanoseconds. The default is 0 (i.e., no
extra wait states). Values of up to 1000 are legal.
word_width=n
A flag indicating if direct access devices should be configured
for 8-bit (if 0) or 16-bit (if 1) transfers. The default is 1
(16-bit).
force_size=n
Explicitly specifies the size of a simple SRAM card, skipping
the default (and sometimes unreliable) size check.
IOCTLS
These are defined in <pcmcia/memory.h>.
MEMGETINFO
This takes an argument of type (region_info_t *), defined in
<pcmcia/bulkmem.h>. The structure will be filled in with memory
region information for this device, such as access speed, erase
block size, and JEDEC identifiers.
MEMERASE
This takes an argument of type (erase_info_t *), specifying the
offset and length of a memory region to be erased.
AUTHOR
David Hinds - dahinds@users.sourceforge.net
SEE ALSO
cardmgr(8), pcmcia(5), memory_cb(4).
pcmcia-cs 2000/06/12 21:24:48 MEMORY_CS(4)