> How do I define the proper values for Mask and MaxTransfer for a given
> controller, file system and HD combination?
There are two essentail tools you can use. They are guesswork and
Here is what the PFS3 docs say. This is not FS specific, but should also
apply to FFS:
The DMAMask indicates which memory areas the device can access with DMA. High
speed devices like disk controllers can read and write data from memory
without any CPU load. This is called Dynamic Memory Access or DMA.
Unfortunately some devices can only access part of the memory. Any ZorroII
board, for instance, can only access the lower 16MB of memory. The
corresponding value for Mask is 0xfffffc. ZorroIII boards can access all
memory, so for those 0xfffffffc should be used. Double check what kind of
board is used, since if the Mask is set wrong it can result in serious
problems with the disk.
The mask is also used to control the alignment of any buffers used to access
the device. Alignment to longword is recommended. Some controllers will work
without alignment, but even those will perform a lot better with aligned
memory. Longword alignment is selected by ending the mask with a 'c'.
For most boards the best Mask settings are:
Zorro II board: use 0xfffffc.
Zorro III board: use 0xfffffffc.
If you don't have memory problems you should use the same mask as FFS/PFS2
did. The mask is filesystem independent.
For the A1200/A4000 internal IDE controller use 0xfffffffc
For ZorroIII boards (Fastlane, Phase5, 4091) use 0xffffffff
For ZorroII boards and Oktagon 4008 use 0x7ffffffc
If you experience problems with the Mask, you can try other values.
This setting indicates how much data can be sent to the device in one go.
Some drives cannot handle very large blocks of data. By specifying the maximum
the device can handle here, problems are prevented. Most scsi devices can
handle a MaxTransfer of 0xfffe00, which is 16MB. For some IDE devices
0x1fe00 (130K) is necessary. If files greater than 64K get corrupted then
reduce it to 0xfe00.
The MaxTransfer must be divisible by the sector size (usually 512) due to a
bug in the Workbench format code. This is done by ending the value with 'e00'.
For example: instead of 0xffffff, use 0xfffe00.
Use the same maxtransfer as FFS/PFS2 did. Maxtransfer is filesystem independent.
Auckland, New Zealand
#The Unix Guru's View of Sex
unzip ; strip ; touch ; grep ; finger ; mount ; fsck ; more ; yes ; umount ; sleep
Harvesters, send spam directly to: