Real time clock seems stuck

Wolfgang Denk wd at denx.de
Fri Nov 1 00:04:14 EST 2002


In message <C6D44AA99ECEB540A5498F15F92DA07D228E3C at amperion01.amperion.com> you wrote:
>
> You may be loading the code too low.  See the comments for the
> CFG_BOOTMAPSZ parameter in CONFIG_WALNUT405.h and cmd_bootm.c.  Try
> loading at 0x800000 instead.

No; loading at 400000 (= 4 MB) leaves enough room for the  kernel  to
uncompress; also, the kernel is booting fine until it get's stuck.

> > Kernel command line: console=ttyS0,9600 root=/dev/ram
> > Warning: real time clock seems stuck!

This is a common problem on boards that don't have a RTC at  all,  or
only  one which becomes available only later during the boot process,
for example after loading the I2C drivers.

You can find a fix in rev. 1.6 of kernel/time.c in the  2.4.4  source
tree  on  our  CVS  server;  here is the relevant pert (omitting many
lines  that  only  contain  white  space  changes  due  to   changing
indentation):


Index: kernel/time.c
===================================================================
RCS file: /cvsroot/linux-2.4/arch/ppc/kernel/time.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -w -r1.5 -r1.6
--- kernel/time.c       16 Apr 2001 19:29:07 -0000      1.5
+++ kernel/time.c       11 Jun 2002 22:05:26 -0000      1.6
@@ -310,6 +310,7 @@
         * makes things more complex. Repeatedly read the RTC until the
         * next second boundary to try to achieve some precision...
         */
+       if (ppc_md.get_rtc_time) {
        stamp = get_native_tbl();
        sec = ppc_md.get_rtc_time();
        elapsed = 0;
@@ -331,6 +332,8 @@
        /* No update now, we just read the time from the RTC ! */
        last_rtc_update = xtime.tv_sec;
        write_unlock_irqrestore(&xtime_lock, flags);
+       }
+
        /* Not exact, but the timer interrupt takes care of this */
        set_dec(tb_ticks_per_jiffy);


Then make sure that your board sets ppc_md.get_rtc_time to NULL.

Best regards,

Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Am I your nanny? The kernel is there to support  user  programs,  but
it's a _resource_ handler, not a baby feeder.     - Linus Torvalds in
      <Pine.LNX.3.91.960425074845.22041C-100000 at linux.cs.Helsinki.FI>

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list