I have an EPCS16 device connected to a 10 pin programming header from a raspberry pi. My target is to program a .pof file using active serial configuration to the EPCS16 device.
what I have done so far:
added a node to spi bus in the devicetree as a flash and I am using the m25p80 driver.
After i boot up my pi i can see the mtd device listed on the devices and also in sysfs.
Issue here is I dont know what should i provide for the compatible field ? when i try to issue jedec-nor the probe fails and I understand that the device ID is only present on EPCS128.
any advice on how to program the fpga in active serial configuration using raspberry pi would be much appreciated.
May I know if you are implementing SPI protocol into the Raspberry Pi? If yes, I would recommend you to generate RPD file which is a raw binary file. You may use this file to directly write into the flash.
You are correct we are implementing an SPI protocol. Thanks for suggesting to use raw binary file for this which I will do. can you let me know what tool should i use to convert the pof file to RPD ?
can you also confirm that the m25p80 driver in linux should work with EPCS16 device if yes can you please let me know what should value should i fill in compatible filed while generating the DTB ?
You may use Quartus Convert Programmming Files to generate the rpd fle when you are generating the pof file.
The m25p80 driver should work if you are following the SPI command that is supported by EPCS16 flash device. You can directly program the EPCS16 using the generated rpd file.
do i need to reverse the RPD file or convert it hex or binary before programming to flash ? or can i directly write the rpd file to the nor-flash ?
It will depend on your rasberry pi. In the Quartus Convert programming file (this is only available in latest Quartus version), you can go to Advanced Feature to select if you would like to generate "Little Endian" or "Big Endian" rpd file.