learning uboot how to enable watchdog in qca4531 cpu

find cpu datasheet , watchdog relate registers:

 

0x18060008 watchdong timer control

0x1806000c watchdog timer

 

we can read and write watchdog register under uboot console:


#mw 0x1806000c 0xffffffff  1

#mw 0x1806000c 0x10000000  1

#mw 0x18060008    0x3  1

#md 0x18060008  1

#md 0x1806000c 1

 

 

// init watchdog function

//init watchdog timer

//int watchdon timer control

 

// watchdog action  bit[1:0]

#define No_action                         0

#define General_purpose_interrupt         1

#define Non_maskable_interrupt            2

#define Full_chip_reset                   3

 

 

#define WATCHDOG_TIMER_CONTROL  0x18060008

#define WATCHDOG_TIMER          0x1806000c

 

void enable_watchdog(){

        ath_reg_wr(WATCHDOG_TIMER,0xffffffff);

        ath_reg_wr(WATCHDOG_TIMER_CONTROL, Full_chip_reset);

}

 

void disable_watchdog(){

        ath_reg_wr(WATCHDOG_TIMER_CONTROL, No_action);

}

 

void feed_watchdog(){

        ath_reg_wr(WATCHDOG_TIMER,0xffffffff);

}

after we  encapsulated watchdog interface; we can enable watchdog in the uboot bootup stage

posted @ 2019-01-09 16:59  嵌入式实操  阅读(384)  评论(0编辑  收藏  举报