#*
#*******************************************************************************/
+
export RTE_SDK=/home/turner/dpdk
export RTE_TARGET=x86_64-native-linuxapp-icc
fi
}
+#
+# Unloads VFIO modules.
+#
+remove_vfio_module()
+{
+ echo "Unloading any existing VFIO module"
+ /sbin/lsmod | grep -s vfio > /dev/null
+ if [ $? -eq 0 ] ; then
+ sudo /sbin/rmmod vfio-pci
+ sudo /sbin/rmmod vfio_iommu_type1
+ sudo /sbin/rmmod vfio
+ fi
+}
+
+#
+# Loads new vfio-pci (and vfio module if needed).
+#
+load_vfio_module()
+{
+ remove_vfio_module
+
+ VFIO_PATH="kernel/drivers/vfio/pci/vfio-pci.ko"
+
+ echo "Loading VFIO module"
+ /sbin/lsmod | grep -s vfio_pci > /dev/null
+ if [ $? -ne 0 ] ; then
+ if [ -f /lib/modules/$(uname -r)/$VFIO_PATH ] ; then
+ sudo /sbin/modprobe vfio-pci
+ fi
+ fi
+
+ # make sure regular users can read /dev/vfio
+ echo "chmod /dev/vfio"
+ sudo chmod a+x /dev/vfio
+ if [ $? -ne 0 ] ; then
+ echo "FAIL"
+ quit
+ fi
+ echo "OK"
+
+ # check if /dev/vfio/vfio exists - that way we
+ # know we either loaded the module, or it was
+ # compiled into the kernel
+ if [ ! -e /dev/vfio/vfio ] ; then
+ echo "## ERROR: VFIO not found!"
+ fi
+}
+
+
load_igb_uio_module
+load_vfio_module
CPU_FEATURES_DETECT=`cat /proc/cpuinfo |grep hypervisor | wc -l`
$RTE_SDK/usertools/dpdk-devbind.py --status
if [ ${VM_DETECT} == 'HOST' ]; then
#HOST
- $RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio 0000:d8:02.0
- $RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio 0000:d8:02.1
- $RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio 0000:07:02.0
- $RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio 0000:07:02.1
+ $RTE_SDK/usertools/dpdk-devbind.py --bind=vfio-pci 0000:22:02.0
+ $RTE_SDK/usertools/dpdk-devbind.py --bind=vfio-pci 0000:22:02.1
+ $RTE_SDK/usertools/dpdk-devbind.py --bind=vfio-pci 0000:22:0a.0
+ $RTE_SDK/usertools/dpdk-devbind.py --bind=vfio-pci 0000:22:0a.1
else
#VM
$RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio 0000:00:04.0