Accessing Real Time Clock Registers and NMI Enable Bit
There are two banks of Real Time Clock (RTC) registers that are located inside the silicon of most Intel® chipsets, including the Intel® EP0579 and Intel® System Controller Hub US15W chipset components. The registers are accessed via I/O addresses 0x70-0x77. The bit at 0x70 also happens to be the NMI Enable bit. These registers are commonly accessed by BIOS, operating systems, and sometimes custom applications. Accessing these registers, however, is not trivial. These registers are aliased in various ways depending on which RTC register bank is being accessed. Additionally, the chipset must be put in a different mode called Alt-Access Mode in order to successfully read some of the registers in some of the modes.
This paper will discuss the full process software needs to follow to successfully access these registers. It will also provide some sample code showing the necessary steps software needs to take in order to successfully read and write to these registers.
The simplest way of reading the RTC registers is to use the register pair located at I/O locations 0x74 and 0x75 to access the standard bank and the register pair located at I/O locations 0x72 and 0x73 to access the extended bank. The NMI Enable bit nominally located at 0x70 is best accessed ONLY when the chipset is put into Alt-Access Mode. This guarantees successful read and write cycles regardless of the settings of the other registers.
Read the full Accessing Real Time Clock Registers and NMI Enable Bit White Paper.