Commit 2c94318f authored by Ziye Yang's avatar Ziye Yang Committed by Gerrit Code Review
Browse files

Update bind.sh to bind nvme/ioat to uio_pci_generic driver



This patch is used to detect the nvme and ioat devices
in the tested platform and bind it to uio_pci_generic
driver. Thus, when we can smoothly use pci device functions
provided by DPDK instead of using libpciaccess.

Change-Id: Ibfe504fd2864c9b4980eacd0adc5ff2a029b5eaf
Signed-off-by: default avatarZiye Yang <ziye.yang@intel.com>
parent 8aa497f0
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -2,9 +2,44 @@

set -e

function prep_nvme {
	TMP=`mktemp`
	# Get vendor_id:device_id by nvme's class_id and subcalss_id
	lspci -n | awk -F " " '{if ($2 == "0108:") {print $3}}' \
	| awk -F ":" '{print $1" "$2}' > $TMP

	cat $TMP | while read device
	do
		echo $device > /sys/bus/pci/drivers/uio_pci_generic/new_id
	done
	rm $TMP
}

function prep_ioat {
	TMP=`mktemp`
	#collect all the device_id info of ioat devices.
	grep "PCI_DEVICE_ID_INTEL_IOAT" $rootdir/lib/ioat/ioat_pci.h \
	| awk -F"x" '{print $2}' > $TMP
	vendor=8086

	for device in `cat $TMP`
	do
		result=`lspci -n | grep "$vendor:$device"`
		if [ "$result" ]
		then
			echo $vendor $device > /sys/bus/pci/drivers/uio_pci_generic/new_id
		fi
	done
	rm $TMP
}

function configure_linux {
	rmmod nvme || true
	rmmod uio_pci_generic || true
	rmmod ioatdma || true
	modprobe uio_pci_generic || true
	prep_nvme
	prep_ioat
}

function configure_freebsd {