qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [RFC PATCH v2 03/12] pc: make pic configurable


From: Chao Peng
Subject: [Qemu-devel] [RFC PATCH v2 03/12] pc: make pic configurable
Date: Thu, 25 Aug 2016 06:14:56 -0400

Signed-off-by: Chao Peng <address@hidden>
---
 hw/i386/pc.c         |  1 +
 hw/i386/pc_q35.c     | 21 ++++++++++++---------
 include/hw/i386/pc.h |  2 ++
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 99fb9aa..ea81283 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -2193,6 +2193,7 @@ static void pc_machine_initfn(Object *obj)
 
     PC_MACHINE_DEFINE_PROP_BOOL(pcms, PC_MACHINE_SMBUS, smbus, true);
     PC_MACHINE_DEFINE_PROP_BOOL(pcms, PC_MACHINE_SATA, sata, true);
+    PC_MACHINE_DEFINE_PROP_BOOL(pcms, PC_MACHINE_PIC, pic, true);
 }
 
 static void pc_machine_reset(void)
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 88da970..1a961cc 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -202,17 +202,20 @@ static void pc_q35_init(MachineState *machine)
     pci_bus_set_route_irq_fn(host_bus, ich9_route_intx_pin_to_irq);
     isa_bus = ich9_lpc->isa_bus;
 
-    if (kvm_pic_in_kernel()) {
-        i8259 = kvm_i8259_init(isa_bus);
-    } else if (xen_enabled()) {
-        i8259 = xen_interrupt_controller_init();
-    } else {
-        i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq());
-    }
+    if (pcms->pic) {
+        if (kvm_pic_in_kernel()) {
+            i8259 = kvm_i8259_init(isa_bus);
+        } else if (xen_enabled()) {
+            i8259 = xen_interrupt_controller_init();
+        } else {
+            i8259 = i8259_init(isa_bus, pc_allocate_cpu_irq());
+        }
 
-    for (i = 0; i < ISA_NUM_IRQS; i++) {
-        gsi_state->i8259_irq[i] = i8259[i];
+        for (i = 0; i < ISA_NUM_IRQS; i++) {
+            gsi_state->i8259_irq[i] = i8259[i];
+        }
     }
+
     if (pcmc->pci_enabled) {
         ioapic_init_gsi(gsi_state, "q35");
     }
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index f5be478..d7972ea 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -79,6 +79,7 @@ struct PCMachineState {
 
     bool smbus;
     bool sata;
+    bool pic;
 };
 
 #define PC_MACHINE_ACPI_DEVICE_PROP "acpi-device"
@@ -89,6 +90,7 @@ struct PCMachineState {
 #define PC_MACHINE_NVDIMM           "nvdimm"
 #define PC_MACHINE_SMBUS            "smbus"
 #define PC_MACHINE_SATA             "sata"
+#define PC_MACHINE_PIC              "pic"
 
 /**
  * PCMachineClass:
-- 
1.8.3.1




reply via email to

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