This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6657EVM RBL vs. platform_init()

Hello, I'm running some code from NOR flash hooked up to the C6657 EVM's EMIF. DIP switches are set to (SW3.1-->SW5.8): 10000011 01011000, where 1=OFF. The code is booted after power up and also after pressing RST_FULL. Everything works fine, except for DDR3 memory. My code calls platform_init with init_flags.pll=1 and init_flags.ddr=1. Most of the time DDR3 memory works fine, but sometimes I get read errors. When cross checking with the emulator it seems that specific bits depend on the same bit of the neighbouring data, such as changing FFFFFFFF AAAAAAAA to 00000000 AAAAAAAA gives 00000000 AAA8AAAA. The error occurs regardless whether starting from power on or RST_FULL. It seems that DDR3 initialization sometimes doesn't work. I suspect that PLL or DDR3 is already set up and re-initializing it causes the problem. I've verified that a sequence of platform_init followed by a DDR3 access test fails after 1 or 2 iterations. Is it allowed to call platform_init with init_flags.pll and init_flags.ddr set to 1 or does this conflict with the RBL? With other words: Does the RBL or the 1st run of the IBL (forced by the EVM's FPGA) initialize PLL or DDR3 so that I better do not reinitialize? Another idea comes from the errata (SPRZ381): Are advisories 3 and 4 already covered by the platform library or do I better write my own initialization code? regards Guenter