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 abort() in write i2c for c6472 EVM in CCS5.1

Dear All,

I am working though the linux-c6x installation on a c6472 EVM, using the pre-built binaries in little-end. Following this fantastic wiki:

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

The whole process is well-laid out and executes as expected. However, the final-step (after loading the i2c data and before configuring the GEL files) seems to complete, but suspends on the error:

Console:

[C64XP_A] I2C write complete, reading data
[C64XP_A] I2C read complete, comparing data
[C64XP_A] Data compare passed

Error:

No source available for "abort() at 0x847320"

This jump-out does not leave any variables for modification by the i2cConfig.gel file (with the menu option for c6472) - hence, the final steps of the boot configuration fail.

I am using the Beta2 binaries from  http://linux-c6x.org/files/releases/linux-c6x-2.0-beta2/

Running CCS5.1 on Ubuntu Linux 11.10. I am assuming it has something to do with the memory write in the i2cWrite.out. Thanks in advance for your time,

Cheers!

  • I use window and CCS 5.0.3 to program the Beta2 IBL. The console screen shows Data compare passed, but the debug screen has a tag tittled abort() at /...../exit.c:;67 0x847320 with text content saying

    Can't find a source file at "/......././exit.c"
    Locate the file or edit the source lookup path to include its location.

    The error message you get should be fine. Could you proceed and use the released GEL file (i2cConfig.gel) to initialize the EVM and complete the flashing? Does the board comes up through TFTP boot? Please note what IP address and file name are used in i2cConfig.gel for TFTP download.

  • Thanks Rex for your reply,

    >> The error message you get should be fine. Could you proceed and use the released GEL file (i2cConfig.gel) to initialize the EVM and complete the flashing?

    Unfortunatly this doesn't seem to be the case. When running the (ip-updated with IP information) i2cConfig.gel file after jumping-out on the abort() call, the variables editor in CCS is empty. If I proceed anyhow and run the GEL file, the console output is:

    C64XP_A: GEL Output: PLL1 has been configured.
    C64XP_A: GEL Output: PLL2 has been configured.
    C64XP_A: GEL Output: PLL3 has been configured.
    C64XP_A: 2: GEL StartUp Complete (Primary Core).
    C64XP_A: GEL Output: Turn off cache segment
    C64XP_A: GEL Output: Disable EDMA events
    setConfig_c6472() cannot be evaluated.
    identifier not found: ibl

    With the same error-log: No source available for "abort() at 0x847320"

    Hence - the GEL file does not #include or source the ibl structure, simply edits the variable. As the jump-out seems to have cleaned the variable space, the error is expected.

    >> Does the board comes up through TFTP boot?

    I can check this through a direct flash in CCS and get it to look on a network server, however the NAND boot is what I'm after - ie, stand-alone operation.

    I will attempt the same process in a Windows machine, and report on any differences.

    Cheers!

  • Hi, Jon,

    To get to NAND boot, you'll need first burn IBL for TFTP boot. I want to be sure that we are in sync on the steps after the EEPROM writer is executed. Steps following "Data compare passed" console message are:

    1. load program of i2cparam_0x50_c6472_le_0x500.out and execute it

    2. Click Tools -> GEL FIle. Then in GEL File window, right click -> load GEL and select i2cConfig.gel from beta 2 package

    3. Double click i2cConfig.gel just loaded in, you will be able to edit the GEL file. Modify the IP, server IP addresses and file name as desired in setConfig_c6472(). Don't forget to right click and SAVE the changes.

    4. Click Scripts -> EVMc6472 IBL -> setConfig_c6472.

    5. Go to console window and hit return to finish the programming of i2c

    6. set the dip switch to i2c boot mode and TFTP.

    Once the board is up, do the following to get NAND boot

    1. flash_eraseall /dev/mtd2

    2. nandwrite -p /dev /mtd2 vmlinux-c64xx.bin

    3. set the dip switch to NAND boot

    Were you doing the same steps?