I am bringing up a new C6455 board and having trouble enabling and configuring the EMIF peripheral. When the following instruction is issued from GEL or an application, the emulator crashes:
*(int *)PERCFG1 = 0x00000001;
The same crash occurs if I issue the following from the application:
CSL_FINST(((CSL_DevRegs*)CSL_DEV_REGS)->PERCFG1, DEV_PERCFG1_EMIFACTL, ENABLE);
The C6455 device configuration upon reset is control by an FPGA with the following relevant settings:
- BOOTMODE[3:0] = 0111b (PCI boot)
- ABA1=1 (EMIFA enabled)
I have been unable to determine the cause of this problem. In particular, if the PERCFG1 is left unchanged, the application and emulator run fine, albeit without EMIF functionality. However, if EMIF is enable by writing to PERCFG1, the problem is immediate. It is also true that enabling DDR in PERCFG1 does NOT cause a problem with the emulator or code execution.
Can anyone shed light on this problem?
Paul
Paul,
Sorry for the poor turn-around on getting a reply to you. You probably have already solved this. Please let us know either way.
I do not know exactly what happens when you set EMIFACTL, but signals on the EMIFA bus are going to become active. Something has to be wrong with the signals on that bus, most likely clock or power or RDY. What can you tell us about those?
Regards,RandyP
Search for answers, Ask a question, click Verify when complete, Help others, Learn more.
Randy,
Thanks for the reply. We have solved the issue but it's good to know someone would look at this if we were stuck. Unfortunately we do not completely understand the solution but were able to solve the problem using an example FPGA framework for C6455 power-up configuration.