[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] setting fadt->century
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] setting fadt->century |
Date: |
Thu, 10 Dec 2015 15:17:32 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
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.