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.

AISGen coff format support

I am currently working with a c6746 and using AISGen v1.13 tool.  It looks like this version only support COFF application file format.  My questions are:

1- The Aisgen documentation states that version 1.3 supports COFF and ELF formats. Where can I find this version?

2- What are the differences in using COFF or ELF formats? (we have used only COFF format in the past).

3- Is the cfg file from v1.13 compatible with v1.3?

Thanks

Cesar

  • Hi Cesar,


    2- What are the differences in using COFF or ELF formats? (we have used only COFF format in the past).

    Please go through below mentioned wiki to know the difference between COFF and ELF formats.
    processors.wiki.ti.com/.../A_Brief_History_of_TI_Object_File_Formats
  • Cesar,

    AISGen should be delivered as part of the PSP or MCSDK or other tool suite that you are running. These may all be matched with your version of CCS and the Code Generation Tools.

    Do you have a need to change these from what you are using today? If unsure, then perhaps Arvind's recommended reading will help you decide if it matters.

    Regards,
    RandyP
  • Cesar,

    ELF is just another binary object file format but more widely used these days than COFF, especially with Arm tool chains. The biggest difference I've noticed between using COFF and ELF is the use of assembly symbols. In COFF, if you define a global symbol in assembly language, you have to precede it with an underscore in order to see it within C code. This isn't needed with ELF.

    I grabbed the latest version of the bootloader users guide for the C6747 and downloaded plus installed the AIS tool. It is version 0.8.2.0 for ROM version D800K005. So I don't see version 1.3 but nor do I see any mention of version 1.3, at least not for the C6747.

    I then did the same thing but for the C6748, which is very similar but different silicon, and the latest it has is version 1.13, still not version 1.3. I did see in the C6748 bootloader users guide where it mentions version 1.3 and support for ELF.

    I was not able to locate version 1.3. We can probably do some more digging and get to the bottom the versions. Before doing that though, can I ask why you want to move to the latest version? Is the current version working ok? Do you have a requirement to move to ELF file format?

    Thanks,

    -Brad

  • Brad,

    I also have version 1.13 installed.  The main issue is that the tool only supports ELF format.  Traditionally, we have been using only COFF format and this is the first time that we try to use AISGen.  So I would like a version of the tool that also support COFF format for the app file and it looks according to the AISGen documentation that version V1.3 can do that.  This will avoid supporting both formats COFF and ELF for certain libraries that are used in different products.

    Thanks,

    Cesar

  • Ah, now I got you, that makes sense. I had assumed 1.13 supported COFF but not ELF. I had it backwards. Let me check internally then to see where we can get the 1.3 release. Stay tuned.

    Regards,

    -Brad

  • Cesar,

    Well, I check with our internal apps team and they tell me that the tools has always supported COFF and that ELF support was added as of v1.03. There is an error in the document in that it should read v1.03 rather than v1.3. I submitted feedback to the documentation folks.

    In looking at the readme.txt file, it talks about COFF and ELF support. I pasted ion the readme below for your reference. I'm curious now, what made you believe the 1.13 doesn't support COFF?

    README.TXT

    ================================================================================
     README.txt - AISgen GUI for d800k008/6/4/2 Bootloader

     April 12, 2012
    --------------------------------------------------------------------------------
    This file lists changes between versions of the AISgen GUI.  For information
    on how to use the GUI, please see the application reports on your device's
    webpage on www.ti.com.
    --------------------------------------------------------------------------------

    Changes in version 1.13
    Bug Fixes
    ---------
    -> Enabled duplication of DDR configuration in boot images to support mDDR with support for SRR commands.


    Changes in version 1.11

    Bug Fixes
    ---------
    -> Fixes multiple possible issues with ELF executable parsing.

    Enhancements
    ------------
    -> Renaming project, adding it to FlashAndBootUtils package.


    --------------------------------------------------------------------------------
    Changes in version 1.10

    Bug Fixes
    ---------
    -> Fixed an issue that could cause tabs to display incorrectly in certain
       circumstances.

    Enhancements
    ------------
    -> Added "(2x)" to the DDR clock label to make it more clear that this is the
       2X_CLK signal (i.e. PLL1_SYSCLK1), not the clock output by the DDR module.


    --------------------------------------------------------------------------------
    Changes in version 1.9

    Bug Fixes
    ---------
    -> Added a check to prevent users from enabling PSC1 module 8.  This module
       requires a forced transition that is not supported by the bootloader.

    Enhancements
    ------------
    -> Added support for d800k008 ROM bootloader.  Selected by default in
       "device type" drop down box.
    -> Added support for MMC/SD0 boot mode (d800k008 ROM only)


    --------------------------------------------------------------------------------
    Changes in version 1.8

    Bug Fixes
    ---------
    -> Corrected an issue that could prevent UART boot mode from working when PLL0
       was not configured


    --------------------------------------------------------------------------------
    Changes in version 1.7

    Bug Fixes
    ---------
    -> Corrected CFG file parsing issue that prevented PLL1 post divider settings
       from being applied.
    -> Set tab order of UI elements to be more intuitive

    Enhancements
    ------------
    -> PLL0 can now be configured to reach CPU speeds above 300 MHz.  Check
       your part's datasheet to see its maximum CPU frequency.  All other
       speed limits (ex. peripheral clocks) are unchanged.


    --------------------------------------------------------------------------------
    Changes in version 1.6

    Bug Fixes
    ---------
    -> Corrected issue with peripheral clocks when running the tool from
       the command line.

    Enhancements
    ------------
    -> Section load opcodes are now sorted from lowest to highest memory
       address (ex. section at 0x80000000 loaded before section at
       0x80000100).


    --------------------------------------------------------------------------------
    Changes in version 1.5

    Bug Fixes
    ---------
    -> Corrected issue with very large input files.
    -> The utility will no longer attempt to use peripheral clock dividers
       (or prescale dividers) that do not fit in the appropriate field.  For
       instance, the maximum UART clock divider is 65,535 (0xFFFF).

    Enhancements
    ------------
    -> Added support for d800k006 ROM bootloader.  Selected by default in
       "device type" drop down box.
    -> UART boot modes: the baud rate is now configurable in the Peripheral
       tab.  This allows UART boot to be used when the input clock is not
       24 MHz.  See the app note for information on the UART clock
       selection pins (not applicable to the d800k002 ROM).
    -> UART clock dividers must obtain an actual UART baud rate within 10%
       of the user-specified baud.  AIS generation will fail if a suitable
       divider can't be found.
    -> I2C and SPI master boot modes: the actual peripheral speed is now
       allowed to exceed the specified value in the special case that the
       peripheral clock divider is set to its maximum value and the clock
       is still faster than the specified value.  (This should only ever
       happen for very low speeds in I2C master boot modes.)


    --------------------------------------------------------------------------------
    Changes in version 1.4

    Bug Fixes
    ---------
    (none)

    Enhancements
    ------------
    -> Added support for d800k004 ROM bootloader.  Selected by default in
       "device type" drop down box.
    -> Added "no config" option under boot mode selection.  This option
       explicitly disabled peripheral clock configuration to produce a
       simpler AIS file.  Note: using this option with PLL configuration
       selected is dangerous and can cause your boot process to freeze.
    -> I2C and SPI master boot modes: the actual peripheral clock is now
       chosen to be as close as possible without exceeding the user-
       specified value.


    --------------------------------------------------------------------------------
    Changes in version 1.3

    Bug Fixes
    ---------
    -> Fixed miscellaneous issues with ELF file parsing
    -> Fixed issues when specifying an application entrypoint with various
       combinations of object and binary files.

    Enhancements
    ------------
    -> Application object files no longer need the extension .out to be
       recognized.  Also, files with the .out extension that don't contain
       valid COFF or ELF headers will be treated as binary files.


    --------------------------------------------------------------------------------
    Changes in version 1.2

    Bug Fixes
    ---------
    -> Fixed issue with binary input files (previously did not save entire
       contents of file to AIS)

    Enhancements
    ------------
    -> Added support for ELF files (in addition to COFF and simple binary)
    -> Added command line usage: AISgen_d800k002.exe -cfg="<CFG file name>"
       (uses CFG file previously generated using GUI)
    -> Added ability to configure mDDR via bootloader patch function
    -> Renamed "DDR2" tab to "DDR" and added DDR2/mDDR selection on that tab
    -> Added SDCR2 register to DDR tab


    --------------------------------------------------------------------------------
    Changes in version 1.1

    Bug Fixes
    ---------
    -> The SDRAM tab will now display the correct clock when PLL0 is left
       in bypass mode (it previously always assumed PLL0 was configured)
    -> Fixed an exception caused by saving SDRAM configuration to a CFG
       file (caused by format error in CFG file itself)

    Enhancements
    ------------
    -> Changed label text from "LPSC" to "PSC" and "Domain" to "LPSC" to be
       consistent with PSC documentation
    -> Disallowed creating AIS files when only binary files are given with
       no entrypoint
    -> Clarified some DDR and SDRAM register names:
         SDTIMR      -> SDTIMR1
         DDRPHYC1R   -> DRPYC1R
         SDBCR       -> SDCR
         SDRSRPDEXIT -> SDSRETR

    --------------------------------------------------------------------------------
    End of README.TXT

  • Brad

    Thanks for your help. I thought we had an error when we try to use it with a COFF file executable but we will verify this again.

    Regards

    Cesar