Hello,
We have a custom C6678 DSP board derived from the EVM C6678 board. Actually both boards have a lot in common but there are differences between them, too. The major difference is in the DDR3_CLKIN and the SGMII-SRIO_SERDES_CLKIN oscillator frequencies. Having these in mind, we encounter strange problems in properly running IBL. We use MCSDK_2_01_02_06. Below we put the steps that we have gone through so far:
* Due to the differences between our custom board and the EVM, we were required to modify the IBL source code to suit for our board.
* So we examined the IBL source code and modified the necessary parts. We did not alter the flow of the code, we just made some parametric changes like modifying the DDR3-PLL divider.
* After these modifications, we downloaded MinGW and we were able to re-build the IBL following the IBL build instructions included in the MCSDK folder.
* One of the outputs of the IBL build is the binary file which is to be written to the EEPROM.
* We utilized the eepromwriter program found in the MCSDK, and wrote the binary IBL file to the EEPROM without error. That is, all the write, read and verify steps in the eemprowriter program passed.
* We then switched to I2C-Boot mode and powered-up our custom board.
* Referring to the IBL source code, we understand that IBL runs in two stages: ibInit() and iblMain()
* iblInit() seems to run properly and the program branches to the iblMain() function. Following it, we observe that the IBL version string gets printed on the UART port.
* Up to the deviceDdrConfig() function everything seems to work without problem.
* However, in the deviceDdrConfig() function, somehow the program crashes.
* We do not know the exact line where the crash occurs since we cannot connect to Core-0 through the XDS560V2 emulator. If we try to connect it, we get the error “Device core was hung...”. This means that Core-0 still tries to run something but we don’t know what.
* In contrast,if we comment-out the deviceDdrConfig() line in the iblMain(), IBL runs correctly and tries to boot from TFTP as intended. We see the prints on the UART port.
NOTE:
The modifications that we did in the IBL code, are also implemented in the platform_init() function in PDK. Our custom platform_init() function runs seamlessly on our custom board. So we believe that the problem that we face is not directly related to the modifications.
Could anyone help us with this problem?
Thanks.