워치독을 활성화하는 방법
------------------------

* make menuconfig

Character devices --->

Watchdog Cards --->

[*] Watchdog Timer Support
[*] Disable watchdog shutdown on close
<*> PXA250/210 watchdog


* menuconfig 옵션 설명

위치독을 설정하고 컴파일 하면 위치독은 실행되지 않는다.
어플에서 디바이스 드라이버를 오픈했을때 위치독이 활성화 되며 디바이스
드라이버가 닫히면 위치독은 작동하지 않는다
하지만 "Disable watchdog shutdown on close" 이 옵션을 켜놓으면
디바이스 드라이버가 닫혀도 위치독은 작동한다.


* EZ-X5 부트로더에서

ezboot> set

watchdog 메뉴에 초단위 시간을 설정한다.
이시간은 커널 복사전에 워치독을 활성화 하며 정해진 시간안에
워치독을 재설정하여야 한다. 즉 커널이 올라간 후 사용자 어플리케이션에서
워치독을 갱신하여야 한다.

* 타겟보드 linux

ez-x5> mknod /dev/watchdog c 10 130

ez-x5> ./sample_wdt


.......sample_wdt.c....................................................

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "/project/ez-x5/kernel/linux/include/linux/watchdog.h"

//----------------------------------------------------------------------------
// 설명 : Test Main
//----------------------------------------------------------------------------
int main( int argc, char **argv )
{
int dev;
int period_sec;


struct timeval tv;
fd_set readfds;
int rc, max_fd;


printf( "Test Start....
");

dev = open("/dev/watchdog", O_RDWR|O_NDELAY );
if (dev == -1 )
{
printf( "Device OPEN FAIL /dev/watchdog
");
printf( " mknod /dev/watchdog c 10 130
" );
return -1;
}

if (3 <= argc )
{
switch( argv[1][0] )
{
case 's' :
// 워치독 10초 설정
period_sec = strtoul( argv[2], NULL, 10 );
if ( 0 > ioctl( dev, WDIOC_SETTIMEOUT,
&period_sec ) )
printf( "Error
" );
else printf( "SET new Watchdog Time %d
",
period_sec );
}

}

// 워치독 reload
ioctl( dev, WDIOC_KEEPALIVE, 0 );

close(dev);

printf( "Test End
");

return 0;
}