Starting the real time clock on virgin systems
kevinh at ispiri.com
Mon Dec 9 19:06:00 CET 2002
First I'd like to describe a problem I've encountered:
I have a virgin motherboard that has never been powered up before. i.e. this
board was not manufactured elsewhere and a 'standard' BIOS has never been
used on it.
When booting this board I discovered an interesting problem: the boot would
hang when the "hwclock" tool was invoked by /etc/rcS.d/<some script that
reads the rtc>.
The underlying problem is that this common linux utility is reading the RTC
via the standard IO ports 70-71. Within this RTC window all of the dallas
semiconductor RTC clones use a few bits in register 0x0a to enable the clock
when power is down. The default values of these bits do not enable the clock
- presumably to avoid draining the battery until the boards are first placed
I've modified my version of linuxbios to ensure that these bits are set to
enable the RTC updates. My question is, where is the best place to make this
1) In some non linuxbios component (i.e. some little app run at boot time)
2) In linuxbios, but restricted to my mainboard.
3) In linuxbios, but in 'common' code that applies to all intel boards.
I'm in favor of option 3, but I thought I'd ask first. I think this problem
would apply to any board. The reason we haven't seen it before is that most
folks are running linux bios on boards that once had a standard bios. The
standard bios has already 'activated' the RTC updates.
What do you think?
More information about the coreboot