There are formatting requirements for CF cards which need to be met in order to ensure proper operation.
For more System Ace CF Articles and other Configuration Related Articles, see (Xilinx Answer 34104)
For the System ACE controller, a problem occurs when CF cards that are formatted with one sector (512 bytes) per cluster are used.
When the Windows OS formats the CF card, it uses a formula to determine an optimal sectors-per-cluster value based on the size of the CF partition and other values.
This is known behavior with Windows 2000 and 32 MB CF cards, and Windows XP appears to behave similarly. (Other operating systems, including Windows NT and Windows 98, do not exhibit this problem.)
FAT12 or FAT16 Format:
The System ACE CF controller does not recognize the FAT32 file system.
It was designed to recognize the FAT12 or FAT16 formats.
Reserved Sectors :
Reserved sectors are the number of sectors in the reserved region of the volume starting at the first sector of the volume.
The System ACE CF controller reads a CF card that is formatted with only one reserved sector in the Master Boot Record, as specified in the Microsoft White Paper FAT: General Overview of On-Disk Format:
"For FAT or FAT12 and FAT16 volumes, this value should never be anything other than 1. Microsoft operating systems will properly support any non-zero value in this field."
In Windows XP, the DOS format command automatically formats the CF card with 2-8 reserved sectors depending on the density of the CF card.
(Because other operating systems such as Windows 2000, Windows NT, and Windows 98, use the default of one reserved sector when formatting, there is not a problem when formatting the CF card using these operating systems.)
For Windows 2000, you can correct the formatting problems described above by formatting the CF card with a sector-per-cluster size of more than one (UnitSize greater than 512), and specifying the FAT format.
You can do this by using the command-line "format" command with the "/fs:" and "/a:" options as follows:
format volume [/fs:file-system] [/a:UnitSize]
UnitSize should be specified as 1024, 2048, 4096, 8192, 16K, 32K, 64K, (128K, 256K for sector size > 512 bytes).
- For CF cards 0 MB - 64 MB: format D: /FS:FAT /A:1024
- For CF cards 65 MB - 128 MB : format D: /FS:FAT /A:2048
- For CF cards 129 MB - 255 MB : format D: /FS:FAT /A:4096
- For CF cards 256 MB - 511 MB : format D: /FS:FAT /A:8192
- For CF cards 512 MB - 1023 MB : format D: /FS:FAT /A:16K
- For CF cards 1 GB : format D: /FS:FAT /A:32K
- For CF cards 2 GB - 4 GB : format D: /FS:FAT /A:64K
Note: The disk geometry determines the point at which a larger cluster size is needed because the number of clusters on the volume must fit into 16 bits.
The third problem listed above is a problem specifically caused by formatting the CF card using the DOS format command on Windows XP because more than one reserved sector is automatically created.
The DOS format command does not allow you to specify the number of reserved sectors needed, so an alternate disk formatting tool should be used.
Some CF card readers are delivered with a disk formatting (or disk initialization) utility included that formats the CF card with the expected default value of one reserved sector.
You can install this utility or other third-party disk format utilities (that allow you to specify the number of reserved sectors) on your Windows XP machine and use it to format the CF card.
Alternatively, you can use a non-Windows XP machine or a digital camera to format the CF card.
Once the CF card is correctly formatted, you can use Windows XP to perform normal file access (read/write) operations without causing any additional problems.
The "mkdosfs" formatting utility has been successfully used to correctly re-format the CF card for use with the SystemACE CF controller when using a Windows XP machine.
This freeware is available for download at:
Use the default "mkdosfs" command to format the CF card.
c:\> mkdosfs D:
The default "mkdosfs" command automatically formats the CF card in either FAT12 or FAT16 format, with at least two sectors-per-cluster, and only one reserved sector.