ATA Hard Drives Greater Than 4 Gigabytes
There is a problem with large capacity ATA hard drives and SCSI disk mode on PowerBook models prior to the PowerBook G3 (introduced in November of 1997.) The affected machines include the PowerBook Duo 2300c, the PowerBook 5300 family, the PowerBook 190 family, the PowerBook 1400 family, the PowerBook 3400 family, and the PowerBook 2400 family. The problem only affects such machines because they have ATA hard drives. PowerBooks with SCSI hard drives are not affected by this problem.
This problem only occurs in the following situation:
Due to a bug in the ROM support for SCSI disk mode, SCSI disk mode only looks at 32 bits of offset in SCSI commands. This means that ATA drives larger than 4 gigabytes will cause "wrapping" of the offset, and data will be read or written to an incorrect location.
The PowerBook G3 and later PowerBooks have a fix built into the ROM which prevents this problem from occurring. Such PowerBooks can safely be used in SCSI disk mode with a drive greater than 4 gigabytes in capacity.
All the PowerBooks listed above work correctly in SCSI disk mode with the drive that originally came with the PowerBook. This is only a problem if you upgrade older PowerBooks to a drive greater than 4 gigabytes in capacity, and that drive is an ATA drive.
This problem does not affect SCSI disks, only ATA disks in SCSI disk mode. Using such an upgraded PowerBook as a Macintosh computer (i.e. normally) will continue to work correctly. This is not a disk driver issue. Switching to a third party driver will not fix this problem. Partitioning the drive will not solve this problem. When the PowerBook is in SCSI disk mode, the only code running on the PowerBook is that which translates SCSI to ATA.
Unfortunately, this bug cannot be fixed on the affected machines. The bug is in the ROM of these machines. There is no Mac OS loaded when the machine is in SCSI disk mode, so there is no patching mechanism available.
To reiterate, this is not a problem with the any of the drives which originally shipped as part of these PowerBooks. None of these PowerBooks shipped with a drive greater than 3 gigabytes in capacity. The problem first showed up when drives greater than 4 gigabytes in capacity became commonly available. This occurred about the same time as the PowerBook G3 was under development.
There is no fix available to this problem. SCSI disk mode is a feature implemented in the Macintosh ROM. The PowerBook does not boot into the Mac OS, so there is no patching mechanism available to work around this problem. To avoid this problem, you have two choices.
This problem only affects PowerBooks prior to the PowerBook 3400 (introduced in February 1997) with replacement ATA drives. There is a bug in the SCSI disk mode code of the PowerBook 5300 family, the PowerBook 2300c, the PowerBook 1400 family and the PowerBook 190 family. To get the size of the ATA HD in these machines, the SCSI disk mode code gets two 16-bit values from the ATA driver that contain the size of the device in 512-byte blocks. The math to combine these two values was sign-extending the lower-16 bits, and could incorrectly calculate the size of the device (in other words, the size was always smaller than it should be). The symptom was that you would get I/O errors at the end of the last volume on the device when the SCSI disk mode code would think you were trying to access blocks off the end of the device. The last 16 megabytes of the drive will report I/O errors when you try to access that data area.
This can happen with any drive that has greater than 0x8000 blocks (i.e. greater than 16 megabytes capacity), when bit 15 of the number of blocks is a 1. The 2 gigabyte drive selected for the PowerBook 3400 was the first drive Apple encountered that met this criteria. This is why the problem was not found and fixed before the introduction of the PowerBook 3400.
Apparently all previous drives shipped with our PowerBooks just happened to avoid this problem. While this is fixed with the PowerBook 3400, 2400 and G3 as well as future PowerBooks, it will exist for all previous PowerBook models with ATA drives. If you are upgrading the hard disk of a PowerBook in the PowerBook 5300 family, the PowerBook 2300c, the PowerBook 1400 family and the PowerBook 190 family, you should check to see that the drive in question does not meet the criteria mentioned above.
Sample code demonstrating how to detect this problem will be available on the developer CD.
A workaround is to create an unused partition containing the last 16 megabytes of the drive in question, since this is the area which is incorrectly calculated as being past the end of the drive. You can use Drive Setup for this purpose. This will involve destroying the default partitioning of these drives, so this is a drastic step.
Again, this bug cannot be fixed on the affected machines. The bug is in the ROM of these machines. There is no Mac OS loaded when the machine is in SCSI disk mode, so there is no patching mechanism available.
Contact ADC | ADC Site Map | ADC Advanced Search
|For information about Apple Products, please visit Apple.com.|
Contact Apple | Privacy Notice
Copyright © 2002 Apple Computer, Inc. All rights reserved.