Other Parts Discussed in Thread: SYSBIOS
Hello guys !
I can succesfully use DSP projects with BIOS or without BIOS when booting it with a help of 560v2 emulator. I am also able to boot my specific DSP project without BIOS and without any code optimizations over PCIe with a help of linux host bootloader, which is in \ti\mcsdk_2_01_02_06\tools\boot_loader\examples\pcie\linux_host_loader folder. I didn't modify the process of pushing DSP code from host side. When I don't have BIOS in my project and don't use any code optimizations for speed all the sections fit well inside LL2 memory and project is succesfully booted over PCIe and works in the way I expect.
Now I would like to pcie boot project which uses BIOS and which is optimized for speed. I have made such project and checked that it works succesfully when I load it via 560v2. Because of BIOS and speed optimizations more space was required and thats why I put all the code into MSMCSRAM, which fits my purposes well - is fast and will be available for all cores. Here is my memory map from BIOS .cfg file:
Program.sectMap[".data"] = "MSMCSRAM"; Program.sectMap[".csl_vect"] = "MSMCSRAM"; Program.sectMap[".text"] = "MSMCSRAM"; Program.sectMap["platform_lib"] = "MSMCSRAM"; Program.sectMap[".const"] = "MSMCSRAM"; Program.sectMap[".neardata"] = "MSMCSRAM"; Program.sectMap[".rodata"] = "MSMCSRAM"; Program.sectMap[".fatdata"] = "MSMCSRAM"; Program.sectMap[".switch"] = "MSMCSRAM"; Program.sectMap[".cinit"] = "MSMCSRAM"; Program.sectMap[".stack"] = "MSMCSRAM"; Program.sectMap[".sysmem"] = "MSMCSRAM"; Program.sectMap[".bss"] = "MSMCSRAM"; Program.sectMap[".far"] = "MSMCSRAM"; Program.sectMap[".cio"] = "MSMCSRAM";
I have succesfully converted the out file to .h file with a help of helloworld_elf2HBin.bat. The projected is booted, BIOS starts (I suppose that is does, because I programmed the LED to blink in IDLE thread), but nothing more works in the project - no interrupts, no math, no data transactions over PCIE. Probably I have the same problem which was discussed in this thread: https://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/136505 not all the sections are loaded, but not sure. Also maybe I am doing something wrong in DSP boot sequence: first EVM init + interrupt configuration via CSL, than from main: bios_start and start_boot.
Does anyone know how can I solve such problem ?