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.

Your driver calls ioremap() on system memory?

Other Parts Discussed in Thread: OMAP3530, DM3730

Hi, dear friends!

I wont to develop a video encode software that run on TDM3730 board(I think it is copy of DM37x EVM main board)。 My software
work is read vide data from  RCA Composite input and encode it to a mp4 or h264 format。

now I download dvsdk_04_03, and I replaced the file under PSP directory with TDM3730's own psp package(am I right?)
the board can boot from nfs using the filesystem of dvsdk/filesystem/dvsdk-dm37x-evm-rootfs.tar.gz,

below is my loadmodule-rc:
#!/bin/sh
#
# Default Memory Map for DM3730 EVM
#
# Start Addr    Size    Description
# -------------------------------------------
# 0x80000000     55 MB  Linux
# 0x83700000     34 MB  CMEM
# 0x85900000     39 MB  CODEC SERVER

load () {
#    modprobe cmemk phys_start=0x83700000 phys_end=0x85900000 allowOverlap=1 useHeapIfPoolUnavailable=1
    modprobe cmemk phys_start=0xa0000000 phys_end=0xA2200000 allowOverlap=1 useHeapIfPoolUnavailable=1
    modprobe dsplinkk
    modprobe lpm_omap3530
    modprobe sdmak
    amixer cset name='HeadsetL Mixer AudioL1' on
    amixer cset name='HeadsetR Mixer AudioR1' on
    amixer -c 0 set Headset 1+ unmute
}

unload () {
    rmmod cmemk 2>/dev/null
    rmmod lpm_omap3530 2>/dev/null
    rmmod dsplinkk 2>/dev/null
    rmmod sdmak 2>/dev/null
}

case "$1" in
      start)
            load
             ;;
       stop)
            unload           
             ;;
       restart)
            unload           
            load
             ;;
        *)
             echo "$0 <start/stop/restart>"
             ;;
esac


when I run the decode demo(under /usr/share/ti/dvsdk-demos), the following message show out:

root@dm37x-evm:/usr/share/ti/dvsdk-demos#./decode -v ../data/videos/
davincieffect_480p30.m4v
Decode demo started.
@0,060,699us: [+6 T:0x400c6290] CE - Engine_init> CE debugging on (CE_DEBUG=1; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)
<4>BUG: Your driver calls ioremap() on system memory.  This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release.  Please fix your driver.
[  422.267089] BUG: Your driver calls ioremap() on system memory.  This leads
[  422.267150] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
[  422.267150] will fail in the next kernel release.  Please fix your driver.
<4>------------[ cut here ]------------
[  422.293243] ------------[ cut here ]------------
<4>WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
[  422.305358] WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
<d>Modules linked in:[  422.315765] Modules linked in: sdmak sdmak lpm_omap3530 lpm_omap3530 dsplinkk dsplinkk cmemk cmemk bufferclass_ti(C) bufferclass_ti(C) omaplfb(C) omaplfb(C) pvrsrvkm(C) pvrsrvkm(C)

Backtrace: [  422.334167] Backtrace:

