First i.MX 8M Patches posted for Mainline
Eight days after NXP announced the immediate availability of the i.MX 8M processor family, Pengutronix developer Lucas Stach today posted a first set of 11 patches to support i.MX 8M in the mainline kernel (linux-gpio, linux-clk, linux-arm-kernel and linux-netdev).
This first patch series (together with five additional patches which are not ready for mainline yet) makes it possible to boot an i.MX 8M into userspace, with support for pinmux, clocks, network and eMMC. With these features in place, it will be possible to continue development on a top-of-tree kernel towards support for more interesting peripherals.
i.MX 8M is the newest (available) member of NXP's (former Freescale's, former Motorola's) i.MX family of application processors, initially introduced back in 2001 and used by many, many Pengutronix customers over all those years. In contrast to many other application processors, the i.MX family always made a good compromise between performance, features and availability, especially when it comes to industrial, medical and automotive applications and their longterm requirements. With first class mainline kernel support, i.MX is also a good choice for device manufacturers who care about IoT security, updates and top-of-tree kernels.
In contrast to the industry-work horse i.MX 6, the kernel support for i.MX 8M in mainline is still in it's early stage of development. The hardware is a moderate evolution of the i.MX 6 peripherals, replacing the Cortex-A9 cores by up to four Cortex-A53 cores (ARM64) and improving the overall memory bandwidth, which has always been a bottleneck for graphic intensive applications.
The most intrusive change between i.MX 6 and i.MX 8M is the replacement of the IPU display unit and the VPU video accelerator by VeriSilicon IP cores, so supporting the graphics subsystem will be high on the list of upcoming challenges.
Later this year, NXP will make more i.MX 8 families available: i.MX 8QM and i.MX 8X will be completely different hardware, with much more power but also much less software synergies with the existing i.MX 6 code in mainline.
2022 has started, and although Corona had a huge impact on our workflow, the Pengutronix team again made quite some contributions to the Linux kernel. The last kernel release in 2020 was 5.10, the last one in 2021 was 5.15, so let's have a look at what happened in between.
A firmware upgrade is due. A newly implemented feature needs to be rolled out, a security issue patched or new hardware support added. The software, while capable, is complex. Pengutronix' strategy to handle this complexity is working on a version- controlled Board Support Package (BSP) with continuous updates and tests on the latest mainline Linux kernel.
"FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels. In 2021, they will gather online." -- FOSDEM
Today it has been 15 years since we mainlined support for Freescale/NXP's i.MX architecture in the Linux kernel! That was one small step for [a] man, one giant leap for (industrial Linux users') mankind :-) Here is some background about why it happened and what you might want to learn from history for your next embedded Linux project.
Some days ago, Greg Kroah-Hartmann wrote a great blogpost about Which Stable Kernel One Should Use?. I fully agree with his position; however, I'd like to make some additions for the industry device manufacturer use case and some common pitfalls and misunderstandings we see in that area.
Every year's end-of-winter highlight starts next Tuesday: Embedded World 2018, and like every year, it is our main trade show and a good opportunity to meet many long-term customers in person. This year's highlight of the highlight: We have Etnaviv and Wayland running on MX8M!