wiki:Developer/Projects/Open/ImproveRaspberryPiBSP

Version 4 (modified by Gedare Bloom, on Mar 18, 2015 at 7:30:19 PM) (diff)

Add content for more descriptions about projects.

Improve the Raspberry Pi BSP

Mentors: Alan Cudmore

Students: Past, Present, and Potential Students

Status: Some work: GSoC2013.

Introduction: More peripherals and other improvements for Raspberry Pi. Peripherals we need to support (in order of increasing difficulty):

  1. GPIO -- Done, but not integrated.
  2. I2C Bus -- Done, but not integrated.
  3. SPI Bus -- Done, but not integrated.
  4. Secure Digital card read and write support (using the SPI bus)
  5. Graphics / RTEMS Framebuffer Support
  6. USB Device support
  7. HDMI/Graphics console (Requires framebuffer support and USB or GPIO connected keyboard device)
  8. Ethernet network support (Requires USB support)

Another issue is to come up with a more efficient way to load and debug code on the Raspberry Pi. Options include using U-boot or connecting a JTAG debug device to load code.

A related project is to add a BSP variant for the Raspberry Pi 2.

==RTEMS GSOC 2015 Raspberry Pi Ideas== Due to the plethora of interested students this year, we have created a few groups of project ideas. Students should focus on one project group, and more than one student may propose a project in the same group. There are plenty of *extra* tasks that we can create unique projects for all the students.

===Project Group 1 - Low Level Peripherals and SD Card===

  1. Complete SPI, GPIO, I2C integration
  2. Implement SD Card file system support ( using SPI )
  3. Implement Model identification detection and reporting
  4. Extra: Implement DMA support for I2C and SPI
  5. Extra: Implement support for second SPI device on A+/B+/Pi 2

===Project Group 2 - USB Support===

  1. Implement USB device support using libBSD
  2. Implement basic HID device support ( keyboard/mouse )
  3. Implement USB Ethernet Device support
  4. Extra: Implement USB on multiple Pi models
  5. Extra: Implement USB storage device support

===Project Group 3 - Raspberry Pi 2 Support===

  1. Implement correct arm architecture support (v7)
  2. Implement correct cache configuration
  3. Enable and test SMP configuration
  4. Extra: Integrate/Test? Low Level Peripheral Code
  5. Extra: Integrate/Test? USB Code

===Project Group 4 - Raspberry Pi Graphics support===

  1. Implement mailbox interface for graphics/framebuffer
  2. Implement RTEMS framebuffer device support
  3. Implement RTEMS framebuffer/graphics based console (output)
  4. Integrate RTEMS graphics library with RTEMS Source Builder with RPi example
  5. Extra: Determine how to manage Kernel/GPU memory split options
  6. Extra: Coordinate with USB project group to integrate USB input with HDMI console/shell

Goal: Concise statement of the overall goal of the project. Refine this initial statement to include: project deliverables (code, docs, testing), required/suggested methodology, standards of quality, possible goal extensions beyond the main objective.

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.

Resources: Current RTEMS developers, papers, etc that may help you in this project.

Acknowledgements

  • who helped and did work

Miscellaneous Sections

As the project progresses, you will need to add build instructions, etc and this page will evolve from a project description into a HOWTO.

References

  • TBD

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.