Jump to content

Joern

Members
  • Posts

    1
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Joern reacted to elodg in CMOD A7 with Micron flash programs and runs fine; programs but does not run on board with Macronix flash.   
    A quick note here. The source files that need editing are part of a library (https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841939/xilisf) compiled into a bsp/domain. By navigating to the source files in SDK/Vitis, the local copy of the library's source files are opened. Any modification is done on this local copy and built into the static library (and application) upon build. However, when the source files of the bsp/domain are re-generated (context menu, Regenerate BSP sources), the changes are overwritten from the originals in the Xilinx install directory. Take care this does not happen.
    A more permanent solution is forking the library repository (https://github.com/Xilinx/embeddedsw) editing the sources there and including a path to the modified repository in SDK/Vitis Xilinx->Repositories->Global.
  2. Like
    Joern reacted to malexander in CMOD A7 with Micron flash programs and runs fine; programs but does not run on board with Macronix flash.   
    @Kyle_Jackson
    I was able to get the SREC bootloader working on a Cmod A7 - 35T that has the Macronix flash using Vivado 2019.1. To get this to work you have to include the Xilinx QSPI controller in your Microblaze block design and in the IP configuration either select "Standard" for the mode (SPI x1 mode) or if you select "QUAD" then make sure to select "Macronix" for Slave Device.
    Once you are in SDK and have created the SREC bootloader project (and associated BSP) you need to open "bootloader.c" from the sources and scroll down until you find the call to "XIsf_Initialize". Double click the function name to highlight it, right click and select "Open Declaration". Once you have "xilisf.c" open do the following:
    1. Somewhere near the top of xilisf.c add the following:
    #define XISF_MACRONIX_DEV_MX25L3233F    0x2016  /**< Device ID for MX25L3233F */
    2. In xilisf.c find the definition for IntelStmDevices[] and add the following:
    {XISF_MANUFACTURER_ID_MACRONIX, XISF_MACRONIX_DEV_MX25L3233F,
              XISF_BYTES256_PER_PAGE, XISF_PAGES256_PER_SECTOR,
              XISF_NUM_OF_SECTORS64},
    3. Save xilisf.c, which should rebuild the project.
    Once you've completed the above steps you need to go through the process of generating a download.bit that has integrated the bootloader elf with the bitstream, program that to the flash at offset 0, and then program your application SREC to the flash at the appropriate offset. I placed my SREC at offset 0x00180000 (same offset I set in blconfig.h of the srec bootloader project) since my bitstream was only ~1100KB. You may need to use a different offset depending on the size of your bitstream+bootloader elf combination.
    I suggest that anyone who is unfamiliar with the SREC bootloader process follow the guide linked below but select "Macronix" for the Slave Device and perform the xilisf.c modifications.
    https://reference.digilentinc.com/learn/programmable-logic/tutorials/htsspisf/start
    Thanks
    Michael
×
×
  • Create New...