]> git.proxmox.com Git - qemu.git/commitdiff
hpet: make optional
authorBlue Swirl <blauwirbel@gmail.com>
Sat, 5 Feb 2011 14:35:00 +0000 (14:35 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 12 Feb 2011 09:45:06 +0000 (09:45 +0000)
Ignore failure with hpet device creation.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Makefile.objs
Makefile.target
default-configs/i386-softmmu.mak
default-configs/x86_64-softmmu.mak
hw/hpet.c
hw/pc.c

index dee251a3d410e6b2428bf37ee7af3792c4d1c550..adb584234ecd0323c71a7fe4d5825be7f93df18d 100644 (file)
@@ -195,6 +195,7 @@ hw-obj-$(CONFIG_FDC) += fdc.o
 hw-obj-$(CONFIG_ACPI) += acpi.o acpi_piix4.o
 hw-obj-$(CONFIG_APM) += pm_smbus.o apm.o
 hw-obj-$(CONFIG_DMA) += dma.o
+hw-obj-$(CONFIG_HPET) += hpet.o
 
 # PPC devices
 hw-obj-$(CONFIG_OPENPIC) += openpic.o
index 3cf5ed9055ee57faa7005d3d1ff5d6340962935a..a6c30ddc232b06158f544ea3455266f925f53d4b 100644 (file)
@@ -215,7 +215,7 @@ obj-$(CONFIG_KVM) += ivshmem.o
 obj-i386-y += vga.o
 obj-i386-y += mc146818rtc.o i8259.o pc.o
 obj-i386-y += cirrus_vga.o apic.o ioapic.o piix_pci.o
-obj-i386-y += vmport.o hpet.o applesmc.o
+obj-i386-y += vmport.o applesmc.o
 obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
 obj-i386-y += debugcon.o multiboot.o
 obj-i386-y += pc_piix.o
index 924629354e0b8a68d099e3338a1de1498788f703..3e0eddfd0293d146ade288278bdec26fe7e8dfcc 100644 (file)
@@ -19,3 +19,4 @@ CONFIG_IDE_PIIX=y
 CONFIG_NE2000_ISA=y
 CONFIG_PIIX_PCI=y
 CONFIG_SOUND=y
+CONFIG_HPET=y
index daf8c4854056d94782d32ab53a5ac907db072850..1cc1b61d54579b826c19cf22cb2188b188904237 100644 (file)
@@ -19,3 +19,4 @@ CONFIG_IDE_PIIX=y
 CONFIG_NE2000_ISA=y
 CONFIG_PIIX_PCI=y
 CONFIG_SOUND=y
+CONFIG_HPET=y
index 8fb6811a2cc0eeab4c40082f01595aab467638ea..82a9a21978bff844c11510a72013bb4098e3822a 100644 (file)
--- a/hw/hpet.c
+++ b/hw/hpet.c
@@ -74,8 +74,6 @@ typedef struct HPETState {
     uint8_t  hpet_id;           /* instance id */
 } HPETState;
 
-struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX};
-
 static uint32_t hpet_in_legacy_mode(HPETState *s)
 {
     return s->config & HPET_CFG_LEGACY;
diff --git a/hw/pc.c b/hw/pc.c
index 00fe04e9d7148adedf5c4aaba2048df47008a972..56bf1d63f03bbe213fdb5473bad67427ff800b4a 100644 (file)
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -84,6 +84,7 @@ struct e820_table {
 } __attribute((__packed__, __aligned__(4)));
 
 static struct e820_table e820_table;
+struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX};
 
 void isa_irq_handler(void *opaque, int n, int level)
 {
@@ -1104,12 +1105,14 @@ void pc_basic_device_init(qemu_irq *isa_irq,
     register_ioport_write(0xf0, 1, 1, ioportF0_write, NULL);
 
     if (!no_hpet) {
-        DeviceState *hpet = sysbus_create_simple("hpet", HPET_BASE, NULL);
+        DeviceState *hpet = sysbus_try_create_simple("hpet", HPET_BASE, NULL);
 
-        for (i = 0; i < 24; i++) {
-            sysbus_connect_irq(sysbus_from_qdev(hpet), i, isa_irq[i]);
+        if (hpet) {
+            for (i = 0; i < 24; i++) {
+                sysbus_connect_irq(sysbus_from_qdev(hpet), i, isa_irq[i]);
+            }
+            rtc_irq = qdev_get_gpio_in(hpet, 0);
         }
-        rtc_irq = qdev_get_gpio_in(hpet, 0);
     }
     *rtc_state = rtc_init(2000, rtc_irq);