Looks okay. This can be checked in at the same time as the qemu patch, plus
QEMU_TAG update.
Acked-by: Keir Fraser <keir@xxxxxxx>
-- Keir
On 09/11/2010 15:34, "anthony.perard@xxxxxxxxxx" <anthony.perard@xxxxxxxxxx>
wrote:
> From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
>
> As part of the QEMU/Xen merge, this patch comes to change the value of
> sleep states and add some information in the PCI registers to match the
> implementation of the BIOS of QEMU.
>
> It also does a hypercall (HVM_PARAM_ACPI_IOPORTS_LOCATION) that tell the
> Xen to use the new Port I/O instead of the old one.
>
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> ---
> tools/firmware/hvmloader/acpi/dsdt.asl | 12 ++++++------
> tools/firmware/hvmloader/hvmloader.c | 11 +++++++++++
> 2 files changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/tools/firmware/hvmloader/acpi/dsdt.asl
> b/tools/firmware/hvmloader/acpi/dsdt.asl
> index 03799d3..ea8e324 100644
> --- a/tools/firmware/hvmloader/acpi/dsdt.asl
> +++ b/tools/firmware/hvmloader/acpi/dsdt.asl
> @@ -33,22 +33,22 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0)
> */
> Name (\_S3, Package (0x04)
> {
> - 0x05, /* PM1a_CNT.SLP_TYP */
> - 0x05, /* PM1b_CNT.SLP_TYP */
> + 0x01, /* PM1a_CNT.SLP_TYP */
> + 0x01, /* PM1b_CNT.SLP_TYP */
> 0x0, /* reserved */
> 0x0 /* reserved */
> })
> Name (\_S4, Package (0x04)
> {
> - 0x06, /* PM1a_CNT.SLP_TYP */
> - 0x06, /* PM1b_CNT.SLP_TYP */
> + 0x00, /* PM1a_CNT.SLP_TYP */
> + 0x00, /* PM1b_CNT.SLP_TYP */
> 0x00, /* reserved */
> 0x00 /* reserved */
> })
> Name (\_S5, Package (0x04)
> {
> - 0x07, /* PM1a_CNT.SLP_TYP */
> - 0x07, /* PM1b_CNT.SLP_TYP */
> + 0x00, /* PM1a_CNT.SLP_TYP */
> + 0x00, /* PM1b_CNT.SLP_TYP */
> 0x00, /* reserved */
> 0x00 /* reserved */
> })
> diff --git a/tools/firmware/hvmloader/hvmloader.c
> b/tools/firmware/hvmloader/hvmloader.c
> index c4c5ddc..bf23f80 100644
> --- a/tools/firmware/hvmloader/hvmloader.c
> +++ b/tools/firmware/hvmloader/hvmloader.c
> @@ -31,6 +31,7 @@
> #include "option_rom.h"
> #include <xen/version.h>
> #include <xen/hvm/params.h>
> +#include <xen/hvm/ioreq.h>
> #include <xen/memory.h>
>
> asm (
> @@ -222,9 +223,12 @@ static void pci_setup(void)
> /* PIIX4 ACPI PM. Special device with special PCI config space.
> */
> ASSERT((vendor_id == 0x8086) && (device_id == 0x7113));
> pci_writew(devfn, 0x20, 0x0000); /* No smb bus IO enable */
> + pci_writew(devfn, 0xd2, 0x0000); /* No smb bus IO enable */
> pci_writew(devfn, 0x22, 0x0000);
> pci_writew(devfn, 0x3c, 0x0009); /* Hardcoded IRQ9 */
> pci_writew(devfn, 0x3d, 0x0001);
> + pci_writel(devfn, 0x40, ACPI_PM1A_EVT_BLK_ADDRESS | 1);
> + pci_writeb(devfn, 0x80, 0x01); /* enable PM io space */
> break;
> case 0x0101:
> if ( vendor_id == 0x8086 )
> @@ -759,8 +763,15 @@ int main(void)
>
> if ( hvm_info->acpi_enabled )
> {
> + struct xen_hvm_param p = {
> + .domid = DOMID_SELF,
> + .index = HVM_PARAM_ACPI_IOPORTS_LOCATION,
> + .value = 1,
> + };
> +
> printf("Loading ACPI ...\n");
> acpi_build_tables();
> + hypercall_hvm_op(HVMOP_set_param, &p);
> }
>
> init_vm86_tss();
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|