home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 29 Fixes_o
/
29-Fixes_o.zip
/
idedasd2.zip
/
readme.txt
< prev
Wrap
Text File
|
2002-12-20
|
47KB
|
1,112 lines
FIXED IDE HARD DRIVE AND REMOVABLE MEDIA SUPPORT
September 06, 2002
OS/2 Device Driver Development
IBM Solution Technologies
Austin, TX
(c) Copyright International Business Machines Corporation, 2001, 2002.
All rights Reserved.
CONTENTS
________
1.0 INTRODUCTION
2.0 INSTALLATION
2.1 Updating the Installation Diskettes
2.2 Updating a Previously Installed Warp System
3.0 LARGE HARD DRIVE CONSIDERATIONS
3.1 System Hang or Hard Drive Hesitation
3.2 Cannot Mark a Partition Installable
3.3 IPE on Boot, "Trap D"
3.4 Inconsistencies in Total Disk Space
3.5 Application Install Fails with "Not Enough Space"
3.6 Performance Problems With Two Devices on a Single Channel
3.7 Install Diskettes or Utility Diskettes Hang on Boot (APAR JR12065)
3.8 Additional Parameters For IDE Device Driver
3.9 Additional Parameters for IBMATAPI.FLT and IBMIDECD.FLT drivers
4.0 REMOVABLE MEDIA SUPPORT
4.1 Partitioned Removable Media
4.1.1 Using Protected Media
4.1.2 Assignment of Drive Letters
4.1.3 Configuring Partition Support (OS2DASD)
4.1.4 Ejecting the media
4.1.5 Limitations of Partitioned Removable Media Support
4.2 Large Floppy Removable Media (LS-120)
4.2.1 Limitations of LS-120 Support
4.3 CD-ROM Device Manager (OS2CDROM.DMD)
4.4 CD-RW media support in IBMIDECD.FLT
5.0 SUPPORTED CHIPSETS, KNOWN RESTRICTIONS AND LIMITATIONS
5.1 Supported chipset table
5.2 Known restrictions and limitations
5.2.1 Intel chipsets limitations
5.2.2 VIA chipsets restrictions
5.2.3 SiS chipset limitation
6.0 COPYRIGHT AND TRADEMARK INFORMATION
1.0 INTRODUCTION
_________________
FixPak 35 (FP35) for Warp 3 and FixPak 6 (FP6) for Warp 4 extended support
for fixed Enhanced IDE drives to sizes up to 8.4GB and added new caching HPFS
and FAT file system support for removable media drives such as SCSI Syquest
Syjet 1.5GB portable hard drive and the Iomega jaz 1GB and 2GB personal hard
drives.
This package contains updates to the support in FP35 and FP6,
extending support to fixed Enhanced IDE drives greater than 8.4GB,
fixing some problems, and adding additional documentation on
removable media support. Beginning with FP40 and FP10 OS/2 base
device drivers were separated into a Base Device Driver FixPak.
This package also contains extensions to OS2CDROM.DMD, providing support for
multi-session CDROM media.
The package also contains an updated floppy diskette driver (IBM1FLPY.ADD),
which corrects a failure that occurs upon a Resume on a ThinkPad when
the diskette drive is installed in the ThinkPad docking station.
For Warp Server Advanced HPFS386 support of removable media, you additionally
need LAN Server SelectPack IP_8508.
These fixpaks are available from http://ps.software.ibm.com/ under the link
"Downloads and News." Install the fixpaks first, carefully following the
instructions with the fixpaks; then follow the directions in this README to
install this package.
If you are attempting to install Warp 3 or Warp 4 for the first time on a fixed
hard drive greater than 4.3GB, then:
1. Follow the instruction on "Updating the Installation Diskettes" in this
README and use the new diskettes to install Warp.
2. Install FP35 for Warp 3 or FP6 for Warp 4.
3. Follow the instructions in this README to install this package.
2.0 INSTALLATION
_________________
2.1 UPDATING THE INSTALLATION DISKETTES
________________________________________
If you are attempting to install Warp on a hard drive greater than
4.3GB, or your are attempting to install Warp Server for e-business on
a hard drive greater than 30GB, then the Installation diskettes must
be updated.
1. Make a backup copy of your Diskette 1 (D1).
2. Copy the new versions of IBM1S506.ADD, and IBMIDECD.FLT
device driver files onto your D1 diskette.
3. If the installation diskettes are for Warp Server for e-business,
Warp Server for e-business Convenience Pak, or Warp 4 Convenience Pak,
copy the DASD32.DMD file to your D1 diskette and rename it to
OS2DASD.DMD. Otherwise copy the DASD16.DMD file to your D1
diskette and rename it to OS2DASD.DMD.
4. Add the statement SET COPYFROMFLOPPY=1 to the CONFIG.SYS on D1.
5. Save the changes.
6. Start the installation with the Installation Diskette.
7. When you are prompted for Diskette 1, use the diskette you modified.
8. Proceed with the installation.
9. If during the installation process or when restarting your system, you
lose connection to your hard disk or CDROM, make sure that the device
driver statements are in the CONFIG.SYS file and the new versions of the
IBM1S506.ADD, IBMIDECD.FLT and OS2DASD.DMD device drivers have been
copied to the \OS2\BOOT directory. Use the date of the files to distin-
guish the newer versions.
2.2 UPDATING A PREVIOUSLY INSTALLED WARP SYSTEM
________________________________________________
1. (Optional) Save the existing (old) level of drivers in your system.
a. Change Directory to the \os2\boot directory on your boot drive.
b. Rename the drivers (for example, where the boot drive is C:). The
IBMATAPI.FLT driver may not have been previously installed.
[C:\os2\boot] rename IBM1S506.ADD IBM1S506.ORG
[C:\os2\boot] rename IBM1FLPY.ADD IBM1FLPY.ORG
[C:\os2\boot] rename IBMIDECD.FLT IBMIDECD.ORG
[C:\os2\boot] rename IBMATAPI.FLT IBMATAPI.ORG
[C:\os2\boot] rename OS2CDROM.DMD OS2CDROM.ORG
[C:\os2\boot] rename OS2DASD.DMD OS2DASD.ORG
2. Open an OS/2 Window and enter the SYSLEVEL X: (where X: is your
boot drive). Look for the entry x:\OS2\INSTALL\SYSLEVEL.OS2 and
see which version of OS/2 you have installed; for example "Version
4.00" or "Version 4.50".
3. Device Driver Install
o (Warp 3, Warp Server) Open the Device Driver Install program
in the OS/2 System Folder/System Setup Folder.
o (Warp 4, Warp Server for e-business) Open the Device Driver
Install program in the OS/2 System/System Setup/Install-Remove
Folder.
3. Point the Device Driver Install file dialogue to the directory where you
have placed the new files in this package.
If your version of OS/2 is 4.00 or earlier, select the driver
named IBM IDE AND REMOVABLE MEDIA SUPPORT (V4.00).
If your version of OS/2 is 4.50 or later, select the driver
named IBM IDE AND REMOVABLE MEDIA SUPPORT (V4.50).
Click on INSTALL.
4. Reboot the system.
3.0 LARGE HARD DRIVE CONSIDERATIONS
____________________________________
3.1 SYSTEM HANG OR HARD DRIVE HESITATION
_________________________________________
The problem is the IDE chip sets on certain planars indicate that they support
Bus mastering but actually have a defect that prevents it from working cor-
rectly. The driver detects bus mastering support, enables busmastering and
attempts to use it. Some symptoms are:
o System will not boot with IBM1S506.ADD.
o CHKDSK command does not work properly.
o Hard drive stops or hesitates for minutes at a time.
This is a known problem with ThinkPad models 760E/ED/ELD/EL. However the
chip set can, and does, show up on planars of other manufacturers. To
correct:
1. Edit the CONFIG.SYS file on Diskette 1 or the boot drive.
2. Disable busmastering by adding the parameter /!BM to the driver; for
example:
BASEDEV=IBM1S506.ADD /A:0 /!BM /A:1 /!BM
3. Save the changes and reboot.
3.2 CANNOT MARK A PARTITION INSTALLABLE
________________________________________
There is a BIOS restriction that installable (startable) or bootable parti-
tions must be contained within the first 1024 logical cylinders of the disk.
This is true for both EIDE and SCSI hard disk drives. If FDISK fails to
allow a partition to be marked installable, the partition is either above
1024 cylinders or the partition spans the first 1024 logical cylinders of the
disk. Use FDISK to reduce the size of the startable or bootable partition by
sufficient MBytes. One way to calculate the correct partition size is to do
the following:
1. Edit your CONFIG.SYS and add the parameter /W or /V to the
BASEDEV=IBM1S506.ADD statement.
2. Save this change and reboot the system.
3. At initialization, record the far left hand column of numbers of the
geometry information under the OS2:log heading; for example, where
C=cylinder, H=head, and S=sector:
OS2:log
C 1027
H 63
S 128
4. Calculate the 1024 cylinder size in MBytes as ( H x S ) / 2. (round
down).
All bootable partitions must be contained within this size. In this
example the bootable partition must be contained in the first 4032
MBbytes of the disk and cannot exceed a single partition size of 4032
MBytes within this area. No bootable partition may extend beyond the
first 4032 MBytes.
5. Use FDISK to resize the partitions and reboot.
3.3 IPE ON BOOT, "TRAP D"
__________________________
If you experience a Trap D on boot when using the /FORCE parameter on
IBM1S506.ADD, and you have the NetFinity client installed, REMark out the
BASEDEV=NFDASD.FLT statement in CONFIG.SYS.
3.4 INCONSISTENCIES IN TOTAL DISK SPACE
________________________________________
This version of IBM1S506.ADD allows the detection and correct reporting of
some additional free space on certain drives. This "free space" is real and
now can be accessed, either by creating a new partition or using a program
such as PartitionMagic to add the free space to an existing partition. This
will not cause any corruption or inaccessibility to the data currently on the
disk.
3.5 APPLICATION INSTALL FAILS WITH "NOT ENOUGH SPACE"
______________________________________________________
FAT partitions under OS/2 are limited to a 2.1GB maximum size. HPFS parti-
tions are limited to a 64GB maximum size. However there is the magic number,
2,147,483,647 (2.1GB). This 2.1GB value is the maximum number that will fit
into a signed 32-bit integer. Some application software installation pro-
grams query OS/2 about the available remaining space on the partition and
save the result into a signed 32-bit integer. If more than 2.1GB is avail-
able there is an overflow, it appears no space is available, and the instal-
lation program refuses to continue. Two solutions are:
o Partition the remaining space into maximum 2GB partitions.
o Retain the large partition, but before trying to install software create
a large temporary file that reduces available space to less than 2.1GB.
After installation of the application delete the temporary file.
3.6 PERFORMANCE PROBLEMS WITH TWO DEVICES ON A SINGLE CHANNEL
______________________________________________________________
With certain planars, two devices attached to the same IDE channel will
exhibit performance problems when one device is a slow non-DMA device like a
CDROM or removable drive and the other device is a faster disk drive. To
alleviate this problem move the slow device to the other channel, where it is
the only device or is paired with a similar slow device.
If moving the device is not possible, then you can disable busmastering for
that channel, by specifying parameters on the driver IBM1S506.ADD in
CONFIG.SYS. For example, if you wanted to disable bus mastering for the sec-
ondary controller, you would add the parameters "/A:1 /!BM" to the
IBM1S506.ADD line in CONFIG.SYS.
3.7 INSTALL DISKETTES OR UTILITY DISKETTES HANG ON BOOT (APAR JR12065)
_______________________________________________________________________
Diskette 1 of the Install or Utility diskette sets may appear to hang on
boot, waiting for a removable media device to respond. To avoid:
1. Edit the CONFIG.SYS on Diskette 1 of the set
2. REMark out the basedev=ibmint13.i13 statement and save the file.
3. Reboot
3.8 ADDITIONAL PARAMETERS FOR IDE DEVICE DRIVER
________________________________________________
PARAMETER FUNCTION
/V Verbose Mode, displays controller status and drive geometry
information during OS/2 initialization.
/W Verbose Mode, displays controller status and drive geometry
information during OS/2 initialization. Initialization stops
after displaying the information for each device, with a
"Press Enter to Continue" message. It is possible that the
message buffer will overflow, resulting in a "Lost message"
message. This parameter works correctly on Warp 3 with FP35
or later systems and on Warp 4 systems with FP6 or later.
/FORCE Forces the emulation of an IDE CDROM drive, even though one is
not present during OS/2 initialization. For example, the
statements
BASEDEV=IBM1S506.ADD /A:1 /U:0 /ATAPI /FORCE
BASEDEV=IBMIDECD.FLT
support inserting an internal CDROM drive into the Ultrabay of
a ThinkPad 755CD after suspend, even though the drive is not
present during initialization.
/UDMA:x If the system is Ultra DMA capable, this parameter may be used to
limit the highest UDMA mode for an adapter or device. The limit is
specidied by "x", the value can be from 0 to 5. If the specified value is
higher than the maximum UDMA capability the parameter is ignored.
For example, the statement
BASEDEV=IBM1S506.ADD /A:1 /U:0 /UDMA:2
limits Ultra DMA mode for secondary channel master device to Ultra DMA mode 2.
/!UDMA This parameter is used to disable Ultra DMA modes of Bus Mastering but
leave DMA BM modes enabled.
/BM If the system is DMA capable, this parameter can be used to
enable or disable DMA for a specified device or adapter.
Example: "/A:1 /U:0 /BM" enables DMA for the Master device attached
to the secondary IDE channel. This can be useful to enable DMA on
ATAPI devices ( CD-ROM, LS120, ZIP, etc) that are defaulted to run in
PIO mode.
If a device is UDMA capable, using the "/BM" or "/UDMA" parameter is
recommended only if the IDE 80 pin flat cable is connected (instead of
the normal 40 pin flat cable). See section 5 for details on various
chipsets.
/!BM This parameter is used to disable Bus Mastering DMA for an adapter or device.
For example, the statement
"BASEDEV=IBM1S506.ADD /A:1 /!BM" disables BM DMA for secondary IDE channel,
"BASEDEV=IBM1S506.ADD /A:0 /U:1 /!BM" disables BM DMA for master device on
primary IDE channel
3.9 ADDITIONAL PARAMETERS FOR IBMATAPI.FLT AND IBMIDECD.FLT DRIVERS
____________________________________________________________________
PARAMETER FUNCTION
/C IBMATAPI.FLT and IBMIDECD.FLT have been modified so that they
no longer fill the request's Scatter/Gather (S/G) list with 0's for the commands
without a data tranfer phase, even if the particular command contains
a valid S/G list. To avoid possible unforseen compatibility problems
with older drivers, the /C parameter can be used to disables this new behavior.
4.0 REMOVABLE MEDIA SUPPORT
____________________________
Removable media devices attach to the system by a variety of interfaces.
IDE Supported with the OS/2 supplied IBM1S506.ADD device driver.
EIDE Supported with the OS/2 supplied IBM1S506.ADD device driver.
ATAPI Supported with the OS/2 supplied IBMATAPI.FLT device driver.
ATA Supported with the OS/2 supplied IBM1S506.ADD device driver.
Iomega Zip ATA drives are supported only as single partition
media and be configured in ATA Compatibility Mode; that is,
the jumpers are:
Master Slave
■ ─ ■
SCSI Small Computer System Interface. Supported with the OS/2
device driver for the SCSI controller to which the device is
attached. Many SCSI drivers are supplied with OS/2. If your
device is not recognized you must acquire the proper device
driver from the vendor. Consult
http://service.software.ibm.com/os2ddpak/html/diskands/index.htm.
To ensure correct operation with the Adaptec 1542 SCSI
adapter, partition sizes should always be less than 1GB.
PP Parallel Port attached devices are supported with vendor-
supplied drivers. The device driver must have an ".ADD"
extension for the media to be supported as partitioned remov-
able. For example, the Syquest Syjet Parallel drive is prop-
erly supported by the vendor-supplied EPST.ADD driver, the
Iomega Zip Parallel uses a vendor-supplied *.SYS driver and is
not supported by the partitioned removable support, and the
Syquest SparQ Parallel Iomega ZipPlus Parallel drives have no
OS/2 drivers at all.
USB Floppy and removable media devices (including CDROM, CD-RW devices)
are supported with the OS/2 supplied USBMSD.ADD device driver and
special CDROM class device driver USBCDROM.ADD.
Removable media devices are supported in one of two ways.
LARGE FLOPPY The LS-120 drive.
PARTITIONED All other magnetic removable media devices. This media
appears as a removable hard drive.
4.1 PARTITIONED REMOVABLE MEDIA
________________________________
Features of the partitioned removable media support are:
o Ability to partition removable media into multiple partitions
o Ability to format with either HPFS or FAT
o Ability to exploit caching performance
o Ability to use HPFS long file names
o Drag/drop capability through the Workplace drive icon
o Operating system protection to safely eject media through software eject
utility
o Assignment of drive letters to end of disk drive lettering chain to
prevent floating drive letters
o Ability to predetermine a fixed number of drive letters for multiple par-
titions for removable media
4.1.1 USING PROTECTED MEDIA
There are some restrictions on the use of these devices. These restrictions
deal with vendor-provided protection routines that either read/write or pass-
word protect the media.
You are unable to read or write HPFS formatted media that has been read,
write or password protected by a vendor supplied protection utility. For all
read and write protected media, remove the vendor protection prior to trying
to read or write to the media. For instance, if you do not remove the pro-
tection, you will get the following failures:
o If you issue a DIR command to write or password protected media, you will
receive a "Drive improperly stopped" error message.
o If you try to FORMAT a write or password protected media, you will
receive numerous error messages after a few minutes.
o If you try to use desktop operations like drag/drop folders/files, you
will receive numerous error messages.
Once the vendor supplied protection is removed, then these errors will no
longer occur.
4.1.2 ASSIGNMENT OF DRIVE LETTERS
New Algorithm: no filters assumed
Primary from fixed disk 1
Primary from fixed disk 2
Primary from fixed disk n
Extended from fixed disk 1
Extended from fixed disk 2
Extended from fixed disk n
Primary from removable disk 1
Extended(s) from removable disk 1
Primary from removable disk 2
Extended(s) from removable disk 2
Primary from removable disk n
Extended(s) from removable disk n
Lack of a primary partition (or Extended Partition only) is allowed. If no
media is present at boot, a single logical drive is reported. Note that some
drives, Syquest EZ135A for example, do NOT report correctly when no media is
present and will not be seen at all. If media with multiple partitions is
present at boot, then all partitions will be assigned drive letters.
4.1.3 CONFIGURING PARTITION SUPPORT (OS2DASD)
BASEDEV=OS2DASD.DMD [/LF] [/MP:(disk,count)[,(disk,count)]]
PARAMETER DESCRIPTION
/LF Forces all removable devices to be treated as Large Floppy
rather than partitioned media.
/MP Used to support allocating a predetermined number of
drive letters for a partitioned removable media device.
Note that this option only applies to partitioned
removable devices, and is ignored for any other device
type.
If the /MP parameter is used, then:
SUB-PARAMETER DESCRIPTION
DISK The integer disk number of the device, as reported by FDISK,
or the wildcard character * to specify all partitioned remov-
able devices.
COUNT The integer count of the number of partitions to reserve for
the device. If the wildcard character * is used, it specifies
a default number of drive letters to reserve for all parti-
tioned removable devices. Specifying a count for a particular
disk will override this default. Also, if there is media in
the device at boot time, and it has more partitions which are
eligible to receive drive letters than there are drive letters
reserved for the device through the /MP option, then the
number of drive letters reserved for the device will be
increased so that every eligible partition on the media will
have a drive letter.
If the /MP option is not used, the rules for determining the number of drive
letters reserved for a partitioned removable media device are as follows:
o If there is no media in the drive at boot time, or the media in the drive
has no valid partitions, then one drive letter is reserved for the
device.
o If there is media in the drive at boot time and the media has valid par-
titions which are eligible for drive letters, the number of drive
letters is equal to the number of eligible partitions on the media.
Media which is formatted in floppy mode is treated as a single partition
and allocated a single drive letter.
4.1.4 EJECTING THE MEDIA
OS/2 prevents the media from being ejected during data transfers or while
there are pending file transactions. The hardware manual eject button is
disabled during these times. The eject button will be enabled when the media
can be safely ejected.
There is a new OS/2 utility, EJECT.EXE, that provides a command line method
for ejecting the media. The Workplace Drive Icon now supports the software
eject option for these drives as well. For example, the command EJECT J:,
where J: is the logical drive letter of one of the partitions on the media
will cause the media to be ejected.
In order for this command to succeed there must be no open files on any of
the partitions on the media, nor any open search operations. Removable media
that is shared on a server cannot be ejected because of open file handles.
If it is necessary to remove the media without rebooting you may issue the
command CHKDSK J: /F, where J: is the logical drive letter of one of the par-
titions on the media. This will free the media and a subsequent EJECT J:
command will cause the media to be ejected.
4.1.5 LIMITATIONS OF PARTITIONED REMOVABLE MEDIA SUPPORT
o Applications that manipulate partitioned devices, such as file managers,
must be updated to test the fixed/removable flag in order to account for
partitioned removable devices. Such applications that have not been
updated treat the removable devices as fixed and the results are unpre-
dictable whenever media is not present.
o Due to the variability of hardware adapter support, installing to or
booting from partitioned removable media is not supported.
o Optical drive support is unchanged. Partitioned removable media and HPFS
do not support optical drives. You should continue to use OPTICAL.DMD
and OS2SCSI.DMD.
o The following devices were tested during the development of the Parti-
tioned Removable Media Support. Similar devices should operate cor-
rectly, as should other removable media devices that are made available
with a supporting ADD device driver.
- Iomega SCSI jaz 1GB and 2GB personal hard drives
- Iomega Zip ATA 100MB drives (supported only as single partition
media).
- Iomega Zip ATAPI 100 MB drives
- Syquest SCSI Syjet 1.5GB portable hard drives
- Syquest IDE Syjet 1.5GB portable hard drives
- Syquest SparQ IDE portable hard drives
4.2 LARGE FLOPPY REMOVABLE MEDIA (LS-120)
__________________________________________
The LS-120 drive supports 120-MB diskettes and is compatible with 3.5 inch
1.44-MB standard diskettes, with improved performance.
4.2.1 LIMITATIONS OF LS-120 SUPPORT
o If you have an LS-120 drive as drive B, then you must not format it from
an OS/2 windowed or full screen session where the current drive is drive
A or drive B. The current drive for an OS/2 windowed or full screen
session is given as part of the command prompt. For example, if the
command prompt in an OS/2 windowed or full screen session is [C:\], then
drive C is the current drive.
o If an LS-120 drive is installed in a ThinkPad docking station and a CD-ROM
or DVD drive is in the system UltraBay, you may get an error message
"A program in this session encountered a problem and cannot continue." when
a DOS window is opened. In this case edit the config.sys file and move the
statement BASEDEV=IBMIDECD.FLT so that it appears before the statement
BASEDEV=IBMATAPI.FLT in the file.
o The following devices were tested during the development of the Large
Floppy Removable Media Support. Similar devices should operate cor-
rectly.
- Imation LS-120
- SuperDisk LS-120
4.3 CD-ROM DEVICE MANAGER (OS2CDROM.DMD)
__________________________________________________
The CD-ROM Device Manager (OS2CDROM.DMD) has the following additional features:
o support read/write blocks for CD-RW media,
o support USB CD-ROM, CD-RW, DVD-ROM, DVD-RAM devices,
o low level formatting for CD-RW and DVD-RAM media,
o new IOCtl functions added:
Format and Verify Disk (Cat: 8, Funct: 45h),
Execute SCSI-command (Cat: 80h, Funct: 7Ah),
Write sectors (Cat: 80h, Funct: 52h),
Write and verify sectors (Cat: 80h, Funct: 53h),
OS2CDROM Features (Cat: 82h, Funct: 63h),
Get CD-ROM Drives (Cat: 82h, Funct: 60h).
o some IOCtl functions modified:
Get Device Parameters (Cat: 8, Funct: 63h),
Read sectors (Cat: 80h, Funct: 72h).
Category: IOCTL_DISK (08h)
Function: DSK_FORMATVERIFY (45h)
Description: Format and Verify Disk
Parameter Packet format:
struct FmtVerify_param {
UCHAR Command; // Bit 7: 0 = start formatting, 1 = format status
};
Data Packet format:
struct FmtVerify_data {
UCHAR Status; // Percent of formatted volume, if supported such feature
// 0, if not supported
};
Returns:
02h - device not ready
03h - bad command (this IOCtl function is not supported)
13h - unsupported parameter
14h - device already in use
a3h - uncertain media
Compatibility problem:
If IOCtl function DSK_FORMATVERIFY (45h) is used in an earlier version of OS2CDROM.DMD you get back return code 03h.
It means this version of OS2CDROM.DMD is not supported.
Category: IOCTL_CDROMDISK (80h)
Function: CDROMDISK_EXECMD (7Ah)
Description: Executes SCSI command
Parameter Packet format:
struct ExecCMD {
ULONG ID_code; // 'CD01'
USHORT data_length; // length of the Data Packet
USHORT cmd_length; // length of the Command Buffer
USHORT flags; // flags
UCHAR cmd_buffer[16]; // Command Buffer for SCSI command
};
flags:
#define EX_DIRECTION_IN 0x0001
#define EX_PLAYING_CHK 0x0002
EX_DIRECTION_IN 0, if transfer data to device, 1, if transfer data from device
EX_PLAYING_CHK 0, if don't check playing audio, 1, if device plays audio return error
Data Packet format:
Content of the Data Packet depends on the SCSI command. Length is defined by data_length field in the Parameter Packet.
Returns:
02h - device not ready
03h - bad command (this IOCtl function is not supported)
13h - unsupported parameter
14h - device already in use
Compatibility problem:
If IOCtl function CDROMDISK_EXECMD (7Ah) is used in an earlier version of OS2CDROM.DMD you get back return code 03h.
It means this version of OS2CDROM.DMD is not supported.
Category: IOCTL_CDROMDISK2 (82h)
Function: CDROMDISK2_FEATURES (63h)
Description: Returns features of the current DM version if applied to "CD-ROM2$" device name.
Parameter Packet format:
None.
Data Packet format:
ULONG driver_status;
#define FEATURE_USB_SUPPORT 0x00000001L
#define FEATURE_CDRW_SUPPORT 0x00000002L
#define FEATURE_EXECMD_SUPPORT 0x00000004L
Returns:
03h - bad command (this IOCtl function is not supported)
Compatibility problem:
If IOCtl function CDROMDISK2_FEATURES (63h) is used in an earlier version of OS2CDROM.DMD
you get back return code 03h. It means this version of OS2CDROM.DMD doesn't
support this function.
Category: IOCTL_CDROMDISK2 (82h)
Function: CDROMDISK2_DRIVELETTERS (60h)
Description: Returns drive letters for CD-ROM devices if applied to "CD-ROM2$" device name.
Parameter Packet format:
None.
Data Packet format:
struct DriveLetters {
USHORT DriveCount; // number of supported CD-ROM drives
USHORT DriveFirst; // letter of the first CD-ROM drive
};
Returns:
03h - bad command (this IOCtl function is not supported)
Compatibility problem:
This function didn't work correctly in previous versions of OS2CDROM.DMD.
Category: IOCTL_DISK (08h)
Function: DSK_GETDEVICEPARAMS (63h)
Description: Query device parameters
Parameter and data packet formats are standard but the values of 2 fields
of BIOSPARAMETERBLOCK depends on device and media type.
Media Descriptor contains information about media type:
MEDIA TYPE VALUE
CD-R 4
CD-ROM 5
DVD-ROM 6
DVD-RAM 7
CD-RW 8
DVD-R 9
DVD-RW 10
DVD+RW 11
DDCD-ROM 12
DDCD-R 13
DDCD-RW 14
DVD+R 15
If media allows writing but cannot be written at the moment (device cannot
write such media type or disk is write-protected) 128 is added to the value.
Device Type field contains information about device type. If device cannot write
on the disk inserted value 7 is returned. If device allows writing on the disk inserted
(DVD-RAM disk in the DVD-RAM device or CD-RW disk in the CD-Writer) value 8
is returned.
Category: IOCTL_CDROMDISK (80h)
Function: CDROMDISK_READLONG (72h)
Description: Reads the specified sectors in the data buffer.
Parameter Packet format:
struct ReadLong_param {
ULONG ID_code; // 'CD01'
UCHAR address_mode; // Addressing format of start_sector:
// 00 - Logical Block format
// 01 - Minutes/Seconds/Frame format
USHORT transfer_count; // Numbers of sectors to read. Must not be 0
ULONG start_sector; // Starting sector number of the read operation
UCHAR reserved; // Reserved. Must be 0
UCHAR interleave_size; // Not used. Must be 0
UCHAR interleave_skip_factor; // Not used. Must be 0
};
Data Packet format:
struct ReadLong_data {
UCHAR sector_data[SECTOR_SIZE]; // Sector read from the disk
// SECTOR_SIZE is 2352 for CD disks and 2048 for DVD disks
};
The media type is detected by means of IOCtl function DSK_GETDEVICEPARAMS (63h)
of category IOCTL_DISK (08h) (see above).
For DVD disk (DVD-ROM, DVD-R, DVD+R, DVD-RAM, DVD-RW and DVD+RW) sector_data
contains user data (2048 bytes).
For CD disk (CD-ROM, CD-R, CD-RW, DDCD-ROM, DDCD-R, DDCD-RW) sector_data consists of 2352 bytes.
Contents of the sector depends on the mode of the sector (byte 15 from the beginning
of the sector_data or field data_mode of the structure describing sector's contents (see below)).
Mode 0 is rarely used format as it is zero filled in the entire user data area.
Structure of the sector for Mode 0 is described by Mode_0_sector_data:
struct Mode_0_sector_data {
UCHAR sync_pattern[12]; // Data block sync pattern
UCHAR msf[3]; // Block MSF address
UCHAR data_mode; // Data mode = 0
UCHAR user_data[2336]; // User data (each byte is 0)
};
Mode 1 data is most prevalent in CD-ROM applications. Structure of the sector
for Mode 1 is described by Mode_1_sector_data:
struct Mode_1_sector_data {
UCHAR sync_pattern[12]; // Data block sync pattern
UCHAR msf[3]; // Block MSF address
UCHAR data_mode; // Data mode = 1
UCHAR user_data[2048]; // User data
UCHAR crc[4]; // CRC
UCHAR zero_fill[8]; // Zero bytes
UCHAR p_parity[172]; // P parity symbols
UCHAR q_parity[104]; // Q parity symbols
};
The Mode 2 form 1 format is regularly used in recorder applications and Video CD.
Structure of the sector for Mode 2 form 1 is described by Mode_21_sector_data:
struct Mode_21_sector_data {
UCHAR sync_pattern[12]; // Data block sync pattern
UCHAR msf[3]; // Block MSF address
UCHAR data_mode; // Data mode = 2
UCHAR sub_header1; // Sub-header, first copy
UCHAR sub_header2; // Sub-header, second copy
UCHAR user_data[2048]; // User data
UCHAR crc[4]; // CRC
UCHAR p_parity[172]; // P parity symbols
UCHAR q_parity[104]; // Q parity symbols
};
The Mode 2 form 2 format is regularly used in recorder applications and Video CD.
Structure of the sector for Mode 2 form 2 is described by Mode_22_sector_data:
struct Mode_22_sector_data {
UCHAR sync_pattern[12]; // Data block sync pattern
UCHAR msf[3]; // Block MSF address
UCHAR data_mode; // Data mode = 2
UCHAR sub_header1; // Sub-header, first copy
UCHAR sub_header2; // Sub-header, second copy
UCHAR user_data[2324]; // User data
UCHAR crc[4]; // Optional CRC
};
The difference between 2 forms of Mode 2 is defined by sub-header (Bit 5 of the field sub_mode):
struct Mode_2_sub_header {
UCHAR file_number; // Identifies the file to which the block belongs
UCHAR channel_number; // Playback channel selection
UCHAR sub_mode; // Bit 7: End of file
// Bit 6: Real time block
// Bit 5: 0 = form 1, 1 = form 2
// Bit 4: Trigger block
// Bit 3: Data block
// Bit 2: Audio block
// Bit 1: Video block
// Bit 0: End of record
UCHAR code_info; // Coding information
};
Returns:
02h - device not ready
03h - bad command (this IOCtl function is not supported)
08h - sector not found
10h - uncertain media
13h - unsupported parameter
14h - device already in use
Category: IOCTL_CDROMDISK (80h)
Function: CDROMDISK_WRITELONG (52h)
Description: Writes the data buffer to the specified sectors.
Parameter Packet format:
struct WriteLong_param {
ULONG ID_code; // 'CD01'
UCHAR address_mode; // Addressing format of start_sector:
// 00 - Logical Block format
// 01 - Minutes/Seconds/Frame format
USHORT transfer_count; // Numbers of sectors to read. Must not be 0
ULONG start_sector; // Starting sector number of the read operation
UCHAR reserved; // Reserved. Must be 0
UCHAR interleave_size; // Not used. Must be 0
UCHAR interleave_skip_factor; // Not used. Must be 0
};
Data Packet format:
struct WriteLong_data {
UCHAR sector_data[2048]; // Sector to be written to the disk
};
Returns:
02h - device not ready
03h - bad command (this IOCtl function is not supported)
08h - sector not found
10h - uncertain media
13h - unsupported parameter
14h - device already in use
Category: IOCTL_CDROMDISK (80h)
Function: CDROMDISK_WRITEVLONG (53h)
Description: Writes the data buffer to the specified sectors and verifies.
Parameter Packet format:
struct WriteVLong_param {
ULONG ID_code; // 'CD01'
UCHAR address_mode; // Addressing format of start_sector:
// 00 - Logical Block format
// 01 - Minutes/Seconds/Frame format
USHORT transfer_count; // Numbers of sectors to read. Must not be 0
ULONG start_sector; // Starting sector number of the read operation
UCHAR reserved; // Reserved. Must be 0
UCHAR interleave_size; // Not used. Must be 0
UCHAR interleave_skip_factor; // Not used. Must be 0
};
Data Packet format:
struct WriteVLong_data {
UCHAR sector_data[2048]; // Sector to be written to the disk
};
Returns:
02h - device not ready
03h - bad command (this IOCtl function is not supported)
08h - sector not found
10h - uncertain media
13h - unsupported parameter
14h - device already in use
4.4 CD-RW MEDIA SUPPORT IN IBMIDECD.FLT
________________________________________
IBMIDECD.FLT now supports IDE CD-Writers for reading and writing.
5.0 SUPPORTED IDE CONTROLLERS, KNOWN RESTRICTIONS AND LIMITATIONS
_________________________________________________________________
5.1 Supported chipset table
___________________________
The OS/2 IDE Controller Adapter Device Driver (IBM1S506.ADD)
supports the following PCI IDE Controllers
--------------------------------------------------------------
|Controller| Controller Info | Highest | Comments |
| Name | | UDMA | |
--------------------------------------------------------------
|CMD640 | First CMD640 | - | |
|RZ1000 | First RZ1000 | - | |
|I82371FB | INTEL82371FB | - | |
|PIIX3 | Intel PIIX3 IDE | - | |
|ORION | INTEL_ORION | - | |
|PIIX4 | Intel PIIX4 IDE | ATA 33 | |
|I82801AA | Intel 82801AA IO HUB | ATA 66 |See sec. 5.2.1 |
|I82801AB | Intel 82801AB IO HUB | ATA 33 | |
|I82801BA | Intel 82801BA IO HUB | ATA 100 |See sec. 5.2.1 |
|I82801CA | Intel 82801CA IO HUB | ATA 100 |See sec. 5.2.1 |
|I82801DB | Intel 82801DB IO HUB | ATA 100 |See sec. 5.2.1 |
|CMD646 | CMD 646 PCI to IDE | ATA 33 | |
|CMD648 | CMD 648 PCI to IDE | ATA 66 | |
|VIA586B | VIA 586B PCI to IDE | ATA 33 |See sec. 5.2.2 |
|VIA596B | VIA 596B PCI to IDE | ATA 66 |See sec. 5.2.2 |
|VIA686A | VIA 686A PCI to IDE | ATA 66 |See sec. 5.2.2 |
|SIS630 | SIS 630 PCI to IDE | ATA 66 |See sec. 5.2.3 |
--------------------------------------------------------------
5.2 Known restrictions and limitations
______________________________________
This section covers some restrictions and/or limitation for the IBM1S506.ADD
driver. These restrictions are mainly due to hardware problems.
DMA for ATAPI devices is disabled by default. The exception to this
is ATAPI devices on Intel I82801AA through I82801DB (ICH - ICH4)
chipsets.
DMA for the ATAPI device can be enabled by using the "/BM" parameter.
(To enable it see sec. 3.8) Example: "/A:1 /U:0 /BM" enables DMA for the
Master device attached to the secondary IDE channel.
If a device is UDMA capable, using "/BM" parameter is recommended only
if the IDE 80 pin flat ribbon cable is used (instead of standard 40 pin
flat cable).
5.2.1 Intel chipsets limitations
_________________________________
-for the 82801AA, 82801BA and 82801BA Mobile chipsets where there
are 2 devices on a channel, the fastest UDMA mode will be limited
to UDMA 2.
-on some systems with 82801DA chipset, there is problem with proper 40 pin
cable detection if 2 devices (one master and one slave device) is attached
to it. If you use 40 pin cable on primary or secondary channel, please
specify the parameter "/UDMA:2" in CONFIG.SYS for that channel. Usage of
this parameter is described above (see sec. 3.8). Examples:
use "/A:0 /UDMA:2" if you have a 40 pin cable on the primary channel
use "/A:1 /UDMA:2" if you have a 40 pin cable on the secondary channel
use "/A:0 /UDMA:2 /A:1 /UDMA:2" if you have a 40 pin cable on both channels.
-for 82801 series chipsets DMA is enabled for ATAPI devices by
default. It can be disabled using "/!BM" parameter (see sec. 3.8).
Example: "/A:1 /U:1 /!BM" disables DMA for Slave device attached
to secondary IDE channel.
5.2.2 VIA chipsets restrictions
_______________________________
The IBM1S506.ADD driver has the following limitations for the VIA IDE
controllers listed above:
- all of the VIA chipsets have a problem with 80 pin cable detection.
To ensure proper operation, please check to see what kind of IDE
cables are used. If you have a 40 pin cable on the primary or
secondary channel, please specify the parameter "/UDMA:2" in
CONFIG.SYS for that channel. Usage of this parameter is described
above (see sec. 3.8). Examples:
use "/A:0 /UDMA:2" if you have a 40 pin cable on the primary channel
use "/A:1 /UDMA:2" if you have a 40 pin cable on the secondary channel
use "/A:0 /UDMA:2 /A:1 /UDMA:2" if you have a 40 pin cable on both channels.
- any VIA chipset, which is not listed above, but has the same
PCI Device ID, will be detected as a VIA586B and UDMA performance mode will be
limited to UDMA 2 for any device that can operate above UDMA Mode 2.
5.2.3 SiS chipset limitation
_______________________________
For SiS IDE controllers listed above the following restriction applies:
If there is a UDMA device on the SiS Secondary channel and an 80 pin
ribbon cable is not detected, then the driver will limited the mode to
PIO for this channel.
6.0 COPYRIGHT AND TRADEMARK INFORMATION
________________________________________
The following terms are trademarks of International Business Machines
Corporation in the United States and/or other countries:
IBM
OS/2
ThinkPad
Ultrabay
Other company, product, and service names may be trademarks or service
marks of others.
THE INFORMATION PROVIDED IN THIS README IS PROVIDED "AS IS" WITHOUT
WARRANTY OF ANY KIND. IBM DISCLAIMS ALL WARRANTIES, WHETHER
EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY
WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING
THIS DOCUMENT, IBM GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS.
(C) Copyright IBM Corporation, 2001, 2002. All rights reserved.
U.S. Government Users Restricted Rights -- Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp.