Article ID: 000091093 Content Type: Troubleshooting Last Reviewed: 11/14/2024

Why Generic Serial Flash Interface FPGA IP writes Micron QSPI flash memory incorrectly when using HAL APIs?

Environment

  • Intel® Quartus® Prime Pro Edition
  • Generic Serial Flash Interface Intel® FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Description

    This problem might be seen in the Quartus® Prime Pro Edition Software version 22.1 when writing Micron QSPI flash memory using the HAL APIs of the Generic Serial Flash Interface FPGA IP (GSFI IP).

    The HAL API for the GSFI IP is available in the following software files:

    • intel_generic_serial_flash_interface_top.h

    • intel_generic_serial_flash_interface_top.c

     

    This is due to inappropriate polling opcode in the intel_gsfi_write_block() API for the Micron QSPI flash device. Other supported flashes are not affected by this.

     

    Resolution

     

    To work around this, follow these steps:

    1. Locate the drivers/src folder in your Board Support Package (BSP) project.
    2. Search for the intel_generic_serial_flash_interface_top.c software file.
    3. Search for the intel_gsfi_write_block()API.
    4. Modify the API from CMD_STATUS_REGISTER to CMD_FLAG_STATUS_REGISTER.

    Example:

    Line 1244 : cmd = ((CMD_FLAG_STATUS_REGISTER << 8) | CMD_QUAD_INPUT_FAST_PROGRAM);

    Line 1255 : cmd = ((CMD_FLAG_STATUS_REGISTER << 8) | CMD_PAGE_PROGRAM);

    Note: Regenerating the BSP resets the HAL APIs to their original state.

     

    This problem is currently scheduled to be resolved in a future release of the Quartus® Prime Software.

    Related Products

    This article applies to 1 products

    Intel® Programmable Devices