Commit 641a6732 authored by Juan David González Cobas's avatar Juan David González Cobas

Merge branch 'lfruiz-130205' of /acc/src/dsc/drivers/cohtdrep/lfruiz/svec into lfruiz-130205

parents ac13b9cd 2f76fc7f
[submodule "kernel/fmc-bus"]
path = kernel/fmc-bus
path = fmc-bus
url = git://ohwr.org/fmc-projects/fmc-bus.git
fmc-bus @ 6cc2519f
File moved
# Assign sensible defaults, but allow overriding with environment variables.
# CPU ?:= L865
# KVER ?= 2.6.24.7-rt27
CPU ?= L865
KVER ?= 2.6.24.7-rt27
KVER ?= 3.2.33-rt50
LINUX ?= "/acc/sys/$(CPU)/usr/src/kernels/$(KVER)"
VME_DIR ?= "../../repo/vmebridge/driver"
#VME_OBJDIR ?= "../../repo/vmebridge/driver/$(CPU)/$(KVER)"
VME_OBJDIR ?= "../../repo/vmebridge/driver/"
ccflags-y += -I $(M)/../include
ccflags-y += -I $(M)/fmc-bus/kernel/include
......
0x00000000 fmc_device_unregister /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_find_sdb_device /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_driver_register /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_show_sdb_tree /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_device_register /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_free_sdb_tree /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_scan_sdb_tree /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_driver_unregister /acc/dsc/src/drivers/cohtdrep/lfruiz/svec/kernel/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_device_unregister /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_find_sdb_device /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_driver_register /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_show_sdb_tree /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_device_register_n /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_device_register /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_device_unregister_n /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_free_sdb_tree /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_scan_sdb_tree /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_driver_unregister /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
#
# svec-fd-luns.awk - create lun'ed devnodes from transfer.ref
#
# usage: svec-fd-luns.awk DEVICE_NAME [transfer_file]
#
# e.g.:
# $ awk -f svec-fd-luns.awk SVECFDELAY \
# /acc/dsc/tst/cfv-864-cdv28/etc/transfer.ref
# produces as output
# FIXME: sh command
BEGIN {
device_name = ARGV[1]
delete ARGV[1]
}
/^#\+#/ && $6 == device_name {
# decode transfer.ref line
sl = $20
ss = $21
dev_id = sl * 64 + ss
lun = $7
printf("ln -sf %04x /dev/fine-delay.%d\n", dev_id, lun)
}
#!/bin/sh
TRANSFER=/etc/transfer.ref
DEVICE_NAME=SVECFDELAY
DRIVER_NAME=fmc-fine-delay
# symlink to true GOLDEN="fmc/golden-svec-20130114-1000.bin"
GOLDEN="fmc/svec_golden.bin"
# symlink to true FDELAY="fmc/svec-fine-delay-20121218-1549.bin"
FDELAY="fmc/svec_top.bin"
OUTPUT=":"
RUN=""
while getopts hvnc:D:d:t: o
do case $o in
v) OUTPUT="echo" ;; # verbose
n) RUN=":" ;; # dry run
D) DEVICE_NAME="$OPTARG" ;;
d) DRIVER_NAME="$OPTARG" ;;
c) CRATECONFIG="$OPTARG" ;;
t) TRANSFER="$OPTARG" ;;
[h?]) echo >&2 "usage: $0 [-?hvn] [-D device_name] [-d driver_name] [-t transfer]"
exit ;;
esac
done
$OUTPUT "$DRIVER_NAME install"
echo Installing zio and fmc drivers ...
/sbin/insmod zio.ko && /sbin/insmod fmc.ko
echo Installing fine delay driver...
/sbin/insmod $DRIVER_NAME.ko gateware=$FDELAY timer_ms=10
INSMOD_ARGS=`awk -f ./svec.awk FMC-SVEC $TRANSFER |
sed 's!\$GOLDEN!'$GOLDEN'!g'`
echo "svec: insmod with $INSMOD_ARGS"
/sbin/insmod svec.ko $INSMOD_ARGS
echo "$DRIVER_NAME: making device nodes"
awk -f ./fd-luns.awk $DEVICE_NAME $TRANSFER | sh
#
# svec.awk - extract insmod parameters from transfer.ref
#
# usage: svec.awk DEVICE_NAME [transfer_file]
#
# e.g.:
# $ awk -f svec.awk FMC_SVEC /acc/dsc/tst/cfv-864-cdv28/etc/transfer.ref
# $ awk -f svec.awk FMC-SVEC /acc/dsc/tst/cfv-864-cdv28/etc/transfer.ref
#
# produces
# vmebase1=a0000000 vmebase2=a0000000 vector=0x00
#
BEGIN {
device_name = ARGV[1]
delete ARGV[1]
slot = ""
csr_base_addr = ""
a32_base_addr = ""
vector = ""
}
/^#\+#/ && $6 == device_name && $4 == "VME" {
# decode transfer.ref line
lun = lun "," $7
slot = slot "," $20
csr_base_addr = sprintf("%s,0x%x", csr_base_addr, $20 * 0x80000)
a32_base_addr = sprintf("%s,0x%s", a32_base_addr, $11)
vector = vector "," $23
level = level ",2" # hack: always level 2
fw_name = fw_name ",$GOLDEN" # hack: always golden bitstream
}
END {
insmod_params = " "
# take away the first comma in each vector of params
if (lun)
insmod_params = insmod_params " lun=" substr(lun, 2)
if (csr_base_addr)
insmod_params = insmod_params " vmebase1=" substr(csr_base_addr, 2)
if (a32_base_addr)
insmod_params = insmod_params " vmebase2=" substr(a32_base_addr, 2)
if (vector)
insmod_params = insmod_params " vector=" substr(vector, 2)
if (level)
insmod_params = insmod_params " level=" substr(level, 2)
if (fw_name)
insmod_params = insmod_params " fw_name=" substr(fw_name, 2)
print substr(insmod_params, 3)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment