wiki:GSoC/2016/LowLevelPeripherals&SDcard

Version 1 (modified by Mudit Jain, on Apr 25, 2016 at 10:13:44 AM) (diff)

--

Low Level Peripherals and SD Card Support

Mentors:

André Lousa Marques, Martin Galvan, Alan C

Student:

Mudit Jain

Abstract

The idea aims to complete the implementation for the SD Card file system support that was previously initiated. In addition to that, I also plan on implementing DMA support for I2C and SPI, support for second SPI device and model identification, detection and reporting.

Project Description

The project entails the following topics :

  1. SD Card file system support :

The raspberry pi uses an EMMC (External Mass Media Controller) module by Arasan to operate the SD card host controller. It is compliant to the SD Host controller specification 3.0, and since rtems-libbsd already as a SDHCI and MMC/SD drivers they can be used with the Pi to access the SD card. A approach would be to use the FreeBSD SD/MMC stack (such as the one Sebastian Huber ported to RTEMS which is also based on the simplified specifications, since it provides already a proven and tested implementation of the protocol)

  1. DMA support for I2C and SPI :

DMA stands for 'Direct Memory Access' and it is a feature of micro controllers that allows the hardware to access directly memory and functionalities in parallel to your code. This not only speeds up the speed of SPI (since it is completely hardware operated) but at the same time allows you to run code in parallel of the data transmission.

  1. Implement support for second SPI device on A+/B+/Pi 2
  1. Model Identification, Detection and Reporting : This will be implemented using the mailbox interface which will be able to determine the size dynamically. This will also give the user a method to the user to get the Pi version.

Requirements:

List the requirements and level of expertise you estimate are required by the developer tackling this project will have to have: Required level of programming language(s), specific areas of RTEMS or tools, level of familiarity with RTEMS, cross-development, GNU/Linux, etx., development/documentation/testing tools, mathematical/algorithmic background, other desirable skills.

Other sections

If you have more to say about the project that doesn't fit in the proposed sections of this template, feel free to add other sections at will.