Page 1 of 1

Kernel 5.10 Release

Posted: 14 Jun 2022, 09:44
by p.rosenberger
Dear RevPi Community,

I am happy to announce that after intensive work we have released of our Kernel 5.10.
This version will also be available in our Buster package repository. ... 3%2Brevpi1

Release Notes Kernel 5.10
The Linux kernel has been updated from version 4.19 to 5.10. The stable version 5.10.103 ( ... =v5.10.103) and the real-time patch in version 5.10.100-rt62 ( ... 0.100-rt62) serve as a basis.

Support for RevPi S and RevPi SE
The new kernel supports the Raspberry Pi Compute Module 4S. This module contains the chip BCM2711 of the Raspberry Pi 4 and is installed in the new devices of the RevPi S and RevPi SE series. It has a more powerful CPU, faster eMMC storage, and can drive HDMI displays in 4K resolution.

USB Driver
For the USB host controller we used the driver dwc_otg so far. This is no longer maintained and showed instabilities under kernel 5.10 when running applications with real-time priority on the system. Therefore, we switched to the newer driver dwc2. However, dwc_otg contained performance optimizations especially for the Raspberry Pi that are missing in dwc. Therefore dwc2 takes more CPU time. This is visible with the command "top": The two interrupt threads "irq/XX-dwc2_hso" and "irq/XX-3f9810000" require at least 12% of a CPU each. We want to port the optimizations from dwc_otg to dwc2 to eliminate this drawback in the future.
While the additional CPU load is only of little importance on a Compute Module 3 and 4S, it leads to a noticeable performance drop on a Compute Module 1. We therefore recommend pinning the previous kernel version 4.19 in the package management on the CM1 before starting a system update:

Code: Select all

sudo apt-mark hold raspberrypi-kernel
Alternatively, after flashing the image to a CM1, a downgrade to kernel 4.19 can be performed:

Code: Select all

sudo apt-get update
sudo apt-get install raspberrypi-kernel=1:9.20220322-4.19.95+revpi1

System Security
The device "/dev/gpiomem" available by default under Raspberry Pi OS has been removed. As a result, it is now no longer possible to write directly to or read from the memory locations of devices. As a result, the wiringPi library does not work any longer.
The reason for disabling the device is to avoid accidental changes to the devices and an associated increase in the security of the entire system.

Improved Real-Time Behavior
Improvements have been made to accessing device data via the piTest program. The improvements are expected to help reduce device read and write latencies and the likelihood of jitter.

USB Ethernet
The link detection of USB Ethernet interfaces is now interrupt-driven. Previously, the link status was polled once per second. This reduces the traffic on the USB bus and thus the CPU load.
Furthermore, more than three additional USB Ethernet adapters can now be connected without any difficulties.

The support for the PL011 UART has been revised completely. This is used for communication via the external RS-485 interface on the RevPi Flat and Compact, and for PiBridge communication on the RevPi Core and Connect. The revised version has also been added to the mainline kernel, so that the implementation included in the official Linux kernel is now used instead of a proprietary implementation.
On this occasion, the bug was fixed which released memory resources twice when unloading the PL011 driver.

For the RevPi Flat, it is now ensured that the Trusted Platform Module (TPM) is initialized correctly when the system is booted. We also fixed a potential issue with rebooting that could cause the system to freeze. Furthermore, a bug was fixed that caused a crash under certain circumstances when unloading the TPM kernel module.