diff options
Diffstat (limited to 'sources/xdma_driver/load_driver.sh')
| -rwxr-xr-x | sources/xdma_driver/load_driver.sh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/sources/xdma_driver/load_driver.sh b/sources/xdma_driver/load_driver.sh new file mode 100755 index 0000000..9910136 --- /dev/null +++ b/sources/xdma_driver/load_driver.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# Make sure only root can run our script +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + exit 1 +fi + +cd xdma +make clean +make -j +if [ ! $? == 0 ]; then + echo "Error: Kernel module did not compile properly." + echo " FAILED" + exit 1 +fi +cd .. + + +# Remove the existing xdma kernel module +lsmod | grep xdma +if [ $? -eq 0 ]; then + rmmod xdma +fi +echo -n "Loading xdma driver..." +# Use the following command to Load the driver in the default +# or interrupt drive mode. This will allow the driver to use +# interrupts to signal when DMA transfers are completed. +insmod xdma/xdma.ko enable_credit_mp=1 +# Use the following command to Load the driver in Polling +# mode rather than than interrupt mode. This will allow the +# driver to use polling to determ when DMA transfers are +# completed. +#insmod ../xdma/xdma.ko poll_mode=1 + +if [ ! $? == 0 ]; then + echo "Error: Kernel module did not load properly." + echo " FAILED" + exit 1 +fi + +# Check to see if the xdma devices were recognized +echo "" +cat /proc/devices | grep xdma > /dev/null +returnVal=$? +if [ $returnVal == 0 ]; then + # Installed devices were recognized. + echo "The Kernel module installed correctly and the xmda devices were recognized." +else + # No devices were installed. + echo "Error: The Kernel module installed correctly, but no devices were recognized." + echo " FAILED" + exit 1 +fi + +echo " DONE" |
