[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] firmware, qemu: Change ACPI IO values to match QEMU BIOS
# HG changeset patch # User Anthony Perard <anthony.perard@xxxxxxxxxx> # Date 1289325835 0 # Node ID a564339357047b729c4eb61a5a1e9a00f4e52b13 # Parent c553d3035fd5d9c5d254102bd4001581356710de firmware, qemu: Change ACPI IO values to match QEMU BIOS 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. [ Also, in this patch, update QEMU_TAG to the qemu-xen revision with the corresponding qemu change. -iwj ] Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- Config.mk | 6 +++--- tools/firmware/hvmloader/acpi/dsdt.asl | 12 ++++++------ tools/firmware/hvmloader/hvmloader.c | 11 +++++++++++ 3 files changed, 20 insertions(+), 9 deletions(-) diff -r c553d3035fd5 -r a56433935704 Config.mk --- a/Config.mk Tue Nov 09 17:43:12 2010 +0000 +++ b/Config.mk Tue Nov 09 18:03:55 2010 +0000 @@ -185,9 +185,9 @@ endif # CONFIG_QEMU ?= ../qemu-xen.git CONFIG_QEMU ?= $(QEMU_REMOTE) -QEMU_TAG ?= 0442ec23f9efc4f8f9259351f612194f8f42900c -# Mon Nov 8 17:09:54 2010 +0000 -# stubdom: fix handing of dependency files +QEMU_TAG ?= ce3b7ce68426ea6249bb411f26b376d459c45450 +# Tue Nov 9 18:01:13 2010 +0000 +# piix4acpi, xen: change in ACPI to match the change in the BIOS. # Optional components XENSTAT_XENTOP ?= y diff -r c553d3035fd5 -r a56433935704 tools/firmware/hvmloader/acpi/dsdt.asl --- a/tools/firmware/hvmloader/acpi/dsdt.asl Tue Nov 09 17:43:12 2010 +0000 +++ b/tools/firmware/hvmloader/acpi/dsdt.asl Tue Nov 09 18:03:55 2010 +0000 @@ -33,22 +33,22 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, */ 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 -r c553d3035fd5 -r a56433935704 tools/firmware/hvmloader/hvmloader.c --- a/tools/firmware/hvmloader/hvmloader.c Tue Nov 09 17:43:12 2010 +0000 +++ b/tools/firmware/hvmloader/hvmloader.c Tue Nov 09 18:03:55 2010 +0000 @@ -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 ) @@ -763,8 +767,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-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |