Kevin O'Connor wrote:
Also Intel ICH7 Family Datasheet, chapter 5.8 states:
Programming the counter to anything other than Mode 2 will result in undefined behavior for the REF_TOGGLE bit.
Failing to have the timer 1 configured indeed causes affected OSes to freeze during the boot.
Thanks. In general, I don't see an issue with initializing standard hardware.
While I agree that this change is needed somewhere, doesn't PIT initialization actually belong in coreboot?
However, a change like this could have a subtle impact on existing installations.
I don't think it will. Counter 1 should be running but is not.
Programs that expect it to be running currently hang.
Per the ICH6 datasheet, counter 1 output is not connected to any interrupt controller input, although I do vaguely remember using IRQ 1 interrupts which occured at a higher rate than IRQ 0 on AT hardware.
ICH6 datasheet also says "A new initial count may be written to a counter at any time without affecting the counter's programmed mode. Counting is affected as described in the mode definitions."
So any programs that would reconfigure the RAM refresh request signal counter (I think highly unlikely) don't care if it's already running.
Finally, have you found any documents that describe how timer1 is intended to be configured on legacy systems?
Hm, what qualifies as legacy systems? The ICH7 datasheet was quoted, ICH6 datasheet concurs. Yet another reference is Ralf Brown's interrupt list, mentioning XT and AT:
--8<-- PORTS.LST ----------P0040005F-------------------------- PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254) Notes: XT & AT use ports 40h-43h; PS/2 uses ports 40h, 42h-44h, and 47h the counter chip is driven with a 1.193 MHz clock (1/4 of the original PC's 4.77 MHz CPU clock) SeeAlso: PORT 0044h,PORT 0048h
0040 RW PIT counter 0, counter divisor (XT, AT, PS/2) Used to keep the system time; the default divisor of (1)0000h produces the 18.2Hz clock tick. 0041 RW PIT counter 1, RAM refresh counter (XT, AT) don't set below 3 on PCs (default 12h), and don't mess with this counter at all unless you really know what you're doing.... -->8--