7 Replies Latest reply on Nov 8, 2018 3:19 PM by creed

    making an .mcs file and selecting the flash for a PZ7030 Rev C.

    creed

      I would like to program the flash on my PZ7030 SOM.  I believe a have a RevC. SOM since it is populated with a Spanson device.  I have 2 questions regarding its use:

       

      1) what is the correct write_cfgmem commnad to use to convert my filename.bit to a filename.mcs?

       

      2) which device should I select from the Add Configuration Memory Device pulldown in Vivado.

       

      I was expecting to see a Part No field that I could use to find the  S25FL128SAGBHIA00, but I do not see a match.

       

      Thanks.

        • Hi,
          jafoste4

          Hi,

          Take a look at tutorial 01-04 located here http://picozed.org/support/design/13076/106

          -Josh

            • It looks like the tutorial
              creed

              It looks like the tutorial covers programming the device via the SDK.  I am working in Vivado and would like to prgram the flash using the HW Manager.  I'm trying to figure out which device to select from the list below.

              Is this an option or do I need to create/program the flash fromn the SDK?

               

              Regards,

            • Hi Creed,
              jafoste4

              Hi Creed,

              You are able to program it into the QSPI using the HW manager, however I am very unfamiliar with that process.

              Try taking a look at this tutorial https://www.xilinx.com/video/hardware/indirectly-program-fpga-using-vivado.html

              -Josh

                • Right.  The tutorial covers
                  creed

                  Right.  The tutorial covers the approach I am familiar with to create an .mcs for a device.  That approach does not seem to work for the XC7030. 

                  write_cfgmem -format mcs -size 16 -interface QPSIx4-single -loadbit {up 0x0 "./file.bit"} -file "./file.mcs"  returns the following error:

                  ERROR: [Writecfgmem 68-26] Unsupported interface "QSPIx4-single".
                  Supported interfaces are SMAPx8, SMAPx16, SMAPx32, SERIALx1, SPIx1, SPIx2, SPIx4, SPIx8, BPIx8, BPIx16.
                  0 Infos, 0 Warnings, 0 Critical Warnings and 1 Errors encountered.
                  write_cfgmem failed

                  UG908 shows the Spansion S25FL128SAGBHIA00 as a supported device.  I am not sure why the HW Manager says the device is unsupported.  The tutorial that was suggested originally showed the QSPIx4-single as the correct interface.

                   

                  Even if I am able to generate an mcs (it allowed me to use the SPIx1 interface) I do not know which device to select when I use the "Add Configuration emory Device" in the HW Manager.  The options listed, do not correspond to a specific part number or type.  While it accepted SPIx1 to generate the mcs and said that qspi was not supported, when I go to add a device, there are only qspi options available. 

                • type?
                  pietervanderstar

                  write_cfgmem -format mcs -size 16 -interface QPSIx4-single -loadbit {up 0x0 "./file.bit"} -file "./file.mcs"

                  I see one thing that might be wrong: shouldn't QPSI be QSPI?

                  • Thanks.  That was a typo.  I
                    creed

                    Thanks.  That was a typo.  I think the issue is that I you use/access the flash differently on a zynq part.  It appears that I need a processor to load the mcs from flash.  My project was built as an FPGA based project with the XC7Z030 specified as the target device.  This was fine while I'm generating .bit files for the device.  Do you now of a tutorial/reference design that shows how to build a ZYNQ project that imports existing RTL for the PL section of the design?

                    • SOLVED
                      creed

                      jeff.block@avnet.com and michale.abbate@avnet.com came in and were able to get this sorted out.  As @JFoster suggested the tutorials were a good place to start.  I was able to follow the steps in 01_MZPZ_Zynq_INtro_2015_4_02 to create a ZYNQ PS for my board, I wa then able to generate a bitstream and then Export Hardware to the SDK.  In the SDK I followed the BSP experiment in 02_MZPZ_Zynq_Hello_World_2015_4_03.pdf.  I'm not sure that was necessary.  I then  followed the Create the FSBL,  Prepare the Boot Image and Write/Boot from MicroSD Card experiments in 04_MZPZ_FSBL_Boot_2015_4_02.pdf.  The key was that in the Prepare the Boot Image experiment, I needed to delete the system_wrapper.bit file under the Boot Image Partitions and replace it with my .bit file from my  original project.  This does not load from flash, but it does allow the platform to boot without JTAG.  I noticed that when I select Create Boot Image in the SDK, I can specify an .mcs instead of a .bin.  It appears that the SDK does the conversion automatically.  And with the board definition archive loaded, the SDK knows the proper flash to target so I see the path to loading an .mcs via the SDK.