[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] pc: reject do pc_acpi_init if acpi_enabled
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] pc: reject do pc_acpi_init if acpi_enabled is false |
Date: |
Wed, 15 May 2013 15:44:26 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 |
On 05/15/13 10:54, li guang wrote:
> 在 2013-05-15三的 10:38 +0200,Paolo Bonzini写道:
>> Il 15/05/2013 06:01, liguang ha scritto:
>>> Signed-off-by: liguang <address@hidden>
>>
>> --verbose, please.
>>
>> What problem does this patch fix?
>
> Oh, sorry to be lazy ...
> QEMU's option '-no-acpi' seems does not play
> a correct role, even started with this,
> ACPI tables will also be embedded into BIOS,
> and there's no different between with or without it
> for q35, as i can see.
>
> here, I'm assuming '-no-acpi' is to disable ACPI.
-no-acpi disables a block of code in pc_init1() [hw/i386/pc_piix.c],
namely piix4_pm_init() and smbus_eeprom_init().
pc_acpi_init() loads / exports a default DSDT for the boot firmware. If
the -acpitable switch is passed, then that code doesn't run.
I think disabling PM but keeping the default DSDT from SeaBIOS is a
valid use case; the DSDT seems to contain a bunch of non-PM
functionality (see src/acpi-dsdt*.dsl in SeaBIOS). The "-no-acpi" switch
is likely a misnomer (it should say "-no-acpi-pm" or some such), but in
any case I believe it should not prevent exporting the DSDT.
Currently you can prevent exporting the default DSDT for example with:
-acpitable sig=NONE,data=/dev/null
This will export a table with signature NONE, otherwise qemu-default
ACPI table headers, and no table contents. It will also prevent
pc_acpi_init() from running. See "AcpiTableOptions" in
"qapi-schema.json" and "hw/acpi/core.c".
Thanks,
Laszlo