Forum Discussion
Cyclone 10 GX AS x4 Configuration Compatibility with Infineon S25FS512S (Custom Flash Definition)
This is a well-documented and thoroughly debugged report — let me give you a direct answer on each of your questions.
1. Does the Cyclone 10 GX configuration controller support transmitting the Mode Byte required by the EBh (Quad I/O Read) command?
Based on the available documentation, the answer is effectively no. Cyclone 10 GX devices only support 4-byte addressing and 10 dummy clock cycles for single and quad fast read commands. Arria 10 · Config/RSU The configuration controller's AS interface is designed around a fixed command sequence: command opcode → 4-byte address → dummy cycles → data. There is no documented mechanism in the configuration controller to insert an additional Mode Byte between the address phase and the dummy cycles. Your logic analyzer observation — EBh → 4-byte address → dummy cycles → data, with no Mode Byte — is consistent with how the Cyclone 10 GX AS controller operates.
This is the root cause of your AS x4 failure with the S25FS512S. The EBh (Quad I/O Read) command on that device mandates a Mode Byte after the address, and the Cyclone 10 GX controller does not generate it.
2. Is this a known limitation of the Cyclone 10 GX configuration controller?
Yes, this is a fundamental architectural constraint of the AS configuration block, not a software bug. The Active Serial (AS) configuration control block in Arria 10 and Cyclone 10 GX is fixed to 10 dummy clock cycles and 4-byte addressing. Arria 10 · Config/RSU The fixed nature of the command sequencing means the controller cannot be programmed to emit an extra Mode Byte phase. This is why only certain flash devices are validated for AS use with Cyclone 10 GX — the flash must be compatible with the controller's fixed protocol.
3. Is there any supported method to modify the Quad I/O Read command sequence in the Custom Flash Definition?
No. The Custom Flash Definition (Generic Flash Programmer) allows you to define device properties such as device ID, density, I/O voltage, and dummy clock cycles for single and quad I/O modes, but it does not expose a mechanism to insert or configure a Mode Byte in the read command sequence. The "Single I/O mode dummy clock" and "Quad I/O mode dummy clock" settings specify the Fast Read dummy clock cycle for the flash device in single and quad I/O protocols respectively — the programming file generation uses these settings to determine if the configuration requires bit shifting to compensate for the actual dummy clock cycle during Active Serial configuration. Defining a New Flash Memory Device There is no field for a Mode Byte, and the underlying controller hardware does not support it regardless.
Your observation about RDAR (0x65) with a register address is also correct — the Custom Flash Definition's Read Register (RR) action supports fixed-opcode register reads but does not support addressed register commands like RDAR.
4. Recommended path forward
Given this limitation, here are the practical options:
- Stay on AS x1: Since AS x1 works correctly for you, this is the most straightforward path. AS x1 uses a standard Fast Read command that does not require a Mode Byte, so it is fully compatible with the Cyclone 10 GX controller's fixed protocol.
- Switch to a validated flash device: The following Macronix flash devices can be used in Active Serial (x1 and x4) configuration mode with Arria 10 and Cyclone 10 GX: MX25L series (2.7V–3.6V) at 128Mb, 256Mb, and 512Mb densities, and MX25U/MX66U series (1.65V–2.0V) at 256Mb, 512Mb, 1Gb, and 2Gb densities. Arria 10 · Config/RSU These devices use a Quad Fast Read command sequence that is compatible with the controller's fixed protocol.
- Use the Generic Serial Flash Interface IP for runtime access: The legacy ASMI Parallel IP does not support certain Macronix flash devices in AS mode for Arria 10 and Cyclone 10 GX; to use those flash devices, use the Generic Serial Flash Interface Intel FPGA IP core. Arria 10 · Config/RSU Similarly, if you need to use the S25FS512S for data storage or runtime access (not FPGA configuration), the Generic Serial Flash Interface IP gives you full control over the command sequence including any Mode Byte requirements.
- Cypress/Infineon S25FSxxxS with AS x1: AS configuration failure with Cypress S25FSxxxS can occur when flash configuration registers are not set correctly. For AS x1, the flash configuration registers (CR2NV/CR2V) should be set to 0x8A (ASx1 scheme, 4-byte addressing, dummy clock cycles 10). Arria 10 · Config/RSU If you want to pursue AS x1 with the S25FS512S, ensure the register is set correctly and that the .pof/.rpd is generated with the "Disable EPCS/EPCQ ID check" option enabled.
5. Validated Custom Flash Definition for S25FS512S in AS x4: I do not have a validated reference Custom Flash Definition for the S25FS512S in AS x4 mode in the available documentation, and given the Mode Byte constraint described above, such a definition would not be able to work around the hardware limitation. I would not recommend pursuing AS x4 with this device on Cyclone 10 GX.
In summary: the AS x4 failure you are seeing is a hardware architectural constraint of the Cyclone 10 GX AS configuration controller — it cannot emit the Mode Byte that EBh requires on the S25FS512S. AS x1 with correct register settings is the supported path for this flash family on Cyclone 10 GX.