IBM PCMCIA Memory Card/ Device Driver version 1.0.0 for OS/2 2.1: README FIRST CONTENTS ________ CHAPTER 1. WHY README FIRST CHAPTER 2. USER INTERFACE 2.1 PCMCIA Features 2.2 Hardware and Software Requirements 2.3 Syntax Notation 2.4 Installation CHAPTER 3. USER UTILITIES 3.1 Client Device Driver 3.1.1 ICMEMCDD 3.1.2 IC memory Client Device Driver Parameters 3.1.3 FLASH Memory Support 3.2 Memory Technology Device Driver 3.2.1 ICMEMMTD 3.3 Memory Card Format Utility 3.3.1 ICMEMFMT 3.3.2 Parameters CHAPTER 4. PRODUCT IMPLEMENTATION NOTES 4.1 General Product Notes 4.2 Hints and Tips 4.3 How To Report Problems *********************************************************************** LICENSE INFORMATION ___________________ ********************************************************************* * * * NOTICE * * * * You accept these programs with the understanding that * * the IBM makes no representations or warranties * * as to the suitability of these programs for your particular * * purpose, and that to the extent you use or implement this * * program in your own setting, you do so at your own risk. In * * no event will the IBM be liable for any damages, * * whether consequential, incidental, or special, arising out of * * the use of or inability to use the programs provided. * * Please read the LICENSE which follows to determine if you want * * to use these programs. * * * * Copyright the IBM Corporation, 1993. All rights reserved. * * * * DO NOT POST MODIFIED VERSIONS OF THESE PROGRAMS FOR PUBLIC ACCESS * ********************************************************************* IBM License Agreement for the ICMEM2 package ---------------------------------------------- IF YOU DOWNLOAD OR USE THESE PROGRAMS YOU AGREE TO THESE TERMS. The IBM company in the country where you will be using this package, grants you a license to use the Program. The Program is copyrighted and licensed (not sold). We do not transfer title to the Program to you. You obtain no rights other than those granted you under this license. Under this license, you may: 1. use the Program on one or more machines at a time; 2. make copies of the Program for use or backup purposes within your Enterprise; and 3. make copies of the original file you downloaded and distribute it, provided that you transfer a copy of this license to the other party. The other party agrees to these terms by its first use of the Program. You must reproduce the copyright notice and any other legend of ownership on each copy or partial copy, of the Program. You may NOT: 1. sub-license, rent, lease, or assign the Program; 2. distribute the Program for profit; and 3. reverse assemble, reverse compile, or otherwise translate the Program. We do not warrant that the Program is free from claims by a third party of copyright, patent, trademark, trade secret, or any other intellectual property infringement. Under no circumstances are we liable for any of the following: 1. third-party claims against you for losses or damages; 2. loss of, or damage to, your records or data; or 3. economic consequential damages (including lost profits or savings) or incidental damages, even if we are informed of their possibility. Some jurisdictions do not allow these limitations or exclusions, so they may not apply to you. We do not warrant uninterrupted or error free operation of the Program. We have no obligation to provide service, defect correction, or any maintenance for the Program. We have no obligation to supply any Program updates or enhancements to you even if such are or later become available. THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do not allow the exclusion of implied warranties, so the above exclusion may not apply to you. You may terminate this license at any time. We may terminate this license if you fail to comply with any of its terms. In either event, you must destroy all your copies of the Program. You are responsible for the payment of any taxes resulting from this license. You may not sell, transfer, assign, or subcontract any of your rights or obligations under this license. Any attempt to do so is void. Neither of us may bring a legal action more than two years after the cause of action arose. If you acquired the Program in the United States, this license is governed by the laws of the State of New York. If you acquired the Program in Canada, this license is governed by the laws of the Province of Ontario. Otherwise, this license is governed by the laws of the country in which you acquired the Program. * * * NOTE * * * Please also read the LICENSE.TXT file provided in this package for detail on license agreement TRADEMARKS __________ The following terms, denoted by an asterisk (*) at their first occurrences in this publication, are trademarks of IBM Corporation in the United States or other countries: +-----------+----------+-----------+-------------+ | IBM | OS/2 | PS/2 | PS/1 | +-----------+----------+-----------+-------------+ The following terms, denoted by a double asterisk (**) at their first occurrences in this publication, are trademarks of other companies: TRADEMARK OWNED BY Intel Quick-Pulse Algorithm Intel Corporation Intel Quick-Erase Algorithm Intel Corporation ************************************************************************ CHAPTER 1. WHY README FIRST ____________________________ This document contains important information about the IBM(*) PCMCIA IC Memory Card Device Driver software for OS/2(*) Kernel. IBM PCMCIA Memory Cards are cards that are made for or manufactured by, IBM. You should familiarize yourself with the contents of this document before attempting to install and use this product. Information provided in this document includes: o How to install the device driver for OS/2 o How to format the IC memory card o How to use the SRAM memory card o How to use the FLASH memory card o How to use the COMBO memory card o How to report a problem o Implementation notes about specific features of the product. ************************************************************************ CHAPTER 2. USER INTERFACE __________________________ 2.1 PCMCIA Features The IC Memory Card Device Driver software package is implemented and conforms to the Card Services Specification Release 2.0 in the PERSONAL COMPUTER MEMORY CARD INTERNATIONAL ASSOCIATION PCMCIA standard release 2.0. All the drivers in the ICMEM2 package are PCMCIA-aware device drivers and support the following: - Card Insertion and Card Removal Event If a card is inserted into or removed from a slot, a beep will be generated. - Write Protect Switch The device drivers respond to a write protect switch if there is one. If the card is write protected no data is allowed to be written to the card. - GetClientInfo Function The ICMEM2 PCMCIA-aware device drivers support GetClientInfo API call. - the following Card Metaformats . Device Information Tuple (0x01) Only FLASH and SRAM memory types are recognizable by the driver . JEDEC Identifier Tuples (0x18) For FLASH, currently it supports Intel type I FLASH . Production information Tuple (0x15). 2.2 Hardware and Software Requirements The IC Memory Card Device Driver software package runs on the IBM PC family of computers, using the 386 or higher processor with a PCMCIA Rel 2.0 slot. The product requires OS/2 2.1, IBM OS/2 PCMCIA Card Services, IBM OS/2 PCMCIA Socket Services and IBM OS/2 PCMCIA Resource Manager. 2.3 Syntax Notation :- disk drive and directory A "drive" is a valid disk drive letter ended with a colon ":". A "dir" is a valid directory path in your system For example: c:\demo <> :- means optional | :- means either left or right but not both 2.4 Installation Use the PKUNZIP program to retrieve all the files. Copy the ICMEMCDD.SYS and ICMEMMTD.SYS device driver onto your disk. Copy the ICMEMFMT.EXE into a directory which is one of directories specified in the "PATH=" statement in your CONFIG.SYS file. Add the following two "DEVICE=" statements in between the IBM OS/2 PCMCIA Card Service driver and IBM OS/2 Socket Services in your CONFIG.SYS file: Rem ------- IBM OS/2 FLASH MTD ------- DEVICE=\ICMEMMTD.SYS Rem ------- IBM OS/2 ICMEM2 CDD ------- DEVICE=\ICMEMCDD.SYS 2,s Before you reboot your system, make sure the PCMCIA Card Services and Socket Services are installed. For the PS/2(*) computer or Micro Channel Bus machine, PCMCIA.SYS, IBM2SS02.SYS and ICRMU02.SYS drivers file should be included in the CONFIG.SYS. If you are using the PS/1(*) computer or ISA Bus machine, PCMCIA.SYS, IBMSS01.SYS and ICRMU01.SYS are required. Your CONFIG.SYS file may look similar to the following: Rem ------- IBM OS/2 PCMCIA Card Services ------- DEVICE=C:\OS2\PCMCIA.SYS DEVICE=C:\OS2\MDOS\VPCMCIA.SYS Rem ------- IBM OS/2 FLASH MTD ------- DEVICE=\ICMEMMTD.SYS Rem ------- IBM OS/2 ICMEM2 CDD ------- DEVICE=\ICMEMCDD.SYS 2,s Rem Enable only one for either ISA bus system or MCA bus system Rem NOTE: Rem It cannot be both Rem -- for ISA bus system Rem ------- IBM OS/2 PCMCIA Socket Services ------- Rem DEVICE=C:\OS2\IBM2SS01.SYS Rem ------- IBM OS/2 PCMCIA Resource Manager ------- Rem DEVICE=C:\OS2\ICRMU01.SYS Rem -- for MCA bus system Rem ------- IBM OS/2 PCMCIA Socket Services ------- Rem DEVICE=C:\OS2\IBM2SS02.SYS Rem ------- IBM OS/2 PCMCIA Resource Manager ------- Rem DEVICE=C:\OS2\ICRMU02.SYS PCMCIA.SYS and VPCMCIA.SYS come with your OS/2 2.1 system and both the IBM PCMCIA Socket Services and the IBM PCMCIA Resource Manager are distributed either with the OS/2 system reference diskette or IBM PCMCIA Adapter Card option diskette. ************************************************************************* CHAPTER 3. USER UTILITIES __________________________ 3.1 IC Memory Client Device Driver 3.1.1 ICMEMCDD ICMEMCDD.SYS is a standard block device driver to support the FAT file system on OS/2. You install the ICMEMCDD.SYS in the same manner as any block device driver. It is able to support IBM SRAM, FLASH and FLASH/SRAM (COMBO) based memory cards under OS/2 2.1. For the FLASH memory media, the ICMEMMTD.SYS device driver is required to access the FLASH memory. ICMEMCDD interfaces with IBM PCMCIA Card Services PCMCIA.SYS and the OS/2 2.1 kernel. It treats an IBM PCMCIA Memory Card as if it were a normal FAT file diskette which has the following properties: - the byte per sectors must be even bytes - allocation unit must be a power of 2 - media descriptor must be in the range of 0xf0 to 0xff - number of FAT must be 1 to 2. The device information tuple stored in an IBM PCMCIA memory card must conform to the PCMCIA standard. Currently the SRAM device tuple type and FLASH device tuple type are accepted. Any other value will cause the ICMEMCDD to return an error. ICMEMCDD can support up to 16 logical drives. When a card is either inserted into or removed from a PCMCIA slot, a beep is generated. This beep notifies the user that a card insertion or removal event has occurred. ICMEMCDD also supports a write-protect event. If the card has been write-protected, an error is returned if an attempt is made to write to it. NOTE: The OS/2 DISKCOMP, DISKCOPY, FORMAT and JOIN commands are not supported. 3.1.2 IC memory Client Device Driver Parameters The following notation illustrates the valid parameters supported by ICMEMCDD.SYS icmemcdd_paramters = <, memory_region_supported> number_of_slots = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 A digit in the range from 1 to 8 memory_region_supported = S | s | D | d 'S' for single and 'D' for Dual memory Legend: <> - means optional | - means either left or right but not both Note: Parameters are separated by a comma ','. The number_of_slots is the number of PCMCIA slots for inserting IBM PCMCIA Memory Cards. Its value ranges from 1 to 8. If you have 2 slots the value is 2. The memory_region_supported is either single(S) or dual(D). ICMEMCDD supports single or dual memory region cards. The latter is used for IBM COMBO card which has FLASH memory in its first region and SRAM memory in its second region. After the ICMEMCDD device driver has been installed, OS/2 assigns each slot to a drive. In the case of dual memory support, each slot is assigned two drives. For example, assuming the available drive starts at letter 'D', - If you entered the following in the CONFIG.SYS DEVICE=ICMEMCDD.SYS 2,S then slot 1 => D: slot 2 => E: - If you entered the following in the CONFIG.SYS DEVICE=ICMEMCDD.SYS 2,D then slot 1 Region 1 => D: slot 1 Region 2 => E: slot 2 Region 1 => F: slot 2 Region 2 => G: The default parameters are '1' for the number of slots and 'Single' for the memory region supported. The maximum supported drives are 16. The maximum PCMCIA slots are 8 with dual memory regions. If a COMBO card is inserted into a slot which has a drive assigned to it, only the first memory region is used and its second memory region is disabled. If a single memory region card such as a FLASH or SRAM card is inserted into a slot which has two drives assigned to it, the kernel will return a "Drive is not ready" error to the user who attempts to access the second drive. 3.1.3 FLASH Memory Support ICMEMCDD does not support the FLASH File System (FFS). A special device driver ICMEMMTD.SYS is used to access a FLASH memory region. Without the ICMEMMTD.SYS device driver installed, any attempt to access the FLASH memory will fail (Refer to Section 3.2 for detail.) When a byte is written to a memory location in the FLASH region, this particular location cannot be rewritten without erasing the entire memory chip. This limitation makes it difficult to implement a true FAT file system support in FLASH. FLASH memory has the following limitations: - After a file is copied, the original created time of date of the file may not be copied. - No sub-directory is allowed. - After a label is created, it cannot be changed later. - A file cannot be erased once it has been written until the entire FLASH card is reformatted. - After a file has been created, its attribute is set to "Read-only". - Any file associated with extended attributes cannot be copied or created in the FLASH memory directly. This is because the extended attribute file will be updated in the FLASH every time the file has been modified. (See Section 4.2) - Multiple threads writing to the same FLASH memory is not supported. However, you can have multiple reads from the FLASH memory FAT file system. - The following list of OS/2 commands are not supported with the FAT FLASH file system: BACKUP, RECOVER, FORMAT, SORT Note: When using RENAME or MOVE commands in FLASH memory the OS/2 2.1 kernel may hang. This problem will be fixed with the next OS/2 service pak available around Aug 1993 ( please check with your OS/2 service rep.). The FLASH memory card is not intended to be used as a working diskette. Use it for files or programs that are not going to be modified. You can erase and format the FLASH memory card with the ICMEMFMT.EXE utility. Once it has been formatted the FLASH memory card can be rewritten again. 3.2 IC Memory Technology Device Driver 3.2.1 ICMEMMTD The ICMEMMTD provides special programming algorithms required to write and erase a FLASH memory device. ICMEMMTD is a PCMCIA client device driver which is installed as a regular OS/2 character device driver. It can be installed in the same manner as any character device driver. The ICMEMMTD supports Intel Type I FLASH memory chip. It uses the Intel Quick-Erase(**) algorithm when performing erase operations. It uses the Intel Quick-Pulse(**) algorithm to perform write operations. Each operation is followed by a bytes or word verification to confirm that the addressed byte or word has been successfully written or erased. ICMEMMTD does not take any arguments from the 'DEVICE=' in CONFIG.SYS. 3.3 IC Memory Card Format Utility 3.3.1 ICMEMFMT ICMEMFMT is an OS/2 utility to format IBM IC Memory cards. ICMEMFMT is not supported in OS/2 DOS or DOS Windows mode. You must use the ICMEMFMT to format IBM SRAM, FLASH, or COMBO memory cards. You cannot use the OS/2 format utility FORMAT.EXE. While a memory card is being formatted using ICMEMFMT, you should not remove the card from the slot. 3.3.2 ICMEMFMT parameters ICMEMFMT takes the following arguments: ICMEMFMT_parameters = drive where: drive is the drive unit where the card is to be formatted. label_name is a label name which can take up to 11 characters. If there are spaces in the label, the label_name must be enclosed with double quotes '"'. For example, assuming the drive unit is "G". ICMEMFMT g: /v:"LABEL XMP" After invoking the ICMEMFMT command, the following information is displayed on the console. - The size of the memory to be formatted is displayed on the first line. For example, the size of a 4MB FLASH card is 4194304. The message on the second line depends on the type of card. For SRAM: - A percentage value is shown in the following format: yyy% where yyy = percentage value of Format completed. For FLASH: - Two percentage values are shown in the following format: xxx% - yyy% where xxx = percentage value of Erase completed. yyy = percentage value of Format completed. For example: In the case of 1MB SRAM memory, the following messages are displayed after the format has been completed. 1048576 100% In the case of 2MB FLASH memory, the following messages are displayed after the format has been completed. 2097152 100% - 100% ************************************************************************* CHAPTER 4. PRODUCT IMPLEMENTATION NOTES ________________________________________ 4.1 General Product Notes IC Memory Card Device Driver Package for OS/2 2.1. The ICMEM2.ZIP file contains the following files File Name File Size Date Description ------------ --------- ------- ---------------------------------------- README.TXT 29238 052693 An ICMEM2 README file LICENSE.TXT 5011 052693 An ICMEM2 license agreement ICMEMCDD.SYS 12396 052693 An IC Memory Client device driver ICMEMMTD.SYS 7788 052693 An IC Memory Memory Technology driver ICMEMFMT.EXE 52432 052693 An IC Memory Format utility 4.2 IC Memory Cards Support The IC Memory Card Device Driver Package for OS/2 2.1 supports the following PCMCIA Memory Cards manufactured by IBM: SRAM Cards Part number 256K SRAM 0934245 512K SRAM 0934250 1MB SRAM 0934255, 0933152 2MB SRAM 0934260, 0933155 FLASH Cards 1MB SRAM 0934265 2MB SRAM 0934270, 0932857 4MB SRAM 0934295, 0932860 COMBO Cards 1/2MB FLASH / 1/2MB SRAM 0934275 1MB FLASH / 1/2MB SRAM 0934280 1MB FLASH / 1MB SRAM 0934285 2MB FLASH / 1MB SRAM 0934290, 0933173 4.2 Hints and Tips This section contains common error messages that can occur and how you should respond. It also contains questions that might arise and their answers. Q1. "Device is not ready" message displayed when accessing the drive. A1. . Check whether you have inserted the card properly . Remove and reinsert the card if necessary . Make sure you have installed the IBM PCMCIA Card Services and Socket Services properly. . Check whether you attempt to access the second region of a card and you are using a single region card. Q2. Generic "Write Fault" error message displayed. A2. . You will see this message if you attempt to modify the contents of a FLASH memory region of your card. This includes rewriting the File Directory entry with different data, modifying the existing File Allocation Table (FAT) entry or changing the data of a file that already exists. . Check whether the file has Extended Attributes associated with it. Copying an extended attribute file would require an update of a hidden extended attribute file in the File Directory entry on the FLASH memory. This is not allowed. . No erase function is allowed in the FLASH memory. . No sub-directory is allowed in the FLASH memory. . You can not modify a label which has already been created in FLASH memory. . Dragging an object from one OS/2 window and dropping it in another window will create an extended attribute file which will be returned as an error. Q3. How do I copy a file with extended attributes to a FLASH card? A3. . Use an OS/2 utility, EAUTIL.EXE, to split the extended attributes from the file before copying the file to the FLASH card. For example, if you want to copy the OS/2 CONFIG.SYS to a FLASH card in drive D:, enter the following commands: eautil config.sys /s copy config.sys d: Q4. COPYing a file to a Flash memory card with /A option fail! A4. . Using the COPY command with /A option does not work with the Flash memory card because the CTL-Z (0x1A) character is added to the end of the file after the file is copied. Any file stored in the Flash memory card cannot be modified in any manner. Q5. Why do the same size FLASH and SRAM cards report different values for "Free Bytes"? A5. . Since no subdirectory is allowed in a Flash memory card, more space is allocated for the root directory. Hence, a FLASH memory card reports less "Free Bytes". Q6. Why did using an OS/2 Drives utility to drag and drop a file to a Flash card fail? A6. . Using the OS/2 Drives utility to manipulate a file will create an extended attribute file. Since extended attribute is not supported on Flash memory cards, the OS/2 Drives utility will fail. Q7. Can a file stored in a Flash card be changed? A7. . A file stored in Flash card CANNOT be modified. The OS/2 system may give a wrong impression that the file has been modified. Q8. Why did DISKCOPY and DISKCOMP commands fail in SRAM and FLASH A8. . Both the DISKCOPY and DISCOMP commands are not supported. You cannot use them with SRAM and FLASH cards. Q9. Why were bad sectors reported when using CHKDSK? A8. . It is normal to see bad sectors reported in FLASH memory. The ICMEMFMT utility marks some of the sectors as bad in the FAT table since these sectors do not exist. However, you do not lose any sectors. Q10. What is the maximum number of file directory entries for 1MB, 2MB and 4MB FLASH memory cards? A10. . The following are the maximum number of file entries that FLASH memory cards support: 512K FLASH - 240 file entries (including label) 1MB FLASH - 480 file entries (including label) 2MB FLASH - 960 file entries (including label) 4MB FLASH - 1920 file entries (including label) Q11. Why, when a file started to be copied into a FLASH card and, for some reason, the copy operation failed (disk full, for example), can we still see the file with part of the data already copied? A11. . FLASH cards cannot have files selectively erased. In a normal Write operation the file is written first and then, if the disk is full, erased by the OS/2 kernel. In a FLASH card, the file cannot be erased at this point. The result is a file partially copied into the FLASH card. Use the CHKDSK command to check the integrity of the files copied. 4.3 How To Report Problems If you have any suggestions, concerns or problems related to the ICMEM2 package, please address them to us by one of the following means. ICMEMOS2 CFORUM in OS/2 BBS, for OS/2 BBS subscribers. or IBM Personal Computer Company Electronic Bulletin Board System (PCC BBS). You can access PCC BBS by calling within North America with the following number. Dial (1-404) 835-6600 before August 19, 1993 (1-919) 517-0001 after August 19, 1993 Use 8 bits, no parity and 1 stop bit protocol for 1200 to 144K baud rate. or ICMEMOS2@torolab2.vnet.ibm.com, for Internet users (available August). Please report the following information: Contact: - Person and company to contact with detailed address and telephone number, and how to contact the person electronically. Date: - Date the problem was found and reported. Severity: - Severity of the problem reported. Grade the problem from 1 to 4 where 1 means request for immediate response and help, 4 means for information only. Description: - Full description of the problem and a scenario of how one can recreate the problem. Machine: - Type of machine that you have the problem with. Hardware: - Any PCMCIA adapter cards used, the number of cards and PCMCIA slots used, and any other hardware information. OS/2 version: - Version of OS/2 that you are running and what OS/2 service pak is being used. Software used: - Name any software which could have contributed to the problem, including the version number and date.