Raspberry Pi 4 is Now OpenGL ES 3.1 Conformant, Work on Vulkan Drivers Started

Raspberry Pi 4 Vulkan

Raspberry Pi 4 Model B 4 was launched last June with a new Broadcom BCM2711 SoC featuring an upgraded Videocore VI GPU supporting OpenGL ES 3.0 graphics API. Some drivers only implement a subset of OpenGL 3.0/3.1 3D graphics standard defined by the Khronos Group, and the good news is that Raspberry Pi 4 Model B is now OpenGL ES 3.1 conformant, as it passed all tests in Khronos conformance test suite. That means that any Linux programmed using OpenGL ES 3.1 API should work out of the box, although in some cases there may be issues/bugs that were not detected by the test suite. The Vulkan API is an evolution of OpenGL ES API that is meant to be more power-efficient as it better makes utilize of multi-core processors. The Raspberry Pi Foundation has also started working on Vulkan support for Raspberry Pi 4, and while the driver is […]

Linux 5.3 Release – Main Changes, Arm, MIPS & RISC-V Architectures

Linux 5.3 Changelog

Linus Torvalds has just announced the release of Linux 5.3: So we’ve had a fairly quiet last week, but I think it was good that we ended up having that extra week and the final rc8. Even if the reason for that extra week was my travel schedule rather than any pending issues, we ended up having a few good fixes come in, including some for some bad btrfs behavior. Yeah, there’s some unnecessary noise in there too (like the speling fixes), but we also had several last-minute reverts for things that caused issues. One _particularly_ last-minute revert is the top-most commit (ignoring the version change itself) done just before the release, and while it’s very annoying, it’s perhaps also instructive. What’s instructive about it is that I reverted a commit that wasn’t actually buggy. In fact, it was doing exactly what it set out to do, and did it […]

Linux 5.2 Release – Main Changes, Arm, MIPS & RISC-V Architectures

Linux 5.2 Changelog

Linus Torvalds announced the release of Linux 5.2 last Sunday: So I was somewhat pre-disposed towards making an rc8, simply because of my travels and being entirely off the internet for a few days last week, and with spotty internet for a few days before that [*]. But there really doesn’t seem to be any reason for another rc, since it’s been very quiet. Yes, I had a few pull requests since rc7, but they were all small, and I had many more that are for the upcoming merge window. Part of it may be due to the July 4th week, of course, but whatever – I’ll take the quiet week as a good sign. So despite a fairly late core revert, I don’t see any real reason for another week of rc, and so we have a v5.2 with the normal release timing. There’s no particular area that stands […]

Linux 4.19 Release – Main Changes, Arm and MIPS Architectures

Linux 4.19 Changelog

With Linus Torvalds taking a leave from the Linux kernel project, Greg Kroah-Hartman was the one to release Linux 4.19 last Sunday: Hi everyone! It’s been a long strange journey for this kernel release… While it was not the largest kernel release every by number of commits, it was larger than the last 3 releases, which is a non-trivial thing to do. After the original -rc1 bumps, things settled down on the code side and it looks like stuff came nicely together to make a solid kernel for everyone to use for a while. And given that this is going to be one of the “Long Term” kernels I end up maintaining for a few years, that’s good news for everyone. A small trickle of good bugfixes came in this week, showing that waiting an extra week was a wise choice. However odds are that linux-next is just bursting so […]

Linux 4.14 Release – Main Changes, ARM & MIPS Architecture

Linus Torvalds has announced the release of Linux 4.14: No surprises this week, although it is probably worth pointing out how the 0day robot has been getting even better (it was very useful before, but Fengguang has been working on making it even better, and reporting the problems it has found). Sure, some of the new reports turned out to be just 0day doing things that just don’t work (ie KASAN with old gcc versions, but also doing things like loading old ISA drivers in situations that just don’t make sense – remember when you couldn’t even ask if the hardware existed or not, and just had to know), but even then it’s been all good. The appended shortlog is obviously only for the (small) haul since rc8, and it really is tiny. Not very many commits, and they are small. The biggest thing that stands out in the diffstat […]

Learn More About Linux’s New GPIO User Space Subsystem & Libgpiod

Sysfs was used to control GPIOs on Linux system with the GPIOs defined in /sys/class/gpio, but starting with Linux 4.8, a new GPIO interface for user space was introduced, with gpiochip becoming char devices foudn in /dev/gpiochip0, dev/gpiochip1, etc.. , and sysfs allegedly become deprecated. But a quick check in NanoPi Duo with Linux 4.11 shows both GPIO user space interfaces appear to be enabled:

Nevertheless overtime, sysfs will die out, and the new subsystem will likely be used by all systems, so it might be useful to learn more about it. One way to do that is to watch Bartosz Golaszewski’s ELCE 2017 talk entitled “New GPIO Interface for User Space” with the video embedded below. But I first I’ll summarize some of the key points. Now GPIO handling from user space becomes similar to other char driver with ioctl, poll and read functions, and beside assigning numbers […]

Linux 4.13 Release – Main Changes, ARM & MIPS Architectures

Linus Torvalds has just announced the release of Linux 4.13 and a kidney stone…: So last week was actually somewhat eventful, but not enough to push me to delay 4.13. Most of the changes since rc7 are actually networking fixes, the bulk of them to various drivers. With apologies to the authors of said patches, they don’t look all that interesting (which is definitely exactly what you want just before a release). Details in the appended shortlog. Note that the shortlog below is obviously only since rc7 – the _full_4.13 log is much too big to post and nobody sane would read it. So if you’re interested in all the rest of it, get the git tree and limit the logs to the files you are interested in if you crave details. No, the excitement was largely in the mmu notification layer, where we had a fairly last-minute regression and […]

Work on VideoCore V GPU Drivers Could Pave the Way for Raspberry Pi 4 Board

I’ve come across an article on Phoronix this morning, about VideoCore IV GPU used in Broadcom BCM283x “Raspberry Pi” processors, but part of the post also mentioned work related to VC5 drivers for the next generation VideoCore V GPU, written by Eric Anholt, working for Broadcom, and in charge of the open source code related to VideoCore IV GPU for Raspberry Pi. This led me Eric’s blog “This Week in VC4/VC5” and articles such as “2017-07-10: vc5, raspbian performance“, where he explains he committed Mesa drivers for VC5. I’ve just pushed a “vc5” branch to my Mesa tree (https://github.com/anholt/mesa/commits/vc5). This is the culmination of a couple of months of work on building a new driver for Broadcom’s V3D 3.3. V3D 3.3 is a GLES3.1 part, though I’m nowhere near conformance yet. This driver is for BCM7268, a set-top-box SOC that boots an upstream Linux kernel. I’m really excited to be […]

Memfault IoT and embedded debugging platform