[<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
[  422.344299] [<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
 r7:00000000[  422.354339]  r7:00000000 r6:c003f0ac r6:c003f0ac r5:c04d631d r5:c04d631d r4:000000d3 r4:000000d3

[<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[  422.371643] [<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
[  422.389587] [<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
 r8:bf0967ec[  422.400787]  r8:bf0967ec r7:e09c4000 r7:e09c4000 r6:00087a00 r6:00087a00 r5:00600000 r5:00600000 r4:00000000 r4:00000000

[<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[  422.421417] [<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[  422.441436] [<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
[  422.460235] [<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
 r5:bf08fac8[  422.470916]  r5:bf08fac8 r4:000fffff r4:000fffff

[<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
[  422.484039] [<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
 r5:00000001[  422.494537]  r5:00000001 r4:ddd45dd4 r4:ddd45dd4

[<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
[  422.508819] [<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
 r4:e09d0000[  422.520721]  r4:e09d0000

[<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[  422.532806] [<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[  422.552917] [<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[  422.574005] [<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[  422.595550] [<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[  422.615234] [<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[  422.632476] [<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
[  422.648437] [<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
 r7:00000036[  422.658386]  r7:00000036 r6:40bdadcc r6:40bdadcc r5:0006ee90 r5:0006ee90 r4:00008000 r4:00008000

<4>---[ end trace 770ef3daad7d1112 ]---
[  422.671539] ---[ end trace 770ef3daad7d1112 ]---
<4>BUG: Your driver calls ioremap() on system memory.  This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release.  Please fix your driver.
[  422.696807] BUG: Your driver calls ioremap() on system memory.  This leads
[  422.696838] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
[  422.696838] will fail in the next kernel release.  Please fix your driver.
<4>------------[ cut here ]------------
[  422.722625] ------------[ cut here ]------------
<4>WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
[  422.734619] WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
<d>Modules linked in:[  422.744842] Modules linked in: sdmak sdmak lpm_omap3530 lpm_omap3530 dsplinkk dsplinkk cmemk cmemk bufferclass_ti(C) bufferclass_ti(C) omaplfb(C) omaplfb(C) pvrsrvkm(C) pvrsrvkm(C)

Backtrace: [  422.762756] Backtrace:

[<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
[  422.772827] [<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
 r7:00000000[  422.782714]  r7:00000000 r6:c003f0ac r6:c003f0ac r5:c04d631d r5:c04d631d r4:000000d3 r4:000000d3

[<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[  422.799804] [<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
[  422.817687] [<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
 r8:bf0967ec[  422.828735]  r8:bf0967ec r7:e09c4000 r7:e09c4000 r6:00085901 r6:00085901 r5:000ff000 r5:000ff000 r4:00000000 r4:00000000

[<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[  422.849151] [<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[  422.868713] [<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
[  422.887268] [<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
 r5:bf08fac8[  422.897766]  r5:bf08fac8 r4:000fffff r4:000fffff

[<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
[  422.910766] [<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
 r5:00000002[  422.921112]  r5:00000002 r4:ddd45dd4 r4:ddd45dd4

[<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
[  422.935119] [<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
 r4:e09d0038[  422.946624]  r4:e09d0038

[<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[  422.958526] [<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[  422.978332] [<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[  422.999023] [<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[  423.020263] [<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[  423.039611] [<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[  423.056365] [<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
[  423.072143] [<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
 r7:00000036[  423.081970]  r7:00000036 r6:40bdadcc r6:40bdadcc r5:0006ee90 r5:0006ee90 r4:00008000 r4:00008000

<4>---[ end trace 770ef3daad7d1113 ]---
[  423.094940] ---[ end trace 770ef3daad7d1113 ]---
<4>BUG: Your driver calls ioremap() on system memory.  This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release.  Please fix your driver.
[  423.118011] BUG: Your driver calls ioremap() on system memory.  This leads
[  423.118011] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
[  423.118041] will fail in the next kernel release.  Please fix your driver.
<4>------------[ cut here ]------------
[  423.143615] ------------[ cut here ]------------
<4>WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
[  423.155609] WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
<d>Modules linked in:[  423.165832] Modules linked in: sdmak sdmak lpm_omap3530 lpm_omap3530 dsplinkk dsplinkk cmemk cmemk bufferclass_ti(C) bufferclass_ti(C) omaplfb(C) omaplfb(C) pvrsrvkm(C) pvrsrvkm(C)

Backtrace: [  423.183715] Backtrace:

[<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
[  423.193786] [<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
 r7:00000000[  423.203796]  r7:00000000 r6:c003f0ac r6:c003f0ac r5:c04d631d r5:c04d631d r4:000000d3 r4:000000d3

[<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[  423.220886] [<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
[  423.238647] [<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
 r8:bf0967ec[  423.249694]  r8:bf0967ec r7:e09c4000 r7:e09c4000 r6:00085900 r6:00085900 r5:00001000 r5:00001000 r4:00000000 r4:00000000

[<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[  423.270111] [<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[  423.289642] [<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
[  423.308380] [<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
 r5:bf08fac8[  423.318878]  r5:bf08fac8 r4:000fffff r4:000fffff

[<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
[  423.331695] [<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
 r5:00000003[  423.342010]  r5:00000003 r4:ddd45dd4 r4:ddd45dd4

[<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
[  423.356018] [<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
 r4:e09d0070[  423.367523]  r4:e09d0070

[<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[  423.379425] [<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[  423.399169] [<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[  423.420043] [<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[  423.441131] [<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[  423.460510] [<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[  423.477264] [<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
[  423.493041] [<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
 r7:00000036[  423.502838]  r7:00000036 r6:40bdadcc r6:40bdadcc r5:0006ee90 r5:0006ee90 r4:00008000 r4:00008000

<4>---[ end trace 770ef3daad7d1114 ]---
[  423.515960] ---[ end trace 770ef3daad7d1114 ]---
<1> DSP_init status [0x80008008]
[  423.524383]  DSP_init status [0x80008008]
@1,362,488us: [+7 T:0x40bdb490] <4>BUG: Your driver calls ioremap() on system memory.  This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release.  Please fix your driver.
[  423.549774] BUG: Your driver calls ioremap() on system memory.  This leads
[  423.549774] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
[  423.549774] will fail in the next kernel release.  Please fix your driver.
OP - Processor_c<4>------------[ cut here ]------------
[  423.576782] ------------[ cut here ]------------
reate_d> Loading<4>WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
[  423.590118] WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
 and starting DS<d>Modules linked in:[  423.601745] Modules linked in:P server 'cs.x64 sdmak sdmakP' FAILED, statu lpm_omap3530 lpm_omap3530s=[0x80008008] ( dsplinkk dsplinkklook for error c cmemk cmemkode 'DSP_EBASE + bufferclass_ti(C) bufferclass_ti(C) 0x8' in dsplink omaplfb(C) omaplfb(C)*/packages/dspli pvrsrvkm(C) pvrsrvkm(C)nk/gpp/inc/usr/e

rrbase.h)
@1,3Backtrace: [  423.632171] Backtrace: 62,671us: [+6 T:

0x40bdb490] OP -[<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
[  423.645019] [<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
 Processor_delet r7:00000000[  423.656280]  r7:00000000e_d> Closing rem r6:c003f0ac r6:c003f0acote transport FA r5:c04d631d r5:c04d631dILED, status=0x8 r4:000000d3 r4:000000d30008002.
@1,362

,732us: [+6 T:0x[<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[  423.680389] [<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
40bdb490] OP - P[<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
[  423.699493] [<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
rocessor_delete_ r8:bf0967ec[  423.711975]  r8:bf0967ecd> Stopping DSP  r7:e0bee000 r7:e0bee000FAILED, status=0 r6:00087a00 r6:00087a00x80008002
@1,36 r5:00600000 r5:006000002,762us: [+6 T:0 r4:00000000 r4:00000000x40bdb490] OP -

Processor_delete[<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[  423.740753] [<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
_d> Closing pool[<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[  423.761688] [<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
 FAILED, status=[<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
[  423.781646] [<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
0x80008000
@1,3 r5:bf08fac8[  423.793518]  r5:bf08fac862,762us: [+6 T: r4:000fffff r4:000fffff0x40bdb490] OP -

 Processor_delet[<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
[  423.810485] [<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
e_d> Detaching f r5:00000001[  423.822204]  r5:00000001rom DSP FAILED,  r4:ddd45dd4 r4:ddd45dd4status=0x8000800

0
@1,363,159us:[<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
[  423.840301] [<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
 [+6 T:0x41ca749 r4:e0bfa000[  423.853210]  r4:e0bfa0000] CE - rserverO

pen: can't start[<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[  423.867828] [<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
 'cs.x64P'; Proc[<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[  423.888946] [<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
essor_create fai[<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[  423.910949] [<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
led
Error: Fail[<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[  423.933319] [<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
ed to open codec[<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[  423.953979] [<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
 engine decode
[<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[  423.972137] [<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
[  423.987915] [<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
 r7:00000036[  423.997833]  r7:00000036 r6:40bdadcc r6:40bdadcc r5:0006ee90 r5:0006ee90 r4:00008000 r4:00008000

<4>---[ end trace 770ef3daad7d1115 ]---
[  424.010803] ---[ end trace 770ef3daad7d1115 ]---
<4>BUG: Your driver calls ioremap() on system memory.  This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release.  Please fix your driver.
[  424.033691] BUG: Your driver calls ioremap() on system memory.  This leads
[  424.033691] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
[  424.033691] will fail in the next kernel release.  Please fix your driver.
<4>------------[ cut here ]------------
[  424.059326] ------------[ cut here ]------------
<4>WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
[  424.071289] WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
<d>Modules linked in:[  424.081512] Modules linked in: sdmak sdmak lpm_omap3530 lpm_omap3530 dsplinkk dsplinkk cmemk cmemk bufferclass_ti(C) bufferclass_ti(C) omaplfb(C) omaplfb(C) pvrsrvkm(C) pvrsrvkm(C)

Backtrace: [  424.099578] Backtrace:

[<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
[  424.109619] [<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
 r7:00000000[  424.119506]  r7:00000000 r6:c003f0ac r6:c003f0ac r5:c04d631d r5:c04d631d r4:000000d3 r4:000000d3

[<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[  424.136627] [<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
[  424.154388] [<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
 r8:bf0967ec[  424.165435]  r8:bf0967ec r7:e0bee000 r7:e0bee000 r6:00085901 r6:00085901 r5:000ff000 r5:000ff000 r4:00000000 r4:00000000

[<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[  424.185882] [<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[  424.205596] [<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
[  424.224182] [<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
 r5:bf08fac8[  424.234680]  r5:bf08fac8 r4:000fffff r4:000fffff

[<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
[  424.247528] [<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
 r5:00000002[  424.257843]  r5:00000002 r4:ddd45dd4 r4:ddd45dd4

[<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
[  424.271850] [<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
 r4:e0bfa038[  424.283355]  r4:e0bfa038

[<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[  424.295379] [<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[  424.315185] [<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[  424.335906] [<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[  424.356994] [<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[  424.376342] [<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[  424.393249] [<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
[  424.409027] [<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
 r7:00000036[  424.418823]  r7:00000036 r6:40bdadcc r6:40bdadcc r5:0006ee90 r5:0006ee90 r4:00008000 r4:00008000

<4>---[ end trace 770ef3daad7d1116 ]---
[  424.431793] ---[ end trace 770ef3daad7d1116 ]---
<4>BUG: Your driver calls ioremap() on system memory.  This leads
to architecturally unpredictable behaviour on ARMv6+, and ioremap()
will fail in the next kernel release.  Please fix your driver.
[  424.454528] BUG: Your driver calls ioremap() on system memory.  This leads
[  424.454559] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
[  424.454559] will fail in the next kernel release.  Please fix your driver.
<4>------------[ cut here ]------------
[  424.480163] ------------[ cut here ]------------
<4>WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
[  424.492279] WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
<d>Modules linked in:[  424.502502] Modules linked in: sdmak sdmak lpm_omap3530 lpm_omap3530 dsplinkk dsplinkk cmemk cmemk bufferclass_ti(C) bufferclass_ti(C) omaplfb(C) omaplfb(C) pvrsrvkm(C) pvrsrvkm(C)

Backtrace: [  424.520416] Backtrace:

[<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
[  424.530456] [<c003c6b4>] (dump_backtrace+0x0/0x10c) from [<c03eb73c>] (dump_stack+0x18/0x1c)
 r7:00000000[  424.540344]  r7:00000000 r6:c003f0ac r6:c003f0ac r5:c04d631d r5:c04d631d r4:000000d3 r4:000000d3

[<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[  424.557434] [<c03eb724>] (dump_stack+0x0/0x1c) from [<c005f2dc>] (warn_slowpath_common+0x58/0x70)
[<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
[  424.575195] [<c005f284>] (warn_slowpath_common+0x0/0x70) from [<c005f318>] (warn_slowpath_null+0x24/0x2c)
 r8:bf0967ec[  424.586395]  r8:bf0967ec r7:e0bee000 r7:e0bee000 r6:00085900 r6:00085900 r5:00001000 r5:00001000 r4:00000000 r4:00000000

[<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[  424.606811] [<c005f2f4>] (warn_slowpath_null+0x0/0x2c) from [<c003f0ac>] (__arm_ioremap_pfn_caller+0x58/0x190)
[<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[  424.626373] [<c003f054>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c003f264>] (__arm_ioremap_caller+0x60/0x68)
[<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
[  424.644927] [<c003f204>] (__arm_ioremap_caller+0x0/0x68) from [<c0052e58>] (omap_ioremap+0x8c/0x94)
 r5:bf08fac8[  424.655426]  r5:bf08fac8 r4:000fffff r4:000fffff

[<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
[  424.668243] [<c0052dcc>] (omap_ioremap+0x0/0x94) from [<bf08fac8>] (MEM_Map+0x48/0x70 [dsplinkk])
 r5:00000003[  424.678741]  r5:00000003 r4:ddd45dd4 r4:ddd45dd4

[<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
[  424.692749] [<bf08fa80>] (MEM_Map+0x0/0x70 [dsplinkk]) from [<bf080c24>] (OMAP3530_init+0xa4/0x204 [dsplinkk])
 r4:e0bfa070[  424.704254]  r4:e0bfa070

[<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[  424.716156] [<bf080b80>] (OMAP3530_init+0x0/0x204 [dsplinkk]) from [<bf0800d4>] (DSP_init+0x2c/0x34 [dsplinkk])
[<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[  424.735931] [<bf0800a8>] (DSP_init+0x0/0x34 [dsplinkk]) from [<bf0826cc>] (LDRV_PROC_init+0x228/0x2f8 [dsplinkk])
[<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[  424.756622] [<bf0824a4>] (LDRV_PROC_init+0x0/0x2f8 [dsplinkk]) from [<bf0936c4>] (PMGR_PROC_attach+0xf4/0x35c [dsplinkk])
[<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[  424.777709] [<bf0935d0>] (PMGR_PROC_attach+0x0/0x35c [dsplinkk]) from [<bf094400>] (DRV_Ioctl+0x374/0x7b4 [dsplinkk])
[<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[  424.797210] [<bf09408c>] (DRV_Ioctl+0x0/0x7b4 [dsplinkk]) from [<c00c788c>] (do_vfs_ioctl+0x4d0/0x53c)
[<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[  424.813964] [<c00c73bc>] (do_vfs_ioctl+0x0/0x53c) from [<c00c7938>] (sys_ioctl+0x40/0x64)
[<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
[  424.829742] [<c00c78f8>] (sys_ioctl+0x0/0x64) from [<c0038c40>] (ret_fast_syscall+0x0/0x30)
 r7:00000036[  424.839508]  r7:00000036 r6:40bdadcc r6:40bdadcc r5:0006ee90 r5:0006ee90 r4:00008000 r4:00008000

<4>---[ end trace 770ef3daad7d1117 ]---
[  424.852508] ---[ end trace 770ef3daad7d1117 ]---
<1> DSP_init status [0x80008008]
[  424.860992]  DSP_init status [0x80008008]
@2,699,066us: [+7 T:0x40bdb490] OP - Processor_create_d> Loading and starting DSP server 'cs.x64P' FAILED, status=[0x80008008] (look for error code 'DSP_EBASE + 0x8' in dsplink*/packages/dsplink/gpp/inc/usr/errbase.h)
@2,699,219us: [+6 T:0x40bdb490] OP - Processor_delete_d> Closing remote transport FAILED, status=0x80008002.
@2,699,249us: [+6 T:0x40bdb490] OP - Processor_delete_d> Stopping DSP FAILED, status=0x80008002
@2,699,280us: [+6 T:0x40bdb490] OP - Processor_delete_d> Closing pool FAILED, status=0x80008000
@2,699,280us: [+6 T:0x40bdb490] OP - Processor_delete_d> Detaching from DSP FAILED, status=0x80008000
@2,699,585us: [+6 T:0x400c6290] CE - rserverOpen: can't start 'cs.x64P'; Processor_create failed
Error: Failed to open codec engine decode


thank for any help

  • If you've changed kernel to support your device, you'll need at a minimum to rebuild most of the dependent components that rely on the kernel.  Take a look at the DVSDK Software Developer's Guide for information on re-building the dependent components.

    Additionally, if your memory map has changed, you have to re-build the Codec Engine Example provdied.  They are built using a default memory map, which can be found

    http://processors.wiki.ti.com/index.php/Codec_Engine_Examples_Memory_Map

    The memory map used  for the DM3730 is the same as the OMAP3530.

    To re-build the examples take a look at:

    http://processors.wiki.ti.com/index.php/Codec_Engine_Examples_Memory_Map

  • I have use the command "make all; make install" , to rebuild all the component in dvsdk,   and then download all to my board, to run the example.

    the kernel version between  original and the one I used is same "2.6.37", I compared them, there are some differences in board support file and the driver file.

    do these diffrences causes the problems?

    now I will read "http://processors.wiki.ti.com/index.php/Codec_Engine_Examples_Memory_Map",  look to what config I missing.

    thanks Arnie!

  • We had not seen this kind of ioremap issue with DVSDK 4.03, May be something to do with drivers in your PSP.

    Do you really have 1 G DDR (your cmem script shows that), Initially try with the default memory map. You could just try existing apps with DVSDK 4.3 before trying with your new app. If your bootargs in sync with this.

    Try running demos (decode demos can be invoked from matrix GUI) from matrix launcher as described in Quick start guide and software developers guide. from NFS boot running the script "/etc/init.d/matrix-gui-e start" should show GUI on display. before hand ./setup.sh in your DVSDK root directory in your development machine should give you boot args.

    The DM3730 EVM traces at http://processors.wiki.ti.com/index.php/DVSDK_4.x_FAQ#Other_troubleshoots.3F could help compare with your PSP/your EVM.

    Best Regards,

    Velan

  • now I have questions in the kernel parameters.

    In uboot, there are Environment Variables as flows:

    mem_size=mem=76M@0x80000000 mem=384M@0x88000000
    mmcargs=setenv bootargs  ${mem_size} ......

    what does it mean of   "mem=76M@0x80000000 mem=384M@0x88000000" ,  I have read www.kernel.org/doc/Documentation/kernel-parameters.txt , the format of "mem" kernel param is "mem=nn[KMG]" ,  does the Linux kernel in TI psp have extended the "mem" kernel parameter for it's special use?(for DSP use? )

  • What this does is assigns memory for the kernel to use starting @ a physical memory location.  On some devices, there is a hole created in physical memory.  Typically, this hole in memory is used by other modules and components.  In this particular case, the hole created from physical memory (0X84C0 0000 - 87FFFFFF) is used by the CMEM and Codec for this device.

  • Hi Friend:

    have you sovled this problem?

    i have cross this same trouble.

    maybe you can help me and give me some ideas?

    Best Regards !

  • Same issue here, also a Technexion kernel! I straced the simple QT application trying to launch an h264 video in case it helps. As I understand it's the CMEM module which is causing that? Couls anyone confirm it by looking at the trace below?

    In the loadmodule-rc script the default to load CMEM in the TI DVSDK is:

    modprobe cmemk phys_start=0x83700000 phys_end=0x85900000 useHeapIfPoolUnavailable=1

    But in this case CMEM conflicts with Technexion's kernel:

    [ 1647.836059] CMEMK module: built on Aug 20 2013 at 14:30:23
    [ 1647.841949] Reference Linux version 2.6.37
    [ 1647.846435] File /home/steven/ti-dvsdk_dm3730-evm_04_03_00_06/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    [ 1647.862396] CMEM Range Overlaps Kernel Physical - allowing overlap
    [ 1647.869049] CMEM phys_start (0x83700000) overlaps kernel (0x80000000 -> 0x9ee00000)
    [ 1647.878448] CMEMK Error: Failed to request_mem_region(0x83700000, 35651584)
    FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address

    But exactly as the first poster I modified that to:

    modprobe cmemk allowOverlap=1 useHeapIfPoolUnavailable=1

    Which loads fine with this message:

    [ 1715.656555] CMEMK module: built on Aug 20 2013 at 14:30:23
    [ 1715.662475] Reference Linux version 2.6.37
    [ 1715.666961] File /home/steven/ti-dvsdk_dm3730-evm_04_03_00_06/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    [ 1715.682983] no physical memory specified, continuing with no memory allocation capability...
    [ 1715.713195] cmemk initialized

    As I understand it's fine since CMEM currently doesn't need the fixed ranges anymore? How does one "control" the memory range used by a kernel? Is it at compilation time?

    The strace output:

    stat64("/usr/lib/gstreamer-0.10/libgstticodecplugin.so", {st_mode=S_IFREG|0755, st_size=1475465, ...}) = 0
    stat64("/usr/lib/gstreamer-0.10/libgstticodecplugin.so", {st_mode=S_IFREG|0755, st_size=1475465, ...}) = 0
    open("/usr/lib/gstreamer-0.10/libgstticodecplugin.so", O_RDONLY) = 18
    read(18, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0T\225\0\0004\0\0\0"..., 512) = 512
    fstat64(18, {st_mode=S_IFREG|0755, st_size=1475465, ...}) = 0
    mmap2(NULL, 731052, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 18, 0) = 0x42a28000
    mprotect(0x42ad0000, 28672, PROT_NONE) = 0
    mmap2(0x42ad7000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 18, 0xa7) = 0x42ad7000
    mmap2(0x42ada000, 1964, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x42ada000
    mprotect(0x400b1000, 3888, PROT_READ|PROT_WRITE) = 0
    mprotect(0x400b1000, 3888, PROT_READ) = 0
    mprotect(0xbe957000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSDOWN) = 0
    mprotect(0x41f45000, 8384512, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
    close(18) = 0
    mprotect(0x42a28000, 688128, PROT_READ|PROT_WRITE) = 0
    mprotect(0x42a28000, 688128, PROT_READ|PROT_EXEC) = 0
    cacheflush(0x42a28000, 0x42ad0000, 0, 0x6, 0x182f80) = 0
    rt_sigaction(SIGSEGV, {0x41bbbd40, [], 0x4000000 /* SA_??? */}, {0x4057b13c, [SEGV], SA_RESTART|0x4000000}, 8) = 0
    open("/dev/cmem", O_RDWR) = 18
    ioctl(18, 0xfe08, 0xbe956fb4) = 0
    fcntl64(18, F_GETFD) = 0
    fcntl64(18, F_SETFD, FD_CLOEXEC) = 0
    ioctl(18, 0xfe0b, 0x42ad9cb8) = 0
    clone(child_stack=0x42742f98, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x427434c8, tls=0x42743920, child_tidptr=0x427434c8) = 1836
    rt_sigaction(SIGSEGV, {0x4057b13c, [SEGV], SA_RESTART|0x4000000}, NULL, 8) = 0
    open("/home/root/testapp/test.mp4", O_RDONLY|O_LARGEFILE) = 19
    fstat64(19, {st_mode=S_IFREG|0555, st_size=24324010, ...}) = 0
    _llseek(19, 0, [24324010], SEEK_END) = 0
    _llseek(19, 0, [0], SEEK_SET) = 0
    fstat64(19, {st_mode=S_IFREG|0555, st_size=24324010, ...}) = 0
    sched_get_priority_min(SCHED_OTHER) = 0
    sched_get_priority_max(SCHED_OTHER) = 0
    mmap2(NULL, 8388608, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x42adb000
    mprotect(0x42adb000, 4096, PROT_NONE) = 0
    clone(child_stack=0x432d9f98, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CL[ 1218.435028] BUG: Your driver calls ioremap() on system memory. This leads
    [ 1218.435058] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    [ 1218.435089] will fail in the next kernel release. Please fix your driver.
    ONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLO[ 1218.460357] BUG: Your driver calls ioremap() on system memory. This leads
    [ 1218.460388] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    [ 1218.460418] will fail in the next kernel release. Please fix your driver.
    NE_CHILD_CLEARTID, parent_tidptr[ 1218.485290] BUG: Your driver calls ioremap() on system memory. This leads
    [ 1218.485321] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    [ 1218.485321] will fail in the next kernel release. Please fix your driver.
    =0x432da4c8, tls[ 1218.509368] DSP_init status [0x80008008]
    =0x432da920, child_tidptr=0x432da4c8) = 1837

  • Steven M said:

    modprobe cmemk phys_start=0x83700000 phys_end=0x85900000 useHeapIfPoolUnavailable=1

    But in this case CMEM conflicts with Technexion's kernel:

    [ 1647.836059] CMEMK module: built on Aug 20 2013 at 14:30:23
    [ 1647.841949] Reference Linux version 2.6.37
    [ 1647.846435] File /home/steven/ti-dvsdk_dm3730-evm_04_03_00_06/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    [ 1647.862396] CMEM Range Overlaps Kernel Physical - allowing overlap

    Are you sure the above modprobe is the one in play on your system?  Note the "allowing overlap" message above, which can only happen if you set "allowOverlap=1" (as you report to do below).

    Steven M said:

    [ 1647.869049] CMEM phys_start (0x83700000) overlaps kernel (0x80000000 -> 0x9ee00000)
    [ 1647.878448] CMEMK Error: Failed to request_mem_region(0x83700000, 35651584)
    FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address

    It appears that your phys block is truly overlapping the kernel, which is never allowed.  Some explanation...

    allowOverlap=1 really just tells CMEM that its overlap detection logic is broken and that you know what you're doing.  It comes into play mostly for the case where the kernel has been booted to use 2 separate mem=##M memory blocks, and you want to place CMEM's phys block in the hole that exists between the 2 kernel memory blocks.  allowOverlap=1 is needed because of the basic logic used by CMEM to detect overlap - it assumes kernel memory starts at 0x80000000 and continues to the end address (of the 2nd mem block).

    So, after CMEM says "allowing overlap", it attempts to "get" the phys block memory from the kernel, which is failing in this case, most likely because the kernel already owns it.

    If you truly want to place CMEM's phys block from 0x83700000 -> 0x85900000, you will need to have the u-boot mem params as "mem=55M" (covers 0x80000000 -> 0x83700000) and mem=405M@0x85900000 (covers 0x85900000 -> 0x9ee00000).  This will create the needed hole, and CMEM can now use that hole (as long as you say allowOverlap=1).

    Steven M said:

    But exactly as the first poster I modified that to:

    modprobe cmemk allowOverlap=1 useHeapIfPoolUnavailable=1

    Which loads fine with this message:

    [ 1715.656555] CMEMK module: built on Aug 20 2013 at 14:30:23
    [ 1715.662475] Reference Linux version 2.6.37
    [ 1715.666961] File /home/steven/ti-dvsdk_dm3730-evm_04_03_00_06/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    [ 1715.682983] no physical memory specified, continuing with no memory allocation capability...
    [ 1715.713195] cmemk initialized

    You need to specify a phys block (phys_start=... phys_end=...) in order to allocate memory.  CMEM can still be useful without a physical block, to leverage its CMEM_getPhys() and CMEM_cache*() APIs, but you can't allocate from CMEM w/o a phys block.

    Steven M said:
    As I understand it's fine since CMEM currently doesn't need the fixed ranges anymore? How does one "control" the memory

    I'm not sure where you understand that from.  The CMEM you're using is quite old and can allocate only from a specified phys block.

    The CMEM capability to allocate from places other than CMEM's phys block is a very new feature and not widely available yet.  FYI, the newest CMEM (Linux Utils 4.x) can allocate from CMA-based memory.

    Steven M said:
    system memory. This leads
    [ 1218.435058] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    [ 1218.435089] will fail in the next kernel release. Please fix your driver.
    ONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLO[ 1218.460357] BUG: Your driver calls ioremap() on system memory. This leads
    [ 1218.460388] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    [ 1218.460418] will fail in the next kernel release. Please fix your driver.
    NE_CHILD_CLEARTID, parent_tidptr[ 1218.485290] BUG: Your driver calls ioremap() on system memory. This leads
    [ 1218.485321] to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    [ 1218.485321] will fail in the next kernel release. Please fix your driver.
    =0x432da4c8, tls[ 1218.509368] DSP_init status [0x80008008]
    =0x432da920, child_tidptr=0x432da4c8) = 1837

    I think the above messages are actually coming from DSPLINK actions, not CMEM.  They tell me that  the DSP executable that you're trying to load also clashes with kernel memory.  DSP executables typically occupy DDR memory (which is what Linux uses) and you need to keep the DSP executable's memory range away from the kernel, similar to how you keep CMEM's memory block away from the kernel - a hole needs to be punched (or a chunk needs to be chopped of the end).

    Regards,

    - Rob

     

  • Hello Rob,

    Thanks for your amazingly complete reply, this gives me a good start in understanding the memory management on the ARM boards :) I have to say it's a bit hard to find the right information when one is new to the field ;)

    So I came across http://processors.wiki.ti.com/index.php/Changing_the_DVEVM_memory_map and most importantly http://processors.wiki.ti.com/index.php/Codec_Engine_Examples_Memory_Map which gives a default layout for my board. So I went ahead and configured u-boot with:

    mem=80M

    And loaded CMEM with:

    modprobe cmemk phys_start=0x85000000 phys_end=0x85ffffff allowOverlap=1 useHeapIfPoolUnavailable=1

    Then ran the demo and...it conflicts with CMEM's new range:

    root@dm37x-evm:/usr/share/ti/dvsdk-demos# ./decode -O dvi -a /usr/share/ti/data/
    sounds/davincieffect_lc.aac -v /usr/share/ti/data/videos/davincieffect_480p30.26
    4
    Decode demo started.
    [ 759.442230] Start address is covered by existing entry, can not create TLB entry for address: [0x85900000] size: [0x100000]
    [ 759.454162] DSP_init status [0x80008050]
    Error: Failed to open codec engine decode

    So I went ahead and just for the sake of testing reduced CMEM's pool to phys_end=0x85800000, this time DSPLINK doesn't complain anymore but it still won't run :(

    Decode demo started.
    [ 888.795776] DSP_init status [0x80008008]
    Error: Failed to open codec engine decode

    So i have 2 questions:

    1) Is is because there is not enough memory for CMEM?

    2) Is there a way to change DSPLINK's memory dynamically or is it done at compilation time in a config file?

  • Steven M said:
    Decode demo started.
    [ 759.442230] Start address is covered by existing entry, can not create TLB entry for address: [0x85900000] size: [0x100000]
    [ 759.454162] DSP_init status [0x80008050]
    Error: Failed to open codec engine decode

    Yep, the DSP executable's memory map must not occupy any memory given to CMEM's phys block.

    Steven M said:

    Decode demo started.
    [ 888.795776] DSP_init status [0x80008008]
    Error: Failed to open codec engine decode

    The DSP_init failure is, unfortunately, the general DSP_EFAIL  Can you enable DSPLINK debug (at the kernel module level) and try again?  Here's a wiki on doing so: http://processors.wiki.ti.com/index.php/Enabling_trace_in_DSPLink#Enabling_kernel-level_prints

    Steven M said:

    1) Is is because there is not enough memory for CMEM?

    No, your application hasn't even started allocating CMEM at this point (or maybe it has, but DSPLINK doesn't use CMEM)

    Steven M said:

    2) Is there a way to change DSPLINK's memory dynamically or is it done at compilation time in a config file?

    It's not so much DSPLINK's memory but instead the memory of the DSP executable.  If you have the capability to rebuild the DSP executable, you can change its memory map to accommodate your system memory placement.  DSPLINK should be able to dynamically adjust.  If you can't rebuild your DSP executable, then you will need to place CMEM and the kernel's memory "around" it.

    Regards,

    - Rob