I would like to increase the read throughput of the CF card on my custom uClinux based BF537 board. We have the CF card configured for True IDE Mode. It works well but slower than expected. Here are the results of a read test:
root:/> hdparm -t /dev/sda1
Timing buffered disk reads: 3 MB in 3.13 seconds = 981 kB/s
We should be able to get much more than 1MB/second. It seems like the card is operating in PIO0 mode but should be able to operate in PIO4. Here is what happens when I load the driver using this command:
scsi0 : pata_platform
ata1: PATA max PIO0 no IRQ, using PIO polling mmio cmd 0x20300020 ctl 0x2030001c
ata1.00: CFA: SanDisk SDCFX-4096, HDX 3.20, max MWDMA2
ata1.00: 8027712 sectors, multi 0: LBA
ata1.00: configured for PIO
scsi 0:0:0:0: Direct-Access ATA SanDisk SDCFX-40 HDX PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 8027712 512-byte logical blocks: (4.11 GB/3.82 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] Attached SCSI removable disk
When I set the pata_platform module parameter pio_mask=31 then the above reads: "PATA max PIO4" but the transfer speed does not improve. After looking through the pata_plaform driver a bit it doesn't look like it ever tries to send the ATA command to set the PIO mode.
Please provide instructions on how to increase the read performance of the CF card in True IDE Mode. We are currently at 8Mbps but I would like to get as close to 13Mbps as possible.