On 10/12/2015 15:08, Laszlo Ersek wrote: > > The RTC CMOS RAM index to the century of data value (hundred and > thousand year decimals). If this field contains a zero, then the > RTC centenary feature is not supported. If this field has a > non-zero value, then this field contains an index into RTC RAM > space that OSPM can use to program the centenary field. > > Since the i440fx and Q35 machine types of the i386/x86_64 targets always > include the RTC device -- rtc_init() --, and said RTC device supports > the "centenary feature" -- see RTC_CENTURY in "hw/timer/mc146818rtc.c" > --, I think the fadt_setup() function should set fadt->century to > RTC_CENTURY. > > Do you guys agree?
Yes. > If so, should 2.5 and earlier machine types be shielded from this change? I think this shouldn't be necessary. Paolo > Currently the field is left at zero: > > [06Ch 0108 1] RTC Century Index : 00 > > which -- according to analysis done by Ruiyu Ni at Intel -- should cause > Linux and Windows 8+ to think the RTC centenary feature is unavailable, > and cause Windows 7 to (incorrectly) assume that the offset to use is > 0x32. (Which happens to be the right value, but Windows 7 is wrong to > assume anything at all). > > Fixing this would inform Linux and Windows 8+ about the right > capabilities of the hardware, plus retrofit the FADT to Windows 7's > behavior.
