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.

TMS320c6678 IBL boot

 

I have noticed that there is a difference between SPRUG5 and SPRUG5A .

What are the correct addresses for the Boot Parameter Tables and other variables used during the booting ?

Can I have a copy of the ROM source code?

Tommy

 

 

 

  • Tommy,

    The updated version (SPRUG5A) has the correct addresses, several corrections and clarifications where done to the Boot Loader UG.

    We do not provide the source of our internal BootROM.  If you're referring to the IBL source, I believe it's provided on the Wiki page w/ the IBL.  I'll ask a colleague to confirm.

    Best Regards,

    Chad

  • As of now we don't have a copy of BootROM that we can distribute publicly. We are in the process to do so, but I don't have a time line yet. If you are looking for iBL source, you can get from MCSDK release.

     

    Thanks,

    Arun.

  • What is the value of the baseaddress for table 2-2 in SPRGUG5A ?

    I am using the 6678 i SPI boot  mode.

    How many bytes are read from the SPI-memory in the first step after power-on reset ?

    This is the first part of my PROM-file created with hex6x.exe :

    0x00500000
    0x00320000
    0x00000000
    0x00010018
    0x00050002
    0x00010000
    0x03200001
    0x00000000
    0x08000000
    0x00000000
    0x00000000
    0x00000000
    0x00000000
    0x00000000
    0x00000000
    0x00000000
    0x00000000
    0x00000000
    0x00000000

    I already have the MCSDK-IBL src code.

     

    Tommy

     

     

     

     

  •  

    At what step is the ibl_MAGIC_VALUE  0xCEC11EBC inserted into the prom file ?

    I noticed that it is present at address 0x0500 in \\factory_images\eeprom51.bin

    Tommy

     

     

     

     

     

  • Hi Tommy,

    The magic value is configured in the ibl source code which is loaded in to the EEPROM 0x51 address. please check iblmain.c file. Also for the byte offsets of various sections of boot rom please check the new version of the bootloader UG. it is available on the product page.

     

    Thanks,

    Arun.


  • “The magic value is configured in the ibl source code which is loaded in to the EEPROM 0x51 address. please check iblmain.c file"

    That is not true.

    The status structure .iblMagic  is set to  ibl_MAGIC_VALUE in main ( that is a RAM stored structure)

    void main (void)
    {

        int32        bootDevice;
        uint32       entry;
        void         (*exit)();

        BOOT_MODULE_FXN_TABLE *bFxnTbl;

        /* Initialize the status structure */
        iblMemset (&iblStatus, 0, sizeof(iblStatus_t));
        iblStatus.iblMagic   = ibl_MAGIC_VALUE;
        iblStatus.iblVersion = ibl_VERSION;


     but that is not the same data that is read from the SPI memory ( at address configaddr)  in iblinitspinor.c


    BOOT_MODULE_FXN_TABLE *iblInitSpiNor (void)
    {
        iblBootMap_t  map;
        spiConfig_t   cfg;
        uint32        configAddr;

        bool          littleEndian;
        uint16        v;
    ...
    ..
    ....

                if (ibl.iblMagic == ibl_MAGIC_VALUE)
                    break;
                if (swap32val (ibl.iblMagic) == ibl_MAGIC_VALUE)  {
                    iblSwap ();
                    break;
                }

    I don not have any EEPROM on my board.

    Please show me what line of c-code writes the  ibl_MAGIC_VALUE into the EEPROM

  • Hi Tommy,

    The eeprom image is nothing but the IBL.out file converted into eeprom imnage and loaded as we boot the EVM in i2c boot mode. I am not sure what you are looking. Can you please explain what you are trying to do?

     

    Thanks,

    Arun.

  •  

    My boot program never gets out of the loop at line 241 in iblinitspinor.c because there is no ibl_MAGIC_VALUE in my SPI prom data.

    The boot users guide SPRUGY5 does not give inough  information.

     

     

     

     

     

  • Tommy,

    This is ibl and the doc you are referring is ONLY for ROM boot loader. So you will not get any info on that. You should have something on the Doc folder in the IBL. What are you trying to do here.

     

    Thanks,

    Arun.

  • Hi Tommy,

     To clarify your earlier queries on the IBL Magic value/configuration data in the EEPROM image.

    1. IBL Magic value is a part of its configuration data structure. On startup IBL checks this magic value to ensure the validity of the configuration read from EEPROM.

    2. How the configuration is updated in EEPROM image?

     - upto and including BIOS-MCSDK release 2.0.3, the EEPROM image produced by IBL build doesn't contain the configuration data. The built image has zero padded configuration data. The configuration data is directly updated on the EEPROM as a second step. This procedure is mentioned as step #2 in doc/evmc6678_instructions.txt. The factory EEPROM image, which you mentioned having the configuration data is nothing but a dump of a functional EEPROM, which was updated using the 2-step process. So it is not an image generated by the IBL build process.

    - Starting from BIOS-MCSDK release 2.0.4, there are some updates to this procedure. You will find a new directory sr/util/iblConfig which has a host executable program (compiled for executing on host) used for updating the IBL configuration data into an EEPROM image produced by the IBL build. You can still use the earlier method of updating the IBL configuration directly on the EEPROM, but this is another (probably easier) way of doing it on the host.

    Regards

    Sandeep