Introduction

Hello and Welcome to the blog on “96Boards Upstreaming Summary”. This blog will summarise the 96Boards upstreaming efforts for the first half of 2019 in Linux kernel, U-Boot, Trusted Firmware Zephyr RTOS, and MRAA.

Why 96Boards is involved in upstreaming activities?

Those who are following my recent blogs will definitely have this question in their mind. 96Boards doing the upstreaming support for our boards is definitely not the goal of the 96Boards project itself. Then why we started doing it in recent times? The reason is simple, we want our users to run latest and greatest software on our boards, which can only be achieved when all of the softwares are upstreamed to respective opensource projects (Yeah, just rebasing to latest release won’t work well).

Then the next question which might arise is, “Can you guys do the upstream support for all 96Boards?” Definitely NO! As said earlier, this is not our job at all. As expressed multiple times, we rely on the partners to take care of the upstream support for their boards. 96Boards doesn’t have resources to take of the upstream support for all of our boards which partners can’t handle. But this stance created inconvenience for the community users since no one is doing the upstream support for the boards, also the vendors don’t care about updating the kernel regularly and as a result, most of our boards were running age old kernels and bootloaders.

Then we had a big discussion inside the team on how to tackle this scenario. At the end of the discussion, we came to a conclusion that 96Boards will provide basic upstream support for the boards which are more attractive to the users.

Till then, we have been involved heavily in the upstreaming activities for the selected 96Boards and the situation has improved a lot! Following are some of the achievements we had in the upstreaming space for the first half of 2019.

Linux kernel

Following are the functionalities we have upstreamed (also in the process) to Linux kernel for the first half of 2019.

Hikey970

  • Upstreamed UFS controller support
  • Upstreamed MMC controller support
  • Upstreamed WiFi and BT support
  • Upstreamed Reset controller support

Dragonboard410c

  • Fixed the OV5645 I2C address issue
  • Standardized LED labels

Bubblegum96

  • Upstreamed Reset controller support
  • Submitted patches for adding MMC controller support (Under review)
  • Submitted patches for adding PMIC ATC2601 (Under review)

OrangePi i96

  • Upstreamed initial RDA Micro RDA8810PL SoC and OrangePi i96 board support

Sophon Edge

  • Upstreamed initial Bitmain BM1880 SoC and Sophon Edge board support
  • Upstreamed GPIO controller support
  • Upstreamed Pinctrl support
  • Submitted patches for adding Common clock support

Chameleon96

  • Upstreamed initial board support

Meerkat96

  • Upstreamed initial board support

Oxalis

  • Upstreamed initial board support

Rock960

  • Upstreamed WiFi and BT support

Ficus

  • Upstreamed WiFi and BT support

MediaTek X20

  • Upstreamed Pinctrl support

Avenger96

  • Upstreamed initial board support

IMX290 CMOS Image Sensor

  • Submitted patches for adding V4L2/Media driver

U-Boot

Following are the functionalities we have upstreamed (also in the process) to U-Boot for the first half of 2019.

HiKey

  • Converted HI6220 MMC driver to driver model
  • Modified the board support to use eMMC for storing environment variables

Avenger96

  • Upstreamed initial board support

ARM Trusted Firmware-A

Following are the functionalities we have upstreamed to TF-A for the first half of 2019.

Avenger96

  • Upstreamed initial board support

Zephyr RTOS

Following are the functionalities we have upstreamed to Zephyr project for the first half of 2019.

STM32 Sensor Mezzanine

  • Upstreamed on-board PWM support
  • Upstreamed on-board DMIC support
  • STM32 DMA driver bug fix

WisTrio

  • Upstreamed initial board support

Avenger96

  • Upstreamed initial board support

Meerkat96

  • Upstreamed initial board support

MRAA

Following are the functionalities we have upstreamed to MRAA for the first half of 2019.

Rock960

  • Added Chardev support

Core MRAA

  • Added a new GPIO API for using line names in kernel

Conclusion

So this ends the quick summary of the upstreaming efforts of the 96Boards team for the first half of 2019. As you can see, we provided basic board support for the boards which are creating interests among the community with limited resources. We will continue to go with the same approach for the later half the year also.

In the next blog, I’ll try to predict what we are trying to achieve in second half of 2019.