SIS1100/3100 FAQs/driver installation
problems/solutions
As of December 6th of 2012 SIS1100(e)/310x driver related issues will be posted in our DAQ Blog
Struck DAQ Blog
Driver hangs on system shutdown
Problem:
Driver hangs on system shutdown
Solution:
use rcsis.txt script (which loads/unloads driver according to runlevel) or add rmmod sis1100 to /etc/init.d/halt.local
out of vmalloc space (with NVIDIA PCIe graphics card e.g.)
Problem (dmesg output):
SIS1100 driver V2.04 (c) 11.Jun.2004 FZ Juelich
ACPI: PCI Interrupt 0000:03:0f.0[A] -> GSI 23 (level, low) -> IRQ 201
sis1100: found sis1100 at 0000:03:0f.0
sis1100[0]: sis1100_irq_thread started
sis1100[0]: plx_addr=0xc0201000
sis1100[0]: mapped at f9052000 (size=0x100)
sis1100[0]: reg_addr=0xc0200000
sis1100[0]: mapped at f9054000 (size=0x1000)
sis1100[0]: rem_addr=0xd0000000
sis1100[0]: rem_size=0x10000000
allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
...
Solution:
use vmalloc=512m as boot parameter
Fedora Kernel 2.6.11-x
Problem:
/home/vme/V2.04/dev/pci/sis1100_autoconf_linux.c: In
function sis1100_linux_init:
/home/vme/V2.04/dev/pci/sis1100_autoconf_linux.c:308: warning: ignoring return
v alue of pci_set_consistent_dma_mask, declared with attribute
warn_unused_resul t
Solution:
if ((res=pci_set_consistent_dma_mask(dev, 0xffffffff)))
{ pWARNING(sc, "coherent DMA not available.");
goto
fehler_request_irq;
}
Remove sis1100.mod.c manually before
recompiling.
What device to use for VME access with V2.02
driver?
Solution:
The first SIS1100 in the PC is used for VME access over
/tmp/sis1100_00remote
V1.3 mmap fails with large physical
memory
Problem:
SIS1100 driver V1.3 (c) 31.07.2003 FZ Juelich
SIS1100: found Research Centre Juelich SIS1100 [Gigabit link] at
02:09.0
SIS1100: can't map remote space
SIS1100: mmap not available
SIS1100: irq 5 installed V2.02 driver compilation problem under kernel
2.6.14 io_remap_page_range
Solution:
the V1.3 driver tries to map the full 256 MByte space of the SIS1100
use following patch, which reduces the mapped space until success (or a
minimum value)sis100_linux_init_patch.c
the output with a reduction to 64 MBytes until success is illustrated
below
SIS1100 driver V1.3 (c) 31.07.2003 FZ Juelich
SIS1100: found Research Centre Juelich
SIS1100 [Gigabit link] at 02:09.0
SIS1100: mapping 268435456 Bytes of remote space: failed.
SIS1100: mapping 134217728 Bytes of remote space: failed.
SIS1100: mapping 67108864 Bytes of remote space: success.
SIS1100: mapped 67108864 Bytes of remote space at 0xf8b35000
SIS1100: irq 5 installed
V2.02 driver compilation problem under kernel
2.6.14 io_remap_page_range
Problem:
V2.02 driver compilation problem under kernel
2.6.14 io_remap_page_range
Solution:
see noioremap.txt
V1.3 Compilation under CERN Kernel
2.4.21-32 (and similar kernels)
Problem:
Compilation
Solution:
see changesSIS1100191005.txt
Thanks to
Domizia Orestano for the information and sending the diff file
Problem:
V2.02 driver compilation problem under kernel 2.6.x
(x around 12)
... structure has no member name 'slot_name'
Solution:
replace
dev->slot_name
with
pci_name(dev)
Problem:
V2.02 driver compilation problem under kernel 2.6.x
(x around 9)
*** Warning: "kill_proc_info" ........ undefined!
Solution:
replace
res=kill_proc_info(fd->sig, (void *)0,fd->pid);
with
res=kill_proc(fd->pid,fd->sig,0);
Problem:
Compilation problem under kernel 2.4.20 (probably
induced by mixed in 2.5.xx contents) as shown below:
> > > [root@NB3Al driver]# make
> > > gcc -g3 -O -D__KERNEL__ -DMODULE -DMODULENAME=SIS1100
-Wall -I./..
> > > -I./../../common -I/usr/src/linux/include -c -o
sis1100_mmap.o
> > > sis1100_mmap.c
> > > sis1100_mmap.c: In function `sis1100_mmap':
> > > sis1100_mmap.c:57: warning: passing arg 1 of
`remap_page_range' makes
> > pointer
> > > from integer without a cast
> > > sis1100_mmap.c:57: incompatible type for argument 4 of
> `remap_page_range'
> > > sis1100_mmap.c:57: too few arguments to function
`remap_page_range'
> > > make: *** [sis1100_mmap.o] Error 1
> > > [root@NB3Al driver]#
Solution:
edit sis1100_mmap.c to reflect:
-----------------------------------------------------------------------
if ((error = remap_page_range(vma, vma->vm_start, memoffset, size,
vma->vm_page_prot))!=0)
------------------------------------------------------------------------
Bus error handling after (consecutive) BLT reads
(from empty FIFO e.g.)
Problem:
The driver returns a 0 return code (instead of the bus
error return code 0x211) after one or more bus errors. Data are corrupted upon
the next read (with a non BERR access from a now filled FIFO).
Solutions:
Termination of the DMA after the occurence of bus error
with consecutive abort has to be checked by polling the corresponding status
bit.
a.) upgrade to driver V1.3 (Kernel Revision 2.4.18 or higher
required)
b.) use new sis1100_read_dma.c
c.) add #define
sr_abort_dma (1<<31) to sis1100_map.h
Driver problem with devfs
Solution:
Resolved with V1.3
Driver V1.0/V1.1 XOFF problem after 1 word
DMA
Problem:
Under certain circumstances a mixture of single read/write
cycles and block transfers may result in a situation like:
A32BLT32 call fails (returns a transfer count not equal to the requested
count)
with the following messages in the system log:
Nov 1 15:13:41
wimp2 kernel: SIS1100[0]: S_XOFF
Nov 1 15:13:41 wimp2 kernel: SIS1100[0]:
status=0x00310a03
The actual problem is caused by a 10 ms Timeout after a 1 word block
read
Solutions:
a.) upgrade to driver V1.2 (Kernel Revision 2.4.18 or
higher required)
b.) upgrade SIS1100 firmware to 7
Driver V1.0 BLT problems with large
memory
Problem:
BLT reads return corrupt data (with proper return code) on
machines with large memory (i.e. the problem was observed with 2GB physical
memory) and large user address space (observed with 3 GB).
Solutions:
a.) Reduce user address space to 1 GB.
b.) upgrade to
V1.1 (Kernel Revision 2.4.18 or higher required)
Driver V1.0 with older SIS1100/3100
firmware
Problem:
Driver will not load/will not accept firmware status of
SIS1100/3100.
Use dmesg or look in /var/log/messages as root
to check.
Solution:
a.) longterm: upgrade firmware of SIS1100 and SIS3100
card (this is required to make use of 2e VME functionality anyway)
b.) shortterm: edit sis1100_init.c and sis1100_init_remote.c to
ignore the unknown firmware.
Redhat CERN Kernel 2.4.9-31.1.cern
(and similar kernels)
Problem:
[root@pcephc164 driver]# make sis1100_linux_init.c: In
function `SIS1100_linux_init':
sis1100_linux_init.c:179: warning: implicit
declaration of function `alloc_kiovec'
sis1100_linux_init.c:195: warning:
unsigned int format, different type arg (arg 2)
sis1100_linux_init.c:226:
warning: implicit declaration of function `free_kiovec'
Solution:
1. int nbhs = KIO_MAX_SECTORS;
2. replace alloc_kiovec and free_kiovec with
alloc_kiovec_sz(......,....,&nbhs) and free_kiovec_sz(....,....,&nbhs)
Last update 04.07.07 by Matthias
Kirsch