Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NX family tweaks #15

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

SylvainLesne
Copy link

While testing this great tool on the CrossLink-NX VVML and CertusPro-NX Evaluation boards, I had to make some tweaks in order to get the flash and SRAM programming and the reboot command working reliably.

I explained in more details in each commit message. Unfortunately I don't have access to ECP5 boards in order to check that I didn't break anything!

It seems that with NX devices, simply sending LSC_REFRESH is not enough
to reboot the FPGA (it stays in a blank state). With trial and error, I
found out that doing a no-op (with 0xFF) after LSC_REFRESH seems to be
enough to actually trigger the refresh.

Signed-off-by: Sylvain Lesne <[email protected]>
During my tests with the CertusPro-NX evaluation board, I found that
the current program command doesn't work reliably: the JTAG usually
doesn't have access to the flash (reports an ID full of zeroes, and the
operations don't work).

I noticed that in contrast, the test operation always reported correct
flash IDs, so using the usleep() calls in between the JTAG commands
seems to help getting the flash command to work reliably.

Signed-off-by: Sylvain Lesne <[email protected]>
It seems that using the current SRAM programming sequence on an already
programmed NX FPGA leaves the on-chip memories un-initialized.

The Radiant programmer sends an LSC_REFRESH command before the SRAM
programming sequence, and it does seem to help, so do it here as well.

Signed-off-by: Sylvain Lesne <[email protected]>
@gregdavill
Copy link
Owner

Thanks!

I'll confirm the ECP5 still operates correctly, the diff looks like ECP5 should be fine.

@SylvainLesne
Copy link
Author

Hello,

As a follow-up for this, I recently tested ecpprog with these changes on an ECP5 board: it seems to be working OK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants