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.

restoring EVM DM355 NAND flash

Other Parts Discussed in Thread: TMS320DM355

Hi,

I am working on restoring the EVM to its out of the box configuration.

To this end, Ihave followed the steps of the "tms320dm355 DVEVM v1.30 Getting Started Guide" in the sections A.6 / A6.1 and then A.4.1

Everything seems to work as expected except for:

1) If I disconnect the ethernet cable, the boot sequence stops. I remeber that the out of the box configuration was self contained in the EVM, but this issue seems to indicate that the system needs files from the server to be able to boot, which I would like to avoid.

2) The demos do not actually work. I am able to access the demo menu, but as soon as I try to start one, the EVM freezes.

Could you please tell me if there is anything missing in these procedures?

Thanks,

Jorge

  • Jorge said:
    Ihave followed the steps of the "tms320dm355 DVEVM v1.30 Getting Started Guide" in the sections A.6 / A6.1 and then A.4.1

    Just a small note on this, there is a newer version of the DVSDK (2.0 latest as of today) you may want to consider if you are still early in the development process.

    Jorge said:
    1) If I disconnect the ethernet cable, the boot sequence stops. I remeber that the out of the box configuration was self contained in the EVM, but this issue seems to indicate that the system needs files from the server to be able to boot, which I would like to avoid.

    If you are booting entirely out of flash than the network should not be required as you suggest, though things may slow down while it tries to bring up the network, this should not take much time. To diagnose this I would need to take a look at your U-Boot arguments, so if you could post up what the printenv command in U-Boot outputs that would help, if it is truly dependent on the network to boot you probably have it configured to be in the arguments.

    Jorge said:
    2) The demos do not actually work. I am able to access the demo menu, but as soon as I try to start one, the EVM freezes.

    This is a bit strange, but something we should be able to dig into further if you could post the serial terminal output from when you try to start the demo, in general you should get some sort of error message out if the demo is crashing.

  • Hi Bernie, Thank you so much. We have some software deseigned using the 1.30 version. Is there a chance on getting into compatibility issues?

    On the NAND Flash restoration:

    Your were right on the first problem. The system attempts to bring up the ethernet ports two times before skipping. I only waited for on the first time I tried, but after the second the system is able to boot without the server.

    The second problem is still an issue. When I use the remote control, the system freezes, however no message is observed in the command line. Moreover the command line keeps working normally. Here are some responses I got to different things I tried. I logged into Montavista as root.

     

    # lsmod
    Module                  Size  Used by    Not tainted
    dm350mmap 5204 0 - Live 0xbf000000

     

    # ./loadmodules.sh
    CMEMK Error: CMEM phys_start (0x87400000) overlaps kernel (0x80000000 -> 0x8800)
    insmod: cannot insert `cmemk.ko': Invalid parameters (-1): Invalid argument
    insmod: cannot insert `dm350mmap.ko': File exists (-1): File exists

     

    # ./decode -v ./data/videos/davincieffect_ntsc.mpeg4
    Decode demo started.
    CMEM Error: init: Failed to open /dev/cmem: 'No such file or directory'
    CMEM Error: getPhys: You must initialize CMEM before making API calls.
    CMEM Error: getPhys: You must initialize CMEM before making API calls.
    CMEM Error: getPhys: You must initialize CMEM before making API calls.
    CMEM Error: getPhys: You must initialize CMEM before making API calls.
    CMEM Error: getPhys: You must initialize CMEM before making API calls.
    CMEM Error: getPhys: You must initialize CMEM before making API calls.
    Decode Error: Failed to open video decode algorithm

     

    # cd dev
    # ls
    MAKEDEV      ptyd4        ptyt4        ptyz4        ttyea        ttyua
    console      ptyd5        ptyt5        ptyz5        ttyeb        ttyub
    core         ptyd6        ptyt6        ptyz6        ttyec        ttyuc
    dm350mmap    ptyd7        ptyt7        ptyz7        ttyed        ttyud
    dm355_aew    ptyd8        ptyt8        ptyz8        ttyee        ttyue
    dm355_af     ptyd9        ptyt9        ptyz9        ttyef        ttyuf
    dm355_ipipe  ptyda        ptyta        ptyza        ttyp0        ttyv0
    dsp          ptydb        ptytb        ptyzb        ttyp1        ttyv1
    fb           ptydc        ptytc        ptyzc        ttyp2        ttyv2
    fd           ptydd        ptytd        ptyzd        ttyp3        ttyv3
    full         ptyde        ptyte        ptyze        ttyp4        ttyv4
    i2c          ptydf        ptytf        ptyzf        ttyp5        ttyv5
    initctl      ptye0        ptyu0        random       ttyp6        ttyv6
    input        ptye1        ptyu1        rd           ttyp7        ttyv7
    kmem         ptye2        ptyu2        shm          ttyp8        ttyv8
    kmsg         ptye3        ptyu3        sndstat      ttyp9        ttyv9
    loop         ptye4        ptyu4        sound        ttypa        ttyva
    mem          ptye5        ptyu5        stderr       ttypb        ttyvb
    misc         ptye6        ptyu6        stdin        ttypc        ttyvc
    mixer        ptye7        ptyu7        stdout       ttypd        ttyvd
    mtd0         ptye8        ptyu8        tts          ttype        ttyve
    mtd0ro       ptye9        ptyu9        tty          ttypf        ttyvf
    mtd1         ptyea        ptyua        ttya0        ttyq0        ttyw0
    mtd1ro       ptyeb        ptyub        ttya1        ttyq1        ttyw1
    mtd2         ptyec        ptyuc        ttya2        ttyq2        ttyw2
    mtd2ro       ptyed        ptyud        ttya3        ttyq3        ttyw3
    mtd3         ptyee        ptyue        ttya4        ttyq4        ttyw4
    mtd3ro       ptyef        ptyuf        ttya5        ttyq5        ttyw5
    mtd4         ptyp0        ptyv0        ttya6        ttyq6        ttyw6
    mtd4ro       ptyp1        ptyv1        ttya7        ttyq7        ttyw7
    mtd5         ptyp2        ptyv2        ttya8        ttyq8        ttyw8
    mtd5ro       ptyp3        ptyv3        ttya9        ttyq9        ttyw9
    mtdblock0    ptyp4        ptyv4        ttyaa        ttyqa        ttywa
    mtdblock1    ptyp5        ptyv5        ttyab        ttyqb        ttywb
    mtdblock2    ptyp6        ptyv6        ttyac        ttyqc        ttywc
    mtdblock3    ptyp7        ptyv7        ttyad        ttyqd        ttywd
    mtdblock4    ptyp8        ptyv8        ttyae        ttyqe        ttywe
    mtdblock5    ptyp9        ptyv9        ttyaf        ttyqf        ttywf
    net          ptypa        ptyva        ttyb0        ttyr0        ttyx0
    null         ptypb        ptyvb        ttyb1        ttyr1        ttyx1
    port         ptypc        ptyvc        ttyb2        ttyr2        ttyx2
    ppp          ptypd        ptyvd        ttyb3        ttyr3        ttyx3
    ptmx         ptype        ptyve        ttyb4        ttyr4        ttyx4
    pts          ptypf        ptyvf        ttyb5        ttyr5        ttyx5
    ptya0        ptyq0        ptyw0        ttyb6        ttyr6        ttyx6
    ptya1        ptyq1        ptyw1        ttyb7        ttyr7        ttyx7
    ptya2        ptyq2        ptyw2        ttyb8        ttyr8        ttyx8
    ptya3        ptyq3        ptyw3        ttyb9        ttyr9        ttyx9
    ptya4        ptyq4        ptyw4        ttyba        ttyra        ttyxa
    ptya5        ptyq5        ptyw5        ttybb        ttyrb        ttyxb
    ptya6        ptyq6        ptyw6        ttybc        ttyrc        ttyxc
    ptya7        ptyq7        ptyw7        ttybd        ttyrd        ttyxd
    ptya8        ptyq8        ptyw8        ttybe        ttyre        ttyxe
    ptya9        ptyq9        ptyw9        ttybf        ttyrf        ttyxf
    ptyaa        ptyqa        ptywa        ttyc0        ttys0        ttyy0
    ptyab        ptyqb        ptywb        ttyc1        ttys1        ttyy1
    ptyac        ptyqc        ptywc        ttyc2        ttys2        ttyy2
    ptyad        ptyqd        ptywd        ttyc3        ttys3        ttyy3
    ptyae        ptyqe        ptywe        ttyc4        ttys4        ttyy4
    ptyaf        ptyqf        ptywf        ttyc5        ttys5        ttyy5
    ptyb0        ptyr0        ptyx0        ttyc6        ttys6        ttyy6
    ptyb1        ptyr1        ptyx1        ttyc7        ttys7        ttyy7
    ptyb2        ptyr2        ptyx2        ttyc8        ttys8        ttyy8
    ptyb3        ptyr3        ptyx3        ttyc9        ttys9        ttyy9
    ptyb4        ptyr4        ptyx4        ttyca        ttysa        ttyya
    ptyb5        ptyr5        ptyx5        ttycb        ttysb        ttyyb
    ptyb6        ptyr6        ptyx6        ttycc        ttysc        ttyyc
    ptyb7        ptyr7        ptyx7        ttycd        ttysd        ttyyd
    ptyb8        ptyr8        ptyx8        ttyce        ttyse        ttyye
    ptyb9        ptyr9        ptyx9        ttycf        ttysf        ttyyf
    ptyba        ptyra        ptyxa        ttyd0        ttyt0        ttyz0
    ptybb        ptyrb        ptyxb        ttyd1        ttyt1        ttyz1
    ptybc        ptyrc        ptyxc        ttyd2        ttyt2        ttyz2
    ptybd        ptyrd        ptyxd        ttyd3        ttyt3        ttyz3
    ptybe        ptyre        ptyxe        ttyd4        ttyt4        ttyz4
    ptybf        ptyrf        ptyxf        ttyd5        ttyt5        ttyz5
    ptyc0        ptys0        ptyy0        ttyd6        ttyt6        ttyz6
    ptyc1        ptys1        ptyy1        ttyd7        ttyt7        ttyz7
    ptyc2        ptys2        ptyy2        ttyd8        ttyt8        ttyz8
    ptyc3        ptys3        ptyy3        ttyd9        ttyt9        ttyz9
    ptyc4        ptys4        ptyy4        ttyda        ttyta        ttyza
    ptyc5        ptys5        ptyy5        ttydb        ttytb        ttyzb
    ptyc6        ptys6        ptyy6        ttydc        ttytc        ttyzc
    ptyc7        ptys7        ptyy7        ttydd        ttytd        ttyzd
    ptyc8        ptys8        ptyy8        ttyde        ttyte        ttyze
    ptyc9        ptys9        ptyy9        ttydf        ttytf        ttyzf
    ptyca        ptysa        ptyya        ttye0        ttyu0        urandom
    ptycb        ptysb        ptyyb        ttye1        ttyu1        v4l
    ptycc        ptysc        ptyyc        ttye2        ttyu2        vc
    ptycd        ptysd        ptyyd        ttye3        ttyu3        vcc
    ptyce        ptyse        ptyye        ttye4        ttyu4        video0
    ptycf        ptysf        ptyyf        ttye5        ttyu5        video2
    ptyd0        ptyt0        ptyz0        ttye6        ttyu6        video3
    ptyd1        ptyt1        ptyz1        ttye7        ttyu7        watchdog
    ptyd2        ptyt2        ptyz2        ttye8        ttyu8        zero
    ptyd3        ptyt3        ptyz3        ttye9        ttyu9

     

    Thank you so much,

    Jorge

  • I found one more thing here. When the system boots I get this message at the end:

    CMEMK Error: CMEM phys_start (0x87400000) overlaps kernel (0x80000000 -> 0x8800)
    insmod: cannot insert `cmemk.ko': Invalid parameters (-1): Invalid argument
    Starting web server ...
     thttpd

    MontaVista(R) Linux(R) Professional Edition 4.0.1 (0502020)

    Thanks,

    Jorge

  • Jorge said:
    We have some software deseigned using the 1.30 version. Is there a chance on getting into compatibility issues?

    In this case than staying with 1.30 is perfectly reasonable, there is certainly a possibility of compatibility issues with an application designed for 1.30 on 2.00, there would likely be some porting work involved.

    Jorge said:
    # ./loadmodules.sh
    CMEMK Error: CMEM phys_start (0x87400000) overlaps kernel (0x80000000 -> 0x8800)
    insmod: cannot insert `cmemk.ko': Invalid parameters (-1): Invalid argument

    This is a problem right here, and would explain why your demos are failing, if CMEM does not get inserted into the kernel properly there will be no contiguous memory outside the kernel for the hardware accelerators to work with. What this error message is saying is that the CMEM is being inserted with arguments that tell it to use memory that is already in use by the kernel. This could mean two things, either the kernel is using too much memory, or the loadmodules.sh trying to insert CMEM with bad arguments.

    My suspicion here is that the problem is the former, where the kernel is being configured to claim more memory than it should to work with the DVSDK demos. This configuration happens with the bootargs environment variable in U-Boot, I would guess that in that variable there is a mem= statement that is greater than 116M, which is making the kernel claim too much of the DDR.

    To fix this you will want to verify your bootargs value in U-Boot, and likely set it to the value from the getting started guide (assuming you want to boot entirely from NAND).

    setenv bootargs console=ttyS0,115200n8 ip=dhcp root=/dev/mtdblock3 rw rootfstype=yaffs2 mem=116M video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16, 2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=$(videostd)

  • Solved. Thank you so much. I had a typo (missing "=" ) in the bootargs.

  • Jorge said:

    Your were right on the first problem. The system attempts to bring up the ethernet ports two times before skipping. I only waited for on the first time I tried, but after the second the system is able to boot without the server.

    If you want to speed things up and are not using ethernet, you can set 'ip=off' in your bootargs.