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.

TMDSEVM6657: C6657 IBL boot using SPI nor flash only (no I2C prom)

Part Number: TMDSEVM6657

We have our own custom board which includes a C6657 DSP connected to SPI nor flash for booting. No I2C eeprom is exist.

Our main application is very large and needs the DDR for running. In other words I would like to configure the DDR before loading my main application into it.

Becuase of that I would like to use the IBL concept.

1) As I understand, I have to write into the flash two applications, one is the iblMain (after some modification) and the second is my main application.

the iblMain will configure the Main PLL, DDR PLL, Emif4, DDR, SPI Interface and so on and then will load my main application from flash. Am I right?

2) I have looked on the IBL directory within the MCSDK and succeded to build both iblInit and iblMain.

- What is the relation between iblInit and iblMain? they are two seperate application? how they are connected?
- If I'm doing the configuration of the ibl structure inside iblMain in order to configure all the stuff mentioned in (1) I'm not needs the iblInit, true?

Thanks

Eyal

  • Hi,

    I assume you use the old MCSDK, right? Not the latest Processor SDK RTOS. In this case:

    1) Yes, your understanding is correct. you need the ibl to configure the Main PLL, DDR PLL, Emif4, DDR, SPI and load your app.

    2). Here is the explanation of the relationship between iblinit & iblmain:
    e2e.ti.com/.../394802
    it is a two stage bootloader. You need both iblinit & iblmain.

    Best Regards,
    Yordan
  • Hi Yordan,
    We are working with CCS9. for the IBL we are using mcsdk_2_01_02_06 not the latest Processor SDK RTOS becuase we had many problems when trying to buildthe IBL in other SDK versions.
    Our custom board does not include FPGA or I2C Prom. The boot of the C6657 should be done using the SPI nor flash only.
    Regrding the IblInit and IblMain:
    1) Are both applications iblInit and IblMain should be write to the flash beside my own application? how the sequence of the boot is done in this case? who load what and how?
    2) Is it possible to make only *one* loader application based on iblMain (that includes ibl structure which its initialization is done Internally by code) this loader application will configure the PLL, DDR, EMIF and SPI and then (like iblMain is doing) load my main application ELF ?
  • Hi,

    1) Yes, both should be written in the nor flash using nor writer (located in <your_pdk_version>/packages/ti/boot/writer/nor). More info can be found here:
    processors.wiki.ti.com/.../BIOS_MCSDK_2.0_User_Guide

    2) This should be possible, but this is a custom application for which TI does not have an example and you will have limited support.

    Best Regards,
    Yordan
  • Hi Yordan, Thanks

    1) If both iblInit and iblMain should be written in the nor, I assume that iblInit should be loaded first, Am I right?
    2) If the answer to (1) is yes, lets assume that iblInit will be written to address 0 of the nor flash, where on the flash I have to put the iblMain application?
    3) How iblInit knows from where to load the iblMain app? how this mechanism works?

    Thanks
    Eyal
  • Hi,

    Sorry, I just realized that your board might not be supported by the RTOS (MCSDK) as is.
    The PRocessor SDK RTOS (and MCSDK) are designed to support the TI reference EVM. Here the boot process is explained:
    software-dl.ti.com/.../index_Foundational_Components.html

    Check these discussions for direct SPI boot:
    e2e.ti.com/.../269305
    e2e.ti.com/.../115298

    Best Regards,
    Yordan
  • Hi Yordan,

    Sorry for not mentioned it before, I know how to boot my application from the SPI NOR flash using the *RBL* mechanism.
    when using RBL there is a mechanism using a structure in L2 memory for configuring the PLL and DDR - this is working.
    But, I want to use the RBL mechanism to do so, and not using RBL.
  • Hi,

    As I said the IBL is not design for such use. It is meant to work with the reference EVMs which have I2C EEPROM & FPGA.

    Best Regards,
    Yordan
  • Hi Yordan,

    Sorry for not mentioned it before, I know how to boot my application from the SPI NOR flash using the *RBL* mechanism.
    when using RBL there is a mechanism using a structure in L2 memory for configuring the PLL and DDR - this is working.
    But, I want to use the *IBL* mechanism to do so, and not using RBL.
  • 1) But if I'm doing some modification in the IBL source code (removing transaction via SPI CS1 to the FPGA and so on) its should be working, no?
    2) In the EVM iblInit is located in the I2C prom and iblMain is located in the SPI, isThis the concept?
    3) I would like that both of iblInit and iblMain will be located in the nor, is this possible? The iblInit will be the first image that loads, configure the PLL and then load the iblMain that will load my main application. and If is the concept why I cant put iblInit and iblMain in one application?
  • Hi,

    1). It should, yes.
    2). As far as I know the IBL is locate din the EEPROM see: software-dl.ti.com/.../index_Foundational_Components.html (Section 4.6.3.4.2. Flashing the Bootloader: IBL needs to be flashed into EEPROM address 0x51), and your app is located in spi nor.
    3). This should work. However I've not tested it (not sure it has been tested, since the RTOS bring up was done on the reference EVMs).

    Best Regards,
    Yordan