Hello,
I'm trying to bring up a custom board with 2 C6678s. In an effort to change to a different booting strategy, I've been attempting to run the IBL interactively through CCS. This post (http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/140644.aspx#513379) was very helpful. I'm building the IBL with DEBUG=yes, and in order to step through it in CCS, I load the i2cConfig.gel, then the .out file, then the setConfig_c6678_main function to setup the boot parameters table, then resume the code in CCS. The boot configuration is set for "nor" and my plan is to modify that code path in the IBL to produce my desired results.
So far I get from main > iblNorBoot > iblBoot > iblBootElf > DLOAD_load > new_DLIMP_Dynamic_Module > DLIF_malloc. Once I get to the DLIF_malloc though, it ends up returning 0. This behavior did not always happen, and did not coincide with a rebuild of the IBL. But once I see the malloc fail, I can't seem to recover.
My first attempt at resolving the malloc failure was to double the HEAP size in ibl/src/make/ibl_c66x/ibl_common.inc. This didn't seem to help. I'm currently using the IBL from MCSDK 2.00.00.11 and would like to avoid updating unless absolutely necessary.
Then I moved to the EVM to verify basic functionality and debugging in the IBL. So I started with a fresh copy of the IBL with no changes. First, I doubled the TEXT_INIT size in ibl_common.inc to accommodate DEBUG=yes. Then, I configured the EVM for NOBOOT mode in order to test this. Once CCS is ready (following the process above) I step once with F6, CCS highlights the line "iblMemset (&iblStatus, 0, sizeof(iblStatus_t));" (ibl/src/main/iblmain.c:242). I step again with F6 and CCS doesn't break again. I suspend execution with CCS and get an address with no source available (e.g. 0x0FF0F39C) which the "assembly step into" will walk along these addresses but the disassembly window says "Memory map prevent reading of the target memory at 0x0FF0F39C [code=131072]" (and so on for the subsequent addresses). So I'm not sure what's going on in the EVM.
I've also tried the above steps with the NOR (image 0) boot mode configured, and attached the debugger after the UART indicated the application from the NOR flash was up and running. There was no difference in the behavior.
I'm not quite sure how to proceed. Either with the EVM or with my custom board. I'm not sure of another way to combat malloc failing (aside from increasing the HEAP). I would appreciate any input.
Thanks,
Dan