BSDCan2017 - 0722d

BSDCan 2017
The Technical BSD Conference

Andrew Turner
Day Talks #2 - 10 June - 2017-06-10
Room DMS 1160
Start time 13:30
Duration 01:00
ID 833
Event type Lecture
Track Embedded
Language used for presentation English


Creating a single kernel configuration for FreeBSD/armv6

During a talk at EuroBSDCon 2016 it was mentioned FreeBSD had no GENERIC kernel for armv6. While this was true at the time the claim was made a GENERIC kernel configuration was committed before the talk finished. This talk will provide a history of how this kernel configuration, common on other architectures, was added to armv6.

FreeBSD added support for the ARMv6 and ARMv7 architectures in 2012. At this time each System on Chip required its own kernel configuration, however there had the start of the work needed to get a single kernel with the requirement for Flatted Device Tree to enumerate hardware.

We will look at why having a common kernel on 32-bit ARM is so difficult, and what was needed to make this possible. This will include support for Flattened Device Tree, the historical GENERIC kernel project branch, INTRNG, and the ARM platform and multi-delay work. With these changes a single FreeBSD can boot on at least six vendors SoCs, with more being added.