9

The RTCs of x86 PCs commonly include some amount of general purpose NVRAM, e.g. the DS12885 has 144 bytes general purpose (GP) NVRAM. The ACPI Specification specifies some RTC also with GP NVRAM, perhaps for backwards compatibility reasons. Even newer RTCs designs such as the Intel PIIX4 still contain GP NVRAM (i.e. 144 bytes + 128 bytes, apparently).

What was the original use case for these extra GP NVRAM bytes?

And are they still used by contemporary operating systems?

In contrast, RTCs commonly used in the embedded space (such as the PCF8523 and DS3231) doesn't come with GP NVRAM, but instead include a calibration offset register (which PC style RTCs don't include).

1 Answer 1

12

The IBM PC AT came with Motorola MC146818A RTC chip.

In addition to just providing the registers for reading time, it contains battery backed CMOS RAM for storing user data. On the PC AT that means the BIOS configuration settings, such as which type of hard drive is present in the system.

So the NVRAM is used by BIOS, not by any OS.

Later on compatible RTC chips with more memory appeared, and more settings can be stored, such as from which drive to boot first, or memory latency settings.

The other chips you mention only have timekeeping registers. Some other I2C bus RTCs do implement NVRAM for storing user data.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .