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.

Linux/TMS320DM368: DM36x IPNC Application Porting on DM36xEVM

Part Number: TMS320DM368

Tool/software: Linux

Hello, 

We have Spectrum DM368 EVM & IPNC RDK v 5.1.0. 

We want to port the IPNC application on the EVM. In the IPNC user guide document, we have seen that IPNC RDK can be built for evm by changing the rules.make file.

We have also checked av_server application. In this application, some gpios are used  for alarms, SD Card Detect, SD Card Protect. But in DM36x EVM same Gpios are used for different purposes.

We have following queries

1. Is it possible to run the same applicaiton on DM36x EVM or need to update the application? If update required, then what changes will be required?

2. Can we boot the EVM using SD Card? If yes, then what changes required?

Regards

Uma Shanker

  • Hi,
    1. Is it possible to run the same applicaiton on DM36x EVM or need to update the application? If update required, then what changes will be required?
    IPNC application is designed to capture and stream from the camera. On EVM do you have the camera connected? You need enable your camera driver for EVM (few mux configs is what you need to change). You can disable the features like SD detection GIO, Alarm etc for your initial setup.


    1. Is it possible to run the same applicaiton on DM36x EVM or need to update the application? If update required, then what changes will be required?
    Yes, you can boot the EVM using IPNC_RDK kernel. For that you need to change your make files to have MMC driver as inbuilt in kernel In IPNC software mmc driver is initialized after bootfrom NAND. In additional to this, you need to check MMC0 vs MMC1. I roughly remember that MMC0 vs MMC1 conflicts on EVM vs IPNC hardware. Please make sure that you have enabled right MMC configurations in your driver. Last but not the least, you need to update your bootargs :)
  • Hi,

    Yes IPNC appication can be run on EVM (at least capture , encode , stream ), There is platform check if platform is EVM , none of the gpio's are used to get the status if it is EVM,
    i.e for EVM assumption are always SD card is inserted and always DHCP enabled , which are decided based on GPIO status in IPNC (internal external switches).

    Regards,
    Anuj
    Pathpartner Technology Pvt Ltd.
  • Hello Ravikiran ,

    Thanks for your response.

    In IPNC RDK, for file system two options are available:
    1. NFS
    2. UBIFS

    We have following query.
    1. If we have built the IPNC RDK with NFS file system and we want to use SD Card for booting. In this case, any change is required in the file system. If update required, then what changes will be required?

    Thanks & Regards
    Uma Shanker
  • Hi,

    There is no change required in the filesystem for NFS boot vs SD boot. However  all points mentioned in last post need to be addressed. 

  • Hello,

    We are  porting the IPNC applicaiton on DM36x EVM. We are using SD Card for Booting.

     Booting stops at following location without any error:-

       EXT2-fs (mmcblk0p2): warning: mounting unchecked fs, running e2fsck is recommended

       VFS: Mounted root (ext2 filesystem) on device 179:2.

       Freeing init memory: 148K

    Our boot argument is as following:-

    mem=48M console=ttyS0,115200n8 noinitrd root=/dev/mmcblk0p2 rootwait ip=off cmemk.phys_start=0x83000000 cmemk.phys_end=0x88000000 cmemk.phys_start_1=0x00001000 cmemk.phys_end_1=0x00008000 cmemk.pools_1=1x28672 cmemk.allowOverlap=1 cmemk.useHeapIfPoolUnavailable=1

    Boot logs file is attached.

    dm36xevm_logs.txt
    DM36x initialization passed!
    TI UBL Version: 1.50
    Booting Catalog Boot Loader
    BootMode = SD/MMC 
    Starting SDMMC Copy...
       DONE
    Jumping to entry point at 0x81080000.
    
    
    U-Boot 2010.12-rc2 (Mar 24 2011 - 16:49:26)
    
    Cores: ARM 432 MHz
    DDR:   340 MHz
    I2C:   ready
    DRAM:  128 MiB
    NAND:  2048 MiB
    MMC:   davinci: 0, davinci: 1
    Bad block table found at page 524224, version 0x01
    Bad block table found at page 1048512, version 0x01
    Bad block table found at page 524160, version 0x01
    Bad block table found at page 1048448, version 0x01
    nand_read_bbt: Bad block at 0x000003f80000
    nand_read_bbt: Bad block at 0x00000a9a0000
    nand_read_bbt: Bad block at 0x00000c100000
    nand_read_bbt: Bad block at 0x0000355a0000
    nand_read_bbt: Bad block at 0x00003d660000
    nand_read_bbt: Bad block at 0x000040400000
    nand_read_bbt: Bad block at 0x000045aa0000
    nand_read_bbt: Bad block at 0x00004cda0000
    nand_read_bbt: Bad block at 0x00004ffe0000
    nand_read_bbt: Bad block at 0x000051e00000
    nand_read_bbt: Bad block at 0x00005bd60000
    nand_read_bbt: Bad block at 0x000064640000
    nand_read_bbt: Bad block at 0x0000668a0000
    nand_read_bbt: Bad block at 0x000066ba0000
    nand_read_bbt: Bad block at 0x000070e60000
    nand_read_bbt: Bad block at 0x0000738c0000
    nand_read_bbt: Bad block at 0x000074a60000
    nand_read_bbt: Bad block at 0x00007dd00000
    Net:   Ethernet PHY: GENERIC @ 0x00
    DaVinci-EMAC
    Hit any key to stop autoboot:  0 
    DM36x EVM # 
    DM36x EVM # 
    DM36x EVM # 
    DM36x EVM # 
    DM36x EVM # 
    DM36x EVM # setenv bootargs 'mem=48M console=ttyS0,115200n8 noinitrd root=/dev/mmcblk0p2 rootwait ip=off cmemk.phys_start=0x83000000 cmemk.phys_end=0x8800000
    0 cmemk.phys_start_1=0x00001000 cmemk.phys_end_1=0x00008000 cmemk.pools_1=1x28672 cmemk.allowOverlap=1 cmemk.useHeapIfPoolUnavailable=1'
    DM36x EVM # 
    DM36x EVM # 
    DM36x EVM # 
    DM36x EVM # boot
    reading uImage
    
    4920352 bytes read
    ## Booting kernel from Legacy Image at 80700000 ...
       Image Name:   Linux-2.6.37_IPNC_DM365EVM_5.1.0
       Created:      2017-03-29  10:07:00 UTC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4920288 Bytes = 4.7 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK
    
    Starting kernel ...
    
    Linux version 2.6.37_IPNC_DM365EVM_5.1.0 (root@spectross-laptop) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #3 PREEMPT Wed Mar 29 15:36:59 IST 2017
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: DaVinci DM36x EVM
    Memory policy: ECC disabled, Data cache writeback
    DaVinci dm36x_rev1.2 variant 0x8
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 12192
    Kernel command line: mem=48M console=ttyS0,115200n8 noinitrd root=/dev/mmcblk0p2 rootwait ip=off cmemk.phys_start=0x83000000 cmemk.phys_end=0x88000000 cmemk.
    phys_start_1=0x00001000 cmemk.phys_end_1=0x00008000 cmemk.pools_1=1x28672 cmemk.allowOverlap=1 cmemk.useHeapIfPoolUnavailable=1
    PID hash table entries: 256 (order: -2, 1024 bytes)
    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: 43668k/43668k available, 5484k reserved, 0K highmem
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        DMA     : 0xff000000 - 0xffe00000   (  14 MB)
        vmalloc : 0xc3800000 - 0xfea00000   ( 946 MB)
        lowmem  : 0xc0000000 - 0xc3000000   (  48 MB)
        modules : 0xbf000000 - 0xc0000000   (  16 MB)
          .init : 0xc0008000 - 0xc002d000   ( 148 kB)
          .text : 0xc002d000 - 0xc0488000   (4460 kB)
          .data : 0xc0488000 - 0xc04b93e0   ( 197 kB)
    SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    Preemptable hierarchical RCU implementation.
            RCU-based detection of stalled CPUs is disabled.
            Verbose stalled-CPUs detection is disabled.
    NR_IRQS:245
    Console: colour dummy device 80x30
    Calibrating delay loop... 215.44 BogoMIPS (lpj=1077248)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    DaVinci: 8 gpio irqs
    NET: Registered protocol family 16
    EVM: HD imager video input
    bio: create slab <bio-0> at 0
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    vpss vpss: dm365_vpss vpss probed
    vpss vpss: dm365_vpss vpss probe success
    Advanced Linux Sound Architecture Driver Version 1.0.23.
    cfg80211: Calling CRDA to update world regulatory domain
    Switching to clocksource timer0_1
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    TCP reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
    JFFS2 version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.
    msgmni has been set to 85
    io scheduler noop registered (default)
    CSL: Module install successful, device major num = 254 
    CSL: Module version 0.10.00, built on Mar 29 2017 12:08:09 
    I2C: Module install successful, device major num = 253 
    DMA: Module install successful, device major num = 252 
    EVM: switch to tvp5146 SD video input
    DRV: Sensor interface selected on DM365 EVM
    DRV: Module install successful
    DRV: Module built on Mar 29 2017 12:08:10 
    DRV: EDMACC.QUEPRI  = 00002777
    DRV: SYSTEM.MSTPRI0 = 00440011
    DRV: SYSTEM.MSTPRI1 = 00000444
    DRV: ISP.BCR        = 00000002
    DRV: SYSTEM.MISC    = 00000399
    EDMAK module: built on Mar 29 2017 at 12:08:00
      Reference Linux version 2.6.37
      File /media/59707d8b-08b0-46ea-9588-2978df3e4c87/IPNC_/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
    IRQK module: built on Mar 29 2017 at 11:46:58
      Reference Linux version 2.6.37
      File /media/59707d8b-08b0-46ea-9588-2978df3e4c87/IPNC_/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
    irqk initialized
    CMEMK module: built on Mar 29 2017 at 12:07:59
      Reference Linux version 2.6.37
      File /media/59707d8b-08b0-46ea-9588-2978df3e4c87/IPNC_/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    allocated heap buffer 0xc4000000 of size 0x5000000
    heap fallback enabled - will try heap if pool buffer is not available
    CMEM Range Overlaps Kernel Physical - allowing overlap
    CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
    cmemk initialized
    Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
    console [ttyS0] enabled
    serial8250 serial8250.0: unable to register port at index 1 (IO0 MEM1d06000 IRQ41): -22
    brd: module loaded
    at24 1-0050: 32768 byte 24c256 EEPROM (writable)
    Read MAC addr from EEPROM: 00:0e:99:03:50:a1
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron )
    2 NAND chips detected
    Creating 5 MTD partitions on "davinci_nand.0":
    0x000000000000-0x000000f00000 : "bootloader"
    0x000000f00000-0x000001000000 : "params"
    0x000001000000-0x000001400000 : "kernel"
    0x000001400000-0x000021400000 : "filesystem1"
    0x000021400000-0x000080000000 : "filesystem2"
    davinci_nand davinci_nand.0: controller rev. 2.3
    spi_davinci spi_davinci.0: Controller at 0xfec66000
    davinci_mdio davinci_mdio.0: davinci mdio revision 1.4
    davinci_mdio davinci_mdio.0: detected phy mask fffffffc
    davinci_mdio.0: probed
    davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver unknown
    davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
    console [netcon0] enabled
    netconsole: network logging started
    mice: PS/2 mouse device common for all mice
    input: TSC2004 Touchscreen as /devices/virtual/input/input0
    dm365evm_keys: probe of 1-0025 failed with error -16
    i2c /dev entries driver
    Linux media interface: v0.10
    lirc_dev: IR Remote Control driver registered, major 246 
    IR NEC protocol handler initialized
    IR RC5(x) protocol handler initialized
    IR RC6 protocol handler initialized
    IR JVC protocol handler initialized
    IR Sony protocol handler initialized
    IR RC5 (streamzap) protocol handler initialized
    IR LIRC bridge handler initialized
    Linux video capture interface: v2.00
    vpbe-osd vpbe-osd: OSD sub device probe success
    vpbe-venc vpbe-venc: VENC sub device probe success
    vpbe-v4l2 vpbe-v4l2: vpbe v4l2 device registered
    ths7303 1-002c: chip found @ 0x58 (DaVinci I2C adapter)
    write byte data failed
    vpbe-v4l2 vpbe-v4l2: v4l2 sub device ths7303 registered
    Setting default output to Composite
    Setting default mode to ntsc
    vpbe-v4l2 vpbe-v4l2: Trying to register VPBE display device.
    vpbe-v4l2 vpbe-v4l2: layer=c29c6000,layer->video_dev=c29c60f4
    vpbe-v4l2 vpbe-v4l2: Trying to register VPBE display device.
    vpbe-v4l2 vpbe-v4l2: layer=c29c6200,layer->video_dev=c29c62f4
    watchdog watchdog: heartbeat 60 sec
    davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    asoc: tlv320aic3x-hifi <-> davinci-mcbsp mapping ok
    ALSA device list:
      #0: DaVinci DM365 EVM
    TCP cubic registered
    NET: Registered protocol family 17
    lib80211: common routines for IEEE802.11 drivers
    Waiting for root device /dev/mmcblk0p2...
    mmc0: new SDHC card at address e624
    mmcblk0: mmc0:e624 SD08G 7.40 GiB 
     mmcblk0: p1 p2
    EXT2-fs (mmcblk0p2): warning: mounting unchecked fs, running e2fsck is recommended
    VFS: Mounted root (ext2 filesystem) on device 179:2.
    Freeing init memory: 148K
    
    

    Please look into this.

    Thanks & Regards,

    Uma Shanker

  • Hello Umashankar,

    • Did you enable the MMC driver as inbuilt driver. ? IPNC software by default build MMC as  module and hence you can't boot from MMC directly without this change.
    • MMC interface used on IPNC and EVM are different. In the sense IPNC uses MMC0 while EVM uses other MMC slot. Please check you have enabled correct MMC port in the software and SD card is inserted to right slot. 

    Please have a look at this Wiki Page.

    Thanks