Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21150 Discussions

Remote Update IP - How to Debug Reconfiguration Issues

NRugg
New Contributor I
1,875 Views

System:

  • Cyclone IV
  • NIOS II Soft Core Processor
  • EPCQ128 A used for holding fabric images
  • Programming file = .rpd (each byte bit swapped before writing to flash per documentation)

 

So in our system, we have an EPCQ128 A which houses 3 images. A factory image, and two application images which live at 0x600000 and 0xB00000 offsets respectively.

I am able to talk with the Remote Update IP effectively. I can trigger a reconfiguration event (which fails), change the boot address and read the status registers. However, any reconfiguration event fails, and falls back to the default (factory) image. When this happens, I read the RU_RECONFIG_TRIGGER_CONDITIONS register, I get a value of 0x4 which indicates "Bit 2—nstatus_source: nSTATUS asserted by an external device as the result of an error"

 

There is no further description of this error, and I'm not sure how to debug this. What exactly does this error mean, and how do I go about resolving it?

 

Am I using the wrong programming file? (Some documentation says .rpd others say .rbf)

0 Kudos
1 Solution
NRugg
New Contributor I
1,847 Views

Things to note about the final .rpd that worked

  • Little Endian
  • Bit Reversal handled in embedded code
  • Generated pointing to EPCQ128 in the 'Convert Programming File' tool
  • Active Serial (not x4, just normal)

View solution in original post

0 Kudos
5 Replies
NRugg
New Contributor I
1,858 Views

Any thoughts on this?

 

I've tried every file type I know how, still with no luck. 

 

  • I made sure to generate the .rpd file using a version of Quartus that supports EPCQ128A
  • I've tried both big and small endian versions of the above .rpd file
  • I made sure to bit swap every byte before writing it to flash memory
  • I can write and read back the memory contents of EPCQ128A accurately (aka confirmed data is getting written properly)
0 Kudos
JohnT_Intel
Employee
1,852 Views

Hi,


May I know how do you connect the nStatus pin on your board? is there anything controlling the signal?


0 Kudos
NRugg
New Contributor I
1,849 Views

Hi all, 

 

I've since resolved this issue. I believe the root of the issue was that I wasn't doing bit swapping as I thought during my experiments. Once I grabbed the right file, and bit swapped the payload, I was able to confirm that the load from .jic and .rpd were binary equivalents to each other. At this point, I was able to succeed in a reconfiguration event.

 

Note: The .rpd that finally worked was created for an EPCS128, even though I am using an EPCQ128A flash memory device. It turns out in my use case (although not every use case) this file format works just fine.

0 Kudos
NRugg
New Contributor I
1,848 Views

Things to note about the final .rpd that worked

  • Little Endian
  • Bit Reversal handled in embedded code
  • Generated pointing to EPCQ128 in the 'Convert Programming File' tool
  • Active Serial (not x4, just normal)
0 Kudos
JohnT_Intel
Employee
1,841 Views

Hi,


I am glad that the issue is resolved. Let me know if you have further queries.


0 Kudos
Reply