simics-uefi simicsfs_server
Simics Reference Manual  /  5 Classes  / 

simics_nvme_controller

Description

A generic NVMe I/O controller over PCIe with support multiple namespaces. Implements all mandatory features, commands and registers with the following limitations:The following optional registers are implemented:

Interfaces Implemented

conf_object, log_object, pcie_device

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
controller-changes
namespace-changes
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
state-change
Notifier on potential DML state change

Port Objects

bank.msix_data
simics_nvme_controller.msix_data
bank.pcie_config
simics_nvme_controller.pcie_config
bank.properties
simics_nvme_controller.properties
port.HRESET
simics_nvme_controller.HRESET
port.phy
simics_nvme_controller.phy
security.nvme_interface.rpmb0.rpmb_data_area
image – The image class provides persistent file-backed flat-address storage of devices such as physical memory and disks. Writes are fully shadowed, which allows changes to be stored in a compact way and the original images be kept unchanged. Memory page allocation is done lazily.

In an image object, one or more files represent the image data. This is done in a transparent way: page ranges not present in one file is searched in subsequent files.

Image files can be in raw format, compressed craff format, read-only DMG format, or VHDX format (fixed virtual hard disks and dynamic virtual hard disks are supported). The craff utility that is shipped with Simics simulator can be used to manipulate image files, for example, to convert image files from and into the craff format.

Commands for this class

Attributes

SN
Optional attribute; read/write access; type: s
The serial number for the NVM subsystem as an ASCII string.
bandwidth
Optional attribute; read/write access; type: i
The read/write speed of the NVMe disk, provided in MB/s. 0 means instant read/write:s, which is the default value
nqn_uuid
Optional attribute; read/write access; type: s
The UUID used for the NVMe Qualified Names. Note that setting this attribute does not validate that the UUID is valid except for checking the length and that dashes are present at the appropriate locations.
nvm_subsystem_manager
Required attribute; read/write access; type: o|[os]
NVM Subsystem Manager

Required interfaces: nvm_subsystem_controller_management, nvme_namespace_management.

pcie_gen_speed
Optional attribute; read/write access; type: i
Based on the value of this attribute, the NVMe PCIe function will be configured to advertise its maximum supported link and speed. It will advertise the highest supported link speed for the given PCIe generation. Note that this does not set the PCIe version of the NVMe device, as the version of this device is fixed at 6. The value of this attribute must be between 1 and 6.
Optional attribute; read/write access; type: i
Based on the value of this attribute, the NVMe PCIe function will be configured to advertise its maximum supported link width. The value of this attribute must be one of the following: 1, 2, 4, 8, or 16.
sanitize_op_time_s
Optional attribute; read/write access; type: f
Simulation time in seconds to perform the sanitize operation. Default is 0.1 seconds.

Provided By

simics-nvme-controller

simics_nvme_controller.HRESET

Interfaces Implemented

conf_object, log_object, signal

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

simics_nvme_controller.msix_data

Interfaces Implemented

conf_object, log_object, bank_instrumentation_subscribe, instrumentation_order, register_view, register_view_catalog, register_view_read_only, transaction

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface bank_instrumentation_subscribe

Commands for interface instrumentation_order

Commands for interface transaction

simics_nvme_controller.pcie_config

Interfaces Implemented

conf_object, log_object, bank_instrumentation_subscribe, instrumentation_order, pcie_function_info, register_view, register_view_catalog, register_view_read_only, transaction

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface bank_instrumentation_subscribe

Commands for interface instrumentation_order

Commands for interface pcie_function_info

Commands for interface transaction

Attributes

function_number
Pseudo attribute; read-only access; type: i
PCIe function number of this bank

simics_nvme_controller.phy

Interfaces Implemented

conf_object, log_object, transaction

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface transaction

simics_nvme_controller.properties

Interfaces Implemented

conf_object, log_object, bank_instrumentation_subscribe, instrumentation_order, register_view, register_view_catalog, register_view_read_only, transaction

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface bank_instrumentation_subscribe

Commands for interface instrumentation_order

Commands for interface transaction

simics-uefi simicsfs_server