[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RESEND PATCH v9 2/4] x86: use new method to correct reset
From: |
Zhu Guihua |
Subject: |
[Qemu-devel] [RESEND PATCH v9 2/4] x86: use new method to correct reset sequence |
Date: |
Wed, 19 Aug 2015 17:36:30 +0800 |
Something must be occur during reset of the X86 platform in a specific
order. For example, the apic reset should be after some devices (such
as hpet, rtc) reset, so that the apic register could be set to default
values.
This patch uses the new QEMUMachine reset method to solve the above
problem, ensuring the various reset happen in the correct order.
Signed-off-by: Zhu Guihua <address@hidden>
---
hw/i386/pc.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 8b7dbe5..0e83dc9 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1929,6 +1929,22 @@ static void pc_machine_initfn(Object *obj)
NULL, &error_abort);
}
+static void pc_machine_reset(void)
+{
+ CPUState *cs;
+ X86CPU *cpu;
+
+ qemu_devices_reset();
+
+ CPU_FOREACH(cs) {
+ cpu = X86_CPU(cs);
+
+ if (cpu->apic_state) {
+ device_reset(cpu->apic_state);
+ }
+ }
+}
+
static unsigned pc_cpu_index_to_socket_id(unsigned cpu_index)
{
unsigned pkg_id, core_id, smt_id;
@@ -1949,6 +1965,7 @@ static void pc_machine_class_init(ObjectClass *oc, void
*data)
mc->default_boot_order = "cad";
mc->hot_add_cpu = pc_hot_add_cpu;
mc->max_cpus = 255;
+ mc->reset = pc_machine_reset;
hc->plug = pc_machine_device_plug_cb;
hc->unplug_request = pc_machine_device_unplug_request_cb;
hc->unplug = pc_machine_device_unplug_cb;
--
1.9.3
- [Qemu-devel] [RESEND PATCH v9 0/4] remove icc bus/bridge, Zhu Guihua, 2015/08/19
- [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Zhu Guihua, 2015/08/19
- Re: [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Eduardo Habkost, 2015/08/21
- Re: [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Paolo Bonzini, 2015/08/24
- Re: [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Peter Maydell, 2015/08/24
- Re: [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Eduardo Habkost, 2015/08/26
- Re: [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Paolo Bonzini, 2015/08/26
- Re: [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Eduardo Habkost, 2015/08/26
- Re: [Qemu-devel] [RESEND PATCH v9 1/4] apic: map APIC's MMIO region at each CPU's address space, Zhu Guihua, 2015/08/27
[Qemu-devel] [RESEND PATCH v9 2/4] x86: use new method to correct reset sequence,
Zhu Guihua <=
[Qemu-devel] [RESEND PATCH v9 3/4] cpu/apic: drop icc bus/bridge, Zhu Guihua, 2015/08/19
[Qemu-devel] [RESEND PATCH v9 4/4] icc_bus: drop the unused files, Zhu Guihua, 2015/08/19