
Hi Wolfgang,
from this discussion, I have understood that the problem is that mips code lacks the support interrupts in iv mode. I will try to do something (support of IV modality... for example).
Thanks again,
luigi
Il domenica 14 settembre 2008 17:59:46 Wolfgang Denk ha scritto:
Dear "Luigi 'Comio' Mantellini",
In message 200809141313.51807.luigi.mantellini@idf-hit.com you wrote:
Anyway, I'm not sure that the common infrastructure covers all scenarios. For example in /common/main.c we have the code:
As menrioned before, I'm not so sure about the MIPS implementation, but this is in proiduction use in several PowerPC boards.
int readline_into_buffer (const char *const prompt, char * buffer) { ...
if I enable CONFIG_BOOT_RETRY_TIME or CONFIG_SHOW_ACTIVITY the while loops iterate a call to tstc() to check the presence of a char in the input buffer. If tstc doesn't reset the watchdog (like ns16550 driver in my case) we could have a watchdog timeout.
He. I see what you mean. Well, U-Boot makes no attempts (yet) to implement actual watchdog checking for the U-Boot code itself. We just make sure that the watchdog gets triggered. This is done in the timer interrupt; see "lib_ppc/interrupts.c":
116 void timer_interrupt (struct pt_regs *regs) 117 { ... 126 #if defined(CONFIG_WATCHDOG) || defined (CONFIG_HW_WATCHDOG) 127 if ((timestamp % (CFG_WATCHDOG_FREQ)) == 0) 128 WATCHDOG_RESET (); 129 #endif /* CONFIG_WATCHDOG || CONFIG_HW_WATCHDOG */
So specific watchdog triggering is only necessary for those parts of the code that have to be run with interrupts switched off.
Ok I patched the serial line driver in order to call the WATCHDOG_RESET function... but I will not cover all code flows.
That should not be necessary.
Best regards,
Wolfgang Denk