From a2824d1cf622395bb15079be978fe46c6dc1465c Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 8 Jul 2016 13:33:47 +0200 Subject: [PATCH] added some shell scripts for FPGA work --- tools/rebind_device.sh | 25 +++++++++++++++++++++++++ tools/reset_pci_device.sh | 13 +++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 tools/rebind_device.sh create mode 100755 tools/reset_pci_device.sh diff --git a/tools/rebind_device.sh b/tools/rebind_device.sh new file mode 100644 index 000000000..788068bc3 --- /dev/null +++ b/tools/rebind_device.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +if [ "$#" -ne 2 ]; then + echo "usage: $0 BUS:DEV:FNC DRIVER" + exit 1 +fi + +BDF=$1 +DRIVER=$2 + +VENDOR=$(cut -b3- /sys/bus/pci/devices/${BDF}/vendor) +DEVICE=$(cut -b3- /sys/bus/pci/devices/${BDF}/device) + +SYSFS_DEVICE=/sys/bus/pci/devices/${BDF} +SYSFS_DRIVER=/sys/bus/pci/drivers/${DRIVER} + +echo "Device: $VENDOR $DEVICE $BDF" + +if [ -L "${SYSFS_DEVICE}/driver" ] && [ -d "${SYSFS_DEVICE}/driver" ]; then + echo ${BDF} > ${SYSFS_DEVICE}/driver/unbind +fi + +echo "${VENDOR} ${DEVICE}" > ${SYSFS_DRIVER}/new_id +echo "${BDF}" > ${SYSFS_DRIVER}/bind +echo "${VENDOR} ${DEVICE}" > ${SYSFS_DRIVER}/remove_id diff --git a/tools/reset_pci_device.sh b/tools/reset_pci_device.sh new file mode 100755 index 000000000..7fd52a4cc --- /dev/null +++ b/tools/reset_pci_device.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ "$#" -ne 1 ]; then + echo "usage: $0 BUS:DEV:FNC" + exit 1 +fi + +BDF=$1 + +echo "1" > /sys/bus/pci/devices/$BDF/remove +echo "1" > /sys/bus/pci/rescan +echo "1" > /sys/bus/pci/devices/$BDF/enable +