[U-Boot-Users] [PATCH] Nios: WATCHDOG preparation

Stephan Linz linz at mazet.de
Mon Feb 16 10:09:09 CET 2004


Hi all,

attached patch includes the WATCHDOG_RESET() macro at some more points in 
U-Boot so I can use it in my upcoming new Nios board support. Please, merge 
it with current CVS tree -- thanks.


--
Best regards,
Stephan Linz
-------------- next part --------------
diff -purN -x CVS u-boot-20040210cvs-prepare_post/cpu/nios/serial.c u-boot-20040210cvs-prepare_watchdog/cpu/nios/serial.c
--- u-boot-20040210cvs-prepare_post/cpu/nios/serial.c	2003-10-08 23:26:14.000000000 +0000
+++ u-boot-20040210cvs-prepare_watchdog/cpu/nios/serial.c	2004-02-15 02:57:28.000000000 +0000
@@ -24,6 +24,8 @@
 
 #include <common.h>
 #include <nios-io.h>
+#include <watchdog.h>
+#include <common.h>
 
 
 static nios_uart_t *uart = (nios_uart_t *)CFG_NIOS_CONSOLE;
@@ -62,7 +64,7 @@ void serial_putc( char c )
 	if (c == '\n')
 		serial_putc('\r');
 	while( (uart->status & NIOS_UART_TRDY) == 0 )
-		;
+		WATCHDOG_RESET ();
 	uart->txdata = (unsigned char)c;
 }
 
@@ -81,6 +83,6 @@ int serial_tstc( void )
 int serial_getc( void )
 {
 	while( serial_tstc() == 0 )
-		;
+		WATCHDOG_RESET ();
 	return( uart->rxdata & 0x00ff );
 }
diff -purN -x CVS u-boot-20040210cvs-prepare_post/drivers/smc91111.c u-boot-20040210cvs-prepare_watchdog/drivers/smc91111.c
--- u-boot-20040210cvs-prepare_post/drivers/smc91111.c	2003-12-06 23:20:42.000000000 +0000
+++ u-boot-20040210cvs-prepare_watchdog/drivers/smc91111.c	2004-02-15 02:57:28.000000000 +0000
@@ -61,6 +61,7 @@
 
 #include <common.h>
 #include <command.h>
+#include <watchdog.h>
 #include "smc91111.h"
 #include <net.h>
 
@@ -1174,7 +1175,11 @@ static void smc_write_phy_register (byte
 #ifndef CONFIG_SMC91111_EXT_PHY
 static void smc_wait_ms(unsigned int ms)
 {
+	/* B E   W A R N E D :
+	 * DON'T EXCEED YOUR WATCHDOG TIMOUT WITH ARGUMENT 'ms' */
+	WATCHDOG_RESET ();
 	udelay(ms*1000);
+	WATCHDOG_RESET ();
 }
 #endif /* !CONFIG_SMC91111_EXT_PHY */
 
diff -purN -x CVS u-boot-20040210cvs-prepare_post/lib_nios/board.c u-boot-20040210cvs-prepare_watchdog/lib_nios/board.c
--- u-boot-20040210cvs-prepare_post/lib_nios/board.c	2004-02-09 23:12:26.000000000 +0000
+++ u-boot-20040210cvs-prepare_watchdog/lib_nios/board.c	2004-02-15 02:57:28.000000000 +0000
@@ -139,13 +139,16 @@ void board_init (void)
 	bd->bi_baudrate	= CONFIG_BAUDRATE;
 
 	for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
+		WATCHDOG_RESET ();
 		if ((*init_fnc_ptr) () != 0) {
 			hang ();
 		}
 	}
 
+	WATCHDOG_RESET ();
 	bd->bi_flashsize = flash_init();
 
+	WATCHDOG_RESET ();
 	mem_malloc_init();
 	malloc_bin_reloc();
 	env_relocate();
@@ -157,12 +160,14 @@ void board_init (void)
 		if (s) s = (*e) ? e + 1 : e;
 	}
 
+	WATCHDOG_RESET ();
 	devices_init();
 	jumptable_init();
 	console_init_r();
 	/*
 	 */
 
+	WATCHDOG_RESET ();
 	interrupt_init ();
 
 #ifdef CONFIG_STATUS_LED
-------------- next part --------------
* Patch by Stephan Linz, 15 Feb 2004
  - prepare WATCHDOG framework support for NIOS targets;
    (add WATCHDOG_RESET() macros)


More information about the U-Boot mailing list