Visible to Intel only — GUID: qox1684439190013
Ixiasoft
Visible to Intel only — GUID: qox1684439190013
Ixiasoft
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.