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 original project

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

Inscrivez-vous à la newsletter de l'IRT SystemX

 et recevez chaque mois les dernières actualités de l'institut :