NAME¶
altera_sdcard
—
driver for the Altera University Program Secure Data
Card IP Core
SYNOPSIS¶
device altera_sdcard
In
/boot/device.hints:
hint.altera_sdcardc.0.at="nexus0"
hint.altera_sdcardc.0.maddr=0x7f008000
hint.altera_sdcardc.0.msize=0x400
DESCRIPTION¶
The
altera_sdcard
device driver provides
support for the Altera University Program Secure Data Card (SD Card) IP Core
device. A controller device,
altera_sdcardcX
, will be
attached during boot. Inserted disks are presented as
disk(9) devices,
altera_sdcardX
, corresponding to the controller
number.
HARDWARE¶
The current version of the
altera_sdcard
driver supports the SD Card IP core as described in the August 2011 version of
Altera's documentation. The core supports only cards up to 2G (CSD 0); larger
cards, or cards using newer CSD versions, will not be detected. The IP core
has two key limitations: a lack of interrupt support, requiring timer-driven
polling to detect I/O completion, and support for only single 512-byte block
read and write operations at a time. The combined effect of those two limits
is that the system clock rate,
HZ
, must be
set to at least 200 in order to accomplish the maximum 100KB/s data rate
supported by the IP core.
SEE ALSO¶
disk(9)
Altera University Program Secure
Data Card IP Core, Altera Corporation - University
Program,
ftp://ftp.altera.com/up/pub/Altera_Material/11.0/University_Program_IP_Cores/Memory/SD_Card_Interface_for_SoPC_Builder.pdf,
August 2011.
HISTORY¶
The
altera_sdcard
device driver first
appeared in
FreeBSD 10.0.
AUTHORS¶
The
altera_sdcard
device driver and this
manual page were developed by SRI International and the University of
Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
(“CTSRD”), as part of the DARPA CRASH research programme. This
device driver was written by
Robert N. M.
Watson.
BUGS¶
altera_sdcard
contains a number of
work-arounds for IP core bugs. Perhaps most critically,
altera_sdcard
ignores the CRC error bit
returned in the RR1 register, which appears to be unexpectedly set by the IP
core.
altera_sdcard
uses fixed polling intervals
are used for card insertion/removal and I/O completion detection; an adaptive
strategy might improve performance by reducing the latency to detecting
completed I/O. However, in our experiments, using polling rates greater than
200 times a second did not improve performance.
altera_sdcard
supports only a
nexus
bus attachment, which is appropriate for
system-on-chip busses such as Altera's Avalon bus. If the IP core is
configured off of another bus type, then additional bus attachments will be
required.