[U-Boot] Watchdog and u-boot command prompt

Sachin Rane SRane at alphion.com
Tue Jan 13 08:45:13 CET 2009


Hi,

>> 'cpu/ppc4xx/serial.c'.

>There is no such file in U-Boot.

The version of the u-boot being used is 1.1.4.
The latest version of the u-boot (u-boot-2008.10) has '4xx_uart.c'
instead of 'serial.c'

> Which sort of watchdog device is used on your board?
I am using Software version of Watchdog (CONFIG_WATCHDOG).
The routines which are related to CONFIG_WATCHDOG are available in
'cpu/ppc4xx/cpu.c'.

In the file 'include/watchdog.h', it has been mentioned that:
8<----------------------------------------------------------
#if defined(CONFIG_HW_WATCHDOG) && defined(CONFIG_WATCHDOG)
#  error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG
can't be used together."
#endif
---------------------------------------------------------->8

It means I can't enable flags CONFIG_HW_WATCHDOG & CONFIG_WATCHDOG
together.

Am I missing out something?


Regards,
Sachin



-----Original Message-----
From: Wolfgang Denk [mailto:wd at denx.de] 
Sent: Tuesday, January 13, 2009 12:44 AM
To: Sachin Rane
Cc: u-boot at lists.denx.de
Subject: Re: [U-Boot] Watchdog and u-boot command prompt

Dear Sachin,

In message
<73FA539107892C4C8C7A5ACA10C161C85BE0E3 at MX2.AlphionCorp.local> you
wrote:
> 
> I have enabled 'watchdog' in u-boot using flag 'CONFIG_WATCHDOG'.
> I wonder how the 'watchdog' gets reset when the cursor is waiting for 
> user input.
>  
> As per my understanding the 'WATCHDOG_RESET()' gets called in 
> 'readline()' prior calling 'getc()'.
> In our case, the 'getc()' has been mapped to 'serial_getc_dev()'  of 
> 'cpu/ppc4xx/serial.c'.

There is no such file in U-Boot.

> The code of 'serial_getc_dev()'  executes in continous loop till user 
> presses a key.
> The good thing is that the boad doesn't get reboot even if user 
> doesn't enter any key.
> In 'serial_getc_dev()', I don't see any call to reset the watchdog  .

Hmmm... I don't know where you are looking. You say this is on ppc4xx,
so I check "cpu/ppc4xx/4xx_uart.c" - and what do I see?

480 int serial_getc_dev (unsigned long base)
481 {
482         unsigned char status = 0;
483 
484         while (1) {
485 #if defined(CONFIG_HW_WATCHDOG)
486                 WATCHDOG_RESET ();      /* Reset HW Watchdog, if
needed */
487 #endif  /* CONFIG_HW_WATCHDOG */
488 
489                 status = in_8((u8 *)base + UART_LSR);
...

Looks pretty much as if it  was  an  explicit  call  to  trigger  the
watchdog...

> Can you help me to find out the how Watchdog is taken care (gets 
> reset) whicle executing a infinite loop (if user doesn't press any
key) ?
> ( Note: I am not using 'CONFIG_HW_WATCHDOG' flag)

You are not? Hmmm... What makes you think you are using a watchdog then?

Which sort of watchdog device is used on your board?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de I
don't want to be young again, I just don't want to get any older.


More information about the U-Boot mailing list