GSOC 2015: Raspberry Pi Low Level Peripherals and SD Card

André Marques andre.lousa.marques at gmail.com
Wed Mar 25 08:49:09 UTC 2015


Hello everyone,

My GSoC proposal entitled "Raspberry Pi Low Level Peripherals and SD 
Card" can be found for review at:

https://docs.google.com/document/d/11K0qU3OsbSMhNYkTTWt4kitAbd6uuJBcMfA_07Lg6j8

One issue I would like to discuss here is related to the SD card 
support, which as exposed on the proposal the GPIOs to which the SD card 
is connected internally do not have SPI hardware capabilities, meaning 
that to access the card via SPI mode it would have to be bit-banged on 
those GPIOs (a problem on performance). This is more detailed on the 
proposal, but another alternative would be to use the SD mode instead, 
with the help of the PI's EMMC module, and the SD simplified 
specifications as documentation for the SD protocol. I have already used 
this setup with success in the past, and it should have better 
performance. In this setup the FreeBSD SD/MMC stack may be used (such as 
the one Sebastian Huber ported last year -> 
https://git.rtems.org/sebh/rtems-libusb.git/tree/rtems/freebsd/dev/mmc?id=3c82a1500da3192de2504a1360e065fd84a1f3a0) 
which implements the SD protocol also based on the simplified specs. 
This would help avoiding implementing the protocol from scratch (which 
is sort of what I did in my previous effort with the SD card and the PI) 
and would be better for maintenance probably.

My issue is then on the feasibily (licence wise) of having the FreeBSD 
SD stack or having code based on the SD Simplified Specs on the RTEMS tree.

In SPI mode an implementation of the protocol can be found in 
libchip/i2c/spi-sd-card.*, which could in that case be used/improved 
further during the project, if it is decided it is best to use SPI mode. 
This uses the libi2c API, which is deprecated for I2C but, as I 
understand, still stands as the API for SPI (information about that 
would also be appreciated).

Thanks,
André Marques.


More information about the devel mailing list