Altera_Forum
Honored Contributor
11 years agoNIOS Program store in DDR3 UNIPHY hanging when writing reading from other MPFE port
I'm using the DDR3 controller as my program store for the NIOS. I have two ports set up in the DDR3 controller with port 0 (the NIOS port) given priority. The second port is connected to a write and read master from the mSGDMA block (writing and reading video data).
I have proven the mSGDMA is working using another DDR3 controller and separate DDR3 chip. However, I'd like to get rid of the second DDR3 so would like to share the first DDR3 with the NIOS program code. When the mSGDMA is connected to the second port, the NIOS comes up perfectly but once the NIOS sets the mSGDMA reading and writing to the DDR3 the NIOS hangs. I have signal tapped and the mSGDMA is writing and reading correctly so it does get started. So it seems that once the mSGDMA has started, the NIOS cannot get access to the program code anymore. I would have thought this couldnt be the case because I have set the NIOS port on the DDR3 controller to a higher priority. Could anyone suggest why the NIOS is not getting access through it's higher priority port? Qsys image attached Update: A few theories 1. The MPFE does not support bursting (have tried to rule out) 2. The mSGDMA is in park mode so never gives the DDR3 controller a chance to release control to the NIOS 3. The MPFE will not work as the NIOS program store and the NIOS cannot tolerate the delays involved (Even when set to higher priority) I have also set up the mSGDMA to transfer 16KB three times and not repeat. Therefore the NIOS has complete control after these three writes. But it still hangs, suggesting it cannot tolerate any interruption to it's program store. Any thoughts appreciated