On Fri, 11 Jul 2014 10:12:36 +0400 Antony Pavlov <antonynpavlov@xxxxxxxxx> wrote: > On Fri, 11 Jul 2014 07:37:38 +0200 > Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > > > On Thu, Jul 10, 2014 at 12:33:14PM +0400, Antony Pavlov wrote: > > > This patchseries imports RTC support from linux-3.15. > > > > > > User can use 'hwclock' command to see realtime clock readout. > > > > > > Tested with DS1307. > > > > > > TODOs: > > > > > > * rtc_set_time() is not realized; > > > * ds1307_set_time() is not tested; > > > * bcd lib is compiled in even if rtc support is disabled (as linux does); > > > we can make it optional; > > ... > I have an idea to put epoch offset (number of years into AD to which a zero year value > in the Hardware Clock refers) into "global.epoch" variable and add corresponding > Kconfig option for default epoch value. I was wrong. Hmm hwclock receives time value in the 'struct tm' (e.g. see linux.git/include/linux/time.h) /* * Similar to the struct tm in userspace <time.h>, but it needs to be here so * that the kernel source is self contained. */ struct tm { /* * the number of seconds after the minute, normally in the range * 0 to 59, but can be up to 60 to allow for leap seconds */ int tm_sec; /* the number of minutes after the hour, in the range 0 to 59*/ int tm_min; /* the number of hours past midnight, in the range 0 to 23 */ int tm_hour; /* the day of the month, in the range 1 to 31 */ int tm_mday; /* the number of months since January, in the range 0 to 11 */ int tm_mon; /* the number of years since 1900 */ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ long tm_year; /* the number of days since Sunday, in the range 0 to 6 */ int tm_wday; /* the number of days since January 1, in the range 0 to 365 */ int tm_yday; }; Here is a quote from read_hardware_clock() (see util-linux-2.20.1/hwclock/hwclock.c) printf(_ ("Hw clock time : %4d/%.2d/%.2d %.2d:%.2d:%.2d = " "%ld seconds since 1969\n"), tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, (long)*systime_p); So in linux hardware clock epoch is always "1900". -- Best regards, Antony Pavlov _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox