It is not worth using a SDIO driver with such a small gain. A good DMA SPI driver would be about four times faster than the current SPI driver.
A SDIO driver does not help much if does it does transfers like the Teensy DMA driver.
Only huge transfers go fast with modern cards. I was able to do that on Teensy with the FIFO driver.
The Teensy FIFO driver starts a transfer and keeps the SD in block transfer mode as long as possible.
Modern SD cards have huge flash pages and pipe-lined buffering so they need huge transfers to go fast.
That is the reason for dedicated SPI mode. In shared SPI mode block mode ends when I raise chip select.
Here is an example that demonstrates how important correct handling of block transfers is.
This is a Due with a DMA SPI driver I wrote.
In dedicated SPI mode where I maintain block transfer mode:
FILE_SIZE_MB = 5
BUF_SIZE = 512 bytes
Starting write test, please wait.write speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
4524.89,2806,110,111
4528.99,127,110,111Starting read test, please wait.
read speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
4508.57,113,111,111
4516.71,113,111,111
Here is shared SPI mode with same SPI driver and SPI clock but small block transfers because of shared SPI.
FILE_SIZE_MB = 5
BUF_SIZE = 512 bytes
Starting write test, please wait.write speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
456.70,33478,949,1119
457.16,31790,949,1118Starting read test, please wait.
read speed and latency
speed,max,min,avg
KB/Sec,usec,usec,usec
1056.86,1798,338,482
1058.87,2369,338,481
About a factor of ten fasrer for write and over four for read.
One more thing, note that shared mode can have a write latency of over 30 ms. Dedicate write latency is much shorter.