BootROM で動作開始した WDT は、U-Boot の開始直後の処理で停止されます。
そのため、WDT を利用する場合は、U-Boot 以降で WDT の再セットアップが必要になります。
U-Boot で WDT を再セットアップする場合には、#define CONFIG_HW_WATCHDOG の定義を追加することで利用できるようになっています。
(変更例)
対象ファイル: uboot-socfpga/include/configs/socfpga_arria10.h
/*
* L4 Watchdog
*/
#if 1 /*(CONFIG_PRELOADER_WATCHDOG_ENABLE == 1) ★「#if 1」に変更 */
#define CONFIG_HW_WATCHDOG
#define CONFIG_HW_WATCHDOG_TIMEOUT_MS (2000)
#define CONFIG_DESIGNWARE_WATCHDOG
#define CONFIG_DW_WDT_BASE SOCFPGA_L4WD0_ADDRESS
/* Clocks source frequency to watchdog timer */
/* Preloader and U-Boot need to know the clock source frequency from handoff*/
#define CONFIG_DW_WDT_CLOCK_KHZ (50000000 / 1000)/*(CONFIG_HPS_CLK_OSC1_HZ / 1000) ★ l4_sys_free_clk の周波数(50MHz --> 50000KHz)を指定 */
#endif /* CONFIG_PRELOADER_WATCHDOG_ENABLE */
※注意:CONFIG_HW_WATCHDOG だけでなく、CONFIG_DW_WDT_CLOCK_KHZ の定義にも修正が必要です。
(オリジナルの定義値に CONFIG_HPS_CLK_OSC1_HZ を使用していますが、該当の定義が無いためにビルドエラーとなります。Arria 10 SoC の WDT は OSC1_CLK ではなく l4_sys_free_clk で動作するため該当のクロック周波数を指定する内容に修正)
--------------------
カテゴリ:SoC
ツール:SoC EDS
デバイス:Arria® 10