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-c6x and TMDSEVM6472

Hi

I have TMDSEVM6472. I am trying to install linux on the board in accordance with the Linux-c6x-2.0-GA User Guide. After successful firmware Bootloader, I should see in the terminal Bootloader startup process, but in the terminal, nothing appears. What else should I do?

Thank you


  • Hi Alexandr,

    Please ensure to have correct setup as per the ti wiki link below.

    http://processors.wiki.ti.com/index.php/TMDSEVM6472_EVM_Hardware_Setup

    http://processors.wiki.ti.com/index.php/BIOS_MCSDK_1.0_User_Guide#EVM_Booting

    I hope these links will help you to solve the issue.

    Thanks.

  • Hi Rajasekaran K,

    I try to run Linux on this board using LinuxC6xWiki and latest version LINUX-MCSDK 02_00_00_63. I set SW1, SW2, Sw3 and flashed bootloader (bootblob) in accordance with the linux-c6x-2.0.0.63-users-guide.pdf. After the command $DSS_SCRIPT_DIR/dss.sh program_evm.js evm6472l-le appears in the console reports of successful execution of this command . In this step , it seems to me , running minicom, you can see the start of the first loader and the kernel Linux, but nothing appears minicom . Thanks for the links , but linux-c6x-2.0.0.63-users-guide.pdf also contain the necessary information on configuring the card. Any help is appreciated .

    Thank you, Alexander

  • Hi Alexander,

    Could you please provide the log of the messages to check on our side? 

    Please refer the below threads which may help you.

    http://e2e.ti.com/support/embedded/linux/f/354/t/251761.aspx

    http://e2e.ti.com/support/embedded/linux/f/354/t/279221.aspx

    Thanks.

  • Hi, Alexandar,

    Do you have a XDS560 JTAG mezzanine card or on-board XDS100 USB JTAG? Please check the UART jumper setting per section 2.12 of C6472 TRM, https://www.einfochips.com/ti-tms320c6472-evm#ajx/evm6472-support.

    Rex

  • Just re-read your post. You are able to get something on the minicom. Make sure the HW Flow Control is off.

    Rex

  • Hi, thanks for your help

    1. I downloaded the linux-c6x-2.0.0.63-c64le-bin.tar.gz and in accordance with the linux-c6x-2.0.0.63-users-guide.pdf run the following command:
    tar xvzf linux-c6x-2.0.0.63-c64le-bin.tar.gz
    cd linux-c6x-2.0.0.63/product
    ./bootblob all
    cd ../program_evm
    export DSS_SCRIPT_DIR=/opt/ti/ccsv5/ccs_base_5.0.3.00028/scripting/bin
    $DSS_SCRIPT_DIR/dss.sh program_evm.js evm6472l-le

    Then received

    2C Bus address is = 80
    I2C writing has started
    Please be Patient
    I2C write complete, reading data
    I2C read complete, comparing data
    Data compare passed

    As I understand on this stage flash the bootloader. All SW exhibited in accordance with the link that you gave. Running minicom and restart board in minicom nothing appeared, with the green LED on the RJ45 connector flashes , but the board does not respond to the command ping.

    2 . I downloaded the linux-c6x-2.0.0.63-src.tar.gz, edited file setenv for board evmc6472, and edited evmc6472.mk (linux-c6x-project/kbuilds/) kernel boot options console = ttySI0, 115200 and have to use the file system NFS. To configure NFS on HOST edited file /etc/exports, adding the entry and permission, restart the NFS server. Compiled kernel Linux. As a result, in the folder linux-c6x/product appeared kernel vmlinux-2.6.34-evmc6472 ... bin. Checked by the command ./bootblob get-cmdline vmlinux-2.6.34-evmc6472 ... bin. Next launched CCSv5, do it connect, uploaded the file vmlinux-2.6.34-evmc6472 ... on board and start. In minicom display the boot process and mount the file system NFS. At this stage, everything is fine. Because the filesystem is on my HOST, I copied linux-c6x-2.0.0.63-c64le-bin/linux-c6x-2.0.0.63/product/evmc6472-initramfs-min.el-linux-c6x-2.0.0.63.bin (after executed 1) in the folder /root file system NFS. In minicom executed ls -l /root and saw that the file evmc6472-initramfs-min.el-linux-c6x-2.0.0.63.bin there. Next fulfilled
    flash_eraseall /dev/mtd2
    nandwrite -p /dev/mtd2 evmc6472-initramfs-min.el-linux-c6x-2.0.0.63.bin
    The flash was successful. After power-on reset does not boot Linux.

    Compilation of the Linux kernel and boot via jtag made ​​to execute commands
    flash_eraseall /dev/mtd2
    nandwrite -p /dev/mtd2 evmc6472-initramfs-min.el-linux-c6x-2.0.0.63.bin
    as indirect access to the board is not found.

    How to flash Linux and perform in Nand start of Nand? Thanks for any help .

    Alexander

  • Add

    I use on-board XDS100 USB JTAG. UART jumper setting 3-5, 4-6. In minicom the HW Flow Control is off.

    Alexander

  • Alexander,

    Thanks for the detailed description of what was done. The steps seem ok to me except I don't see you export PROGRAM_EVM_TARGET_CONFIG_FILE. If you didn't export it, try it, and at the mean time, I'll see what I get.

    Rex

  • Rex,

    By default used the file linux-c6x-2.0.0.63/program_evm/configs/evm6472l/evm6472l-linuxhost.ccxml. When $DSS_SCRIPT_DIR/dss.sh program_evm.js evm6472l-le I had problems with this file. But then I created a new configuration c6472.ccxml, connect to the board, loaded a small project and run it. All went well. Then I took the source code file c6472.ccxml and copied in linux-c6x-2.0.0.63/program_evm/configs/evm6472l/evm6472l-linuxhost.ccxml. Command $DSS_SCRIPT_DIR/dss.sh program_evm.js evm6472l-le executed successfully. I tried to do as you suggest.
    export DSS_SCRIPT_DIR=/home/stolyarov/ti/ccsv5/ccs_base/scripting/bin
    export PROGRAM_EVM_TARGET_CONFIG_FILE = /home/stolyarov/ti/CCSTargetConfigurations/c6472.ccxml
    $DSS_SCRIPT_DIR/dss.sh program_evm.js evm6472l-le

    All went well.

    2C Bus address is = 80
    I2C writing has started
    Please be Patient
    I2C write complete, reading data
    I2C read complete, comparing data
    Data compare passed

    Next I performed the operation from my previous post, but the result is still the same .

    Alexander

  • Rex,

    I need help because my work is stopped

    Alexander

  • Sorry, Alexander, head is spinning these days. I got the resource the other day to try it briefly. I noticed that in the User's Guide, it says "For C64x devices, program_evm does not support writing to NAND flash." Could you follow the steps in Steps to update NAND content? During my process, I noticed that as the steps is using TFTP boot first, IBL expects certain IP address for server and file name for the file to download. They are defined in ibl/src/util/iblConfig/src/device.c. The serverip is 192.168.1.2 and file is c6472-le.bin. I have not gone down that path yet. You can give it a try. The other way I thought of is to bring up the kernel using CCS and the console will be in CCS. Then type in commands to do nandwrite to burn images.

    Rex

  • At the moment I have the following:

    1. In the folder /linux-c6x-2.0.0.63/linux-c6x-project executed command
    ./prj config
    received file
    /linux-c6x-2.0.0.63/linux-c6x-project/setenv

    2. Edited file /linux-c6x-2.0.0.63/linux-c6x-project/setenv
    export KERNELS_TO_BUILD="evmc6472"
    export BUILD_BOOTLOADERS=yes
    export CGT_BIOS_DIR=/home/stolyarov/ti/ccsv5/tools/compiler/c6000_7.4.4
    export CGT_LINUX_DIR=/home/stolyarov/ti/ccsv5/tools/compiler/c6000_7.4.4

    3. Executed commands
    source setenv
    ./prj config

    4. Edited file /linux-c6x-2.0.0.63/linux-c6x-project/kbuilds/evmc6472.mk
    changed CMDLINE
    CMDLINE = console=ttySI0,115200 ip=dhcp root=/dev/nfs nfsroot=192.168.255.11:/home/stolyarov/linux-c6x/src/linux-c6x-2.0.0.63/product/min-root-c6x,nolock rw mem=32M,earlyprintk rootdelay=20

    5. Edited file /linux-c6x-2.0.0.63/projects/ibl/src/util/iblConfig/src/device.c
    changed
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.ipAddr,    192,168,255,42);
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.serverIp,  192,168,255,11);
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.gatewayIp, 192,168,255,1);
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.netmask,   255,255,255,0);

    6. Edited file /linux-c6x-2.0.0.63/projects/ibl/src/util/i2cConfig/i2cConfig.gel
    changed
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.ipAddr,    192,168,255,42);
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.serverIp,  192,168,255,11);
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.gatewayIp, 192,168,255,1);
    SETIP(ibl.bootModes[0].u.ethBoot.ethInfo.netmask,   255,255,255,0);

    6. Compiled kernel
    ./prj build
    received two files
    /linux-c6x-2.0.0.63/product/vmlinux-2.6.34-evmc6472.el-dev-stolyarov-20131226.bin
    /linux-c6x-2.0.0.63/product/min-root-c6x.cpio.gz

    7. In the folder /linux-c6x-2.0.0.63/program_evm executed commands
    export DSS_SCRIPT_DIR=/home/stolyarov/ti/ccsv5/ccs_base/scripting/bin
    export PROGRAM_EVM_TARGET_CONFIG_FILE=/home/stolyarov/ti/CCSTargetConfigurations/c6472.ccxml
    $DSS_SCRIPT_DIR/dss.sh program_evm.js evm6472l-le

    The operation was successful:

    I2C Bus address is = 80
    I2C writing has started
    Please be Patient
    I2C write complete, reading data
    I2C read complete, comparing data
    Data compare passed

    8. Joined the board in CCSv5
    loaded file /linux-c6x-2.0.0.63/Build/ibl-evmc6472.el/src/make/bin/i2cparam_0x50_c6472_le_0x500.out
    pressed Run
    loaded file /linux-c6x-2.0.0.63/Build/ibl-evmc6472.el/src/util/i2cConfig/i2cConfig.gel
    Menu CCSv5->Scripts->EVM c6472 IBL->setConfig_c6472
    Window CCSv5 console pressed Enter

    The operation was successful:

    I2c table write complete

    Look: http://linux-c6x.org/wiki/index.php/Little_Endian_C6472

    9. In the folder /linux-c6x-2.0.0.63/product make directory min-root-c6x and copied it min-root-c6x.cpio.gz.
    executed commands
    sudo gunzip min-root-c6x.cpio.gz
    sudo cpio -idmv < min-root-c6x.cpio
    sudo chown nobody:nogroup -R min-root-c6x/

    10. Set up nfs server (/home/stolyarov/linux-c6x/src/linux-c6x-2.0.0.63/product/min-root-c6x)

    11. Set up tftp server (/home/stolyarov/tftpboot)

    12. Copied the kernel vmlinux-2.6.34-evmc6472.el-dev-stolyarov-20131226.bin in tftpboot folder and renamed it c6472-le.bin

    13. Open minicom. Reset board and in the minicom went kernel boot, then the NFS file system. Finally got access to a command line board.

    14. In minicom executed command
    cat /proc/mtd
    received
    dev:    size   erasesize  name
    mtd0: 38441000 00001000 "ROMfs"
    mtd1: 00200000 00020000 "bootloader"
    mtd2: 01000000 00020000 "kernel"
    mtd3: 06e00000 00020000 "filesystem"

    15. In minicom executed commands
    cd /var/local
    tftp -g -r vmlinux-2.6.34-evmc6472.el-dev-stolyarov-20131226.bin 192.168.255.11
    flash_eraseall /dev/mtd2
    nandwrite -p /dev/mtd2 vmlinux-2.6.34-evmc6472.el-dev-stolyarov-20131226.bin

    16. SW1 pin 1 switches between TFTP boot mode and NAND boot mode.
    For TFTP boot mode SW1 pin 1 should be OFF
    For NAND boot mode SW1 pin 1 should be ON
    Set up SW1 pin 1 for NAND boot mode. In minicom nothing appears.

    My i2cConfig.gel file 6278.i2cConfig.gel

    Any help is appreciated

    Alexander

  • Hi, Alexander,

    In step 15, you flashed a kernel image, could you try flash the initframfs image as shown in the user's guide instead? It should have created in step 6.

    nandwrite -p /dev/mtd2 evmc6472-initramfs-min.el-linux-c6x-2.0.0.63.bin

    Rex

  • Hi, Rex

    I flashed evmc6472-initramfs-min.el-linux-c6x-2.0.0.63.bin, but it did not help.  In minicom nothing appears. Though loading Linux from the tftp server is successful. I think the problem is loading procedure the kernel with nand memory. In my i2cConfig.gel support for booting from Nand memory included.

    Alexander.