News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

TE0725-03-100-2I9 in field programming

Started by qojote, April 21, 2022, 11:22:04 AM

Previous topic - Next topic

qojote

Hello,
I am trying to find a way to update the FPGA configuration of the TE0725-03-100-2I9 module remotely. In a previous post the following application note https://docs.xilinx.com/v/u/en-US/xapp1081-quickboot-remote-update was mentionend of how to use the Quickboot mechanism to do so. The application note states that only Micron N25Q NOR SPI Flash is supported. However the TE0725-03-100-2I9 comes with a Cypress S25FL256SAGBHI20 flash. Will this AN still work? Or can you tell me what needs to be changed to support this particular flash? Or do you maybe have a better (ou-tof-the-box) approach of how to update the FPGA configuration in the field? I do have a SPI and GPIO connection between my embedded controller and the FPGA module. Thanks in advance.

BR

JH

Hi,
in general you can write flash from FPGA side with your own design. So Xilinx XAPP should be possible also. The question is how you want to transfer the new data to the TE0725 FPGA? TE0725 is a small simple board with less periphery. So you must find a way to transfer the date. Onboard is only JTAG. Or UART, when you connect TE0790 or other UART translator. ETH is not available on TE0725.

br
John

qojote

#2
Hi,
The mentioned application note provides a VHD SpiFlashProgrammer module. This module can be used with a FIFO containing the bitstream or word-by-word ("Repeating Register Write to inData32"). Now i am planning to configure some BRAM to be filled with the bitstream data which is then written to the flash chip. However, it seems that the flash on the Trenz board is not supported. So i would need some help to write this flash like it is done in this AN. Thanks in advance.
BR

JH

Hi,
I don't know "VHD SpiFlashProgrammer module", so I can't help much. Here is some link which I found, maybe it helps you:
https://support.xilinx.com/s/article/69824?language=en_US

We use Vivado to transfer data to flash or linux(is not possible on TE0725) later to get access. Flash on the TE0725 is supported by Xilinx and Xilinx default QSPI IP. it's strange that it should be no supported by this xilinx tool, but sometimes this can happens (or it's only not in some list, maybe you try out).

but in any case you must transfer data from somewhere to the FPGA BRAM, and on TE0725 you has only JTAG, UART or other low speed interfaces(I2C,SPI...) available...

br
John

qojote

Hi,
Thanks for your support. In fact your link is helpful, especially the article about limitations. The reference design file including the "SpiFlashProgrammer" module can be downloaded here: https://docs.xilinx.com/v/u/en-US/xapp1081-quickboot-remote-update. There is a table in the corresponding AN pdf named "Table 11: SpiFlashProgrammer.vhd Parameters" where the parameters which need to be configured are described. Besides that only "cMicronN25Q" is supported i need information about the "SPI flash device Device ID from RDID", the SPI sector size, the SPI page size and so on.
Flashing via the Xilinx tools and JTAG does work perfectly for me but this is no option in the field. The bistream is not too big which means i do not need high speed transfer. I am planing to write portions of the bitfile into the FPGA (registers or BRAM) and let the "SpiFlashProgrammer" erase and refill the correct portion of the flash so that the next reboot will jump into the new program.
BR

JH

Hi,
QuoteThere is a table in the corresponding AN pdf named "Table 11: SpiFlashProgrammer.vhd Parameters" where the parameters which need to be configured are described. Besides that only "cMicronN25Q" is supported i need information about the "SPI flash device Device ID from RDID", the SPI sector size, the SPI page size and so on.

Maybe check simple Xilinx baremetal drivers (source code is included into vitis installation (C:\Xilinx\Vitis\2021.2\data\embeddedsw)) or linux drivers (Xilinx Git), maybe you find there what you need.
br
John