Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

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

5.3.6.4.5.6. Timeout Functionality

The command engine supports a watchdog timeout feature that allows to trigger an interrupt if an operation did not finish after a programmable time period. The host should use this interrupt to perform any action in case a timeout is detected.

The watchdog module works with the SYS_CLK and is enabled by default. This can be disabled by clearing the time_out bit in the device_ctrl (0x0430) register. The timeout period is configured with the time_out_val field of the time_out (0x0448) register (a value of zero also disables the watchdog).

The timeout counter is restarted every time a new command is written into the command engine thread (a timeout count is independent for each thread). When a timeout condition is reached, the command engine sets the thread corresponding bit in the trd_timeout_intr_status (0x014c) register. An interrupt also can be enabled by setting the corresponding thread bit in the trd_timeout_intr_en (0x0154) register. The interrupt is triggered when a timeout condition is detected.

Under a timeout condition the host should perform two actions:

  • The timeout thread should be set in a known condition by sending the thread reset type 1 command or reset the full NAND controller at a most appropriate time.
  • The NAND target for which the timeout condition occurred should be set in a known condition by sending a RESET command to this target.

The watchdog module is disabled after last active thread returns to IDLE state.