Part Number: TMS320C6674
Tool/software: TI-RTOS
Hello,
I am running into a problem with the way that L1D cache is disabled through a RTSC platform (accessed in CCS via Project -> RTSC Tools -> Platform -> Edit/View). I have an intermediate bootloader executing on core 0 that loads a SYS/BIOS application onto core 2. This SYS/BIOS application has initialized variables that are located in L1D memory. When I step through the execution of _c_int00() on core 2, I find that _auto_init_elf() is executed before the cache settings in the RTSC platform are applied. Therefore, the variables that are located in L1D memory are initialized, but then they are later being overwritten because the L1D memory is still being used as cache. It really seems like the cache settings in the RTSC platform should be applied before _auto_init_elf() is executed!
So the immediate problem that I have is the fact that these initialized variables in L1D memory are being "corrupted." I am looking for an easy workaround for this problem. Some questions that I have are:
- Is there any way to change the L1DCFG register of another core from my intermediate bootloader that is executing on core 0?
- Is there any way that I can "hook" into the very beginning of the _c_int00() code of my SYS/BIOS application to manually set the L1DCFG register before _auto_init_elf() is executed?
I can't imagine that I'm the first person to run into this problem, but I didn't find anything relevant by searching the forums. Thanks in advance for your attention to this problem. Have a good day!
Best regards,
Dave
