This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
We have been using DspLink 1_65_01_06 with Linux 3.0x kernel. Recently we tried 3.4.x kernel and got the following error. The stack trace is kind of similar to the one mentioned in http://e2e.ti.com/support/embedded/bios/f/355/t/196898.aspx. We suspect there might be an issue in the way DspLink uses the locking.
Does TI support DspLink for Linux 3.4 or later?
Has anybody successfully run DspLink under Linux 3.4?
Thanks,
Tamo2
-------------------------------
[ 479.736450] Unable to handle kernel NULL pointer dereference at virtual address 00000018
[ 479.746063] pgd = cc4bc000
[ 479.748901] [00000018] *pgd=8c443831, *pte=00000000, *ppte=00000000
[ 479.755523] Internal error: Oops: 17 [#1] SMP ARM
[ 479.760467] Modules linked in:
[ 479.763702] CPU: 0 Not tainted (3.4.11 #1)
[ 479.768371] PC is at __lock_acquire+0x70/0x1c60
[ 479.773132] LR is at lock_acquire+0xe0/0xf8
[ 479.777526] pc : [<c0089fac>] lr : [<c008bc7c>] psr: 20000093
[ 479.777526] sp : ccf6bc98 ip : ccd8cac0 fp : 00000002
[ 479.789581] r10: 00000018 r9 : 00000018 r8 : 00000002
[ 479.795074] r7 : c07117b0 r6 : 00000000 r5 : ccf6a000 r4 : 00000000
[ 479.801910] r3 : 60000093 r2 : 00000000 r1 : c0b9a290 r0 : c074ccec
[ 479.808776] Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
[ 479.816345] Control: 10c5387d Table: 8c4bc019 DAC: 00000015
[ 479.822387] Process SLOMAPTest (pid: 764, stack limit = 0xccf6a2f8)
[ 479.828979] Stack: (0xccf6bc98 to 0xccf6c000)
[ 479.833557] bc80: c072240c 00000199
[ 479.842132] bca0: 00000001 c008a37c 38322197 ccf6a000 ccf6a000 00000002 00000000 00000198
[ 479.850738] bcc0: ccf6a000 00000002 00000000 ccd8cac0 00000000 ccffd1cc 00000000 ccd8cac0
[ 479.859313] bce0: 00000000 00000000 00322198 00000000 60000093 c0722594 00322198 00000000
[ 479.867919] bd00: 00000002 00000080 00000000 c006a30c 00000000 00000006 c0722618 00000000
[ 479.876495] bd20: ccf6a000 00000000 00000000 00000000 60000093 00000018 00000002 c008bc7c
[ 479.885101] bd40: 00000002 00000080 00000000 c029e578 00000000 00000000 00000000 00000000
[ 479.893676] bd60: 00000008 c029e578 cc454a80 00000000 00000000 cc454a80 ccf6a000 c048e058
[ 479.902282] bd80: 00000002 00000000 c029e578 00000000 00000000 00000008 ccffd000 c029e578
[ 479.910858] bda0: ccffd000 ccffd000 cceb0240 cc454a80 00000000 00000000 0f900000 c02983f0
[ 479.919464] bdc0: cc45c0d0 00000002 00000000 00000000 c0715b38 00000000 cceb0248 cc45c0d0
[ 479.928039] bde0: cc454a80 cceb0248 00000000 c0100648 00000002 c01006d8 00000002 00000000
[ 479.936645] be00: 00000000 cc454a80 cc45c0d0 cc9f62a0 ccc14090 c00fafe4 ccf6bef8 cc454a80
[ 479.945220] be20: 00000000 ccc1edc0 00000000 00000000 cc9fae40 c00fb14c ccc1edc0 00000000
[ 479.953826] be40: cc9fae40 cc45c0d0 ccf6bef8 cc45c0d0 00000000 c010ab88 ccd2e005 ccd2e000
[ 479.962402] be60: bee56c00 00000026 cc9fae40 cc45c0d0 c01086e0 ffffff9c ccf6bf78 ccf6bef8
[ 479.971008] be80: ccf6bf78 ccf6a000 ccf6bebc ccd2e000 bee56c00 c010b020 ccf6bec4 00000000
[ 479.979583] bea0: ccf6a000 00000002 00000000 00000000 60000013 c0c8684c 00000001 ccc14090
[ 479.988189] bec0: cc9f62a0 00000000 ccf6a000 00000001 ccf6bf78 ccf6bef8 ffffff9c ccd2e000
[ 479.996765] bee0: ccf6a000 00000000 bee56c00 c010b41c 00000041 c0116970 ccc14090 cc9f62a0
[ 480.005371] bf00: 018a0ad0 00000004 ccd2e005 ccc14390 cc91e6c0 cc45c0d0 00000101 00000000
[ 480.013946] bf20: 00000000 00000000 ccc20080 ccc20088 ccc20084 ccc200c0 00000003 00000003
[ 480.022552] bf40: ccc20080 c01169dc 00000000 00000002 00000000 00000000 00000001 00000002
[ 480.031127] bf60: ffffff9c ccd2e000 00000003 c00fabf4 00000000 ef000000 00000002 c0080000
[ 480.039733] bf80: 00000026 00000100 00000000 0011a45c 000bc758 00000000 00000005 c0014128
[ 480.048309] bfa0: 00000000 c0013f60 0011a45c 000bc758 000c2dfc 00000002 00000001 fffffffe
[ 480.056915] bfc0: 0011a45c 000bc758 00000000 00000005 0011c390 00000000 bee5670c bee56c00
[ 480.065490] bfe0: 0011c3b0 bee56510 000ba950 b6eec78c 60000010 000c2dfc daffe57f cfefff4e
[ 480.074096] [<c0089fac>] (__lock_acquire+0x70/0x1c60) from [<c008bc7c>] (lock_acquire+0xe0/0xf8)
[ 480.083343] [<c008bc7c>] (lock_acquire+0xe0/0xf8) from [<c048e058>] (_raw_spin_lock_irq+0x3c/0x4c)
[ 480.092773] [<c048e058>] (_raw_spin_lock_irq+0x3c/0x4c) from [<c029e578>] (tty_port_open+0x1c/0xd0)
[ 480.102264] [<c029e578>] (tty_port_open+0x1c/0xd0) from [<c02983f0>] (tty_open+0x224/0x54c)
[ 480.111053] [<c02983f0>] (tty_open+0x224/0x54c) from [<c01006d8>] (chrdev_open+0x90/0x15c)
[ 480.119750] [<c01006d8>] (chrdev_open+0x90/0x15c) from [<c00fafe4>] (__dentry_open+0x22c/0x2cc)
[ 480.128906] [<c00fafe4>] (__dentry_open+0x22c/0x2cc) from [<c00fb14c>] (nameidata_to_filp+0x60/0x68)
[ 480.138488] [<c00fb14c>] (nameidata_to_filp+0x60/0x68) from [<c010ab88>] (do_last+0x30c/0x6e8)
[ 480.147552] [<c010ab88>] (do_last+0x30c/0x6e8) from [<c010b020>] (path_openat+0xbc/0x3d0)
[ 480.156127] [<c010b020>] (path_openat+0xbc/0x3d0) from [<c010b41c>] (do_filp_open+0x30/0x84)
[ 480.165008] [<c010b41c>] (do_filp_open+0x30/0x84) from [<c00fabf4>] (do_sys_open+0xf8/0x18c)
[ 480.173889] [<c00fabf4>] (do_sys_open+0xf8/0x18c) from [<c0013f60>] (ret_fast_syscall+0x0/0x3c)
[ 480.183044] Code: e5903000 e3530000 0a000072 e59f1e58 (e5992000)
Tamo2,
Officially DspLink supports and tracks the Linux kernel versions that are part of TI's DVSDK (Digital Video Software Development Kits). For OMAP-L138 and DM3730, its v2.6.37. With that said, we have run DspLink applications using with newer kernels (3.0 and 3.1).
What device are you using?
I decided to experiment with the Linux kernel v3.4.16 (from kernel.org) on an OMAP-L138 (it's what I had available) and was able to run the DspLink samples applications successfully. I did have to update one the the DspLink source files (/gpp/src/arch/DA8XXGEM/shmem/Linux/da8xxgem_phy_shmem.c), since the kernel didn't seem to define the IO_ADDRESS macro. I hard-coded the needed address (0xFEC00000), where the call to IO_ADDRESS was being made. This change is only specific to the OMAP-L138 like device. Depending on was device you are building for the change may not be necessary.
Arnie,
Thanks for the experiment. We use DM3730. I haven't tried running the DspLink samples yet. I will try it and see if it works.
Arnie,
It turned out this trace was from CMEM_init() function.
I use kernel 3.4.11 on DM3730. CMEM is from linuxutils_3_21_00_04. The following program will cause the stack trace. Can you please take a look at this?
int main()
{
return CMEM_init();
}
Thanks,
tamo2
The LinuxUtils package has been updated significantly from what you are using. The newer versions support the newer Linux kernels. Depending on what support you need, you should update accordingly.
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/linuxutils/index.html
I updated to linuxutils 3.23.00.01 and the problem is gone.
Thanks for your help!
Hi, All.
We are trying to use linuxutils 3.23.00.01 with kernel 3.8.2.
It's not compile with error:
‘VM_RESERVED’ undeclared (first use in this function)
After setting
#define VM_RESERVED VM_IO //0x00080000 //(VM_DONTEXPAND | VM_DONTDUMP)
The compile is ok, but when we trying to use CMEM module on the board it looping with error:
CMEMK Error: get_phys: Unable to find phys addr for 0xb177e000
With kernel 3.1.0 all is good. No toubles.
What VM_RESERVED should we use.
Please help!!!
P.S. Board - DM6446 EVM. Kernel 3.8.2 (kernel.org). DSPLINK - 1.65.02.09. LINUXUTILS - 3.23.00.01.
Hi Timofey:
It looks like the VM_RESERVED flag was removed as of v3.7 from include/linux/mm.h:
https://patchwork.kernel.org/patch/1258951/
You can look at other drivers in 3.7 which had to replace VM_RESERVED flag, and/or see recommendation in the patch url above.
However, there is no guarantee this will work, as per the Release Notes, linuxutils is only validated with Linux 2.6.37.