[U-Boot] Coldfire: MCF5271: Periodic HW watchdog petting and sleep function does not work.
Richard Retanubun
RichardRetanubun at RuggedCom.com
Thu Mar 19 22:15:09 CET 2009
Richard Retanubun wrote:
> Hi TC,
>
> TC Liew wrote:
>> Richard,
>>
>> Is there a purpose that you used DTIMER 3 but not 1 or 2? FYI: DTIMER3
>> is currently used for system time, DTIMER0 is currently used for
>> udelay() in u-boot.
>>
>> You can change the u-boot 5271's system timer in
>> include/asm-m68k/immap.h.
>> #define CONFIG_SYS_TMR_BASE (MMAP_DTMR1)
>> #define CONFIG_SYS_TMRINTR_NO (INT0_LO_DTMR1)
>> #define CONFIG_SYS_TMRINTR_MASK (INTC_IPRL_INT20)
>>
>> Regards,
>> TsiChung
>
Hi TC,
Sorry for the long-delay on this issue, I got tasked with other stuff,
but thanks to your hint from the last e-mail,
I think I might have found the root-cause to the problem.
In include/asm-m68k/immap.h.
#ifdef CONFIG_M5271
#include <asm/immap_5271.h>
#include <asm/m5271.h>
#define CONFIG_SYS_FEC0_IOBASE (MMAP_FEC)
#define CONFIG_SYS_UART_BASE (MMAP_UART0 + (CONFIG_SYS_UART_PORT * 0x40))
/* Timer */
#ifdef CONFIG_MCFTMR
#define CONFIG_SYS_UDELAY_BASE (MMAP_DTMR0)
#define CONFIG_SYS_TMR_BASE (MMAP_DTMR3)
#define CONFIG_SYS_TMRPND_REG (((volatile int0_t *)(CONFIG_SYS_INTR_BASE))->iprl0)
#define CONFIG_SYS_TMRINTR_NO (INT0_LO_DTMR3)
#define CONFIG_SYS_TMRINTR_MASK (INTC_IPRL_INT22)
#define CONFIG_SYS_TMRINTR_PEND (CONFIG_SYS_TMRINTR_MASK)
#define CONFIG_SYS_TMRINTR_PRI (0) /* Level must include inorder to work */
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#define CONFIG_SYS_TIMER_PRESCALER (((gd->bus_clk / 1000000) - 1) << 8)
#endif
According to MCF5271 RefMan Rev 2 (07/2006) page 13-12,
I think this means that the interrupt, although unmasked, have a level 0, priority 0,
which essentially disables it.
What should be the proper value? (0x09) will make it level 1, priority 1, is this ok?
Or am I chasing the wrong rabbit?
Thanks for your time
- Richard
More information about the U-Boot
mailing list