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.

Reply via email to