Project ACRN hypervisor
Go to file
Jian Jun Chen 2acbebf6dc dm/VBS-U: implement virtio_set_modern_bar
virtio_set_modern_bar is an external interface that backend virtio
driver can call to initialize the PCI capabilities and PCI bars
defined in the virtio 1.0 spec.

The following are done in the function:

- 5 PCI capabilities are added to the PCI configuration space of the
  virtio PCI device. (common/isr/device_specific/notify/cfg_access)

- A 64-bit MMIO bar is allocated to accommodate the registers defined
  in the 4 PCI capabilities. (cfg_access capability does not require
  MMIO.)

- If use_notify_pio is true, a PIO notify capability is added to the
  PCI configuration space and a PIO bar is allocated for it
  accordingly.

Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Reviewed-by: Hao Li <hao.l.li@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2018-04-04 14:50:48 +08:00
core DM: Add long option to enable trusty 2018-04-03 16:32:18 +08:00
hw dm/VBS-U: implement virtio_set_modern_bar 2018-04-04 14:50:48 +08:00
include dm/VBS-U: implement virtio_set_modern_bar 2018-04-04 14:50:48 +08:00
samples Remove 'noxsave' bootarg in dm sample script 2018-04-04 10:48:26 +08:00
tools DM:tools: add README.rst for acrnlog tool 2018-04-03 16:31:30 +08:00
.gitignore add .gitignore 2018-03-16 21:45:43 +08:00
license_header initial import 2018-03-07 21:07:43 +08:00
MAINTAINERS update home page information 2018-04-02 10:15:51 +08:00
Makefile version: v0.1-rc3 2018-04-02 10:43:18 +08:00
README.rst README.rst: convert to ReST and add details 2018-03-09 16:13:57 +08:00

ACRN Device Model
#################

Introduction
============
The ACRN Device Model provides **device sharing** capabilities between the Service OS and Guest OSs. It is a component that is used in conjunction with the `ACRN Hypervisor`_ and this is installed within the Service OS. You can find out more about Project ACRN on the `Project ACRN documentation`_ website.


Building the Device Model
=========================

Build dependencies
******************

* For Clear Linux

.. code-block:: console

   sudo swupd bundle-add os-clr-on-clr \
          os-utils-gui-dev

* For CentOS

.. code-block:: console

   sudo yum install gcc \
          libuuid-devel \
          openssl-devel \
          libpciaccess-devel

* For Fedora 27

.. code-block:: console

   sudo dnf install gcc \
          libuuid-devel \
          openssl-devel \
          libpciaccess-devel

Build
*****
To build the Device Model

.. code-block:: console

   make

To clean the build artefacts

.. code-block:: console

   make clean

Runtime dependencies
********************

* On CentOS

.. code-block:: console

   sudo yum install openssl-libs \
                    zlib \
                    libpciaccess \
                    libuuid

* On Fedora 27

.. code-block:: console

   sudo dnf install openssl-libs \
                    zlib \
                    libpciaccess \
                    libuuid

.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor
.. _`Project ACRN documentation`: https://projectacrn.github.io/