2.11 Watchdog (WDOG)
2.11.1 Introduction
예기치 않은 중단이나 무한 루프 상황 또는 프로그램 오류로 부터 벗어날 수 있도록, Watchdog Timer 모듈은 시스템 오류로부터 보호한다.
일부 플랫폼에는 두 개의 WDOG 모듈이 있으며, 그 중 하나는 인터럽트 기능이 있다. i.MX 6, i.MX 7Dual은 i.MX 8M과 동일한 watchdog 드라이버를 공유한다. i.MX 7ULP에는 별도의 watchdog 드라이버가 있다. i.MX 8, i.MX 8X는 시스템 컨트롤러 펌웨어를 통해 가상의 watchdog 드라이버 인터페이스를 공유한다.
2.11.2 Hardware Operation
WDOG 타이머가 활성화된 후에는 주기적으로 소프트웨어를 통해 서비스를 받아야 한다.
서비스가 제 시간에 이루어지지 않으면, WDOG는 타임 아웃 된다. 타임 아웃 시, WDOG는 소프트웨어 구성에 따라 wdog_b 신호나 wdog_rst_b 시스템 리셋 신호를 발생한다. Watchdog 모듈은 활성화된 후에는 비활성화할 수 없다.
2.11.3 Software Operation
특정 플랫폼에 대해 WDOG 드리이버를 지원할 수 있는 표준 WDOG 인터페이스를 Linux OS에서 가지고 있다.
WDOG는 STOP/DOZE와 WAIT 모드에서 독립적으로 suspend/resume 할 수 있다. WDOG 레지스터의 일부 비트는 부팅 후 한 번만 프로그램할 수 있으며, 이러한 레지스터가 올바르게 기록되도록 확실하게 해야 한다.
2.11.4 Generic WDOG
Generic WDOG 드라이버는 drivers/watchdog/imx2_wdt.c 파일에 구현되어 있다.
다양한 IOCTL에 대한 기능와 WDOG를 컨트롤하는 사용자 레벨 프로그램의 read/write 호출을 제공한다.
2.11.5 Driver Features
WDOG 구현은 다음 기능을 포함한다 :
- 활성화 되고 미리 정의된 타임 아웃 값(WDOG 소스 파일 중 하나에 밀리초 단위로 정의됨) 내에 서비스가 되지 않으면, 리셋 신로를 생성한다.
- 미리 정의된 타임 아웃 값 내에서 서비스 되면, 리셋 신호를 생성하지 않는다.
- 표준 WDOG 서브시스템에 필요한 IOCTL/read/write를 제공한다.
2.11.6 Source Code Structure
아래 테이블은 drivers/watchdog에 있는 watchdog WDOG 드라이버의 소스 파일을 보여준다.
Table 23. Watchdog Driver Files
File | Description |
drivers/watchdog/imx2_wdt.c | i.MX 6, i.MX 7Dual, i.MX 8M watchdog 함수 구현. i.MX 6, i.MX 7의 경우, watchdog 시스템 리셋 기능은 arch/arm/mach-imx/system.c 아래에 있다. |
drivers/watchdog/imx7ulp_wdt.c | i.MX 7ULP watchdog 기능 구현. |
drivers/watchdog/imx8_wdt.c | i.MX 8, i.MX 8X에서 소프트웨어 watchdog는 SCFW(system controller firmware)에서 사용되고 커널은 가상 watchdog 드라이버 imx8_wdt.c의 해당 인터페이스를 호출한다. i.MX 8M에서는 사용되지 않는다. |
2.11.7 Menu Configuration Options
menu configuration에서 다음 모듈을 활성화 한다 :
Device Drivers > Watchdog Timer Support > IMX2+ Watchdog
Device Drivers > Watchdog Timer Support > IMX7ULP Watchdog
Devcie Drivers > Watchdog Timer Support > IMX8 Watchdog
2.11.8 Programming Interface
WDOG 드라이버에서 다음 IOCTL이 지원된다 :
- WDIOC_GETSUPPORT
- WDIOC_GETSTATUS
- WDIOC_GETBOOTSTATUS
- WDIOC_KEEPALIVE
- WDIOC_SETTIMEOUT
- WDIOC_GETTIMEOUT
이러한 IOCTL에 대한 자세한 설명은 Documentation/watchdog를 참조한다.
'NXP i.MX SoC Family > i.MX Linux Reference Manual' 카테고리의 다른 글
i.MX Linux Reference Manual - Introduction - Overview (0) | 2022.06.20 |
---|---|
i.MX Linux Reference Manual - Introduction (0) | 2022.06.20 |
i.MX Linux Reference Manual - System - Sensors (0) | 2022.06.20 |
i.MX Linux Reference Manual - System - Thermal (0) | 2022.06.17 |
i.MX Linux Reference Manual - System - Remote Processor Messaging (0) | 2022.06.17 |