qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] acpi: add reset register to fadt


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC] acpi: add reset register to fadt
Date: Mon, 30 Mar 2015 15:56:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0


On 29/03/2015 19:38, Marcel Apfelbaum wrote:
> On 03/28/2015 05:46 PM, Reza Jelveh wrote:
>> Some operating systems such as FreeBSD and Mac OSX need the
>> reset_register
>> section of the FADT filled to know which port to write to for a system
>> reset.
>>
>> What is the right way to set the reset_val and the reset addr in this
>> case?
>> ---
>>   hw/i386/acpi-build.c | 5 +++++
>>   hw/i386/acpi-defs.h  | 2 ++
>>   2 files changed, 7 insertions(+)
>>
>> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
>> index d0a5c85..21c1453 100644
>> --- a/hw/i386/acpi-build.c
>> +++ b/hw/i386/acpi-build.c
>> @@ -361,6 +361,11 @@ static void fadt_setup(AcpiFadtDescriptorRev1
>> *fadt, AcpiPmInfo *pm)
>>                                 (1 << ACPI_FADT_F_SLP_BUTTON) |
>>                                 (1 << ACPI_FADT_F_RTC_S4));
>>       fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_USE_PLATFORM_CLOCK);
>> +    fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_RESET_REG_SUP);
>> +    fadt->reset_val = 0xf;
>> +    fadt->reset_reg.address_space_id   = aml_system_io;
>> +    fadt->reset_reg.register_bit_width = 8;
>> +    fadt->reset_reg.address            = ICH9_RST_CNT_IOPORT;
> Hi,
> 
> Is this for both PC and Q35? Because I don't think PC has
> ICH9_RST_CNT_IOPORT.

It does (see RCR_IOPORT).

Paolo

> Thanks,
> Marcel
> 
>>       /* APIC destination mode ("Flat Logical") has an upper limit of
>> 8 CPUs
>>        * For more than 8 CPUs, "Clustered Logical" mode has to be used
>>        */
>> diff --git a/hw/i386/acpi-defs.h b/hw/i386/acpi-defs.h
>> index c4468f8..960c833 100644
>> --- a/hw/i386/acpi-defs.h
>> +++ b/hw/i386/acpi-defs.h
>> @@ -132,6 +132,8 @@ struct AcpiFadtDescriptorRev1
>>       uint8_t  reserved4a;             /* Reserved */
>>       uint8_t  reserved4b;             /* Reserved */
>>       uint32_t flags;
>> +    Acpi20GenericAddress reset_reg;
>> +    uint8_t reset_val;
>>   } QEMU_PACKED;
>>   typedef struct AcpiFadtDescriptorRev1 AcpiFadtDescriptorRev1;
>>
>>
> 
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]