Allwinner VPU gets open-source Linux driver for its H.264 hardware video encoder

Allwinner V3s open source Linux video encoding driver

Long-time readers of CNX Software may remember Bootlin’s crowdfunding campaign launched in 2018 to bring open-source Allwinner VPU drivers to take care of hardware video encoding and decoding in mainline Linux. They managed to raise enough funds (over 30,000 Euros) from small donors and several companies (Olimex, Pine64, Libre Computer, FriendlyELEC, and Orange Pi) to work on open-source VPU drivers for mainline Linux, but only for MPEG2, H264, and H265 decoding for in a range of Allwinner SoCs such as the A20 and H5, but not quite enough to cover the cost of H264 video encoding. Five years later, Bootlin took it upon themselves to complete the work without backing or support from Allwinner and have now released an open-source Linux-kernel based V4L2 driver to support the H.264 video encoder found in Allwinner V3, V3s, and S3 camera SoCs. The new driver builds upon earlier work by the company to […]

Snagboot is an open-source cross-vendor recovery tool for embedded targets


Bootlin has just released the Snagboot open-source recovery tool for embedded platforms designed to work with multiple vendors, and currently STMicro STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x and AM62x, and Allwinner “sunxi” processors are supported. Silicon vendors usually provide firmware flashing tools, some closed-source binaries, that only work with their hardware. So if you work on STM32MP1 you’d use STM32CubeProgrammer, while SAM-BA is the tool for Microchip processors, NXP i.MX SoC relies on UUU, and if you’ve ever worked on Allwinner processors you’re probably family with sunxi-fel. Bootlin aims to replace all those with the Snagboot recovery tool. The Python tool is comprised of two parts: snagrecover using vendor-specific ROM code mechanisms to initialize external RAM and run the bootloader (typically U-Boot) without modifying any non-volatile memories. snagflash communicates with the bootloader over USB to flash system images to non-volatile memories, using either DFU, USB Mass Storage, or […]

Open-source Allwinner V3 ISP driver to enable blob-free camera support in mainline Linux

Allwinner V3 ISP Linux driver

Bootlin has just submitted the first patchset for the Allwinner V3 image signal processor (ISP) driver in mainline Linux which should pave the way for a completely open-source, blob-free camera support in Linux using V4L2. There are several blocks in an SoC for camera support including a camera input interface such as MIPI CSI 2 and an ISP to process the raw data into a usable image. Add to this the need to implement the code for sensors, and there’s quite a lot of work to get it all working. Allwinner SDK comes with several binary blobs, aka closed-source binary, but Bootlin is working on making those obsolete, having first worked on Allwinner A31, V3s/V3/S3, and A83T MIPI CSI-2 support for the camera interface driver in the V4L2 framework (and Rockchip PX30, RK1808, RK3128 and RK3288 processors), as well as implemented support for Omnivision OV8865 and OV5648 image sensors earlier […]

Hantro H1 hardware accelerated video encoding support in mainline Linux

Hantro H1 Block diagram

With the increasing need for video encoding, there are some breakthrough developments in hardware-accelerated video encoding for Linux. Bootlin has been working on the implementation of Hantro H1 hardware accelerated video encoding to support H.264 encoding on Linux which follows the company’s work on the previously-released open-source VPU driver for Allwinner processors. Hantro H1 Hardware Hantro H1 is a common hardware H.264 encoder, it can also do VP8 and JPEG. It is found in a few ARM SoCs including a lot of Rockchip (RK3288, RK3328, RK3399, PX30, RK1808) and NXP (i.MX 8M Mini). Depending on the version, it can support up to 1080p at 30 or 60 fps. Here we can see different blocks used for encoding. Hantro H1 is a stateless hardware implementation which means it has no microcontroller or firmware running. As can be seen in the diagram, it has a pre-processor that can do things like cropping, […]

Embedded Linux Conference Europe & OpenIoT Summit Europe 2018 Schedule

