From 86957d702a93949bbdadd86f349984582a622b5a Mon Sep 17 00:00:00 2001 From: Li Fei1 Date: Tue, 17 Mar 2020 10:19:53 +0800 Subject: [PATCH] doc: introduce Split Device Model feature for ACRN Introduce Split Device Model feature for ACRN. Now we only implement pass through PCI(e) device of it. Tracked-On: #4371 Signed-off-by: Li Fei1 --- .../hld/hld-emulated-devices.rst | 1 + .../hld/hv-dev-passthrough.rst | 22 ++----- .../hld/images/split-dm-image1.png | Bin 0 -> 26019 bytes .../hld/images/split-dm-image2.png | Bin 0 -> 43029 bytes .../hld/images/split-dm-image3.png | Bin 0 -> 50286 bytes .../hld/images/split-dm-image4.png | Bin 0 -> 24176 bytes doc/developer-guides/hld/split-dm.rst | 58 ++++++++++++++++++ 7 files changed, 63 insertions(+), 18 deletions(-) create mode 100644 doc/developer-guides/hld/images/split-dm-image1.png create mode 100644 doc/developer-guides/hld/images/split-dm-image2.png create mode 100644 doc/developer-guides/hld/images/split-dm-image3.png create mode 100644 doc/developer-guides/hld/images/split-dm-image4.png create mode 100644 doc/developer-guides/hld/split-dm.rst diff --git a/doc/developer-guides/hld/hld-emulated-devices.rst b/doc/developer-guides/hld/hld-emulated-devices.rst index d16c86f6d..034832977 100644 --- a/doc/developer-guides/hld/hld-emulated-devices.rst +++ b/doc/developer-guides/hld/hld-emulated-devices.rst @@ -21,3 +21,4 @@ documented in this section. RTC emulation in hypervisor Hostbridge emulation AT keyboard controller emulation + Split Device Model diff --git a/doc/developer-guides/hld/hv-dev-passthrough.rst b/doc/developer-guides/hld/hv-dev-passthrough.rst index 8fe895668..1b41c891f 100644 --- a/doc/developer-guides/hld/hv-dev-passthrough.rst +++ b/doc/developer-guides/hld/hv-dev-passthrough.rst @@ -155,24 +155,10 @@ directly. EPT mapping is not built for these pages having MSI-X table. Device configuration emulation ****************************** -PCI configuration is based on access of port 0xCF8/CFC. ACRN -implements PCI configuration emulation to handle 0xCF8/CFC to control -PCI device through two paths: implemented in hypervisor or in Service VM device -model. - -- When configuration emulation is in the hypervisor, the interception of - 0xCF8/CFC port and emulation of PCI configuration space access are - tricky and unclean. Therefore the final solution is to reuse the - PCI emulation infrastructure of Service VM device model. The hypervisor - routes the UOS 0xCF8/CFC access to device model, and keeps blind to the - physical PCI devices. Upon receiving UOS PCI configuration space access - request, device model needs to emulate some critical space, for instance, - BAR, MSI capability, and INTLINE/INTPIN. - -- For other access, device model - reads/writes physical configuration space on behalf of UOS. To do - this, device model is linked with lib pci access to access physical PCI - device. +PCI configuration space could been accessed by PCI-compatible Configuration Mechanism +(IO port 0xCF8/CFC) and PCI Express Enhanced Configuration Access Mechanism (PCI MMCONFIG). +ACRN hypervisor will trap these PCI configuration space access and emulate it. You may refer +to :ref:`split-device-model` for detail. MSI-X table emulation ********************* diff --git a/doc/developer-guides/hld/images/split-dm-image1.png b/doc/developer-guides/hld/images/split-dm-image1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4083183ae511e719253333c8b57e2bd5c4ae6fa GIT binary patch literal 26019 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 IY2JwVZ;&~F$p8QV literal 0 HcmV?d00001 diff --git a/doc/developer-guides/hld/images/split-dm-image2.png b/doc/developer-guides/hld/images/split-dm-image2.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6e43b28b75e44c9d45dc508677f36503cfd0a7 GIT binary patch literal 43029 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 AoB#j- literal 0 HcmV?d00001 diff --git a/doc/developer-guides/hld/images/split-dm-image3.png b/doc/developer-guides/hld/images/split-dm-image3.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae0e928e490e8c7ceed7986f6178c4d1b805c6e GIT binary patch literal 50286 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 F^Irs+z1;u+ literal 0 HcmV?d00001 diff --git a/doc/developer-guides/hld/images/split-dm-image4.png b/doc/developer-guides/hld/images/split-dm-image4.png new file mode 100644 index 0000000000000000000000000000000000000000..6e790c47c202c3601725d09c8d55d472de065fbe GIT binary patch literal 24176 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

#sLRCK@>EG!utG(rccyactLKIJbwqI5uR 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 M&@s}+YW*4UFB@2!YybcN literal 0 HcmV?d00001 diff --git a/doc/developer-guides/hld/split-dm.rst b/doc/developer-guides/hld/split-dm.rst new file mode 100644 index 000000000..99af9836f --- /dev/null +++ b/doc/developer-guides/hld/split-dm.rst @@ -0,0 +1,58 @@ +.. _split-device-model: + +Split Device Model +================== + +We usually emulate device in Device Model. However, we need to emulate device in +ACRN Hypervisor for some reasons. For example, post-launched RTVM needs to emulate +pass through PCI(e) devices in ACRN Hypervisor in which case it could continue to +running even if the Device Model is killed. In spite of this, the Device Model still +should own the overall resouce management like memroy/MMIO space, interrupt pin etc. +So there shall be one communication method provided by ACRN Hypervisor, which used +to align the resource information for Device Model to ACRN Hypervisor emulated device. + +Let's still take the pass through PCI(e) device as an example: +Before we split pass through PCI(e) device from Device Model to ACRN Hypervisor, the +whole picture is like this: + +.. figure:: images/split-dm-image1.png + :align: center + :width: 900px + :name: split-dm-architecture-overview1 + + PCI Config space access in Service VM or Pre-launched VM + +.. figure:: images/split-dm-image2.png + :align: center + :width: 900px + :name: split-dm-architecture-overview2 + + PCI Config space access in Post-launched VM + +After we split pass through PCI(e) device from Device Model to ACRN Hypervisor, the +whole picture is like this: + +.. figure:: images/split-dm-image3.png + :align: center + :width: 900px + :name: split-dm-architecture-overview3 + +.. figure:: images/split-dm-image4.png + :align: center + :width: 900px + :name: split-dm-architecture-overview4 + + PCI Config space access in Post-launched VM + +Interfaces Design +================= + +In order to achieve this, we add a new pair of hypercall to align the PCI(e) BAR +and INTx information. + +.. doxygenfunction:: hcall_assign_pcidev + :project: Project ACRN + +.. doxygenfunction:: hcall_deassign_pcidev + :project: Project ACRN +