From 3ea8749da4a479441563b5edb9d5ad20c690311a Mon Sep 17 00:00:00 2001 From: aurel32 Date: Mon, 28 Apr 2008 08:54:51 +0000 Subject: [PATCH] BIOS: Reenable processor SSDT generation. Don't advertise ACPI C2 or C3 support. Thanks to Avi Kivity for the pointer. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4275 c046a42c-6fe2-441c-8c8c-71466251a162 --- pc-bios/bios.bin | Bin 131072 -> 131072 bytes pc-bios/bios.diff | 81 ++++++++++++++++++++++------------------------ 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin index 408dc7737eb9e1478646e23eb615e4cc39329284..e34914661c7f23b26b32360cd354335f70795e58 100644 GIT binary patch delta 2348 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 12; writel(APIC_BASE + APIC_ICR_LOW, 0x000C4600 | sipi_vector); @@ -158,42 +182,15 @@ diff -u -d -p -r1.26 rombios32.c smp_cpus = readw((void *)CPU_COUNT_ADDR); } -@@ -1081,7 +1086,7 @@ struct rsdp_descriptor /* Root S - struct rsdt_descriptor_rev1 - { - ACPI_TABLE_HEADER_DEF /* ACPI common table header */ -- uint32_t table_offset_entry [3]; /* Array of pointers to other */ -+ uint32_t table_offset_entry [2]; /* Array of pointers to other */ - /* ACPI tables */ - }; - -@@ -1335,8 +1340,8 @@ void acpi_bios_init(void) - struct fadt_descriptor_rev1 *fadt; - struct facs_descriptor_rev1 *facs; - struct multiple_apic_table *madt; -- uint8_t *dsdt, *ssdt; -- uint32_t base_addr, rsdt_addr, fadt_addr, addr, facs_addr, dsdt_addr, ssdt_addr; -+ uint8_t *dsdt; -+ uint32_t base_addr, rsdt_addr, fadt_addr, addr, facs_addr, dsdt_addr; - uint32_t acpi_tables_size, madt_addr, madt_size; - int i; - -@@ -1370,10 +1375,6 @@ void acpi_bios_init(void) - dsdt = (void *)(addr); - addr += sizeof(AmlCode); - -- ssdt_addr = addr; -- ssdt = (void *)(addr); -- addr += acpi_build_processor_ssdt(ssdt); -- - addr = (addr + 7) & ~7; - madt_addr = addr; - madt_size = sizeof(*madt) + -@@ -1403,7 +1404,6 @@ void acpi_bios_init(void) - memset(rsdt, 0, sizeof(*rsdt)); - rsdt->table_offset_entry[0] = cpu_to_le32(fadt_addr); - rsdt->table_offset_entry[1] = cpu_to_le32(madt_addr); -- rsdt->table_offset_entry[2] = cpu_to_le32(ssdt_addr); - acpi_build_table_header((struct acpi_table_header *)rsdt, - "RSDT", sizeof(*rsdt), 1); - +@@ -1423,9 +1428,8 @@ void acpi_bios_init(void) + fadt->pm1_evt_len = 4; + fadt->pm1_cnt_len = 2; + fadt->pm_tmr_len = 4; +- fadt->plvl2_lat = cpu_to_le16(50); +- fadt->plvl3_lat = cpu_to_le16(50); +- fadt->plvl3_lat = cpu_to_le16(50); ++ fadt->plvl2_lat = cpu_to_le16(0x0fff); // C2 state not supported ++ fadt->plvl3_lat = cpu_to_le16(0x0fff); // C3 state not supported + /* WBINVD + PROC_C1 + PWR_BUTTON + SLP_BUTTON + FIX_RTC */ + fadt->flags = cpu_to_le32((1 << 0) | (1 << 2) | (1 << 4) | (1 << 5) | (1 << 6)); + acpi_build_table_header((struct acpi_table_header *)fadt, "FACP", -- 2.47.3