qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [Bochs-developers] [PATCH v3 2/6] Add S3 state to DSDT.


From: Sebastian Herbszt
Subject: [Qemu-devel] Re: [Bochs-developers] [PATCH v3 2/6] Add S3 state to DSDT. Handleresume event in the BIOS.
Date: Sat, 15 Nov 2008 18:43:44 +0100

Gleb Natapov wrote:
@@ -2024,6 +2078,21 @@ void rombios32_init(void)

    smp_probe();

+    find_bios_table_area();
+
+    if (*shutdown_flag == 0xfe) {
+        *s3_resume_vector = find_resume_vector();
+        if (!*s3_resume_vector) {
+         BX_INFO("This is S3 resume but wakeup vector is NULL\n");
+        } else {
+         BX_INFO("S3 resume vector %p\n", *s3_resume_vector);
+            /* redirect bios read access to RAM */
+            pci_for_each_device(find_440fx);
+            bios_lock_shadow_ram(); /* bios is already copied */
+            return;
+        }
+    }
+
    pci_bios_init();

    if (bios_table_cur_addr != 0) {

Any reason not to immediately return if the wakeup vector is NULL?

@@ -2092,8 +2100,8 @@ void rombios32_init(uint32_t *s3_resume_
            /* redirect bios read access to RAM */
            pci_for_each_device(find_440fx);
            bios_lock_shadow_ram(); /* bios is already copied */
-            return;
        }
+        return;
    }

    pci_bios_init();


Right now it's

08129025147i[BIOS ] Starting rombios32
08129025685i[BIOS ] Shutdown flag fe
08129026400i[BIOS ] ram_size=0x02000000
08129026920i[BIOS ] Found 1 cpu(s)
08129042926i[BIOS ] bios_table_addr: 0x000fb8d8 end=0x000fcc00
08129043418i[BIOS ] addr: fb8e0
...
08129190123i[BIOS ] addr: fcbf0
08129190427i[BIOS ] not found!
08129191319i[BIOS ] This is S3 resume but wakeup vector is NULL
08129191563i[PCI  ] 440FX PMC write to PAM register 59 (TLB Flush)
08129519297i[PCI  ] 440FX PMC write to PAM register 59 (TLB Flush)
08129847706i[P2I  ] PCI IRQ routing: PIRQA# set to 0x0b
08129847754i[P2I  ] PCI IRQ routing: PIRQB# set to 0x09
08129847802i[P2I  ] PCI IRQ routing: PIRQC# set to 0x0b
08129847850i[P2I  ] PCI IRQ routing: PIRQD# set to 0x09
08129847865i[P2I  ] write: ELCR2 = 0x0a
08129848774i[BIOS ] PIIX3/PIIX4 init: elcr=00 0a
08129869073i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 
class=0x0600
08129872394i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 
class=0x0601
08129875211i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 
class=0x0101
08129876440i[BIOS ] region 4: 0x0000c000
08129879084i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 
class=0x0680
08129879610i[ACPI ] new irq line = 11
08129902500i[BIOS ] MP table addr=0x000fb9b0 MPC table addr=0x000fb8e0 size=0xd0
08129903706i[BIOS ] SMBIOS table addr=0x000fb9c0
08129906032i[BIOS ] ACPI tables: RSDP addr=0x000fbad0 ACPI DATA addr=0x01ff0000 
size=0x9c0
08129908490i[BIOS ] Firmware waking vector 0x1ff00cc
08129919858i[PCI  ] 440FX PMC write to PAM register 59 (TLB Flush)
08129920699i[BIOS ] bios_table_cur_addr: 0x000fbaf4
08129923802i[BIOS ] S3 resume called 00fe 0x00000000
08129948224p[BIOS ] >>PANIC<< Returned from s3_resume.

In any case we bail out in s3_resume() and panic. But if we don' return and let
rombios_init() continue the ACPI tables get recreated which could make debugging
a bit harder since we lose the old state.

- Sebastian





reply via email to

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