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.
Tool/software: Code Composer Studio
TI engineer:
Hello!
6678EVM spi boot The official routine has been successful. I have encountered several problems in the reference parameter configuration when referring to the provided parameters. I have already marked it in red. Please answer it.
The purpose is to make the parameter configuration understand, so that we can quickly configure the load startup parameters when we use 6678 to make own version.
1. The Boot Parameter parameter file is located in i2crom.ccs. The related parameters are as follows:
0x 0050 0000 //length: What is the basis for the length of 80 bytes? &checksum:0
0x 0032 0000 //SPI bootmode: 50&portnum:0
0x 4013 0002 //swPllCfg_msw&/swPllCfg_lsw,see PLL Configuration table,cpu :100*19/2=950, check the manual 100M input, 1000M output PLLD should be 0, PLLM should be 19, how to explain?
0x 0001 0018 //options:1&addrWidth:24
0x 0004 0000 //npin:4&chipsel:0
0x 0001 0000 //mode:1&c2Delay
0x 03e8 0000 //cupFreqMhz: 1000MHZ&busFreqMhz:0
0x 01f4 0000 //bhsFreqKhz:500K bus rate&readaddrMsw:0
0x 0400 0000 //read address is 0x00000400, which is 1Kbytes place &next_csel
0x 0000 0000 //next_Read _addr_msw&next_Read _addr_lsw
2. The DDR configuration parameter is located in AddDDrTable. The relevant parameters are as follows:
0x 00 00 00 70 //4 bytes per parameter, 28 parameters, 112 bytes, so that the interpretation is correct?
0x 00 87 35 00 // DDR table start address
0x 02 42 80 F5 //config select: the basis for not finding the parameter?
0x 00 00 00 00 //pll Prediv:0 prediv 0 is disable the pll, can the board be assigned 0 afterwards?
0x 00 00 00 1C //pll Mul: 28
0x 00 00 00 02 //pll post div: 2 DDR input clock is 66.7MHz, 66.7*28/2=933.8, and DDR clock is 1333, not quite right
0x 63 06 2A 32 //sdram config
0x 00 00 00 00 //sdram config2 are all configured as 0?
0x 00 00 14 50 //sdram fresh cntrl, provided in DDR register calc is 0x 00 00 14 58?
0x 11 13 78 3C //sdram timing1
0x 30 71 7F E3 //sdram timing2
0x 55 9F 86 AF //sdram timing3
0x 00 00 00 00 //lpDdrNvmTiming
0x 00 00 00 00 // powerManageCtl
0x 00 00 00 00 //iODFTTestLogic
0x 00 01 00 00 //perform count config, can not find the parameter basis
0x 00 00 00 00 //performCountMstRegSel
0x 00 00 00 00 //readIdleCtl
0x 00 00 00 00 //sysVbusmIntEnSet
0x 70 07 32 14 //sdRamOutImpdedCalCfg, can not find the parameter basis
0x 00 00 00 00 //tempAlterCfg
0x 00 10 01 0F // ddrPhyCtl1, can not find the parameter basis
0x 00 00 00 00 //ddrPhyCtl2; are all coordination 0?
0x 00 00 00 00 //priClassSvceMap;
0x 00 00 00 00 //mstId2ClsSvce1Map;
0x 00 00 00 00 //mstId2ClsSvce2Map;
0x 10 00 00 00 //eccCtl,, can not find the parameter basis
0x 00 00 00 00 //eccRange1;
0x 00 00 00 00 //eccRange2;
0x 00 00 03 05 //rdWrtExcThresh, no parameter basis found
1. The Boot Parameter parameter file is located in i2crom.ccs. The related parameters are as follows:
0x 0050 0000 //length: What is the basis for the length of 80 bytes? &checksum:0
0x 0032 0000 //SPI bootmode: 50&portnum:0
0x 4013 0002 //swPllCfg_msw&/swPllCfg_lsw,see PLL Configuration table,cpu :100*19/2=950, check the manual 100M input, 1000M output PLLD should be 0, PLLM should be 19, how to explain?
0x 0001 0018 //options:1&addrWidth:24
0x 0004 0000 //npin:4&chipsel:0
0x 0001 0000 //mode:1&c2Delay
0x 03e8 0000 //cupFreqMhz: 1000MHZ&busFreqMhz:0
0x 01f4 0000 //bhsFreqKhz:500K bus rate&readaddrMsw:0
0x 0400 0000 //read address is 0x00000400, which is 1Kbytes place &next_csel
0x 0000 0000 //next_Read _addr_msw&next_Read _addr_lsw
section {
boot_mode = 50
param_index = 0
options = 1
core_freq_mhz = 1000
exe_file = "spiboot.i2c.ccs"
next_dev_addr_ext = 0x0
sw_pll_prediv = 5
sw_pll_mult = 32
sw_pll_postdiv = 2
sw_pll_flags = 1
addr_width = 24
n_pins = 4
csel = 0
mode = 0
c2t_delay = 0
bus_freq_mhz = 0
bus_freq_khz = 500
}
Please refer the map file in the example provided,
processors.wiki.ti.com/.../File:C6678_directROM_boot_examples.zip
Also note, the DDR configuration table for C6678 doesn`t contain DDR levelling configuration and the DDR initialization sequence has changed slightly since the last revision of the RBL so it is recommended that you run the DDR at lower speeds while initializing it from the RBL and then speed it up from the application initialization code.
Please refer this thread for DDR init,
[C6678, SPI Boot] Confirming RBL behavior to configure EMIF I/F and MAIN/DDR PLL - Processors forum ...
Thank you.
You provided sw_pll_prediv = 5、sw_pll_mult = 32、sw_pll_postdiv = 2 in .map file. Input clock 100MHZ, calculate the system clock according to the parameter is 100/5*32/2=320MHZ, is this calculated correctly? Why should I configure it like this, I understand that it is configured to 1000MHZ, is it suitable for less than the maximum support frequency?
DDR initialization table performance does not need to be configured? To initialize DDR in the program? In this way, data cannot be moved from FLASHB to DDR at boot time, and can only be moved to other memory modules. After the program is run and DDR is initialized, DDR can be used. Is this correct?