rtems, gsoc,

RTEMS GSoC 2019 Project Introduction: Add Framebuffer driver for Beaglebone Black

Vijay K. Banerjee (thelunatic) Vijay K. Banerjee (thelunatic) May 15, 2019 · 2 mins read
RTEMS GSoC 2019 Project Introduction: Add Framebuffer driver for Beaglebone Black
Share this

I got selected in GSoC 2019 with RTEMS!!

It’s already 2 weeks into the community bonding and the project has already taken high pace. In this post I will be penning down all the project related planning and the timeline. This is essentially a simplified version of the proposal and I will be using a similar format as well.

Project Abstract and Objectives

Beaglebone Black is a credit card sized System on Chip with AM335x 1GHz ARM Cortex-A8 processor. Peripherals include the Ethernet card, USB client, USB host, SD card, I2C, SPI and microHDMI. The HDMI in BBB is supported using a Ti TDA19988 HDMI Framer that is configured and controlled using the I2C Bus interface. My project is around this framer which communicates through i2c bus interface.

Currently the BBB I2C is properly supported in RTEMS but there’s no Framebuffer driver written for the Beagleboard BSP. The Project aims at adding the Framebuffer driver to the Beagleboard BSP, to enable output from display through the microHDMI port.

This Project aims to improve the Beaglebone Black (BBB) Board Support Package on RTEMS. The project intends to add HDMI Framebuffer support for the BSP. Currently, the users who use RTEMS on their BBB project, can’t use an HDMI display to their project due to the lack of a framebuffer driver in the BBB Board Support Package. The project is mainly focused on adding the Framebuffer driver, this will enable the users to attach a display with their BBB project that uses RTEMS. The end product of the project will be a graphic console. Once the framebuffer driver is working and a console can be accessed through the HDMI display, it will open the way for further addition of graphics libraries, like the mouse support.

Project Deliverables and a proposed timeline

Phase 1 : May 27 - June 28

  • Import HDMI framer driver codes from freebsd and make sure that it builds properly.
  • Figure out how the driver is working with the videomode and how is EDID info being read from the framer.
  • The freeBSD driver for HDMI uses I2C bus interface from the freeBSD source. Replace it with the RTEMS implementation of the I2C in the BBB BSP.
  • Get EDID information from the connected display

Phase 2 : June 29 - July 26

  • Write the Framebuffer driver for the Beagle BSP to initialize the framebuffer device.
  • Write the implementation to open the fb device by initializing the HDMI.
  • Write the IOCTL implementations for the fb device using I2C interface and freeBSD source codes.
  • Write basic test applications to test the working of the fb, like a pattern drawing application.

Phase 3 : July 27 - August 26

  • Get a working framebuffer console.
  • Complete the fb input-output.
  • Get the code merged to the master repo.
  • If the code is merged, explore the graphics library present in the RSB, and figure out if that can be used to get something like a GUI.

The work has already begun, as I mentioned and I’m looking forward to a challenging summer with a lot of learning opportunities.

Thank you!