Forums

Using RR DM365 SDK while waiting for the Leopard Board DM365 SDK

  • Hello,

    Everything is in the title: while waiting for the Leopard Board SDK for DM365 (from Ridgerun), can I use the DM365 chip SDK to program my board. What are the differences? What should I take care of?

     

    Thanks,

    Mike

  • Hi Mike,

    Well, I'm not sure if the mach IDs are the same for both boards, so not sure if the kernel would boot.

    Audio will not work at all, nor the camera. Video output will likely work.

    Diego

  • Hey so do you know what can I use?

    TI's DVSDK?

  • You could use TI's DVSDK. The preloaded u-boot has the same machine ID as the DM365 EVM.

  • Hi,

    I got the davinci-kernel-git version 2.6.33 running with the leopard board by selecting the dm365 evm.

    Unfortunately the network chip is not recognized.

    Has anyone the new leopard board running with ethernet?

    Cheers,

    Sebastian

  • Hi,

    now I have all I needed - with the linux kernel 2.6.32 from TI's dm365evm PSP. Network, video-in and video-out are all working!

    focus.ti.com/.../linuxdvsdk-dv.html

    Cheers,

    Sebastian

  •  

    That's great.  Can you write something on everything you had to do to adapt the TI dm356evm PSP?

    Thanks,

    Chris

     

  • Hey Sebastian!

    I would be very interested too in getting to know how you did to install the Kernel with Gstreamer (I suppose if you have video)! What did you change to have the Ethernet?

    Thanks,

    MIke

  • Hi Mike, Chris,

    I downloaded the PSP Linux Kernel Source from the link in my last post. You will need to register at TI's homepage to get the DVSDK 3.10 for the DM365EVM. The Leopardboard is pretty the same board as the EVM from TI. Some parts are missing, like the S-Video decoder. But you can disable the TVP51xx in the kernel.

    I am using NFS to boot my Linux FS (arago-demo-image-dm365-evm.tar.gz).For the networkcard the right network adapter/PHY has to be enabled:

    #
    # MII PHY device drivers
    #
    # CONFIG_MARVELL_PHY is not set
    # CONFIG_DAVICOM_PHY is not set
    # CONFIG_QSEMI_PHY is not set
    CONFIG_LXT_PHY=y
    # CONFIG_CICADA_PHY is not set
    # CONFIG_VITESSE_PHY is not set
    # CONFIG_SMSC_PHY is not set
    # CONFIG_BROADCOM_PHY is not set
    # CONFIG_ICPLUS_PHY is not set
    # CONFIG_REALTEK_PHY is not set
    # CONFIG_NATIONAL_PHY is not set
    # CONFIG_STE10XP is not set
    CONFIG_LSI_ET1011C_PHY=y
    # CONFIG_FIXED_PHY is not set
    # CONFIG_MDIO_BITBANG is not set
    CONFIG_NET_ETHERNET=y
    # CONFIG_MII is not set
    # CONFIG_AX88796 is not set
    # CONFIG_SMC91X is not set
    CONFIG_TI_DAVINCI_EMAC=y
    # CONFIG_DM9000 is not set
    # CONFIG_ETHOC is not set
    # CONFIG_SMC911X is not set
    # CONFIG_SMSC911X is not set
    # CONFIG_DNET is not set
    # CONFIG_IBM_NEW_EMAC_ZMII is not set
    # CONFIG_IBM_NEW_EMAC_RGMII is not set
    # CONFIG_IBM_NEW_EMAC_TAH is not set
    # CONFIG_IBM_NEW_EMAC_EMAC4 is not set
    # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
    # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
    # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
    # CONFIG_B44 is not set
    # CONFIG_KS8842 is not set
    # CONFIG_NETDEV_1000 is not set
    # CONFIG_NETDEV_10000 is not set
    # CONFIG_WLAN is not set

    I have included my kernel .config file to my TI forum profile http://e2e.ti.com/members/1347615/default.aspx

    Please tell me if you can access the file.

    I must also say that I am not using the framebuffer/v4l device but my own VPFE/VPBE module, but I see no reason why video should not work with the EVM-Kernel and the leopardboard.

    Good luck!

    Sebastian

  • I was able to access your config file and the board boots now.

    Do you know if the encode and decode examples are supposed to work on the Leopard board or is the hardware just too different? I tried them but it fails to initialize UI

  • Hi Fisu,

    nice to hear that you got the kernel working with my configuration file!

    I also tried the example applications from TI, but I got several V4L error messages, too. A problem with the Leopard Board and the LSP (IPIPE/VENC/ driver) is, that the Leopard board doesn't have all the hardware the EVM has. Each hardware component, like the TVP5146 or the MUXER between the video decoders and the IPIPE, is implemented either inside the main driver or it is implemented as a separate module, which registers itself inside the V4L framework.

    If you want the LSP to work with the Leopard Board, you will have to check the board initiation at /linux/arch/arm/mach-davinci/ for attachable hardware (like TVP5146) and you will have to write your own V4L modules to set up the V4L framework. Writing your own V4L2 modules sounds harder than it is, because you can use the modules from the LSP and modify them.

    Before I switched to making my own kernel modules, i wrote a V4L module which enables digital 720P output to the Leopards DVI transmitter. I will put the source to my TI forum files. You can see there that it's a modified version of one of the existing video-encoder modules of the LSP. Please read the README - you will have to change some code in the LSP, which in my opinion is an error in the LSP.

    But in order to understand how the whole framework works I fear that you will have to work your way through the LSP drivers located at linux/drivers/media/video/davinci/* (OSD, VENC, ISIF), linux/drivers/char/dm365_ipipe* (IPIPE char driver, if you want to use IPIPE) and most important /linux/arch/arm/mach-davinci/* (board initiation, I2C stuff, ...).

    For my own kernel module I have excluded all V4L stuff and I am just using the IPIPE character module and the hardware-access OSD/VENC/VPSS functions from davinci_osd.c, davinci_venc.c, vpss.c. If you also want to do it my way you must be fit in Linux kernel programming, which can be a cool thing :-)

    Anyway, if you just want to work with the V4L modules, you still need to check the board initiation at /linux/arch/arm/mach-davinci/ for attachable hardware (like TVP5146), which are registered here already. And second you will have to make your own V4L devices which provide all needed V4L parameter.

    Cheers and good luck,
    Sebastian

  • Sebastian, I was very interested to see your posts here.  I have been playing with gst-rtsp-server on a DM365 EVM using the TI DVSDK and TI Gstreamer.  I was hoping to use the same NFS boot on the DM365 Leopard board and it does boot fine.  I have full network access, etc.  However when I try to use a ./loadmodules.sh I get an error message about disagreeing versions of cmemk and the other memory modules as if the kernels are mismatched.

    If I ignore the error and try ./test-launch "( v4l2src always-copy=FALSE ! TIVidenc1 codecName=mpeg4enc engineName=encode contiguousInputFrame=TRUE ! rtpmp4vpay pt=96 name=pay0 )"

    I get an error indicating that /dev/video0 cannot be accessed.

    Any ideas?

    Thanks,

    Josh

  • Hi Josh,

    I don't know how far I can help you here. I am not working with gstreamer, but I can tell you the /dev/video0 device is the video output (VPBE) of the DaVinci. When the error is indicating that it cannot access the device its probably not there thus not compiled in the kernel. Have a look at your kernel configuration and check if all chips are selected regarding the VPBE.

    Not all modules of the LSP need all chips of the EVM being present, but a lot of modules need all chip-modules being selected and compiled. I am talking especially about the THS73xx and THS8200 regarding VPBE and the TVP5146 and TVP7002 for the VPFE.

    The best source for all needed selections is the evm configuration file included in the kernel tree (arch/arm/config ...).

    Cheers

    Sebastian

  • Thanks Sebastian!  I was able to overcome the ./loadmodules.sh error my changing the memory location of the TFTP boot cmd.

    I will have to review the modules that are enabled in the EVM settings, but I think that they are all being loaded by default since I am using the EVM configuration.  I had hoped that the hardware I was using on the leopard was close enough to what I was using on the EVM that the differences would be minor.

    Thanks for your help.

  • Thanks for your response Sebastian.

    Since I'm new to kernel programming I have to ask if this is the best way to test the kernel changes:

    First execute "make kernel"

    Then reboot the board and use tftp to load the kernel and boot it from memory?