Context
Nowadays, vehicles are embedding more and more electronics in order to support new services such as driver detection, line keeping and automatic cruise control. However, adding electronics makes vehicles more expensive. Fortunately, virtualization, through a hypervisor, reduces the number of embedded chips in vehicle by running different guests, i.e. OS, offering several services on the same board.
The hypervisor
Xvisor, started by Anup Patel, fits the project requirements:
- it is open source,
- it works both on x86(64) and ARM, even those without Virtualization Extensions,
- it must be flexible as multiple patforms will have to be supported,
- it is bare metal (type-1).
Plus, it has many advantages:
- it has an increasing and active community,
- it has a Linux-like API, for fast driver port,
- it is light-weight.
Our work on Xvisor
The project target multiple patforms, such as the Freescale Sabrelite/Boundary Devices Nitrogen6x (ARM i.MX6Q board, with 4 Cortex-A9 cores) as it attracted many car manufacturers, thanks to its multimedia and ADAS functionalities for automotive.
The core of the hypervisor was already done. The Cortex A9 itself was already supported with the Freescale Versatile Express A9. The major part of the work was performed on the port of Xvisor on the Nitrogen6x controller drivers: clocks, NOR flash, SD/MMC, PWM, LDB/LVDS, PHY, ethernet.
For this to be working on Xvisor, some Linux compatible upper layers have been added: MTD, SPI, backlight, extended IRQs, … and some core corrections and improvments have be done.
Next steps
The driver testing and stability must be improved, and the network controller support must be continued.
Getting started with the environment
- Work on the board
- Checkout out the build environment
- Configure the environment for the target
- Build
- Run on the board
- UBoot commands
- Debug on the board
- Work on the board
- Configure the environment for Qemu
- Run on Qemu
Getting started without the environment
You can also checkout the Xvisor repository, and follow the included documentation (docs/arm/sabrelite.txt).
Links
Websites
The GIT repository
The original project release repository
The original project development repository
The Research Institute of Technologies repository
https://github.com/Openwide-Ingenierie/xvisor-next
Articles and publications
Anup Patel’s article for the PDP2015: Embedded Hypervisor Xvisor: A Comparative Analysis
An article on LinuxEmbedded.com should be published soon.
An article on OpenSilicium should be published soon.
The presentation on the FOSDEM 2015
Anup Patel’s blog
Contacts
IRC channel: #xvisor on Freenode
Mailing list: xvisor-devel at googlegroups dot com
Downloads
Up to date UBoot binary for i.MX6 Sabrelite
Up to date Xvisor binary for i.MX6 Sabrelite
Up to date Xvisor image for Qemu