- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
May I know how do you connect the nStatus pin on your board? is there anything controlling the signal?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am glad that the issue is resolved. Let me know if you have further queries.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page