Visible to Intel only — GUID: hyz1619728342903
Ixiasoft
Visible to Intel only — GUID: hyz1619728342903
Ixiasoft
3.5.2.3.2.1. Installing the Linux Kernel Driver
- Install the UIO driver If we are proceeding with UIO support. If we are proceeding with vfio, this step not required:
$ modprobe uio
- Build the mcdma kernel driver and load:
- $ cd software/kernel
- $ make clean all -C driver/kmod/mcdma-custom-driver
- $ insmod driver/kmod/mcdma-custom-driver/ifc_uio.ko
- Verify whether driver is loaded or not:
$ lspci -d 1172:000 -v | grep ifc_uio
(Kernel driver in use: ifc_uio)
Currently, UIO is the default.
To use the vfio driver, modify UIO_SUPPORT in common/mk/common.mk as follows:
__cflags += -UUIO_SUPPORT
Currently, the build for the 64-bit OS is the default.
To change to building for a 32-bit OS, modify "software/user/common/mk/common.mk" as follows:
Undefine IFC_PIO64 and define IFC_PIO32 and IFC_32BIT_SUPPORT
__cflags += -UIFC_PIO_64
__cflags += -DIFC_PIO_32
__cflags += -DIFC_32BIT_SUPPORT
For a 64-bit OS, if the 32-bit PIO is to be enabled instead of the 64-bit PIO, modify "software/user/common/mk/common.mk" as follows:
Undefine IFC_PIO64 and define IFC_PIO32
__cflags += -UIFC_PIO_64
__cflags += -DIFC_PIO_32
- Install vfio-pci module.
$ modprobe vfio-pci
- Bind the device to vfio-pci
- If the device is bound to ifc_uio, unbind with the following command:
$ echo "<bdf>" > /sys/bus/pci/devices/<bdf>/driver/unbind
E.g: echo "0000:01:00.0" > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind
- Bind the device to vfio-pci
echo <PCI Vendor ID> <PCI Device ID> > /sys/bus/pci/drivers/vfio-pci/new_id
Example: echo 1172 0000 > /sys/bus/pci/drivers/vfio-pci/new_id
- If the device is bound to ifc_uio, unbind with the following command:
Example: readlink /sys/bus/pci/devices/0000:01:00.0/iommu_group