Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] DVB on Alpha
Hi,
We're planning a project in partnership with a Cable-TV provider and
Compaq. Part of the project is to provide Video RTP Multicasts with at
least 32 channels in two separate locations (one CatV network and an xDSL
network).
If've been playing around with Linux-DVB for the last couple of days. My
test-system works fine with an Intel-PC, a PCI-expansion card and 6 WinTV
DVB-S cards plugged into it(*).
It would be very attractive both for us and for Compaq to use Alpha-Hardware
in favor to Intel-PCs. However, the saa7146_core.o crashes the system upon
loading the module. Can anybody help to track this down? The crash occurs
within the `for (count=0 ... count+=PAGE_SIZE)' loop. BTW: Alpha has 8K
pages. This occurs both in the latest CVS-version of the driver and in
8.9.3. Linux-kernel version is 2.4.10. Please contact me for more
information.
saa7146_core.c:208
for(i = 0; i < quant; i++) {
for (count=0; count<GRABBING_MEM_SIZE; count+=PAGE_SIZE)
#if LINUX_VERSION_CODE >= 0x020400
mem_map_reserve(virt_to_page(__va(kvirt_to_pa(adr+count))));
#else
mem_map_reserve(MAP_NR(phys_to_virt(kvirt_to_pa(adr+count))));
#endif
/* separate loop for SAA MMU, PAGE_SIZE can be !=4096 */
ptp = pt[i];
for (count=0; count<GRABBING_MEM_SIZE; count+=4096, adr+=4096)
*(ptp++) = cpu_to_le32(kvirt_to_pa(adr));
}
dprintk(KERN_ERR "saa7146: page tables built\n");
Unable to handle kernel paging request at virtual address ffffff8208ad0030
insmod(1277): Oops 0
pc = [<fffffffc0037748c>] ra = [<fffffffc0037739c>] ps = 0000
Using defaults from ksymoops -t elf64-alpha -a alpha
v0 = 000000000000001e t0 = ffffff8208ad0000 t1 = 0000e08200001111
t2 = fffffc0000ad0000 t3 = fffffffc0037e000 t4 = 00000000000001bf
t5 = 0000000000000000 t6 = fffffffc0037e000 t7 = fffffc0016d00000
s0 = 000000000023ffff s1 = 0000000000000002 s2 = 0000000000000000
s3 = 0000000000001fff s4 = 0000040000000000 s5 = fffffc0000a42af8
s6 = fffffffc0037e000
a0 = ffffffffffffe000 a1 = fffffffc0037a590 a2 = 0000000000000001
a3 = 0000000000000001 a4 = 00000000000003ff a5 = 0000000000000000
t8 = fffffc0000000000 t9 = 0000dc8200000000 t10= 0000000000004000
t11= 0000000000000000 pv = ffffffffffffffff at = fffffc0000a96798
gp = fffffffc00382ae8 sp = fffffc0016d03cb8
Trace:fffffc000091e45c fffffc000091e534 fffffc000082edac fffffc0000810df0
Code: 44230417 42ed0401 a47c0000 4821b681 4820f721 40230401 <a8410030> 44580402
>>PC; fffffffc0037748c <[saa7146_core]rvmalloc+30c/450> <=====
Trace; fffffc000091e45c <pci_announce_device+6c/c0>
Trace; fffffc000091e534 <pci_register_driver+84/c0>
Trace; fffffc000082edac <sys_init_module+8fc/a40>
Trace; fffffc0000810df0 <entSys+a8/c0>
Code; fffffffc00377474 <[saa7146_core]rvmalloc+2f4/450>
0000000000000000 <_PC>:
Code; fffffffc00377474 <[saa7146_core]rvmalloc+2f4/450>
0: 17 04 23 44 or t0,t2,t9
Code; fffffffc00377478 <[saa7146_core]rvmalloc+2f8/450>
4: 01 04 ed 42 addq t9,s4,t0
Code; fffffffc0037747c <[saa7146_core]rvmalloc+2fc/450>
8: 00 00 7c a4 ldq t2,0(at)
Code; fffffffc00377480 <[saa7146_core]rvmalloc+300/450>
c: 81 b6 21 48 srl t0,0xd,t0
Code; fffffffc00377484 <[saa7146_core]rvmalloc+304/450>
10: 21 f7 20 48 sll t0,0x7,t0
Code; fffffffc00377488 <[saa7146_core]rvmalloc+308/450>
14: 01 04 23 40 addq t0,t2,t0
Code; fffffffc0037748c <[saa7146_core]rvmalloc+30c/450> <=====
18: 30 00 41 a8 ldl_l t1,48(t0) <=====
Code; fffffffc00377490 <[saa7146_core]rvmalloc+310/450>
1c: 02 04 58 44 or t1,t10,t1
(*) I had to change the way the driver "wastes" minor-numbers because Linux
seems to support only 8 bit minor numbers. Since the driver by default
does 64-steps, at most 4 cards can be supported. I changed dvbdev.c
accordingly, to make it work with up to 16 cards. Is is really
necessary to reserve 64 minor numbers per device?
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index