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

allwinner-open-source-vpu-drivers-mpeg2-h264

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 […]

Allwinner SoCs with Mali GPU Get Mainline Linux OpenGL ES Support

OpenGL ES support in Linux for ARM SoC is usually pretty hard to get because of closed source binary blobs coupled with the manufacturers focus on Android. Workarounds include open driver projects such as Freedreno for Qualcomm Adreno GPU, Nouveau for Tegra, or Etnaviv for Vivante GPUs, as well as libhybris library that converts Linux calls into Android calls in order to leverage existing Android GPU binary blobs. Allwinner processors relies on either PoverVR or ARM Mali GPU, and the former does not have any open source project, while some work is still being going for the latter with Lima project, but it’s not ready yet. That means so far, you’re only option was to use libhybris for either GPU family. The good news is that Free Electrons engineers have been working on OpenGL ES support for ARM Mali GPU for Allwinner processor, and have been allowed to release the […]

C.H.I.P Board and Allwinner A13/R8 SoCs To Get VPU Support in Linux Mainline

Allwinner has mixed relationships with open source communities such as Kodi, especially due to issues with its closed-source CedarX VPU drivers, and some GPL violations. However to address the former, linux-sunxi community has been working on open source Cedrus library for the video processor unit on Allwinner processors, that’s been successfully tested on boards such as Orange Pi One. Free Electrons has gone  further, as they’ve made sure Cedrus now works with Linux mainline kernel, currently Linux 4.8, and tested it on Allwinner R8 based Pocket CHIP. The work has been done by Florent Revest, a 19 years old intern at the company, who delivered a new sunxi-cedrus driver, a Video4Linux (V4L2) memory-to-memory decoder kernel driver, and corresponding VA-API backend, with the implementations currently available on Github here and there respectively. Currently only MPEG2 and MPEG4 are working, but adding other codecs such as H.264, and video encoding is possible […]