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.

DMVA2IPNC booting problem...



Hi,

I am using Kingston 2GB SD card for flashing the UBL, u-boot and linux kernel. I have connected DMVA2IPNC with the DM355 debug board. The only option on dm355 debug board is to close the JP2 jumper for SD boot. However, when I close this jumper and boot (with SD card inserted), it still boots in NAND mood and gets stuck at STARTING NAND COPY.....

Please tell me how can I boot in SD mood?

Thanks.

  • Umair,

    The way you did is correct for SD boot. But it seems the IPNC is not configured as SD boot. I suspected the problem is due to the cable.

    Would you pls change the cable between debug board and IPNC and try again?

  • Hi,

    Thanks for your response. You mean the cable which comes from the EVM board (inside the camera) and plugs into the debug board? How can I change that cable because it is, perhaps, fabricated on the board and requires to open the camera. Moreover, I see the messages on the console which means the cable works fine. 

    Regards,

  • Hi,

    I changed the cable between the debug board and IPNC, but same result. Does this IPNC even has SD support? Please someone help me to figure out this problem.

    Regards,

  • I came to know that we have to modify the SD card boot code (http://processors.wiki.ti.com/index.php/DM3xx_SD_card_boot_and_flashing_program) for UART1 instead of UART0, and then use it on the IPNC hardware. So I did it as follows (as suggested in the forums). 

    (dm3xx_sd_boot-6.1 based)

    1)

    flash_utils/DM36x/Common/include/device.h

    //#define UART0 ((DEVICE_UartRegs*) 0x01C20000)
    #define UART0 ((DEVICE_UartRegs*) 0x01D06000)

    2)
    flash_utils/DM36x/Common/src/device.c
    // assign multiplex pins to UART1
    @Uint32 DEVICE_init()
    DEVICE_pinmuxControl(3,0xFFFFFFFF,0x60000000);  // SPI0, SPI1, UART1, I2C, SD0, SD1, McBSP0, CLKOUTs 00180000
    DEVICE_pinmuxControl(4,0xFFFFFFFF,0x5555D555);  // MMC/SD0 instead of MS, SPI0 55555555

    // correct baudrate divider
    @Uint32 DEVICE_UART0Init()
    //UART0->DLL = 0x0d; 
    UART0->DLL = 0x42;               // Set baud rate<< depends on your PLL divider setting at DEVICE_PLL1Init() and the OSC input 

    After doing these changes in the code, when I try to re-build the code (SUDO MAKE or SUDO MAKE ALL), I get the following error:

    make [1] : arm_v5t_le-gcc: command not found

    I am at the loss to know what is the problem. 


  • Hi Umair,

    You have to export compiler path.
    In the console:  cd to the folder from where you compile, then export path, something  like :
    export PATH="/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_5.0/montavista/pro/bin:/opt/mv_pro_5.0/montavista/common/bin:$PATH"

    Regards,
    Marko.

  • Where are these paths? Does it mean that I will have to first mount the file system for IPNC on my PC?

     

  • Umair,

    You need to export PATH variable, where your  MontaVista toolchain is installed.
    I suppose you have installed it, if you are building IPNC.

    MontaVista5  installation instructions: 

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_2_10/latest/index_FDS.html    (Installing the Target Linux Software)

    Download it  from: http://processors.wiki.ti.com/index.php/GSG:_DM365_DVEVM_Software_Setup


    MVL 5.0 Tools
    LSP 02_10_00_14

     

    Regards,
    Marko.

     

  • Markov,

    I installed the MVL 5.0 Tools, LSP_02_10_00_14 and the development kit. I performed the changes in the flash utilities code as mentioned before. It successfully compiled this time and created the dm3xx.dat boot file on the SD card. With this file on the SD card (and the ubl, u-boot images), when I tried to boot in SD mood, I got the same result, i.e., a blank screen. When I close the JP2 jumper and boot the IPNC with SD card inserted, I don't see anything. 

     

  • just one more information...i am using windows hyperterminal for serial communication. 

  • Umair,

    You probably didn't get utility to print on uart1, if the terminal is blank.
    The new IPNC-MT5 from ver. 2.5, already has modified dm3xx_sd_boot-6.1 utility included,  and works fine with IPNC camera.
    Could you ask Appro, if you don't  have that utility in your IPNC package.

    Marko.

  • Markov,

    I looked into the appro software. It does contain a utility flash_utils_dmvax_1.0.0.zip. When I unzip it, I see following folders:

    flash_utils_dm36x

    • common
      • arch
      • ccs
      • drivers
      • gnu
      • ....
    • DM36x
      • CCS
        • NANDwriter
        • ubl
        • MAKEFILE
      • Common
        • include (device.h, device_nand.h)
        • src (device.c, device_nand.c)

    However, when I run any of the make file, I get errors. Do I need Code Composer Studio to build this project?

    I am really stuck in this problem. I have already asked appro about this problem. Surprisingly, they say that we don't have any such utility. Neither there is any document about this utility. 

     

  • Umair,

    Yes i think you must have CCS to build nandwriter  and UBL.  I had built UBL with CCS-3.3.
    But there is a new tool : dm3xx_sd_boot-6.1, similar as the one at :http://processors.wiki.ti.com/index.php/DM3xx_SD_card_boot_and_flashing_program,
    but it is designed for ipnc, and it uses uart1 for console.

    It is included only in new DM368_IPNC_MT5, ver. 2.5 and ver. 2.6.
    It is in the  same folder as "flash_utils" you mentioned : "PrivateTI_ IPNC_DM36x-2.5.0-Setup\Utils\src\dm3xx_sd_boot-6.1.zip"

    Regards,
    Marko.

  • Markov,

    I really appreciate your help. It means I must get the version 2.5 software. Should I ask appro for this? Because on their FTP server, I still see the same software that I downloaded before. Do you have that version of software? If yes, where did you get it from?

    Regards,

    Umair

  • Umair,

    You could ask Appro or TI to provide you that  sd_boot  tool.
    So far it is included only in IPNC_MT5 ver.2.5 and  2.6, as i know.
    I don't know when they plan to  include it with other models.


    Regards,
    Marko.

  • Thanks. I will contact to TI and appro.

    Can you please let me know how did you compile it in CSS?

  • Umair,

    In CCS3.3:
     - Menu Project->Open
    - open CCS project file, with ".pjt" extension (NANDWriter_IPNC368.pjt)
     -Project->Build (Rebuild All)

    http://processors.wiki.ti.com/index.php/How_to_update_CCS_ARM_cgtools_to_build_the_DM365_ubl_in_CCS_3.3

     

    Regards,
    Marko.

  • Markov,

    When I compile the NAND writer in CCS 4.0, I get following error:

     

    >> ERROR: option --abi=eabi conflicts with --enum_type=unpacked

    E:\Texas Instruments\ccsv4\utils\gmake\gmake: *** [util.obj] Error 1

    E:\Texas Instruments\ccsv4\utils\gmake\gmake: *** No rule to make target `nandwriter.obj', needed by `NANDWriter_DM368_IPNC.out'.

    E:\Texas Instruments\ccsv4\utils\gmake\gmake: Target `all' not remade because of errors.

     

    Regards,

  • Markov,

    I changed the CCS build settings and selected the "Generic Arm processor"  type with the latest code generation tools installed (4.6). It then successfully compiled and generated the nandwriter.out file. But when I run this file in linux, it agains gives error:  expected ")". 

    Regards,

  • Umair,

    The "nandwriter.out" program is meant to be used inside CCS and with JTAG emulator, not in Linux.
    You have description on how to use that tool in your ipnc package in Users_Guide_IPNC_DM36x.pdf.

    I am using it with CCS3.3 and  Spectrum Digital  XDS510 USB PLUS JTAG Emulator
    http://www.spectrumdigital.com/index_orig.php?cPath=22_107&osCsid=50746430756dd311fe712d3b4786fa90

    I think it might  also be possible to use it with much cheaper XDS100v2 JTAG emulator, but i have not try it : http://focus.ti.com/docs/toolsw/folders/print/xds100.html
    You better ask TI or Appro if it's possible with XDS100v2.

    Regards,
    Marko.

     

  • Umair,

    You may try to flash the board with serial flasher.
    It is in flash_utils  from e.g. TI   DVSDK_4.01.00.09.

    You can download it from :  http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html

    After installation you can find it in : ../dvsdk_4.01.00.09/psp/board-utilities/flash_utils/DM36x/GNU/sfh_DM36x.exe.  (runs in Windows)

    Regards,
    Marko.

  • Markov,

    I think I am about to make it. I got the IPNC-MT5 2.6 software from appro. There is definitely a flash utility in there. But I still have a problem. The utility  compiles well, but during the installation processor (sudo make install), I get the following error:

    no file original/ubl_432arm_340ddr_ipnc_dm368_1.0.1.bin

    nor file original/u-boot-1.3.4_ipnc_dm368_1.0.1.bin

    Infact, there is no such files in the original folders. I set the paths:

    PATH="/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_5.0/montavista/pro/bin:/opt/mv_pro_5.0/montavista/common/bin:$PATH"

    In the given readme file, they suggest to export the following path:

    export PATH=$PATH:./bin.x86

    I do set this path, which is the path of bin.x86 folder in dm3xx_sd_boot-6.1. I do it as follows:

    export PATH= /home/umair/dm3xx_sd_boot-6.1/bin.x86:$PATH

    But still the above files are not generated in ORIGINAL folder. Are these files supposed to be already there? Or they are  generated during compiling? I don't file these files anywhere.  

    Regards, 

  • Markov,

    I can finally boot with the SD card. I copied all the required files in the "ORIGINAL" folder. It shows the following messages on the console:

    SD card boot and flashing tool for DM355 and DM365 by Constantine Shulyupin http://www.LinuxDriver.co.il/

    Online manual: http://wiki.davincidsp.com/index.php/SD_card_boot_and_flashing_tool_for_DM355_and_DM365 based on TI DM35x FlashAndBootUtils 1.10 SFT, TI flash_utils and SpectrumDigital evmdm355, evmdm365

    Compiled on Mar 20 2011 at 14:53:43 with gcc 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)

    SYSTEM->DEVICE_ID=0x8B83E02F

    &EMIFStart=0x02000000

     

    After that, nothing happens. Actually the file versions of UBL and UBOOT described in the .config file are 1.0.1. But the versions that I found in the same utility are 1.1.0. So I renamed the file names.

    What can be the problem?

    Regards,

  • Hi Umair,

    Use  all files from your IPNC package, since they are probably  different. In sd_boot utility, those files are for DM36x_MT5 camera, with different HW/SW.

    Instead of renaming  files, change file names in  "dm3xx_sd.config"  file.
    Put all 5 files in /original folder : UBL,  uBoot, diagnostic, kernel and filesystem. Find them in your IPNC package.

     

     

    Marko.

     

  • Markov,

    I did exactly the same. But the booting stops at the above message. I compiled for both dm365 and dm368, but of no use. I tried those 5 files (in original folder) from the same IPNC  package (2.6), from 2.5 and the early beta version from appro. But nothing seems to work. 

    Regards,

  • Umair,

    I can confirm that sd_boot works with  DM368_MT,  but i don't know about DMVA2IPNC.

    Here is my console printout :

    SD card boot and flashing tool for DM355 and DM365
    by Constantine Shulyupin http://www.LinuxDriver.co.il/
    Online manual: http://wiki.davincidsp.com/index.php/SD_card_boot_and_flashing_tool_for_DM355_and_DM365 based on TI DM35x FlashAndBootUtils 1.10 SFT, TI flash_utils and SpectrumDigital  evmdm355, evmdm365
    Compiled on Mar 21 2011 at 08:23:17 with gcc 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)
    SYSTEM->DEVICE_ID=0x0B83E02F
    &EMIFStart=0x02000000
    nand->devID=0x000000F1 nand->dataBytesPerPage=2048 nand->pagesPerBlock=64 nand->
    numBlocks=1024 nand_size=134217728
    sdcard_init
    00000000sdcard_read sdc_src=0x00001000 dst=0x80001044 len=0x00000200 dst + len=0
    x80001244 *data0=0xA1ACED00
    flasher_data=0x000A4400
    sdcard_read sdc_src=0x000AC400 dst=0x80001044 len=0x00000200 dst + len=0x8000124
    4 *data0=0x00010000
    check_pattern_123
    1 - boot; 2 - install; 3 - erase flash, 4 - nand boot, 5 - test first 16MB of RA
    M
    u - install ubl only, d - nand flash dump

    __________________________________________________-

    It seems that  your nand can not be opened  in  /sdcard_flash/sdcard_flash.c , in  :

    void nand_prepare()
    {
    trvx(&EMIFStart);  //OK, the LAST one
    nand = NAND_open((Uint32) & EMIFStart, (Uint8) DEVICE_emifBusWidth()); // frozen
    ______________________________________________________________

    Maybe your flash is broken, can you get anything from console  if you boot to nand.

     

    Regards,
    Marko.

     

  • Markov,

    When I boot in NAND mood, I get the following at console:

    DM36x initialization passed!

    TI UBL Version: 1.50

    Booting Catalog Boot Loader

    BootMode = NAND

    Starting NAND Copy...

     

    After that, nothing happens.

    Regards,

  • Hi Umair,

    It seems that UBL is started, then it hangs at the same function as sd_boot : "NAND_open(...)".  Look at /ubl/src/nandboot.c.

    Didi you try to run diagnostic program on you camera. I don't know if DMVA2 has the same, but on MT5
    you can run diagnostic, if you turn off the camera, then connect(short) outside camera connectors : GND (3) and ALM-IN(5),
    turn camera on, and diagnostic program should run.

     

    Regards,
    Marko.

  • Hi Markov,

    I am trying to run the diagnostic program as suggested by you. But how to short the connectors GND and ALM-IN. I do have these connections on my camera. But they are not like jumpers. Can you please tell me how to short them?

    Regards,

  • Hi Umair.

    Just connect them with a wire. Push one end of wire in GND connector and another one in ALM-IN connector.

    Marko.

     

  • Hi Markov,

    I now know what's the problem. I had tried to mount the camera and since there is no place on the camera to mount it on a tripod or somewhere else, I had to use a plate with some screws in the holes of the camera. These are the only two holes given at the bottom of the camera. When I inserted screws in these holes, one of the screw damaged a part on the board, a few resistors sort of things. 

    Can you Please suggest me what should I do? It now turns out to be a hardware problem. 

    Regards,

  • Umair,

    If you can not fix it yourself, you better ask Appro, if they are willing to repair it.

    Regards,
    Marko.

     

  • Markov,

    I really appreciate your help and support. I have already contacted to appro and waiting for their reply. 

    I do have one more issue. I will be thankful to you if you can be of some help. 

    I wanna use DMVA2IPNC with another camera (photonfocus GigE camera) in such a way that DMVA2IPNC should work in free running mode and the other camera should be triggered by DMVA2IPNC. I know about an ALM-OUT signal from the DMVA2IPNC that can be set to detect an event and work as a trigger for other cameras. Can you please let me know how can I use it? The other camera can also work in software and hardware trigger mode. I want to connect both the camera with a PC, so that the trigger signal from DMVA2IPNC should invoke the image capture from the other camera. 

    Regards,

  • Umair.

    One  methode could be to make a simlpe UDP (or TCP) connection between cameras, they both have ethernet, then exchange messages between cameras.

    I took a look at IPNC code. If you want to use IPNC alarm out signal, take a look at the following : \ipnc_app_dm36x_priv_2.6.0\av_capture\application\ipnc\av_server\src\video\videoMotionThr.c  and   SendAlarmMotionrDetect() function call.
    It seems IPNC calls this function to trigger alarm out on motion detected, so you can do the same.
    If you trace that function further, you can see: ipnc_app_dm36x_priv_2.6.0\ipnc_app\interface\src\alarm_msg_drv.c : SendAlarmMotionrDetect(int Serial) sends ALARM_EVENT_MOTION_DETECT message to system_server :
    PrivateTI_IPNC_DM36x_2.6.0\Application\src\ipnc_app_dm36x_priv_2.6.0\ipnc_app\sys_server\src\proc_alarm.c :
    void *ProcAlarmThread(void *arg){
    ....
            case ALARM_EVENT_MOTION_DETECT:
            {
              dm355_gio_write(GIO_ALARMOUT,trigger);

    and further:

    PrivateTI_IPNC_DM36x_2.6.0\Application\src\ipnc_app_dm36x_priv_2.6.0\ipnc_app\interface\src\dm355_gio_util.c  function : dm355_gio_write()

    So try to call : SendAlarmMotionrDetect(), like it is in \videoMotionThr.c

    ___________________________________________________

    Another example of alarm out triggering is in a diagnostic program :

    PrivateTI_IPNC_DM36x_2.6.0\Utils\src\diagnostic_ipnc_dm36x_1.0.0\diagnostic_ipnc_dm36x_1.0.0\DM36x_IPCAM\SRC\SYSTEM\TestFun.c
    void SW_Test(void)  / DRVfnArmssGpioSetBit((DrvGpioPinNum)ALM_OUT_PIN);

     

    Regards,
    Marko.

  • Markov,

    Thanks for the explanation. In the web interface of DMVA2IPNC, there are options to select the motion detection and an ALM-OUT signal. If I set these options, will these functions (e.g., SendAlarmMotionrDetect() )  be called automatically?

    Someone told me that I can send an RTSP signal or metadata over the network at motion detection, but I don't know how this data will be received by the other camera. 

    Moreover, you say that  "try to call : SendAlarmMotionrDetect(), like it is in \videoMotionThr.c", how can I call this function (or) \videoMotionThr.c itself? Do I need to write some PC-based application for this?

    Regards,

     

  • Umair,

    Yes i think that by enabling motion detection, you shoud get ALM_OUT triggered when there is motion detected.
    You can disable(comment out) that function in videoMotionThr.c, and use it in another way, suited to your needs.
    Just write down that function in the same program (av_server.out), but at the time and place  you want alarm out to  be triggered,
    probably not in the same thread (videoMotionThread.c), but in the same program - av_server.out in /opt/ipnc

    If you want to send RTSP metadata, you should first learn RTSP protocol, live555 libraries,  wis-streammer ...
    It is mush easier just to send UDP packet.

    Marko.

  • OK. Thanks a lot. 

    1) If I set these options in the web interface, do I still need to make these changes in the files and re-compile?

    2) If I recompile with these changes, do I have to compile it on PC, or I can do this on the camera?

    3) If the camera sends out an ALM-OUT signal, will it send it on the network and will be readable by the other camera connected to the PC?

    Regards,

  • Umair,

    1) You don't have to recompile to enable alarm_out. Just enable it in web interface.
         However i just tried this out, and motion detection doesn't work. So you will have to enable and configure motion detection yourself.
         However i can get  3V output between GND and ALM_OUT, with old web interface, where i can test Digital I/O,
         by putting "Digital Output" to On, and Active type to Low. (web interface : System/Digital I/O)
         With new web interface i can only get "Ethernet Lost" alarms working on ALM_OUT (switching 0V/ 3V).

     

    2) If you want to make any changes in source code, you must install complete IPNC source on PC with Linux Ubuntu, and MontaVista5 toolchain.
        Procedure is described in Private/Docs/Users_Guide_IPNC_DM36x.pdf :
           2.4.4.1 Installing the File System (cramfs)
           3.1 Installing IPNC Application

    3) ALM-OUT is just a simple electrical signal, so you can not receive it through any standard network protocol. If you need that, make e.g. a simple UDP sender program, and on the other camera, simple UDP receiver program.

  • Thanks Markov. 

    So what would be a better option? I have also tried out motion detection in web interface, and it doesn't work. So What would be a better option (and relatively easier) between (2) and (3), as you suggested.  

    If I perform the changes in the code (as you suggested in an earlier post) and re-compile it, will it be able to do motion detection with web interface? 

    Regards,

  • Hi Markov,

    I am re-building the IPNC application. I have already montavista tool chain installed. However, during the building process, I get the following error:

    arm_v5t_le-gcc: error trying to exec 'cc1': execvp: No such file or directory

    I have set all the paths as follows:

    export PATH="/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_5.0/montavista/pro/bin:/opt/mv_pro_5.0/montavista/common/bin:$PATH"

    It seems some cross-compiling or pathing problem. Can you please figure it out?

    Regards,

     

  • Hi Umair,

    See if you have MontaVista installed in opt/mv_pro_5.0, as specified by path.
    I have cc1 in : /opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/target/usr/lib/gcc/armv5tl-montavista-linux-gnueabi/4.2.0/cc1

    Regards,
    Marko.

  • I have the montavista installed in the same path. Also cc1 is in the same path as yours.

  • Umair,

    You should install everything strictly in folders described in UserGuide.
    Then in terminal go to folder  /ipncmainfolder/ipnc/ , and  for complete rebuild type  :  make sysall  .
    For other commands see makefile, for instance : first "make clean", then "make exe"

    Regards,
    Marko.

     

  • Thanks Marko. I have now successfully rebuilt the whole kernel and generated the cramfs and uImage files.

    I have just one more question. If I do some changes in the code (e.g., the motion detection code as I described earlier) and rebuild the system, do I need to flash only these two files (cramfs and uImage) in the IPNC? Because the rebuild procedure also produces other executables that the IPNC runs. If I flash only the cramfs and uImage in the IPNC (through serial transfer or SD card), will it be enough to run the whole system with the updated code/applications?

    Regards,

  • Umair,

    I'm glad it works. If you have built new kernel and cramfs, then everything is in there. Whole filesystem (/ipnc/target/filesys) is in cramfs.
    Executables are copied  to /target/filesys/opt/ipnc,  from av_capture and  ipnc_app folders, then packed to cramfs.
    Kernel (from /ipnc/ti-davinci) is in uImage.

    Regards,
    Marko.

  • Markov,

    It's all due to your help and support that I will always appreciate. 

    I am now ready to change the motion detection code to send a UDP signal (as I discussed before). At motion detection, I wanna send a UDP signal to the PC which will then trigger another camera (running in triggered mode). 

    As you suggested before, I just wanna confirm one thing. 

    The function call SendAlarmMotionrDetect() in "\ipnc_app_dm36x_priv_2.6.0\av_capture\application\ipnc\av_server\src\video\videoMotionThr.c"  is defined in "ipnc_app_dm36x_priv_2.6.0\ipnc_app\interface\src\alarm_msg_drv.c" where it sends a ALARM_EVENT_MOTION_DETECT message to the server.  

    In "PrivateTI_IPNC_DM36x_2.6.0\Application\src\ipnc_app_dm36x_priv_2.6.0\ipnc_app\sys_server\src\proc_alarm.c" this message is used to invoke an alarm signal to GPIO, as follows:

    void *ProcAlarmThread(void *arg){
    ....
            case ALARM_EVENT_MOTION_DETECT:
            {
              dm355_gio_write(GIO_ALARMOUT,trigger);

    .....

    I  think this is the only place (case ALARM_EVENT_MOTION_DETECT)  where I can comment these statements and write down my UDP client program. I can leave every other thing same. Please correct me if I am wrong. 

    Thanks,

  • Umair,

    I looked at motion detection and was able to get it work:

    Enable motion detection  in browser :
    You can see all configurable web parameters in web browser : http://192.168.1.168/ini.htm

     Enable and configure motion detection in browser, by setting the following parameters:

    http://192.168.2.111/vb.htm?motionenable=1

    Same way set the following parameters :

    motionenable=1
    motionblock=FFF
    motionsensitivity=1
    alarmenable=1
    extalarm=1
    alarmduration=1
    exttriggeroutput=1


     Check them in  ini.htm, then restart camera, or only restart programs. After that motion detection works.

    You can observe if detection is working by adding a line in :

    void *ProcAlarmThread(void *arg){
    ....
            case ALARM_EVENT_MOTION_DETECT:
             {
                 printf("ALARM EVENT MOTION DETECTED.\n");   // add this line, so you will see detection printed out in terminal for debugging

     

    Like you said, you can add your UDP alarm sending code at that place.
    You can leave default code, so that GPIO alarm would also work, and you will get simple electrical signal 0/3V from GND and ALM-OUT.
    I checked that and it works : 0V or 3V is out from connecting GND and ALM-OUT.


    Regards,
    Marko


     

  • Marko,

    Thanks for helping out other community members on the DM36x IPNC framework. We @ TI really appreciate your comments on the forum and making this forum really an Engineer-2-Engineer interaction of the community.

    Feel free to ping us anytime if you want any help on the IPNC (although i believe you are already quite up-to-date on the software that we use :-) )

    Regards,

    Anshuman

  • Hi Anshuman,

    Thanks for your support. By helping others i often also help myself.
    I find a lot of answers on this forum.

    Currently i am spending some time on image tuning and 3A functions, using Appro and TI 2A libraries,
    and trying to make additional functions, like : different color temperature tuning, TI 2A library doesn't have auto iris, auto focus ...

    I can not get any document that more detailed describes 3A output format of the H3A statistics output.

    There is a note in TI2A_UserGuide_DM36x.pdf :
    1.3 H3A AEW Engine Overview
    First, the 2A thread gets its input data from the AEW engine inside the H3A. Please refer to the
    NDA version of the TMS320DM36x DMSoC Video Processing Front End User's Guide for more
    details on H3A configuration and its data output format.

    I have already contacted our TI local  sales representative, but can not get that document, or any other with detailed description of
    3A output format.
    Can you please suggest is it possible to get  3A output format details.

    Regards,
    Marko

  • Marko,

    As I rebuilt the kernel and file system and flashed it to DMVA2IPNC-MT5, I cam across some error messages and the kernel doesn't load. I have set all the environment variables as described in the documents. But I couldn't figure out what is the problem. The boot messages are as follows:

    DM36x initialization passed!

    TI UBL Base Version: 1.50

    Boot Loader BootMode = NAND

    Starting NAND Copy...

    Valid magicnum, 0xA1ACED66, found in block 0x00000008.

    Boot Mode Task Completed

     

    IPNC UBL Version: 1.1.0

    Platform: DM368

     

    Reset RTC Fail..

     

    Jumping to entry point at 0x81080000

     

    U-Boot 1.3.4 (Dec  9 2010 - 17:44:14) DM368-IPNC-1.0.1

     

    I2C:   ready

    DRAM:  128 MB

    NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,

    3V 8-bit)

    Bad block table found at page 65472, version 0x01

    Bad block table found at page 65408, version 0x01

    128 MiB

    In:    serial

    Out:   serial

    Err:   serial

    ARM Clock :- 432MHz

    DDR Clock :- 340MHz

    Ethernet PHY: GENERIC @ 0x01

    Hit any key to stop autoboot:  0

     

    NAND read: device 0 offset 0x700000, size 0x1000000

     

    DM36x initialization passed!

    TI UBL Base Version: 1.50

    Boot Loader BootMode = NAND

    Starting NAND Copy...

    Valid magicnum, 0xA1ACED66, found in block 0x00000008.

    Boot Mode Task Completed

     

    IPNC UBL Version: 1.1.0

    Platform: DM368

     

    Reset RTC Fail..

     

    Jumping to entry point at 0x81080000

     

    U-Boot 1.3.4 (Dec  9 2010 - 17:44:14) DM368-IPNC-1.0.1

     

    I2C:   ready

    DRAM:  128 MB

    NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,

    3V 8-bit)

    Bad block table found at page 65472, version 0x01

    Bad block table found at page 65408, version 0x01

    128 MiB

    In:    serial

    Out:   serial

    Err:   serial

    ARM Clock :- 432MHz

    DDR Clock :- 340MHz

    Ethernet PHY: GENERIC @ 0x01

    Hit any key to stop autoboot:  0

    DM368 IPNC :>print

    bootdelay=4

    baudrate=115200

    bootfile="uImage"

    setboot=setenv bootargs $(bootargs)

    fileaddr=82000000

    ipaddr=10.2.1.5

    serverip=10.2.1.228

    filesize=102C000

    bootcmd=nand read 0x82000000 0x700000 0x1000000;nboot 0x80700000 0 0x500000;boot

    m 0x80700000

    ethaddr=00:0C:0C:A0:07:40

    bootargs=mem=48M console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0x82000000,15M

    eth=$(ethaddr)

    stdin=serial

    stdout=serial

    stderr=serial

    ver=U-Boot 1.3.4 (Dec  9 2010 - 17:44:14) DM368-IPNC-1.0.1

     

    Environment size: 467/131068 bytes

    DM368 IPNC :>setenv ip dhcp

    DM368 IPNC :>saveenv

    Saving Environment to NAND...

    Erasing Nand...

    Erasing at 0x240000 -- 100% complete.

    Writing to Nand... done

    DM368 IPNC :>reset

    DM36x initialization passed!

    TI UBL Base Version: 1.50

    Boot Loader BootMode = NAND

    Starting NAND Copy...

    Valid magicnum, 0xA1ACED66, found in block 0x00000008.

    Boot Mode Task Completed

     

    IPNC UBL Version: 1.1.0

    Platform: DM368

     

    Reset RTC Fail..

     

    Jumping to entry point at 0x81080000

     

    U-Boot 1.3.4 (Dec  9 2010 - 17:44:14) DM368-IPNC-1.0.1

     

    I2C:   ready

    DRAM:  128 MB

    NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,

    3V 8-bit)

    Bad block table found at page 65472, version 0x01

    Bad block table found at page 65408, version 0x01

    128 MiB

    In:    serial

    Out:   serial

    Err:   serial

    ARM Clock :- 432MHz

    DDR Clock :- 340MHz

    Ethernet PHY: GENERIC @ 0x01

    Hit any key to stop autoboot:  0

    DM368 IPNC :>print ip

    ip=dhcp

    DM368 IPNC :>reset

    DM36x initialization passed!

    TI UBL Base Version: 1.50

    Boot Loader BootMode = NAND

    Starting NAND Copy...

    Valid magicnum, 0xA1ACED66, found in block 0x00000008.

    Boot Mode Task Completed

     

    IPNC UBL Version: 1.1.0

    Platform: DM368

     

    Reset RTC Fail..

     

    Jumping to entry point at 0x81080000

     

    U-Boot 1.3.4 (Dec  9 2010 - 17:44:14) DM368-IPNC-1.0.1

     

    I2C:   ready

    DRAM:  128 MB

    NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,

    3V 8-bit)

    Bad block table found at page 65472, version 0x01

    Bad block table found at page 65408, version 0x01

    128 MiB

    In:    serial

    Out:   serial

    Err:   serial

    ARM Clock :- 432MHz

    DDR Clock :- 340MHz

    Ethernet PHY: GENERIC @ 0x01

    Hit any key to stop autoboot:  0

     

    NAND read: device 0 offset 0x700000, size 0x1000000

     16777216 bytes read: OK

     

    Loading from NAND 128MiB 3,3V 8-bit, offset 0x500000

       Image Name:   Linux-2.6.18_pro500-davinci_IPNC

       Image Type:   ARM Linux Kernel Image (uncompressed)

       Data Size:    1865160 Bytes =  1.8 MB

       Load Address: 80008000

       Entry Point:  80008000

    ## Booting kernel from Legacy Image at 80700000 ...

       Image Name:   Linux-2.6.18_pro500-davinci_IPNC

       Image Type:   ARM Linux Kernel Image (uncompressed)

       Data Size:    1865160 Bytes =  1.8 MB

       Load Address: 80008000

       Entry Point:  80008000

       Verifying Checksum ... OK

       Loading Kernel Image ... OK

    OK

     

    Starting kernel ...

     

    Linux version 2.6.18_pro500-davinci_IPNC_DM368_2.0.0 (root@umair-HP-Compaq-nc843

    0-RF591UC-ACF) (gcc version 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30))

     #1 PREEMPT Fri Apr 22 16:50:05 EDT 2011

    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177

    Machine: DaVinci DM368 IPNC

    Memory policy: ECC disabled, Data cache writeback

    DaVinci DM0365 variant 0x8

    PLL0: fixedrate: 24000000, commonrate: 170000000, vpssrate: 340000000

    PLL0: vencrate_sd: 75555555, ddrrate: 340000000 mmcsdrate: 48571428

    PLL1: armrate: 432000000, voicerate: 20571428, vencrate_hd: 27000000

    CPU0: D VIVT write-back cache

    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets

    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets

    Built 1 zonelists.  Total pages: 12288

    Kernel command line: mem=48M console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0x8

    2000000,15M eth=$(ethaddr)

    TI DaVinci EMAC: kernel boot params Ethernet address: $(ethaddr)

    PID hash table entries: 256 (order: 8, 1024 bytes)

    Clock event device timer0_0 configured with caps set: 07

    Console: colour dummy device 80x30

    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

    Memory: 48MB = 48MB total

    Memory: 29220KB available (3193K code, 653K data, 184K init)

    Security Framework v1.0.0 initialized

    Capability LSM initialized

    Mount-cache hash table entries: 512

    CPU: Testing write buffer coherency: ok

    checking if image is initramfs...it isn't (bad gzip magic numbers); looks like a

    n initrd

    Freeing initrd memory: 15360K

    NET: Registered protocol family 16

    DaVinci: 104 gpio irqs

    MUX: initialized GPIO20

    MUX: initialized I2C_SCL

    Generic PHY: Registered new driver

    ch0 default output "COMPOSITE", mode "NTSC"

    VPBE Encoder Initialized

    SCSI subsystem initialized

    NET: Registered protocol family 2

    IP route cache hash table entries: 512 (order: -1, 2048 bytes)

    TCP established hash table entries: 2048 (order: 1, 8192 bytes)

    TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

    TCP: Hash tables configured (established 2048 bind 1024)

    TCP reno registered

    VFS: Disk quotas dquot_6.5.1

    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

    squashfs: version 3.1 (2006/08/19) Phillip Lougher

    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.

    yaffs Apr 22 2011 16:47:31 Installing.

    SGI XFS with no debug enabled

    Initializing Cryptographic API

    io scheduler noop registered

    io scheduler anticipatory registered (default)

    LTT : ltt-facilities init

    LTT : ltt-facility-core init in kernel

    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec

    Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled

    serial8250.0: ttyS0 at MMIO map 0x1c20000 mem 0xfbc20000 (irq = 40) is a 16550A

    serial8250.0: ttyS1 at MMIO map 0x1d06000 mem 0xfbd06000 (irq = 41) is a 16550A

    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize

    Davinci EMAC MII Bus: probed

    MAC address is $(ethaddr)

    TI DaVinci EMAC Linux version updated 4.0

    netconsole: not configured, aborting

    Linux video capture interface: v2.00

    Trying to register davinci display video device.

    layer=c2ed5000,layer->video_dev=c2ed5160

    Trying to register davinci display video device.

    layer=c1338e00,layer->video_dev=c1338f60

    davinci_init:DaVinci V4L2 Display Driver V1.0 loaded

    i2c /dev entries driver

    nand_davinci nand_davinci.0: Using 4-bit hardware ECC

    NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bi

    t)

    Creating 6 MTD partitions on "nand_davinci.0":

    0x00000000-0x00300000 : "bootloader"

    0x00300000-0x00500000 : "params"

    0x00500000-0x00700000 : "kernel"

    0x00700000-0x01f00000 : "filesystem"

    0x01f00000-0x02100000 : "data1"

    0x02100000-0x08000000 : "data2"

    nand_davinci nand_davinci.0: hardware revision: 2.3

    musb_hdrc: version 6.0, cppi-dma, peripheral, debug=0

    musb_hdrc musb_hdrc: No DMA interrupt line

    musb_hdrc: USB Peripheral mode controller at c3866000 using DMA, IRQ 12

    rtc_davinci_dm365 rtc_davinci_dm365.0: rtc intf: proc

    rtc_davinci_dm365 rtc_davinci_dm365.0: rtc intf: dev (254:0)

    rtc_davinci_dm365 rtc_davinci_dm365.0: rtc core: registered rtc_davinci_dm365 as

     rtc0

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    davinci-mmc davinci-mmc.0: Supporting 4-bit mode

    davinci-mmc davinci-mmc.0: Using DMA mode

    Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50

    2006 UTC).

    ASoC version 0.13.1

    CQ0093 Voice Codec 0.1

    asoc: cq93vc <-> davinci-vcif mapping ok

    ALSA device list:

      #0: On-chip voice codec (cq93vc)

    IPv4 over IPv4 tunneling driver

    TCP bic registered

    NET: Registered protocol family 1

    NET: Registered protocol family 17

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    rtc wait time out !!!!!

    Time: timer0_1 clocksource has been installed.

    Clock event device timer0_0 configured with caps set: 08

    Switched to high resolution mode on CPU 0

    rtc_davinci_dm365 rtc_davinci_dm365.0: setting the system clock to 2000-09-14 01

    :01:01 (968893261)

    Sending DHCP and RARP requests .., OK

    IP-Config: Got DHCP answer from 143.205.64.31, my address is 143.205.116.248

    IP-Config: Complete:

          device=eth0, addr=143.205.116.248, mask=255.255.255.0, gw=143.205.116.1,

         host=143.205.116.248, domain=nes.uni-klu.ac.at, nis-domain=(none),

         bootserver=143.205.64.31, rootserver=143.205.64.31, rootpath=

    RAMDISK: cramfs filesystem found at block 0

    RAMDISK: Loading 16560KiB [1 disk] into ram disk... done.

    VFS: Mounted root (cramfs filesystem) readonly.

    Freeing init memory: 184K

    Warning: unable to open an initial console.

    Error -3 while decompressing!

    c03de3a8(-721392)->c1bfc000(4096)

    CSL: Module install successful, device major num = 253

    CSL: Module version 0.10.00, built on Apr 22 2011 16:51:55

    I2C: Module install successful, device major num = 252

    DMA: Module install successful, device major num = 251

    DRV: Module install successful

    DRV: Module built on Apr 22 2011 16:51:58

    DRV: EDMACC.QUEPRI  = 00000777

    DRV: SYSTEM.MSTPRI0 = 00550011

    DRV: SYSTEM.MSTPRI1 = 00000444

    DRV: ISP.BCR        = 00000002

    DRV: SYSTEM.MISC = 00000391

    CMEMK module: built on Apr 22 2011 at 16:51:33

      Reference Linux version 2.6.18

      File /home/umair/IPNetCam/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti/sdo/

    linuxutils/cmem/src/module/cmemk.c

    allocated heap buffer 0xc4000000 of size 0x5000000

    CMEM Range Overlaps Kernel Physical - allowing overlap

    CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)

    cmemk initialized

    EDMAK module: built on Apr 22 2011 at 16:51:35

      Reference Linux version 2.6.18

      File /home/umair/IPNetCam/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti/sdo/

    linuxutils/edma/src/module/edmak.c

    IRQK module: built on Apr 22 2011 at 16:51:36

      Reference Linux version 2.6.18

      File /home/umair/IPNetCam/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti/sdo/

    linuxutils/irq/src/module/irqk.c

    irqk initialized

    io scheduler deadline registered

    io scheduler cfq registered

     sbulla: unknown partition table

    Installing knfsd (copyright (C) 1996 okir@monad.swb.de).

    loop: loaded (max 8 devices)

    tun: Universal TUN/TAP device driver, 1.6

    tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>

    CSLIP: code copyright 1989 Regents of the University of California

    PPP generic driver version 2.4.2

    PPP Deflate Compression module registered

    Loading iSCSI transport class v1.1-646.<5>iscsi: registered transport (tcp)

    Error -3 while decompressing!

    c03deaac(-4197814)->c134a000(4096)

    Error -3 while decompressing!

    c03ddcf6(3152859)->c0cc0000(4096)

    ...................

    ...................

    The booting stops with these messages. 

    Regards,

  • One more thing to add. The UBL version that the current camera uses is 1.1.0 and the u-boot version is 1.3.4.  Since I am using the old appro's software, can it be the problem? Which appro's software should I use to support these versions of UBL and U-Boot?