• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C6000 Multicore DSP » Keystone Multicore Forum (C66, 66A, AM5) » EABI Format Decoding for Bootloading
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Training Available
TI provides self-paced online training that introduces the primary components of the KeyStone II family of SoC devices.

  • KeyStone II SoC Overview >
  • KeyStone II Software Overview >
  • KeyStone II ARM Cortex-A15 Corepac Overview >
  • More Information >
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      OpenMP - All aboard!

      Posted 15 hours ago
      by Debbie Greenstreet
      With so many end products today relying on multicore DSPs for...
    • $core_v2_blog.Current.Name

      A look back: Two years of Multicore Mix

      Posted 1 day ago
      by Lauren Reed1
      A big thank you to everyone who participated in our contest last...
    • $core_v2_blog.Current.Name

      It’s our second anniversary, but you get the present!

      Posted 8 days ago
      by Lindsey Bare
      It’s hard to believe it’s already been two years...

    Forums

    EABI Format Decoding for Bootloading

    This question is answered
    Erick Higa
    Posted by Erick Higa
    on Apr 09 2012 22:49 PM
    Intellectual820 points

    I was wondering if there was a document/utility or if I could get some get some help decoding the EABI file format for bootloading.  I've used the hex6x utility to successfully make a boot file, however, I'm in the process of making a secondary bootloader to load out of a large I2C device (3/4 byte addressing), and the one issue I currently have are the sections of code we need to prefill w/ 0x00.

    I've used the ofd6x utility to successfully create a xml file, however I'm having an issue trying to find where the pre-fill values are.  Is there a document out there that describes the xml output (like the http://www.ti.com/lit/an/spraa64/spraa64.pdf for COFF files), for the EABI output?

    C6000 boot elf
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Alberto Chessa
      Posted by Alberto Chessa
      on Apr 10 2012 01:20 AM
      Verified Answer
      Verified by Erick Higa
      Genius3740 points

      Hi,

      The EABI produce and ELF file. IBL support ELF boot from NAND and NOR.  In mcsdk_2_00_01_12\tools\boot_loader\ibl You can find the source code to decode the ELF file and launch it. It seems it support dynamic relocation. If You don't use it, the parsing caould be simpler.

      To work on the .out files I'm using the IBL source code and ELF specification from http://refspecs.linuxbase.org/elf/elf.pdf.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • ArunMani
      Posted by ArunMani
      on Apr 10 2012 09:26 AM
      Genius9510 points

      For generating the secondary bootloaders we have certain utilities. You can use the I2C boot examples for reference. C:\mcsdk2_0_7\mcsdk_2_00_07_19\tools\boot_loader\examples\i2c.

      Unfortunately, we don't have any document explaining the utilities yet.

      Please let me know if you have any issues decoding the examples.

      Thanks,

      Arun.

      If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Erick Higa
      Posted by Erick Higa
      on Apr 10 2012 17:09 PM
      Intellectual820 points

      Thanks for that link Alberto, that's exactly what I was looking for.

      Arun,

      I have looked at those bootloader examples, however we need to do a bunch of different initializations and are booting from a custom device (via I2c) so we're using a custom secondary boot (that was derived from a previous version we did for the 6474).

      One thing I was wondering about though was how does the primary bootloader configure uninitialized sections?  There are some libraries we are using that require uninitialized sections to be set to 0, but am not sure how the bootloader handles them.  

      According to the Assembly language tools document (spru186v) the hex6x utility to create boot tables will not include uninitialized sections (11.5).  We need some of these sections to be loaded by the primary bootloader (which will load into DDR3, setup by configuration tables).  Is there a different utility or a way to get hex6x to initialize these sections to 0?  Or can you tell me how the primary bootloader (built into the processor) handles these sections?

      Erick

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Alberto Chessa
      Posted by Alberto Chessa
      on Apr 11 2012 03:29 AM
      Verified Answer
      Verified by Erick Higa
      Genius3740 points

      Hi,

      The boot tables should include your .cinit  section that contains the instruction to initialize the initialized (by copy) and uninitialized data (by zero fill) -- see linker map file.

      This section in then processed by the the c_int00() initialization function (the default program entry point). The program must be build with the ROM autoinitialization model.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use