We're hiring!
*

Kernel 6.3: MediaTek, Rockchip RK3588 & more

Muhammad Usama Anjum avatar

Muhammad Usama Anjum
April 25, 2023

Share this post:

Reading time:

Released earlier this week, Linux Kernel 6.3 brings thousands of new lines of code to improve the core kernel, architectural support, networking and filesystems. The support for hundreds of new devices has also been added along with more Rust support, though there's still a long way to go before Rust modules are supported!

A new API has been added to make the Red-Black tree available to BPF programs. A Red-Black tree is a binary search and self balancing tree. It is already used in the Completely Fair Scheduler (CFS) and other components as it gives bounded operation times. BPF developers are exploring several ideas even for core kernel like the BPF extensible scheduling class. BPF trampoline support has been added for more architectures, s390x and RISC-V RV64. BPF trampoline is the critical infrastructure of the bpf subsystem. It converts native calling convention to bpf calling convention and is used to implement various bpf features, such as fentry, fexit, and fmod_ret.

The requirement to use a legal name for contributing to Linux Kernel [which was added in 2006] has been lifted by Linus Torvalds himself. The updated Developer Certificate of Origin allows the contributors to use any known identity (pseudonyme or nick names). This subtle yet important change enables those that go by a preferred name (which differs from that which they are legally known by) to contibute easier, thus increasing the inclusivity of the kernel community a little in the process.

The new tests in kselftest/kunit and improvements to already present tests happen every release. In this release some different tools have been added for the help of developers. A Dhrystone benchmark test 2.1 has been added which can be run without the need for userspace intervention. It should prove to be useful for benchmarking the performance of cpu(s) during board bring-up or while writing clock drivers. The nolibc, which was only added for running rcutorture tests without much support from userspace, is getting popular and support for s390 and the Arm Thumb1 has been added. The nolibc is used instead of any other glibc to drastically decrease the size of the binaries. Now more architectures can also use it run tests quickly.

Now let's look at the contributions made by Collabora's engineering team for this cycle:

MediaTek

Nícolas F. R. A. Prado continued enabling support for Acer Chromebook 514 (CB514-2H) which is based on the MT8192 SoC. The display and audio support has been added along with missing configurations needed to support this device in the generic arm64 defconfig.

AngeloGioacchino Del Regno reviewed and tested hundreds of MediaTek patches in the last few releases. Reviewing work done by others is as important as autoring new patches and he has reviewed a whopping 123 patches this time as well. Also, AngeloGioacchino Del Regno submitted a range of drivers:

  • MediaTek Clock drivers restructuring: This is the first part of a complete restructuring of MediaTek clock drivers. This first part only prepares the ground for the real deal by adding a first layer of commonization and allowing propagating struct device when registering clocks, resulting in improved reliability thanks to the added error checks and a first reduction of both code size and kernel size. The second part has been picked and queued for v6.4 already; that'll be another ~70 patches.
  • MediaTek Regulator Coupler: Enables satisfying relations between the GPU Core Voltage and the SoC GPU-reserved SRAM Voltage and this is found on 99% of MediaTek SoCs, as part of their architecture. This new driver essentially paves the way to enable Panfrost with DVFS support on all MediaTek SoCs upstream, without requiring any additional and vendor specific code in the GPU driver: of course, not only SoCs with ARM Mali GPUs were made, but also some featuring Imagination Technologies PowerVR (MT8173, MT6795 and many others), all requiring the same voltage relations. Thanks to this driver, and to some devicetree additions, the next kernel release (v6.4) will see all Chromebooks enabling GPU support on the fully OSS Panfrost GPU stack with Dynamic Voltage and Frequency Scaling (DVFS) allowing to save power without giving up on performance when required.
  • Qualcomm Ramp Controller/RCGwR: This new driver programs an MCU that is internal to the SoC to enable CPU DVFS on Snapdragon 625 (MSM8953), Snapdragon 650 (MSM8956) and Snapdragon 652 (MSM8976).
  • MediaTek DTS: - Various cleanups and fixes were performed on the watchdog node on MT8195 and MT8186, fixing some dtbs_check issues, hence improving maintainability;
    • Export CPU caches information: Exports the info of the caches to the userspace so that programs (for example, python libraries for AI and some sysinfo tools) which make use of it can be informed to stop underperforming. GCC and Clang can read that as well and use it for optimization;
    • CPU map updates: Efficiently scheduling tasks is tricky and the actual decisions will be different depending on various factors, especially on a many-clusters topology versus a single cluster ARM DynamIQ. This update makes the Linux scheduler aware of the actual CPUs topology, giving it the possibility to make the right scheduling choices, therefore improving both performance and power consumption of the entire system.
    • MT8195: Various fixes for PCI-Express and USB have been made.
    • MT8195 Cherry Tomato Chromebook: Audio support including the Xtensa DSP support on SoundOpenFirmware has been added.

