Amongst the multiple customer projects we are currently working on that rely on i.MX6 based platforms, one of them is using the SECO i.MX6 µQ7 System on Module as its heart. Unfortunately, the SECO Linux BSP relies on old U-Boot and Linux kernel releases, which we didn’t want to use for this project.
Therefore, Bootlin engineer Boris Brezillon has ported the mainline U-Boot bootloader on this platform, and contributed the corresponding patches. These patches have been merged, and the support for this platform is now part of the 2015.04 U-Boot release. To build it, simply use the secomx6quq7_defconfig configuration.
The work behind these patches was funded by ECA Group.
The Linux RTC subsystem supports the Real Time Clock drivers for a large number of platforms and I2C or SPI based Real Time Clocks: it contains about 140 different device drivers, plus the RTC core itself. The current maintainer, Alessandro Zummo, had unfortunately very little time to address all the patches that were sent, and many of them where usually handled by Andrew Morton, acting as a fallback for various parts of the kernel that are not enough actively maintained.
To address this lack of maintainer time, Bootlin engineer Alexandre Belloni recently became a co-maintainer of the RTC subsystem, as can be seen in this patch to the MAINTAINERS file. Alexandre has already started his work by cleaning up the patchwork instance listing all the pending RTC patches, reducing the number of pending patches from 2843 to 436, actively applying new patches being posted, and reviving old patches that never got any attention.
Up to the 4.1 release included, RTC patches will flow to Linus Torvalds through Andrew Morton, but starting from Linux 4.2, Alexandre will start sending his pull requests directly to Linus.
The Bootlin engineering team is back from a busy week at the Embedded Linux Conference 2015 in San Jose, California, last week. During this conference, we presented several talks, a BoF, and participated to the technical showcase with a Buildroot related demo:
Maxime Ripard gave a presentation about the DMAengine subsystem, and his slides are available as PDF.
Thomas Petazzoni gave a talk about The Device Tree as a stable ABI: a fairy tale?, and the slides are available as PDF.
Boris Brezillon gave a talk about MLC/TLC NAND support: (new ?) challenges for the MTD/NAND subsystem, the slides are available as PDF.
Our three talks were all given in front of fully packed rooms, even with a number of people standing in the room for some of them! We were glad to see that the topics we proposed did interest the ELC audience.
In addition to the talk, Thomas Petazzoni organized on Tuesday last week a BoF (Birds of a feather) session on Buildroot, during which approximately 15 persons showed up even though it wasn’t announced in the official schedule. This session was useful to get some feedback from Buildroot users, and meet users and developers in person.
Finally, on Tuesday evening, during the technical show-case, we demo-ed the Buildroot capabilities using a setup that consisted in two platforms running Buildroot-generated systems: a Raspberry Pi 2 system that runs the Kodi media player software, and a Marvell Armada XP based OpenBlocks AX3 system that runs as a NAS providing contents for the media player. This demo was prepared by Buildroot contributor Yann E. Morin, and Bootlin engineer Thomas Petazzoni. The poster presented is available as PDF or SVG, and all the instructions to rebuild the two systems are documented at http://elinux.org/Buildroot:TechShowcase2015_Demo.
The location of the next Embedded Linux Conference was also announced, and it will take place in San Diego next year. It is the first time that the Embedded Linux Conference US edition moves outside of the Silicon Valley!
It’s been a while that Linus Torvalds has released Linux 3.19 and we already know that the next version of Linux will be called 4.0. It’s not too late though to learn more about the 3.19 release, by reading the following three LWN articles: part 1, part 2 and part 3. KernelNewbies has also updated its page about 3.19.
In terms of statistics for the 3.19 release cycle, LWN has published an article which ranks Bootlin the 13th contributing company, with 205 patches merged. We have been in the top 30th contributing company by number of patches for all kernel releases since Linux 3.8, a sign of our continuous involvement in the upstream kernel community.
Our most important contributions in this kernel release are:
For the Atmel ARM processors, numerous cleanup patches from Alexandre Belloni to prepare the platform for ARM multiplatform compliance (the possibility of building the support for Atmel ARM processors together with the support of other ARM processors in a single kernel image). From Boris Brezillon, addition of Device Tree support in the AT91 RTC driver, improvements to the AT91 irqchip driver, addition of a PWM driver for the PWM built into the Atmel HLCDC display controller, addition of Device Tree support for the AT91 hardware random number generator driver, addition of an MFD driver for the Atmel HLCDC display controller, and many other Device Tree fixes and improvements.
For the Marvell Berlin ARM processors, addition of USB, SATA and reset controller support. The USB support required numerous core improvements to the USB subsystem, and the addition of a specific USB PHY driver.
For the Marvell EBU ARM processors, Gregory Clement added USB PHY support for Armada 375, and CPU hotplug support for Armada 38x as well as several other fixes and improvements. Thomas Petazzoni added suspend to RAM support for Armada XP, fixed a serious problem in the I2C driver that required some major refactoring, and did some HW I/O coherency related fixes.
For the Allwinner ARM processors, Maxime Ripard did the relicensing of many Device Tree files from GPL only to GPL+X11 licenses. He also added pinctrl support on Allwinner A80.
After writing a dmaengine driver which was merged in 3.17, Maxime Ripard started to get involved in the dmaengine subsystem itself. He contributed a documentation for this subsystem, which was merged in Linux 3.19, as well as several fixes for dmaengine drivers.
Addition of a generic linux/media-bus-format.h header file, containing definitions of the various possible pixel formats. This header file was until then specific to the Video4Linux subsystem, but will start being used by the DRM/KMS subsystem. This addition was done in preparation of the introduction of a DRM/KMS driver for the AT91 HLCDC display controller (to come in Linux 4.0).
A few small improvements to the core DRM/KMS subsystem, also preparation work for the AT91 HLCDC display controller driver.
Fixes for the i.MX28 NAND flash controller driver, the gpmi-nand to properly support the raw access operations, which allow to use the userspace MTD testing utilities to validate the MTD setup. This was part of a customer project we did to assess the quality of the MTD and UBI setup on a Freescale i.MX28 custom platform.