Support has been added for the Arduino Due.

You must connect your SD socket to the 6-pin "ISP connector".  You must have short
wires or a custom shield to run at full speed, 42 MHz.

If you have problems use a lower SPI speed.  You can also check for SPI
errors by editing SdFatCobfig.h to enable CRC checking.

You should be be able to use any digital pin for SD chip select.  The default
pin is SS which is pin 10 for Due.

The default SPI rate is 42 MHz.  You can set SD chip select and the SPI rate
by calling:

bool SdFat::begin(uint8_t chipSelectPin, uint8_t spiRateID);

The second argument, spiRateID, sets the SCK rate and can be these symbols:

SPI_FULL_SPEED - 42 MHz

SPI_DIV3_SPEED - 28 MHz

SPI_HALF_SPEED - 21 MHz

SPI_DIV6_SPEED - 14 MHz

SPI_QUARTER_SPEED 10.5 MHz

SPI_EIGHTH_SPEED 5.25 MHz

Large reads and writes use fast multi-block SD read/write commands. For optimal
speed, use records that are a multiple of 512 bytes.

Run the bench.ino example to explore large read/write speed.

Replace this line:

#define BUF_SIZE 100

With a large size like this:

#define BUF_SIZE 8192

For best results the record size should be a power of two (512, 1024, 2048,
4096, 8192). In this case records will be aligned with FAT cluster boundaries.

Since Due is fast, increase the test file size by editing this line:

#define FILE_SIZE_MB 5

Run the PrintBenchmark.ino example to compare text formatting speed of Due
with AVR boards.

A number of options are available to configure SPI for the Due board.

You can use the standard SPI.h library by editing SdFatConfig.h and set
USE_ARDUINO_SPI_LIBRARY nonzero.  You must include SPI.h in your sketch.

Several options can be set in Sd2Card.cpp in the USE_NATIVE_SAM3X_SPI
section.  These include USE_SAM3X_DMAC to control use of DMA and
USE_SAM3X_BUS_MATRIX_FIX to change Bus Matrix operation.  Most people
will not need to change these.