summaryrefslogtreecommitdiffstats
path: root/qemu/docs/specs/vmw_pvscsi-spec.txt
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/docs/specs/vmw_pvscsi-spec.txt
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/docs/specs/vmw_pvscsi-spec.txt')
-rw-r--r--qemu/docs/specs/vmw_pvscsi-spec.txt92
1 files changed, 0 insertions, 92 deletions
diff --git a/qemu/docs/specs/vmw_pvscsi-spec.txt b/qemu/docs/specs/vmw_pvscsi-spec.txt
deleted file mode 100644
index 49affb2a4..000000000
--- a/qemu/docs/specs/vmw_pvscsi-spec.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-General Description
-===================
-
-This document describes VMWare PVSCSI device interface specification.
-Created by Dmitry Fleytman (dmitry@daynix.com), Daynix Computing LTD.
-Based on source code of PVSCSI Linux driver from kernel 3.0.4
-
-PVSCSI Device Interface Overview
-================================
-
-The interface is based on memory area shared between hypervisor and VM.
-Memory area is obtained by driver as device IO memory resource of
-PVSCSI_MEM_SPACE_SIZE length.
-The shared memory consists of registers area and rings area.
-The registers area is used to raise hypervisor interrupts and issue device
-commands. The rings area is used to transfer data descriptors and SCSI
-commands from VM to hypervisor and to transfer messages produced by
-hypervisor to VM. Data itself is transferred via virtual scatter-gather DMA.
-
-PVSCSI Device Registers
-=======================
-
-The length of the registers area is 1 page (PVSCSI_MEM_SPACE_COMMAND_NUM_PAGES).
-The structure of the registers area is described by the PVSCSIRegOffset enum.
-There are registers to issue device command (with optional short data),
-issue device interrupt, control interrupts masking.
-
-PVSCSI Device Rings
-===================
-
-There are three rings in shared memory:
-
- 1. Request ring (struct PVSCSIRingReqDesc *req_ring)
- - ring for OS to device requests
- 2. Completion ring (struct PVSCSIRingCmpDesc *cmp_ring)
- - ring for device request completions
- 3. Message ring (struct PVSCSIRingMsgDesc *msg_ring)
- - ring for messages from device.
- This ring is optional and the guest might not configure it.
-There is a control area (struct PVSCSIRingsState *rings_state) used to control
-rings operation.
-
-PVSCSI Device to Host Interrupts
-================================
-There are following interrupt types supported by PVSCSI device:
- 1. Completion interrupts (completion ring notifications):
- PVSCSI_INTR_CMPL_0
- PVSCSI_INTR_CMPL_1
- 2. Message interrupts (message ring notifications):
- PVSCSI_INTR_MSG_0
- PVSCSI_INTR_MSG_1
-
-Interrupts are controlled via PVSCSI_REG_OFFSET_INTR_MASK register
-Bit set means interrupt enabled, bit cleared - disabled
-
-Interrupt modes supported are legacy, MSI and MSI-X
-In case of legacy interrupts, register PVSCSI_REG_OFFSET_INTR_STATUS
-is used to check which interrupt has arrived. Interrupts are
-acknowledged when the corresponding bit is written to the interrupt
-status register.
-
-PVSCSI Device Operation Sequences
-=================================
-
-1. Startup sequence:
- a. Issue PVSCSI_CMD_ADAPTER_RESET command;
- aa. Windows driver reads interrupt status register here;
- b. Issue PVSCSI_CMD_SETUP_MSG_RING command with no additional data,
- check status and disable device messages if error returned;
- (Omitted if device messages disabled by driver configuration)
- c. Issue PVSCSI_CMD_SETUP_RINGS command, provide rings configuration
- as struct PVSCSICmdDescSetupRings;
- d. Issue PVSCSI_CMD_SETUP_MSG_RING command again, provide
- rings configuration as struct PVSCSICmdDescSetupMsgRing;
- e. Unmask completion and message (if device messages enabled) interrupts.
-
-2. Shutdown sequences
- a. Mask interrupts;
- b. Flush request ring using PVSCSI_REG_OFFSET_KICK_NON_RW_IO;
- c. Issue PVSCSI_CMD_ADAPTER_RESET command.
-
-3. Send request
- a. Fill next free request ring descriptor;
- b. Issue PVSCSI_REG_OFFSET_KICK_RW_IO for R/W operations;
- or PVSCSI_REG_OFFSET_KICK_NON_RW_IO for other operations.
-
-4. Abort command
- a. Issue PVSCSI_CMD_ABORT_CMD command;
-
-5. Request completion processing
- a. Upon completion interrupt arrival process completion
- and message (if enabled) rings.