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.

6638K2k SPI boot problem

TI experts,

I had faced a lot of problems when i  worked on the c6670 SPI boot, because the bad documentation of TI.

But, thanks to your help,   I got to know how to apend the parameter table , DDR config table, and how to use the utilities. I have suceesfully boot the C6670 SPI boot. I got progress all from your step to step reply to me on E2E forum, but not from the datasheet or related documents. Because there is not any, or, even if there are some information, but unfortunately, they are mostly not correct. That is toooooo bad.

Nightmare here comes again. I am working on the 6638K2K SPI boot now.

---------------------------------

Now I am trying the same SPI boot on 6638K2K dsp corepac boot.  Unluckly, still unsuccessful.

Questions:

1. First ,the parameter table: Is the 6638 parameter structure the same with C6670?

On C6670, we apend the parameter table use the utility and scripts below.

hex6x -order L spi.rmd core0.out

Is it the same to 6638? The hw environment is the same.

Is there any new "hex6x" specified to 6638?

how to config the .rmd file?

(You will found there is not any parameter table information on C6670 datasheet(bad documentaion) , I got progress from an example project here, on E2E forum,from an E2E engineer. There is a parameter table structure on C6638K2k datasheet ,but we are sure ,in most cases,it is not correct(because of bad documentaion). So i cant refer to it, I can only refer your boot example parameter table structure.) Plz send the spi boot example to me.

2. Is the 6638  Boot ROM same with 6670?

if not ,where is the source code?

3. Is the 6638 DDR config table structure the same with C6670? How to append the DDR config table to the .bin image file.

Thanks in advance!

  • Hi Frank,

    Thank you for your feedback on the documentation and we apologize for the issues that you had to face to get the bootloader working on your platform and hope that we can provide you better support with keystone 2 devices. 

    Keystone devices are primarily designed to be ARM master boot devices though on K2K/ K2H devices, DSP corepac boot is still supported to support compatibility with earlier devices. DSP master boot is same as that provided in KeystoneI devices. For Keystone 2 devices, we supply a Keystone2 boot examples package in which we have SPI, NAND, I2C, Etherent single stage and 2 stage examples with/without DDR configuration.

     

    I would recommend that you take a look at that package and let use know if this helps you understand the boot parameter table and the DDR configuration table. SPecifically for boot parameter table and DDR cofniguration table, you can refer to the contents of the directory examples\k2h\cfg.

    DSP boot master code for SPI boot is same as C667x devices. We don`t publish the source for BootROM for Keystone2 devices as there is TI sensitive information associated with the source.

    Regards,

    Rahul

  • Hi Rahul,

    Thank you! You are always so helpful!
    I am studying the wiki page you provided.

    I will give you feedback later.

    Best regards,
    Frank
  • Hi Rahul,

    1.I have compared with the parameter table structure between 6670 and 6638,  they are different.

    We have to use romparse to apend the paremeter table, since the parameter table is different with 6670.Currently i only have the romparse utility specified for 6670. where can I get the romparse utility for 6638?

    2. In 6670 we generate the bin file as below, is it the same procedure for 6638?Please confirm!

    3. Is the utilities same with 6670? such as Hex6x, b2i2c b2ccs, and etc. Please confirm!

    4. I found there is only .dat file in the bootloader example, but I need .bin file, how to get it?!

    ()

    -----------------------------------------------------------------------

    runscript.bat

    ..\utilities\hex6x -order L ..\utilities\boot_script.rmd bootcode.out

    ..\utilities\b2i2c boot_code.btbl boot_code.btbl.i2c

    ..\utilities\b2ccs boot_code.btbl.i2c boot_code.btbl.i2c.ccs

    ..\utilities\romparse ..\utilities\spi.map --------->(details as below, in case parameter structure is different ,the romparse shoule update,where?)

    ren i2crom.ccs spirom.ccs

    copy spirom.ccs spirom_le.dat

    echo generate the dat file from spirom_dat.ccs

    ..\utilities\byteswapccs spirom.ccs spirom_le.swap.dat

    echo generate 2 bin files from spirom.ccs

    ..\utilities\ccs2bin   spirom.ccs     spirom_le.bin

    ..\utilities\ccs2bin -swap spirom.ccs spirom_le.swap.bin

    -----------------------------------------------

    bootscript.rmd

    -a

    -boot

    -e _c_int00

    ROMS

    {

    ROM1:  org = 0x800000, memwidth = 32, romwidth = 32

    files = { boot_code.btbl }

    }

    --------------------------------------------------------

    spi.map -------------->(in case parameter table the romparse should update, the parameter name shoule update too, how to invoke? give a example please!)

    section {

    param_index    = 0

    boot_mode      = 50

    sw_pll_prediv = 1  

    sw_pll_mult = 20

    sw_pll_postdiv = 2

    sw_pll_flags = 1

    options = 1

    core_freq_mhz = 1000

    next_dev_addr_ext = 0x0

    c2t_delay = 0

    bus_freq_mhz = 20

    bus_freq_khz = 0

    addr_width = 24

    n_pins = 4

    mode = 1

    csel = 0

    exe_file = "boot_code.btbl.i2c.ccs"

    }

    Thanks!