Hi,
Do I use another OS except Montavisa in the DM6446? The kernel more than >2.6.10.
If it can, how can install the DSP?
Thanks.
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.
DM6446 contains two CPU cores, and ARM9 and a DSP. On the DSP, you typically run DSP/BIOS operating system, on ARM side, you can run Linux, WinCE, Integrity...and other operating systems. If you want to stick with Linux, our latest official release is based on 2.6.10 kernel.
There is an early adoptor release of the DM6446 linux kernel based on 2.6.18, but I would not recommend using it unless you really need to. You can avoid yourself many headaches by waiting for the official dvsdk 2.0 release which will include this kernel. If you still want to give it a go, here is the link: https://www-a.ti.com/downloads/sds_support/targetcontent/dvsdk/mv_dvsdk/v2_00/index_external.html
I'm using the 2.6.18_pro500-davinci_ev-arm_v5t_le kernel provided by mvl_5_0_0_demo_lsp_setuplinux_02_10_00_18.bin with a hand made armv5tel-softfloat-linux-gnueabi toolchian (via the 'crossdev' tool of Gentoo, `crossdev -t armv5tel-softfloat-linux-gnueabi`).
the versions of the toolchain are...
and a corresponding handmade Gentoo armv5tel distro.
The kernel itself compiles and boots without any problem, so does the userspace distro. Everything works well, such as USB, ALSA, fbdev, and other peripherals. And the most important thing is, performance is a *LOT* more better than montavista linux 4.0 + gcc 3.4.
But, I just can never get dsplink to work. it either says memory map configuration mismatch, or kernel panic, or crash without any message. I've tried several combinations of codec engine, dsplink, codegen tools, and xdctools, without success.
versions and combinations i've used:
When I use the provided stack inside dvsdk_2_00_00_18 + C6000-CGT-<whatever version> + xdctools_<whatever version>, the decode demo hang at
@2,234,106us: [+0 T:0x4140d490 S:0x4140ca14] OC - Comm_create> return (0x9d098)
@2,234,364us: [+0 T:0x4140d490 S:0x4140ca1c] OC - Comm_put> Enter(queue=0x0, msg=0x41c11c80)
@2,234,686us: [+0 T:0x4001fd10 S:0xbed1afdc] OC - Comm_put> Enter(queue=0x0, msg=0x41c12c80)
When i switch dsplink to 1.61.03, it first complains about gpp and dsp version mismatch. So I `mv decodeCombo_e.x64P decodeCombo.x64P` and it runs, but always complain about a configuration mismatch. I've checked everywhere for those DSPALGHEAP, DDR2, DSPLINKMEM, RESET_VECTOR but can never get things right.
With dsplink 1.40.05-p4, kernel oops. the stack backtrace follows:
[ 420.720000] Backtrace:
[ 420.720000] [<bf0df388>] (LDRV_freeLinkCfg+0x0/0x40c [dsplinkk]) from [<bf0e014c>] (LDRV_getLinkCfg+0x9b8/0x9e8 [dsplinkk])
[ 420.720000] r6 = 0363E1D0 r5 = C7866000 r4 = 80008008
[ 420.720000] [<bf0df794>] (LDRV_getLinkCfg+0x0/0x9e8 [dsplinkk]) from [<bf0df280>] (LDRV_init+0x34/0x13c [dsplinkk])
[ 420.720000] [<bf0df24c>] (LDRV_init+0x0/0x13c [dsplinkk]) from [<bf0d3260>] (PMGR_PROC_setup+0xa4/0x128 [dsplinkk])
[ 420.720000] r4 = 00008000
[ 420.720000] [<bf0d31bc>] (PMGR_PROC_setup+0x0/0x128 [dsplinkk]) from [<bf0d04a4>] (DRV_Ioctl+0x41c/0xcc4 [dsplinkk])
[ 420.720000] r7 = 40BDFD68 r6 = 00006C01 r5 = C323DEE4 r4 = 00006C01
[ 420.720000] [<bf0d0088>] (DRV_Ioctl+0x0/0xcc4 [dsplinkk]) from [<c00fd814>] (do_ioctl+0x7c/0x98)
[ 420.720000] r8 = 00000006 r7 = 40BDFD68 r6 = 00006C01 r5 = 40BDFD68
[ 420.720000] r4 = C4B6E220
[ 420.720000] [<c00fd798>] (do_ioctl+0x0/0x98) from [<c00fdaf0>] (vfs_ioctl+0x2c0/0x2ec)
[ 420.720000] r6 = 00006C01 r5 = C4B6E220 r4 = 00000006
[ 420.720000] [<c00fd830>] (vfs_ioctl+0x0/0x2ec) from [<c00fdbd0>] (sys_ioctl+0xb4/0xe8)
[ 420.720000] r7 = C4B6E220 r6 = 00006C01 r5 = 40BDFD68 r4 = 00000000
[ 420.720000] [<c00fdb1c>] (sys_ioctl+0x0/0xe8) from [<c0088ff8>] (__sys_trace_return+0x0/0x28)
[ 420.720000] r8 = C0089028 r7 = 00000036 r6 = 0009CDD8 r5 = 00062CBC
[ 420.720000] r4 = 00000000
[ 420.720000] Code: ea00001a e590300c e590202c e0833006 (e5930038)
My questions:
thanks!
Did you install all the software from https://www-a.ti.com/downloads/sds_support/targetcontent/dvsdk/mv_dvsdk/v2_00/index_external.html (link I previously sent)?
According to the DM6446 release notes available from the link above, you should be using dsplink 1.60; I would use the pre-built ones for now.
Palatis said:My questions:
- Is there an "Changing the DVEVM Memroy Map" article that applies to dsplink-1.60+ and ce-2.23+? If so, where is it?
- How do i build the l64P files inside dm6446_dvsdk_combo_2_03 directories? The provided production l64P's are all 0kb in size, and when I issue `make XDCARGS=prod` it always tell me "File not recognized."
Yes the memory map article applies to this versions as well; as you will see in the article, there is a separate section for the different versions of dsplink.
The codec libraries (l64P) files are not included in the DVSDK; you will need to request them via http://focus.ti.com/dsp/docs/dspfindtoolswbytooltype.tsp?sectionId=3&tabId=1460&toolTypeId=65&familyId=44
Even if I use all pre-built ones (kernel, cmemk.ko, dsplinkk.ko, mvl demo target sys (nfs mounted), decode executable, and the decodeCombo.x64P), I still get kernel panic.
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 17 [#1]
Modules linked in: dsplinkk cmemk
CPU: 0
PC is at __wake_up_common+0x18/0x78
LR is at __wake_up+0x40/0x80
pc : [<c0040428>] lr : [<c0041d0c>] Tainted: GF
sp : c07f5e10 ip : 00000000 fp : c07f5e3c
r10: 00000000 r9 : c07f5e60 r8 : c03d65b8
r7 : 00000000 r6 : c002c360 r5 : c61425c0 r4 : 00000013
r3 : 00000001 r2 : 00000001 r1 : 00000006 r0 : c0000000
Flags: nzcv IRQs off FIQs on Mode SVC_32 Segment kernel
Control: 5317F
Table: 80EA8000 DAC: 00000017
Process rpciod/0 (pid: 187, stack limit = 0xc07f4258)
Stack: (0xc07f5e10 to 0xc07f6000)
5e00: c0059254 00000013 c61425c0 c002c360
5e20: 00000000 c03d65b8 c02ce7b4 00000000 c07f5e5c c07f5e40 c0041d0c c0040420
5e40: c07f5e60 016a0d5f c07f5e7c c049a1c0 c07f5e74 c07f5e60 c005cf7c c0041cdc
5e60: c049a1c0 00000000 c07f5e8c c07f5e78 c006f96c c005cf58 c010fcc0 c6142460
5e80: c07f5ebc c07f5e90 c0111504 c006f934 c07f5ebc c6142460 c6142464 c61424cc
5ea0: 00000000 c6142460 c61425c0 00000000 c07f5edc c07f5ec0 c0112054 c01114f8
5ec0: c02c905c c6142464 00000000 c61424cc c07f5ef4 c07f5ee0 c02ce7e8 c0111f44
5ee0: 00000000 c6142464 c07f5f24 c07f5ef8 c02ce1d0 c02ce7c4 c71ed2d4 80000013
5f00: c07d1f20 c07f4000 c61424d4 00000000 c02ce364 c6142464 c07f5f34 c07f5f28
5f20: c02ce374 c02ce134 c07f5f6c c07f5f38 c0059698 c02ce374 c07d1f38 c07d1f28
5f40: 00000002 00000000 c07d1f28 c07f4000 c07d1f20 c07d1f30 00000002 c07f5f84
5f60: c07f5fcc c07f5f70 c0059ea0 c00595c8 00000001 00000000 00000000 00010000
5f80: 00000000 00000000 c7194c20 c0041a98 00100100 00200200 ffffffff ffffffff
5fa0: 00000000 c07d1f20 c07f4000 c0059d98 c050fb58 00000000 00000000 00000000
5fc0: c07f5ff4 c07f5fd0 c005ce8c c0059da8 ffffffff ffffffff 00000000 00000000
5fe0: 00000000 00000000 00000000 c07f5ff8 c0049810 c005cdb4 421f08f4 7b2196c1
Backtrace:
[<c0040410>] (__wake_up_common+0x0/0x78) from [<c0041d0c>] (__wake_up+0x40/0x80)
[<c0041ccc>] (__wake_up+0x0/0x80) from [<c005cf7c>] (__wake_up_bit+0x34/0x3c)
r4 = C049A1C0
[<c005cf48>] (__wake_up_bit+0x0/0x3c) from [<c006f96c>] (unlock_page+0x48/0x4c)
[<c006f924>] (unlock_page+0x0/0x4c) from [<c0111504>] (nfs_readpage_release+0x1c/0x98)
r4 = C6142460
[<c01114e8>] (nfs_readpage_release+0x0/0x98) from [<c0112054>] (nfs_readpage_result_full+0x120/0x144)
r6 = 00000000 r5 = C61425C0 r4 = C6142460
[<c0111f34>] (nfs_readpage_result_full+0x0/0x144) from [<c02ce7e8>] (rpc_exit_task+0x34/0x74)
r6 = C61424CC r5 = 00000000 r4 = C6142464
[<c02ce7b4>] (rpc_exit_task+0x0/0x74) from [<c02ce1d0>] (__rpc_execute+0xac/0x240)
r4 = C6142464
[<c02ce124>] (__rpc_execute+0x0/0x240) from [<c02ce374>] (rpc_async_schedule+0x10/0x14)
[<c02ce364>] (rpc_async_schedule+0x0/0x14) from [<c0059698>] (run_workqueue+0xe0/0x170)
[<c00595b8>] (run_workqueue+0x0/0x170) from [<c0059ea0>] (worker_thread+0x108/0x144)
[<c0059d98>] (worker_thread+0x0/0x144) from [<c005ce8c>] (kthread+0xe8/0x128)
[<c005cda4>] (kthread+0x0/0x128) from [<c0049810>] (do_exit+0x0/0xa24)
r7 = 00000000 r6 = 00000000 r5 = 00000000 r4 = 00000000
Code: e24cb004 e24dd004 e590c000 e59b9004 (e59c5000)
<6>note: rpciod/0[187] exited with preempt_count 1
Juan Gonzales said:There is an early adoptor release of the DM6446 linux kernel based on 2.6.18, but I would not recommend using it unless you really need to. You can avoid yourself many headaches by waiting for the official dvsdk 2.0 release which will include this kernel.
Hi Juan, do you have any suggestions about the date of the official dvsdk 2.0 release?
I ask, because we are just starting a new DM6467 project and want to find out if it's better to take MV4.0.1 with DVSDK 1.40.xx.xx, which is quite old but expected to be stable and widely used, or if it's worth to wait for dvsdk 2.0. - I presume, dvsdk 2.0 is required, if I want to use MV 5.0, correct?
Thanks, Malte
you are correct that DVSDK 2.0 is required if you want MV pro 5.0. I do not believe it should be much longer for DVSDK 2.0 to come out, but let me do a little digging before posting a time frame.
I always tend to recommend the stable DVSDKs (less head-aches like the dpslink stuff you are running into), but since you thought the EA DVSDK 2.0 was much better, and I do not expect a big delay for this to come out, you may want to stick with this one. Can you make other progress while we look at the dsplink stuff. I was planning on trying to run the demo later on today.
Where exactly do I confirm ARM(GPP) side and DSP side memory map configurations?
I double checked the following files:
but after
it still tells me configuration mismatch.
I added armDspLinkConfig:
under
in "dvsdk_demos_2_00_00_04/dm6446/decode/decode.cfg", but it didn't work either.
How do I check the memory map configuration at run time? Is the output
DSP side or ARM side? How do I check the other side at run time to see the configured memory map because dmesg only tells me to compare but doesn't tell me what to search for?
tkx for answering!
Hi,
RidgeRun SDK for DM6446 uses the LSP 2.00 kernel (2.6.18) or Git (2.6.30), which version is basically up to the customer requirements. We currently offer support for the 2.6.18 using the DVSDK 2.00 early releases and have costumers successfully using them to develop their products. The free version includes the integration of the DVSDK in the build system.
Regards,
Diego
Palatis,
I finally got around to trying out dvsdk_2_0_0_18 on our DM6446 EVM and was successful in running the demos. All I did was install the dvsdk per the Getting Started Guide (GSG) and configure my u-boot to load linux kernel via TFTP (optionally you can flash to NOR or NAND flash) and mount file system via NFS (again, other options here).
Then, I made sure I ran loadmodules.sh before running demos; did you do this step? When I did this I got a minor error suggesting CMEM was overlapping Linux Kernel memory; therefore I reduced the size of the memory for the Linux kernel to overcome this minor issue (FYI, change u-boot bootargs variable to include 'MEM=112M' instead of 'MEM=120M', although I believe 118M would have worked). After making this minor change in u-boot's bootargs variable, I rebooted the EVM, ran loadmodules.sh, and ran the demos without any issues.
To answer your question about where to define memory map, it is defined piece by piece in several places; for example the bootargs I just mentioned above defines the size of the Linux kernel in the overall memory map. The following wiki article should give you a good understanding of how a system integrator may decide to define the memory map for the entire system and how he would go about configuring his memory map in the various software components involved: http://tiexpressdsp.com/index.php?title=Changing_the_DVEVM_memory_map
However, please note per my comments above that the only thing I changed was the Linux Kernel memory space and was able to run the demos without any issues with the DVSDK software.
I'm using the demo target system dl-ed from
and the pre-build binaries from
Steps taken:
I'm not even building any binaries by myself but using only the provided pre-built binaries. which step did i go wrong?
or am I just having bad luck?
Palatis,
I did not try those files; I figure it would be safer to stick to the ones mentioned in the Getting Started Guide; for example 'mvl_5_0_0_demo_lsp_setuplinux_#_#_#_#' mentioned in the GSG already gives you your target file system; therefore there is no need to download or install 'mvltarget5_0_0801921_update.tar.gz'; I am not saying your approach should not work, but since the process on how to use 'mvltarget5_0_0801921_update.tar.gz ' is not documented in the GSG it requires some assumptions about this file which may not hold true; therefore I did not try this path. I would recomend you stick to the GSG.
Ohh... Juan, no offence, but...
Please believe me, I've already tried all possible combinations and all possible paths I could've thought of, but just can't never get them working. That's why I'm asking the question here.
Of course I tried the method that's mentioned in GSG, too. It just didn't work out. And the method specified in GSG is far more complex and it's hard to describe it here in a few steps (else there won't be a whole "guide" to describe it.), that's why I just try to show you with a pre-built target-filesys and pre-built demo binaries.
maybe I'm just having bad luck >___<
no offense taken, :) we are here to help. FYI, I have been installing software for DM6446 for over three years (since we launched this platform) and I know it can be complex. However, please note I have personally confirmed the software works on my end so I am sure we can get to the bottom of the issue you are seeing. Like I suggested, I tried to follow the GSG but I have done this so many times that I do not read the GSG in its entirety. I will give the software in the files you mentioned above a try next week when I am back in the office, and see what I get; but from past experience, I would feel much more comfortable recommending the software mentioned in the getting started guide. Thank you for your patience.
Emm... I've been using Linux primarily as desktop and server system for over 7 years, you may call me a "geek" or "junior random hacker," so let's get to the problem the geeky way :) BTW I've read the "How to Ask Questions the Smart Way" guide (http://catb.org/esr/faqs/smart-questions.html) and trying hard not to ask dumb questions here. If I still do, please tell me :P
I've tried several combinations of, dvsdk, kernel, dsplinkk.ko/cmemk.ko, dspbios, and CE, but all I got is crash/hang or "mismatched configuration," none of them work anyway. So the past few days I just sticked with
all other stuff not mentioned here are provided with dvsdk, they are
But anyway no matter what versions they are, they all failed. Summary:
So basically no matter what I do, I get the *same* kernel panic, but this isn't mentioned in any of the documents (google returned no result either). That's why I'm wondering what I did wrong...
I do not have my DVSDK setup with me at the moment (can confirm on Monday), so I am relying on the release notes. Based on this, the biggest thing that stands out is that the docs claim DVSDK 2.0.0.18 includes PSP_02_00_00_100 instead of LSP_02_00_00_110 you mentioned above; again, without having my setup I cannot verify this. All other components you mention seem to match, althought I see some key components missing such as framework_components_2_21; I assume you have these and simply did not mention them.
ok, just to give you an update as promised. I downloaded the following files from https://www-a.ti.com/downloads/sds_support/targetcontent/dvsdk/mv_dvsdk/v2_00/index_external.html
04/13/2009 02:12 PM 128,413,511 bios_setuplinux_5_33_02.bin
04/13/2009 01:56 PM 662,950,466 data.tar.gz
04/13/2009 01:35 PM 301,836,892 dvsdk_setuplinux_2_00_00_18.bin
04/13/2009 01:54 PM 27,795,993 linux_performance_testbench_setup_02.01.02.00.bin
04/13/2009 01:39 PM 1,014,724,602 mvl_5_0_0801921_demo_sys_setuplinux.bin
04/13/2009 01:54 PM 60,722,702 mvl_5_0_0_demo_lsp_setuplinux_02_00_00_110.bin
04/13/2009 02:11 PM 28,552,697 TI-C6x-CGT-v6.0.21.1.bin
04/13/2009 02:11 PM 126,262,764 xdctools_setuplinux_3_10_03.bin
I installed these files per the Getting Started Guide (GSG) and after installation my Linux Host root DVSDK directory included the following
bin
bios_5_33_02
biosutils_1_01_00
ceutils_1_06
cg6x_6_0_21
cg_xml_2_12_00
clips
codec_engine_2_21
dm355_2_00_00_18_release_notes.html
dm355_codecs_1_13_000
dm6446_2_00_00_18_release_notes.html
dm6446_dvsdk_combos_2_03
dm6467_2_00_00_18_release_notes.html
dm6467_dvsdk_combos_2_03
dmai_1_20_00_06
docs
dsplink-1_60-prebuilt
dvsdk_demos_2_00_00_04
dvtb_4_00_04
edma3_lld_1_05_00
examples
framework_components_2_21
kernel_binaries
licenses
linuxutils_2_22_01
Makefile
mapdmaq
mapdmaq-hd
PSP_02_00_00_110
quilt
Rules.make
uninstall
xdais_6_22_01
xdctools_3_10_03
If this is the case, then there is likely a minor error during your installation process. Another possibility could be a corrupted file system.. which can be fixed by copying files system over again (step 4 in section 4.3.5 of GSG) and doing make isntall on root dvsdk directory again (step 3, in section 4.6 of GSG).
Do you get any errors when running loadmodules.sh (right before demos)? If so, this could point to an iconpatibility between your kernel and filesystem. But if you can get past loadmodules, then the issue is likely in your file-system.
yes i thought it was a nfs error, too, so I did
and copy the demo files over, but then the kernel oops in the shmfs subsystem.
and yes, I can lodamodule.sh without any problem, it's encode/decode which are not working.
I would recommend re-installing the file-system (mvl_5_0_0801921_demo_sys_setuplinux.bin and dvsdk_setuplinux_2_00_00_18.bin files) instead of just copying things over again; it is looking more and more like a filesystem issue and we do not know if the copy may be bad as well.