Embedded Linux Conference OpenIOT Summit Europe 2018

The Embedded Linux Conference & OpenIoT Summit 2018 took place in March of this year in the US, but the European version of the events are now planned to take place on October 21-24 in Edinburg, UK, and the schedule has already been released. So let’s make a virtual schedule to find out more about some of interesting subjects that are covered at the conferences. The conference and summit really only officially start on Monday 22, but there are a few talks on Sunday afternoon too. Sunday, October 21 13:30 – 15:15 – Tutorial: Introduction to Quantum Computing Using Qiskit – Ali Javadi-Abhari, IBM Qiskit is a comprehensive open-source tool for quantum computation. From simple demonstrations of quantum mechanical effects to complicated algorithms for solving problems in AI and chemistry, Qiskit allows users to build and run programs on quantum computers of today. Qiskit is built with modularity and extensibility […]

Bootlin Releases Open Source VPU Driver for Allwinner Processors with MPEG2 and H.264 Video Decoding


At the beginning of the year, Bootlin – formerly Free Electrons – launched a crowdfunding campaign to bring open source Allwinner VPU driver to mainline Linux. VPU (Video Processing Unit) drivers are used to encode and decode videos. They were successfully in raising enough money from small donors, as well as several companies manufacturing Allwinner development boards including Olimex, Pine64, Libre Computer, FriendlyELEC, and Xunlong Software (Orange Pi). The amount raised (€31,612) was enough to assign two engineers to work on the main goals, as well as some stretch goals namely support for newer Allwinner H3, H5, and A64 processors, and H.265 video decoding. The good news is the company has now delivery the first release for their work on the main goals. The photo above illustrated a demo of Kodi running with bootlin open source Cedrus VPU driver on top of Linux 4.18-rc kernel. Both MPEG2 and H264 are […]

Bootlin Wants to Bring Allwinner VPU Support to Mainline Linux (Crowdfunding)

I wrote about Free Electrons several times in the past due to their work on porting Arm SoCs to mainline Linux. Free Electrons is no more. But don’t be sad, as it’s not because they closed shop, but instead they changed their name to Bootlin due to trademark trolls. Free Electrons Bootlin intensively worked on Allwinner processors, for example working with Next Things Co. to add CHIP board to mainline Linux, or more recently adding support for OpenGL ES in mainline Linux, albeit with closed-source user space binary blobs. The company normally work with partners for their work, but for their latest initiative aiming to bring Allwinner VPU (Video Processing Unit) to the official Linux kernel there’s asking funding from the community through a Kickstarter campaign. For those who do not know, the VPU is the IP block within the SoC used for hardware video decoding of codecs such as MPEG2, […]

Microsemi VSC7513 and VSC7514 MIPS SoCs for Ethernet Switches Get Initial Mainline Linux Support

Microsemi VSC7514 is a 10-port Gigabit Ethernet (GbE)/SMB switch supporting a combination of 1G and 2.5G Ethernet ports, and VSC7513 comes with basically the same features except it’s limited 8 ports. Both SoCs include a MIPS processor with DDR3 memory interface, and support industrial and enterprise Ethernet switching features such as VLAN and QoS processing. Microsemi VSC751x Ocelot family was unveiled in June 2016, but I only heard about them today, as Free Electrons recently added initial support for VSC7513 & VSC7514 chip into mainline Linux with the patch series available here. Microsemi VSC7514 specifications & features: CPU / Memory Interface – Integrated 500 MHz MIPS 24KEc CPU with MMU and DDR3/DDR3L SDRAM  controller Ethernet Connectivity – 4x dual media copper ports, 2x 1G SGMII ports, and 2x 1G/2.5G SGMII ports Host CPU Interfaces – PCIe 1.x and NPI CPU interface Internal shared memory buffer (8 queues per port) Jumbo […]

ASUS Tinker board 3N