From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo van Lil Date: Fri, 02 Oct 2009 14:12:43 +0200 Subject: [U-Boot] [PATCH] CFI Driver: Reset watchdog timer after each flash operation In-Reply-To: <200910021306.38589.sr@denx.de> References: <20091002103417.GA9767@zaphod.peppercon.de> <200910021306.38589.sr@denx.de> Message-ID: <4AC5EE3B.5090200@gmx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 10/02/2009 01:06 PM, Stefan Roese wrote: >> The CFI driver does not reset the device's watchdog, so long-running >> flash operations will cause the watchdog timer to expire. A comment in >> flash_status_check() suggests that udelay() is expected to reset the >> watchdog, but I can't find any architecture where it does. > > PPC does it this way. udelay() in lib_ppc/time.c calls wait_ticks(). And here > you will find WATCHDOG_RESET. You're right. Seems to be an exception, though: According to ctags there are 40 separate implementations of udelay(), and the ones in lib_ppc and lib_nios seem to be the only ones that actually do call WATCHDOG_RESET. > Which platform are you using? I support this needs to be fixed in your > platform. I'm using an Atmel AT91-based custom board, and the udelay() function can be found in cpu/arm926ejs/at91/timer.c. Unfortunately there's no central udelay() implementation in lib_arm. Regards, Ingo