Rockchip RK3588

On the Rockchip side, the team continued their work on the RK3588 SoC support. The initial RK3588 board support got merged for v6.3, which was mainly to enable basic features like serial, MMC and ethernet. There is a lot more work to go. More feature are already waiting in linux-next for the v6.4 cycle. Stay tuned for a detailed blog post on the Rockchip RK388, and Collabora's plans to enable more features in the Linux kernel and u-boot bootloader.

Specifically Sebastian Reichel added support for the Rock 5 Model A and Rockchip's RK3588 evaluation board. Christopher Obbard added initial support for the Rock 5 Model B.

Here, there, and everywhere

Tomeu Vizoso enabled AI accelerator hardware engine found on Amlogic Meson S905X2 SoC. Dmitry Osipenko and Sebastian Reichel performed maintenance of the DRM and power supply sub-systems respectively. In this release, AngeloGioacchino Del Regno and Nícolas F. R. A. Prado reviewed and tested a lot of MediaTek driver patches. Muhammad Usama Anjum reported a bug in userfaultfd write protect mode for hugetlb memory type and it has since been fixed. This shows that reviewing, testing and reporting issues is as important as developing code.

Below is a full list of contributions made by Collaborans for the 6.3 release, as recorded in the git commit history:

Authored (96):

AngeloGioacchino Del Regno (53):

Boris Brezillon (1):

Christopher Obbard (4):

Cristian Ciocaltea (3):

David Heidelberg (1):

Dmitry Osipenko (4):

Guillaume Tucker (4):

Lucas Tanure (3):

Nicolas Dufresne (1):

Nícolas F. R. A. Prado (9):

Ricardo Cañuelo (1):

Sebastian Reichel (5):

Tomeu Vizoso (7):

Maintainer Committed (42):

Dmitry Osipenko (2):

Sebastian Reichel (40):

Signed-off-by (19):

AngeloGioacchino Del Regno (1):

Sebastian Reichel (15):

Sjoerd Simons (3):

Reviewed-by (151):

Alyssa Rosenzweig (1):

Andrzej Pietrasiewicz (2):

AngeloGioacchino Del Regno (123):

AngeloGioacchino Del Regno (1):

Benjamin Gaignard (1):

Cristian Ciocaltea (1):

Dmitry Osipenko (5):

Faith Ekstrand (1):

Nícolas F. R. A. Prado (14):

Sjoerd Simons (1):

Tomeu Vizoso (1):

Acked-by (14):

Alyssa Rosenzweig (1):

Daniel Stone (1):

Jason Ekstrand (1):

Nicolas Dufresne (2):

Pekka Paalanen (1):

Sebastian Reichel (8):

Tested-by (25):

AngeloGioacchino Del Regno (14):

Benjamin Gaignard (1):

Martyn Welch (3):

Muhammad Usama Anjum (1):

Nícolas F. R. A. Prado (5):

Robert Mader (1):

Reported-by (5):

Dmitry Osipenko (1):

Muhammad Usama Anjum (1):

Ricardo Cañuelo (1):

Robert Mader (1):

Tomeu Vizoso (1):

 

Comments (0)


Add a Comment






Allowed tags: <b><i><br>Add a new comment:


 

Search the newsroom

Latest News & Events

Upstream support for Rockchip's RK3588: Progress and future plans

20/12/2024

The Rockchip RK3588 upstream support has progressed a lot over the last few years. As 2024 comes to a close, it is a great time to have…

Academically inclining at NeurIPS 2024

09/12/2024

Collabora will be at NeurIPs this week to dive into the latest academic findings in machine learning and research advancements that are…

Apertis v2024: the new Bookworm-based release for industrial embedded devices

05/12/2024

Now based on Debian Bookworm, Apertis is a collaborative OS platform that includes an operating system, but also tools and cloud services…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2024. All rights reserved. Privacy Notice. Sitemap.