.. _x86_jailhouse:

Jailhouse cell X86 Emulation (QEMU)
###################################

Overview
********

The X86 Jailhouse QEMU board configuration is used to emulate the X86
architecture. This board configuration provides support for x86 64-bit
(KVM) passthrough CPUs (-cpu kvm64) and the following devices:

* Advanced Programmable Interrupt Controller (APIC)
* NS16550 UART

This is to prove that Zephyr, with this Jailhouse port, would run on
any x86-64 CPUs baremetal as well. The port only reaches the UART via
port I/O, now, but it can be extended to do MMIO.

Hardware
********

Supported Features
==================

This configuration supports the following hardware features:

+--------------+------------+-----------------------+
| Interface    | Controller | Driver/Component      |
+==============+============+=======================+
| APIC         | on-chip    | interrupt controller  |
+--------------+------------+-----------------------+
| NS16550      | on-chip    | serial port           |
| UART         |            |                       |
+--------------+------------+-----------------------+

Devices
=======

Serial Port
-----------

The board configuration uses a single serial communication channel
that uses the NS16550 serial driver operating in polling mode (port
I/O is used).

Known Problems or Limitations
=============================

The following platform features are unsupported:

* Serial port in Direct Memory Access (DMA) mode
* Serial Peripheral Interface (SPI) flash
* General-Purpose Input/Output (GPIO)
* Inter-Integrated Circuit (I2C)
* Ethernet

Programming and Debugging
*************************

Use this configuration to run basic Zephyr applications and kernel
tests in a QEMU emulated environment (we assume the same QEMU
configuration used to accommodate Jailhouse's configs/qemu-x86.c root
cell configuration).

For example, with the :ref:`synchronization_sample`, first set
``JAILHOUSE_QEMU_IMG_FILE`` to the path to the :file:`.qcow2` file.
Then:

.. zephyr-app-commands::
   :zephyr-app: samples/synchronization
   :board: x86_jailhouse
   :goals: run

This assumes the user has the binary qemu-system-x86_64 in their
system (not provided by Zephyr's toolchain). This is because the base
system here will be 64-bit and Zephyr will boot as a virtual guest in
it. The qcow2 image must contain the base image with Jailhouse
installed (not provided by Zephyr's SDK, again).

This will build an image with the synchronization sample app and mount
the current directory inside QEMU under /mnt.

From a console, in that QEMU instance, issue:

.. code-block:: shell

        $ sudo insmod <path to jailhouse.ko>
        $ sudo jailhouse enable <path to configs/qemu-x86.cell>
        $ sudo jailhouse cell create <path to configs/tiny-demo.cell>
        $ sudo mount -t 9p -o trans/virtio host /mnt
        $ sudo jailhouse cell load tiny-demo /mnt/zephyr.bin
        $ sudo jailhouse cell start tiny-demo
        $ sudo jailhouse cell destroy tiny-demo
        $ sudo jailhouse disable
        $ sudo rmmod jailhouse

This should display the following console output:

.. code-block:: console

        Created cell "tiny-demo"
        Page pool usage after cell creation: mem 275/1480, remap 65607/131072
        Cell "tiny-demo" can be loaded
        CPU 3 received SIPI, vector 100
        Started cell "tiny-demo"
        ***** BOOTING ZEPHYR OS v1.8.99 - BUILD: Jun 27 2017 13:09:26 *****
        threadA: Hello World from x86!
        threadB: Hello World from x86!
        threadA: Hello World from x86!
        threadB: Hello World from x86!
        threadA: Hello World from x86!
        threadB: Hello World from x86!
        threadA: Hello World from x86!
        threadB: Hello World from x86!
        threadA: Hello World from x86!
        threadB: Hello World from x86!

Debugging
=========

Refer to the detailed overview about :ref:`application_debugging`.
