Hi Rahul,
Thanks to your explaination on http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/288354/1006025.aspx#1006025, which helped me a lot to make progress.
But the boot progress have problems now. I would have missed something. And I eagerly need your help.
QUESTION 1, My RBL VERSION?
. My chip is TMS320C6670CYP,from the http://www.ti.com/product/tms320c6670 , it is say this Part# is OBSOLETE,
so, the Urgent problem is to make clear the ROM Bootloader version of this OBSOLETE chip TMS320C6670CYP . Because i found the parameter variable name of your example nysh.spi.map is different from the C6670 PG1.0 Bootloader.( http://software-dl.ti.com/sdoemb/sdoemb_public_sw/rbl/1_0_C6670/index_FDS.html
Please send the corresponding version RBL source code to my email: denghengmin@126.com
for example, you can see the Different below,which means,the nysh.spi.map didnt matche the ROM parameter, or the C6670 PG1.0 Bootloader is not the vertion of the TMS320C6670CYP RBL.
//////////////////////////////////////////////////////////////////////////////////////////////
the nysh.spi.map boot parameter struct is :
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
}
the C6670 PG1.0 Bootloader tiboot.h is:
--------------------------------------------------------------
typedef struct boot_params_spi_s
{
/* common portion of the Boot parameters */
UINT16 length;
UINT16 checksum;
UINT16 boot_mode;
UINT16 portNum;
UINT16 swPllCfg_msw; /* CPU PLL configuration, MSW */
UINT16 swPllCfg_lsw; /* CPU PLL configuration, LSW */
UINT16 options;
UINT16 addrWidth; /* 16 or 24 are the only valid values */
UINT16 nPins; /* 4 or 5 pins are the only valid values */
UINT16 csel; /* only values 0b10 (cs0 low) or 0b01 (cs1 low) are valid */
UINT16 mode; /* Clock phase/polarity. These are the standard SPI modes 0-3 */
UINT16 c2tdelay; /* Setup time between chip select assert and the transaction */
UINT16 cpuFreqMhz; /* Speed the CPU is running after PLL configuration */
UINT16 busFreqMhz; /* The speed of the SPI bus, the megahertz portion */
UINT16 busFreqKhz; /* The KHz portion of the bus frequency. A frequency of 1.5 MHz would have the value 5 here */
UINT16 read_addr_msw; /* The base address to read from the SPI, upper 16 bits */
UINT16 read_addr_lsw; /* The base address to read from the SPI, lower 16 bits */
UINT16 next_csel; /* The next chip select to use if in boot config mode, when the config is complete */
UINT16 next_read_addr_msw; /* The next read address to use if in boot config mode */
UINT16 next_read_addr_lsw; /* The next read address to use if in boot config mode */
} BOOT_PARAMS_SPI_T;
//////////////////////////////////////////////////////////////////////////////////
[QUESTION 2] NEW romparse utilities available?
You explained here the romparse is not available to append the boot config table, is there any new update?
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/288354/1006025.aspx#1006025
"As the boot loader user guide suggests, the romparse utility was created to append boot parameter table and boot configuration table to the boot table. However in the current form the romparse is only used to append boot parameter tables. For DDR configurations you will need to create a pragma DATA_Section in your main function that places the DDR configuration table in the DDR config memory space. The boot loader copies this DDR configuration table when it loads the application binary and when it notices the change in the DDR configuration memory section it will proceed to initialize DDR before loading the DDR sections of your application binary.This is demonstrated in the .bat file included in the example attached."
[QUESTION 3] How to Config the DDR specified for 6670?
(Your example is not for 6670, and no documentation to refer to.)
The question is how to construct the DATA_Section , because I found the const BOOT_EMIF4_TBL_T emif4Cfg={} does NOT match the Bootloaser User guide(SPRUGY5B.pdf)
but unfortunately, SPRUGY5C.pdf totally cut this part, even if it claimed it is moved to the data manual ,but NOTHING updated to the 6670 data manual
Other users also rise this quesion:
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/288354/1006025.aspx#1006025 (see the last reply)
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/288236.aspx(see the last reply)
So ,which is the right DDR config struct?
Thanks a lot !
Frank