Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.3.7.7. Configuring Timing Registers

The following registers need to be configured to optimize the performance of the NAND Flash controller and this depends on the operation speed.

  • toggle_timings_0 (0x1014) — timings characteristic for Toggle DRR modes.
  • toggle_timings_1 (0x1018) — timings characteristic for Toggle DRR\NV-DDR modes.
  • async_toggle_timings (0x101c) — timings characteristic for Toggle DRR and SDR modes.
  • sync_timings (0x1020) — timings characteristic for Source Synchronous\NV-DDR modes.
  • timings0 (0x1024) — sequence timings common for all work modes.
  • timings1 (0x1028) — sequence timings common for all work modes.
  • timings2 (0x102c) — sequence timings common for all work modes.

The delay generated by the controller equals the minimum value written in the register, increased by 1. All the timings are generated using the nf_clk clock signal. Once the timing registers are set, the host may change the clock to the controller. For this, the host needs to ensure that all operations in the NAND Flash controller have been completed and the controller is in idle state. This is identified by checking the state of the ctrl_busy pin or the ctrl_busy bit in the ctrl_status (0x0118) register. If this is asserted, it is an indication for the host that the NAND Flash controller is busy waiting for an operation inside the controller to complete. If this is de-asserted, it is an indication that the controller is idle, and clocks may be changed to the controller.

After this configuration, the controller is ready to accept data commands to be sent to the Flash device.