OVP Peripheral Model: OVPVirtioBlkMMIO
Model Specific Information
This page provides introductory usage information for an Imperas OVP peripheral behavioral model.
The page is split into sections providing specific information for this peripheral,
including any ports for connecting into a platform, registers, other component parts, and configuration options and general information for peripheral modeling with Imperas OVP.
Description
VIRTIO version 1 mmio block device This model implements a VIRTIO MMIO block device as described in: http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf. Use the VB_DRIVE parameter to specify the disk image file to use. Set the VB_DRIVE_DELTA parameter to 1 to prevent writes to disk during simulation from changing the image file.
Limitations
Only supports the Legacy (Device Version 1) interface. Only little endian guests are supported.
Licensing
Open Source Apache 2.0
Reference
http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf
Location
The VirtioBlkMMIO peripheral model is located in an Imperas/OVP installation at the VLNV: ovpworld.org / peripheral / VirtioBlkMMIO / 1.0.
Peripheral Instance Parameters
This model accepts the following parameters:
Table : Peripheral Parameters
Name | Type | Description |
---|
VB_DRIVE | string | Filename of image for Virtio Block device |
VB_DRIVE_DELTA | bool | If true the Drive uses delta writes (image will not be updated) |
record | string | Record external events into this file |
replay | string | Replay external events from this file |
Net Ports
This model has the following net ports:
Table 1: Net Ports
Name | Type | Must Be Connected | Description |
---|
Interrupt | output | F (False) | |
Bus Master Ports
This model has the following bus master ports:
Bus Master Port: dma
Table 2: dma
Name | Address Width (bits) | Description |
---|
dma | 40 | |
Bus Slave Ports
This model has the following bus slave ports:
Bus Slave Port: bport1
Table 3: Bus Slave Port: bport1
Name | Size (bytes) | Must Be Connected | Description |
---|
bport1 | 0x200 | F (False) | |
Table 4: Bus Slave Port: bport1 Registers:
Name | Offset | Width (bits) | Description | R/W | is Volatile |
---|
ab_MagicValue | 0x0 | 32 | Magic value ('virt' string) | | |
ab_Version | 0x4 | 32 | Device Version number | | |
ab_DeviceID | 0x8 | 32 | Block Subsystem Device ID | | |
ab_VendorID | 0xc | 32 | Subsystem Vendor ID ('OVP' string) | | |
ab_HostFeatures | 0x10 | 32 | Host features flags | | |
ab_HostFSel | 0x14 | 32 | Host features select | | |
ab_GuestFeatures | 0x20 | 32 | Guest features flags | | |
ab_GuestFSel | 0x24 | 32 | Guest features select | | |
ab_GuestPageSz | 0x28 | 32 | Guest page size | | |
ab_QueueSel | 0x30 | 32 | Virtual queue index | | |
ab_QueueNumMax | 0x34 | 32 | Maximum virtual queue size | | |
ab_QueueNum | 0x38 | 32 | Virtual queue size | | |
ab_QueueAlign | 0x3c | 32 | Virtual queue align | | |
ab_QueuePFN | 0x40 | 32 | Virtual queue PFN | | |
ab_QueueNotify | 0x50 | 32 | Virtual queue notify | | |
ab_IntStatus | 0x60 | 32 | Interrupt status | | |
ab_IntAck | 0x64 | 32 | Interrupt acknowlege | | |
ab_Status | 0x70 | 32 | Device status | | |
Platforms that use this peripheral component
Peripheral components can be used in many different platforms, including those developed by Imperas or by other users of OVP. You can use this peripheral in your own platforms.
Table 5: Publicly available platforms using peripheral 'VirtioBlkMMIO'