mirror of
https://github.com/apache/nuttx.git
synced 2026-09-02 07:03:04 +00:00
Add a NuttX watchdog lower-half for the Ameba KM4 non-secure system watchdog (WDG2), registered as /dev/watchdog0. The fwlib WDG API is ROM-resident, so no board.mk change is needed. The hardware cannot be stopped once enabled, so stop() is emulated via the early interrupt (EI) auto-refreshing the counter, and capture() delivers a pre-timeout callback through the same EI. The EI has a three-part timing contract, all handled here: it must be armed with EIMOD=ENABLE at WDG_Init, its EIE gate only takes effect after WDG_Enable, and -- because the EI is level-based -- a pure capture path must mask EIE after the one-shot callback to avoid re-entrant storming while the reset is pending. The EI flag is cleared twice per the slow WDG clock. Per-chip base address and IRQ live in ameba_wdg_chip.h so the shared driver needs no change to port to another Ameba IC. Verified on pke8721daf: timeout reset (BOOT REASON WDG2), stop() suppressing the reset, and capture() firing ~EICNT ms before the reset. Assisted-by: Claude <noreply@anthropic.com> Signed-off-by: dechao_gong <dechao_gong@realsil.com.cn> |
||
|---|---|---|
| .. | ||
| arm | ||
| arm64 | ||
| avr | ||
| ceva | ||
| dummy | ||
| hc | ||
| mips | ||
| misoc | ||
| or1k | ||
| renesas | ||
| risc-v | ||
| sim | ||
| sparc | ||
| tricore | ||
| x86 | ||
| x86_64 | ||
| xtensa | ||
| z16 | ||
| z80 | ||
| CMakeLists.txt | ||
| Kconfig | ||