GSoC.
GSoC Conclusion : GSoC'21 officially kicked off on the 7th of June. The ideation, programming, mentorship, and consequently GSoC come to an end today, on the 16th of August. This blog aims to be a brief report on all that has happened since.
The Raspberry Pi BSP
Before :
-
The RTEMS 5 branch boots up on a couple of models. SMP doesn’t work at all.
-
RTEMS 6 branch doesn’t boot up on any model.
-
No idea about the config/firmware to be used, can’t test peripherals on this branch.
Current State :
-
The RTEMS 5 and 6 branches boot up on all the models except the Pi 4.
-
SMP works.
-
Support for SPI, I2C and the GPIO pins are tested. We also know the limitations and have example drivers for the same.
Startup Issues :
The BSP not booting up had more than one aspect to it, that we later realised.
The configurations in the config.txt file, the fix for which we’ve added to Docs.
The correct firmware version, which has been updated in the Docs as well.
The issues with the ARMv6 Board specific Startup code, the patch for which has been applied here.
The yaml files for FDT support missing, which were causing problems with the waf build. The patch for which has been applied here.
GPIO :
We tested the GPIO using some LEDs and switches. The GPIO on the BSP works fine. We had a tentative patch for the GPIO code to add some small functionalities, but we have decided against applying that patch, more details about the same can be found in the GPIO blogs. The polled and interrupt driven tests that we used can be found in the gpio_cmd
and gpio_irq_cmd
files here
I2C :
We tested I2C on the BSP using a BMP280 Temperature sensor. The I2C works fine. The drivers and the application that we wrote can be found in the drivers/BMP280
and bmp280_cmd
files here
SPI :
We tested SPI on the BSP using a BMP280 Temperature sensor. The SPI works fine too. The drivers and the application that we wrote can be found in the drivers/BMP280-SPI
and bmp280_spi_cmd
files here
SMP :
The SMP not working can be attributed to changes to the firmware from the bcm/rpi that the users are not aware about. A simple one line patch to the SMP code got the SMP working again. The patch can be found here
Further Work :
The Raspberry Pi BSPs are now in a pretty good shape. Further, work is to to be done on adding support for the Pi 4 as well as Adding Libbsd support for the BSP.