aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--default-configs/i386-softmmu.mak2
-rw-r--r--default-configs/mips-softmmu.mak2
-rw-r--r--default-configs/mips64-softmmu.mak2
-rw-r--r--default-configs/mips64el-softmmu.mak2
-rw-r--r--default-configs/mipsel-softmmu.mak2
-rw-r--r--default-configs/ppc-softmmu.mak2
-rw-r--r--default-configs/ppc64-softmmu.mak2
-rw-r--r--default-configs/ppcemb-softmmu.mak2
-rw-r--r--default-configs/x86_64-softmmu.mak2
-rw-r--r--hw/Makefile.objs197
-rw-r--r--hw/acpi/Makefile.objs2
-rw-r--r--hw/acpi/core.c (renamed from hw/acpi.c)0
-rw-r--r--hw/acpi/ich9.c (renamed from hw/acpi_ich9.c)0
-rw-r--r--hw/acpi/piix4.c (renamed from hw/acpi_piix4.c)0
-rw-r--r--hw/audio/Makefile.objs16
-rw-r--r--hw/audio/ac97.c (renamed from hw/ac97.c)0
-rw-r--r--hw/audio/adlib.c (renamed from hw/adlib.c)0
-rw-r--r--hw/audio/cs4231a.c (renamed from hw/cs4231a.c)0
-rw-r--r--hw/audio/es1370.c (renamed from hw/es1370.c)0
-rw-r--r--hw/audio/fmopl.c (renamed from hw/fmopl.c)0
-rw-r--r--hw/audio/gus.c (renamed from hw/gus.c)0
-rw-r--r--hw/audio/gusemu_hal.c (renamed from hw/gusemu_hal.c)0
-rw-r--r--hw/audio/gusemu_mixer.c (renamed from hw/gusemu_mixer.c)0
-rw-r--r--hw/audio/hda-codec.c (renamed from hw/hda-audio.c)0
-rw-r--r--hw/audio/intel-hda.c (renamed from hw/intel-hda.c)0
-rw-r--r--hw/audio/lm4549.c (renamed from hw/lm4549.c)0
-rw-r--r--hw/audio/pcspk.c (renamed from hw/pcspk.c)0
-rw-r--r--hw/audio/pl041.c (renamed from hw/pl041.c)0
-rw-r--r--hw/audio/pl041.hx (renamed from hw/pl041.hx)0
-rw-r--r--hw/audio/sb16.c (renamed from hw/sb16.c)0
-rw-r--r--hw/audio/wm8750.c (renamed from hw/wm8750.c)0
-rw-r--r--hw/block/Makefile.objs8
-rw-r--r--hw/block/block.c (renamed from hw/block-common.c)0
-rw-r--r--hw/block/cdrom.c (renamed from hw/cdrom.c)0
-rw-r--r--hw/block/ecc.c (renamed from hw/ecc.c)0
-rw-r--r--hw/block/fdc.c (renamed from hw/fdc.c)0
-rw-r--r--hw/block/hd-geometry.c (renamed from hw/hd-geometry.c)0
-rw-r--r--hw/block/m25p80.c (renamed from hw/m25p80.c)0
-rw-r--r--hw/block/nand.c (renamed from hw/nand.c)0
-rw-r--r--hw/block/pflash_cfi01.c (renamed from hw/pflash_cfi01.c)0
-rw-r--r--hw/block/pflash_cfi02.c (renamed from hw/pflash_cfi02.c)0
-rw-r--r--hw/block/xen_disk.c (renamed from hw/xen_disk.c)0
-rw-r--r--hw/bt/Makefile.objs3
-rw-r--r--hw/bt/core.c (renamed from hw/bt.c)0
-rw-r--r--hw/bt/hci-csr.c (renamed from hw/bt-hci-csr.c)0
-rw-r--r--hw/bt/hci.c (renamed from hw/bt-hci.c)0
-rw-r--r--hw/bt/hid.c (renamed from hw/bt-hid.c)0
-rw-r--r--hw/bt/l2cap.c (renamed from hw/bt-l2cap.c)0
-rw-r--r--hw/bt/sdp.c (renamed from hw/bt-sdp.c)0
-rw-r--r--hw/char/Makefile.objs10
-rw-r--r--hw/char/cadence_uart.c (renamed from hw/cadence_uart.c)0
-rw-r--r--hw/char/escc.c (renamed from hw/escc.c)0
-rw-r--r--hw/char/ipack.c (renamed from hw/ipack.c)0
-rw-r--r--hw/char/ipoctal232.c (renamed from hw/ipoctal232.c)0
-rw-r--r--hw/char/parallel.c (renamed from hw/parallel.c)0
-rw-r--r--hw/char/pl011.c (renamed from hw/pl011.c)0
-rw-r--r--hw/char/serial-isa.c (renamed from hw/serial-isa.c)0
-rw-r--r--hw/char/serial-pci.c (renamed from hw/serial-pci.c)0
-rw-r--r--hw/char/serial.c (renamed from hw/serial.c)0
-rw-r--r--hw/char/tpci200.c (renamed from hw/tpci200.c)0
-rw-r--r--hw/char/virtio-console.c (renamed from hw/virtio-console.c)0
-rw-r--r--hw/char/xen_console.c (renamed from hw/xen_console.c)0
-rw-r--r--hw/char/xilinx_uartlite.c (renamed from hw/xilinx_uartlite.c)0
-rw-r--r--hw/core/Makefile.objs14
-rw-r--r--hw/core/empty_slot.c (renamed from hw/empty_slot.c)0
-rw-r--r--hw/core/irq.c (renamed from hw/irq.c)0
-rw-r--r--hw/core/loader.c (renamed from hw/loader.c)0
-rw-r--r--hw/core/null-machine.c (renamed from hw/null-machine.c)0
-rw-r--r--hw/core/ptimer.c (renamed from hw/ptimer.c)0
-rw-r--r--hw/core/qdev-addr.c (renamed from hw/qdev-addr.c)0
-rw-r--r--hw/core/qdev-properties-system.c (renamed from hw/qdev-properties-system.c)0
-rw-r--r--hw/core/qdev-properties.c (renamed from hw/qdev-properties.c)0
-rw-r--r--hw/core/qdev.c (renamed from hw/qdev.c)0
-rw-r--r--hw/core/stream.c (renamed from hw/stream.c)0
-rw-r--r--hw/core/sysbus.c (renamed from hw/sysbus.c)0
-rw-r--r--hw/display/Makefile.objs13
-rw-r--r--hw/display/ads7846.c (renamed from hw/ads7846.c)0
-rw-r--r--hw/display/cirrus_vga.c (renamed from hw/cirrus_vga.c)0
-rw-r--r--hw/display/g364fb.c (renamed from hw/g364fb.c)0
-rw-r--r--hw/display/jazz_led.c (renamed from hw/jazz_led.c)0
-rw-r--r--hw/display/pl110.c (renamed from hw/pl110.c)0
-rw-r--r--hw/display/ssd0303.c (renamed from hw/ssd0303.c)0
-rw-r--r--hw/display/ssd0323.c (renamed from hw/ssd0323.c)0
-rw-r--r--hw/display/vga-isa-mm.c (renamed from hw/vga-isa-mm.c)0
-rw-r--r--hw/display/vga-isa.c (renamed from hw/vga-isa.c)0
-rw-r--r--hw/display/vga-pci.c (renamed from hw/vga-pci.c)0
-rw-r--r--hw/display/vmware_vga.c (renamed from hw/vmware_vga.c)0
-rw-r--r--hw/display/xenfb.c (renamed from hw/xenfb.c)0
-rw-r--r--hw/dma/Makefile.objs7
-rw-r--r--hw/dma/i82374.c (renamed from hw/i82374.c)0
-rw-r--r--hw/dma/i8257.c (renamed from hw/dma.c)0
-rw-r--r--hw/dma/pl080.c (renamed from hw/pl080.c)0
-rw-r--r--hw/dma/pl330.c (renamed from hw/pl330.c)0
-rw-r--r--hw/dma/puv3_dma.c (renamed from hw/puv3_dma.c)0
-rw-r--r--hw/dma/rc4030.c (renamed from hw/rc4030.c)0
-rw-r--r--hw/dma/xilinx_axidma.c (renamed from hw/xilinx_axidma.c)0
-rw-r--r--hw/gpio/Makefile.objs3
-rw-r--r--hw/gpio/max7310.c (renamed from hw/max7310.c)0
-rw-r--r--hw/gpio/pl061.c (renamed from hw/pl061.c)0
-rw-r--r--hw/gpio/puv3_gpio.c (renamed from hw/puv3_gpio.c)0
-rw-r--r--hw/i2c/Makefile.objs4
-rw-r--r--hw/i2c/core.c (renamed from hw/i2c.c)0
-rw-r--r--hw/i2c/pm_smbus.c (renamed from hw/pm_smbus.c)0
-rw-r--r--hw/i2c/smbus.c (renamed from hw/smbus.c)0
-rw-r--r--hw/i2c/smbus_eeprom.c (renamed from hw/smbus_eeprom.c)0
-rw-r--r--hw/i2c/smbus_ich9.c (renamed from hw/smbus_ich9.c)0
-rw-r--r--hw/i2c/versatile_i2c.c (renamed from hw/versatile_i2c.c)0
-rw-r--r--hw/input/Makefile.objs9
-rw-r--r--hw/input/adb.c (renamed from hw/adb.c)0
-rw-r--r--hw/input/hid.c (renamed from hw/hid.c)0
-rw-r--r--hw/input/lm832x.c (renamed from hw/lm832x.c)0
-rw-r--r--hw/input/pckbd.c (renamed from hw/pckbd.c)0
-rw-r--r--hw/input/pl050.c (renamed from hw/pl050.c)0
-rw-r--r--hw/input/ps2.c (renamed from hw/ps2.c)0
-rw-r--r--hw/input/stellaris_input.c (renamed from hw/stellaris_input.c)0
-rw-r--r--hw/input/tsc2005.c (renamed from hw/tsc2005.c)0
-rw-r--r--hw/input/vmmouse.c (renamed from hw/vmmouse.c)0
-rw-r--r--hw/intc/Makefile.objs5
-rw-r--r--hw/intc/heathrow_pic.c (renamed from hw/heathrow_pic.c)0
-rw-r--r--hw/intc/i8259.c (renamed from hw/i8259.c)0
-rw-r--r--hw/intc/i8259_common.c (renamed from hw/i8259_common.c)0
-rw-r--r--hw/intc/pl190.c (renamed from hw/pl190.c)0
-rw-r--r--hw/intc/puv3_intc.c (renamed from hw/puv3_intc.c)0
-rw-r--r--hw/intc/xilinx_intc.c (renamed from hw/xilinx_intc.c)0
-rw-r--r--hw/isa/Makefile.objs7
-rw-r--r--hw/isa/apm.c (renamed from hw/apm.c)0
-rw-r--r--hw/isa/i82378.c (renamed from hw/i82378.c)0
-rw-r--r--hw/isa/isa-bus.c (renamed from hw/isa-bus.c)0
-rw-r--r--hw/isa/isa_mmio.c (renamed from hw/isa_mmio.c)0
-rw-r--r--hw/isa/pc87312.c (renamed from hw/pc87312.c)0
-rw-r--r--hw/isa/piix4.c (renamed from hw/piix4.c)0
-rw-r--r--hw/misc/Makefile.objs11
-rw-r--r--hw/misc/applesmc.c (renamed from hw/applesmc.c)0
-rw-r--r--hw/misc/arm_l2x0.c (renamed from hw/arm_l2x0.c)0
-rw-r--r--hw/misc/macio/Makefile.objs3
-rw-r--r--hw/misc/macio/cuda.c (renamed from hw/cuda.c)0
-rw-r--r--hw/misc/macio/mac_dbdma.c (renamed from hw/mac_dbdma.c)0
-rw-r--r--hw/misc/macio/macio.c (renamed from hw/macio.c)0
-rw-r--r--hw/misc/max111x.c (renamed from hw/max111x.c)0
-rw-r--r--hw/misc/puv3_pm.c (renamed from hw/puv3_pm.c)0
-rw-r--r--hw/misc/tmp105.c (renamed from hw/tmp105.c)0
-rw-r--r--hw/net/Makefile.objs22
-rw-r--r--hw/net/cadence_gem.c (renamed from hw/cadence_gem.c)0
-rw-r--r--hw/net/dp8393x.c (renamed from hw/dp8393x.c)0
-rw-r--r--hw/net/e1000.c (renamed from hw/e1000.c)0
-rw-r--r--hw/net/eepro100.c (renamed from hw/eepro100.c)0
-rw-r--r--hw/net/lan9118.c (renamed from hw/lan9118.c)0
-rw-r--r--hw/net/mipsnet.c (renamed from hw/mipsnet.c)0
-rw-r--r--hw/net/ne2000-isa.c (renamed from hw/ne2000-isa.c)0
-rw-r--r--hw/net/ne2000.c (renamed from hw/ne2000.c)0
-rw-r--r--hw/net/opencores_eth.c (renamed from hw/opencores_eth.c)0
-rw-r--r--hw/net/pcnet-pci.c (renamed from hw/pcnet-pci.c)0
-rw-r--r--hw/net/pcnet.c (renamed from hw/pcnet.c)0
-rw-r--r--hw/net/rtl8139.c (renamed from hw/rtl8139.c)0
-rw-r--r--hw/net/smc91c111.c (renamed from hw/smc91c111.c)0
-rw-r--r--hw/net/vmware_utils.h (renamed from hw/vmware_utils.h)0
-rw-r--r--hw/net/vmxnet3.c (renamed from hw/vmxnet3.c)0
-rw-r--r--hw/net/vmxnet3.h (renamed from hw/vmxnet3.h)0
-rw-r--r--hw/net/vmxnet_debug.h (renamed from hw/vmxnet_debug.h)0
-rw-r--r--hw/net/vmxnet_rx_pkt.c (renamed from hw/vmxnet_rx_pkt.c)0
-rw-r--r--hw/net/vmxnet_rx_pkt.h (renamed from hw/vmxnet_rx_pkt.h)0
-rw-r--r--hw/net/vmxnet_tx_pkt.c (renamed from hw/vmxnet_tx_pkt.c)0
-rw-r--r--hw/net/vmxnet_tx_pkt.h (renamed from hw/vmxnet_tx_pkt.h)0
-rw-r--r--hw/net/xen_nic.c (renamed from hw/xen_nic.c)0
-rw-r--r--hw/net/xgmac.c (renamed from hw/xgmac.c)0
-rw-r--r--hw/net/xilinx_axienet.c (renamed from hw/xilinx_axienet.c)0
-rw-r--r--hw/nvram/Makefile.objs4
-rw-r--r--hw/nvram/ds1225y.c (renamed from hw/ds1225y.c)0
-rw-r--r--hw/nvram/eeprom93xx.c (renamed from hw/eeprom93xx.c)0
-rw-r--r--hw/nvram/fw_cfg.c (renamed from hw/fw_cfg.c)0
-rw-r--r--hw/nvram/mac_nvram.c (renamed from hw/mac_nvram.c)0
-rw-r--r--hw/pci/Makefile.objs4
-rw-r--r--hw/pci/bridge/Makefile.objs3
-rw-r--r--hw/pci/bridge/i82801b11.c (renamed from hw/i82801b11.c)0
-rw-r--r--hw/pci/bridge/ioh3420.c (renamed from hw/ioh3420.c)0
-rw-r--r--hw/pci/bridge/pci_bridge_dev.c (renamed from hw/pci_bridge_dev.c)0
-rw-r--r--hw/pci/bridge/xio3130_downstream.c (renamed from hw/xio3130_downstream.c)0
-rw-r--r--hw/pci/bridge/xio3130_upstream.c (renamed from hw/xio3130_upstream.c)0
-rw-r--r--hw/pci/host/Makefile.objs13
-rw-r--r--hw/pci/host/dec.c (renamed from hw/dec_pci.c)0
-rw-r--r--hw/pci/host/grackle.c (renamed from hw/grackle_pci.c)0
-rw-r--r--hw/pci/host/pam.c (renamed from hw/pam.c)0
-rw-r--r--hw/pci/host/ppce500.c (renamed from hw/ppce500_pci.c)0
-rw-r--r--hw/pci/host/prep.c (renamed from hw/prep_pci.c)0
-rw-r--r--hw/pci/host/uninorth.c (renamed from hw/unin_pci.c)0
-rw-r--r--hw/pci/host/versatile.c (renamed from hw/versatile_pci.c)0
-rw-r--r--hw/scsi/Makefile.objs6
-rw-r--r--hw/scsi/esp-pci.c (renamed from hw/esp-pci.c)0
-rw-r--r--hw/scsi/esp.c (renamed from hw/esp.c)0
-rw-r--r--hw/scsi/lsi53c895a.c (renamed from hw/lsi53c895a.c)0
-rw-r--r--hw/scsi/megasas.c (renamed from hw/megasas.c)0
-rw-r--r--hw/scsi/scsi-bus.c (renamed from hw/scsi-bus.c)0
-rw-r--r--hw/scsi/scsi-disk.c (renamed from hw/scsi-disk.c)0
-rw-r--r--hw/scsi/scsi-generic.c (renamed from hw/scsi-generic.c)0
-rw-r--r--hw/sd/Makefile.objs4
-rw-r--r--hw/sd/pl181.c (renamed from hw/pl181.c)0
-rw-r--r--hw/sd/sd.c (renamed from hw/sd.c)0
-rw-r--r--hw/sd/sdhci.c (renamed from hw/sdhci.c)0
-rw-r--r--hw/sd/ssi-sd.c (renamed from hw/ssi-sd.c)0
-rw-r--r--hw/ssi/Makefile.objs2
-rw-r--r--hw/ssi/pl022.c (renamed from hw/pl022.c)0
-rw-r--r--hw/ssi/ssi.c (renamed from hw/ssi.c)0
-rw-r--r--hw/timer/Makefile.objs10
-rw-r--r--hw/timer/arm_timer.c (renamed from hw/arm_timer.c)0
-rw-r--r--hw/timer/cadence_ttc.c (renamed from hw/cadence_ttc.c)0
-rw-r--r--hw/timer/ds1338.c (renamed from hw/ds1338.c)0
-rw-r--r--hw/timer/hpet.c (renamed from hw/hpet.c)0
-rw-r--r--hw/timer/i8254.c (renamed from hw/i8254.c)0
-rw-r--r--hw/timer/i8254_common.c (renamed from hw/i8254_common.c)0
-rw-r--r--hw/timer/m48t59.c (renamed from hw/m48t59.c)0
-rw-r--r--hw/timer/pl031.c (renamed from hw/pl031.c)0
-rw-r--r--hw/timer/puv3_ost.c (renamed from hw/puv3_ost.c)0
-rw-r--r--hw/timer/twl92230.c (renamed from hw/twl92230.c)0
-rw-r--r--hw/timer/xilinx_timer.c (renamed from hw/xilinx_timer.c)0
-rw-r--r--hw/usb/Makefile.objs7
-rw-r--r--hw/usb/ccid-card-emulated.c (renamed from hw/ccid-card-emulated.c)0
-rw-r--r--hw/usb/ccid-card-passthru.c (renamed from hw/ccid-card-passthru.c)0
-rw-r--r--hw/virtio/Makefile.objs4
-rw-r--r--hw/virtio/virtio-bus.c (renamed from hw/virtio-bus.c)0
-rw-r--r--hw/virtio/virtio-pci.c (renamed from hw/virtio-pci.c)0
-rw-r--r--hw/virtio/virtio-rng.c (renamed from hw/virtio-rng.c)0
-rw-r--r--hw/watchdog/Makefile.objs2
-rw-r--r--hw/watchdog/watchdog.c (renamed from hw/watchdog.c)0
-rw-r--r--hw/watchdog/wdt_i6300esb.c (renamed from hw/wdt_i6300esb.c)0
-rw-r--r--hw/xen/Makefile.objs2
-rw-r--r--hw/xen/xen_backend.c (renamed from hw/xen_backend.c)0
-rw-r--r--hw/xen/xen_devconfig.c (renamed from hw/xen_devconfig.c)0
227 files changed, 205 insertions, 208 deletions
diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak
index df9e126..a2658cd 100644
--- a/default-configs/i386-softmmu.mak
+++ b/default-configs/i386-softmmu.mak
@@ -16,7 +16,7 @@ CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_ACPI=y
CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_IDE_ISA=y
CONFIG_IDE_PIIX=y
CONFIG_NE2000_ISA=y
diff --git a/default-configs/mips-softmmu.mak b/default-configs/mips-softmmu.mak
index 4f04a33..dff6fef 100644
--- a/default-configs/mips-softmmu.mak
+++ b/default-configs/mips-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_ACPI=y
CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_PIIX4=y
CONFIG_IDE_ISA=y
CONFIG_IDE_PIIX=y
diff --git a/default-configs/mips64-softmmu.mak b/default-configs/mips64-softmmu.mak
index a5b6c3c..0968e5f 100644
--- a/default-configs/mips64-softmmu.mak
+++ b/default-configs/mips64-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_ACPI=y
CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_PIIX4=y
CONFIG_IDE_ISA=y
CONFIG_IDE_PIIX=y
diff --git a/default-configs/mips64el-softmmu.mak b/default-configs/mips64el-softmmu.mak
index a0e6de8..6f115d4 100644
--- a/default-configs/mips64el-softmmu.mak
+++ b/default-configs/mips64el-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_ACPI=y
CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_PIIX4=y
CONFIG_IDE_ISA=y
CONFIG_IDE_PIIX=y
diff --git a/default-configs/mipsel-softmmu.mak b/default-configs/mipsel-softmmu.mak
index 753dd76..e391cf7 100644
--- a/default-configs/mipsel-softmmu.mak
+++ b/default-configs/mipsel-softmmu.mak
@@ -18,7 +18,7 @@ CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_ACPI=y
CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_PIIX4=y
CONFIG_IDE_ISA=y
CONFIG_IDE_PIIX=y
diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.mak
index c209a8d..cdf82b1 100644
--- a/default-configs/ppc-softmmu.mak
+++ b/default-configs/ppc-softmmu.mak
@@ -13,7 +13,7 @@ CONFIG_PARALLEL=y
CONFIG_I8254=y
CONFIG_PCKBD=y
CONFIG_FDC=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_I82374=y
CONFIG_OPENPIC=y
CONFIG_PREP_PCI=y
diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-softmmu.mak
index 8d490bd..ee895e9 100644
--- a/default-configs/ppc64-softmmu.mak
+++ b/default-configs/ppc64-softmmu.mak
@@ -13,7 +13,7 @@ CONFIG_PARALLEL=y
CONFIG_I8254=y
CONFIG_PCKBD=y
CONFIG_FDC=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_I82374=y
CONFIG_OPENPIC=y
CONFIG_PREP_PCI=y
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index 7f13421..806adfd 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -12,7 +12,7 @@ CONFIG_SERIAL=y
CONFIG_I8254=y
CONFIG_PCKBD=y
CONFIG_FDC=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_OPENPIC=y
CONFIG_PREP_PCI=y
CONFIG_MACIO=y
diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak
index ab3cd5f..fe4b70b 100644
--- a/default-configs/x86_64-softmmu.mak
+++ b/default-configs/x86_64-softmmu.mak
@@ -16,7 +16,7 @@ CONFIG_PCKBD=y
CONFIG_FDC=y
CONFIG_ACPI=y
CONFIG_APM=y
-CONFIG_DMA=y
+CONFIG_I8257=y
CONFIG_IDE_ISA=y
CONFIG_IDE_PIIX=y
CONFIG_NE2000_ISA=y
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 0a92ff9..1d28ce2 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -1,8 +1,3 @@
-# core qdev-related obj files, also used by *-user:
-common-obj-y += qdev.o qdev-properties.o
-# irq.o needed for qdev GPIO handling:
-common-obj-y += irq.o
-
devices-dirs-$(CONFIG_REALLY_VIRTFS) += 9pfs/
devices-dirs-$(CONFIG_ACPI) += acpi/
devices-dirs-$(CONFIG_SOFTMMU) += audio/
@@ -35,198 +30,6 @@ common-obj-y += $(devices-dirs-y)
obj-y += $(devices-dirs-y)
ifeq ($(CONFIG_SOFTMMU),y)
-common-obj-y += loader.o
-common-obj-$(CONFIG_VIRTIO) += virtio-console.o
-common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
-common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
-common-obj-$(CONFIG_VIRTIO) += virtio-bus.o
-common-obj-y += fw_cfg.o
-common-obj-$(CONFIG_PCI) += pci_bridge_dev.o
-common-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o
-common-obj-$(CONFIG_PCI) += i82801b11.o
-common-obj-y += watchdog.o
-common-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
-common-obj-$(CONFIG_ECC) += ecc.o
-common-obj-$(CONFIG_NAND) += nand.o
-common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
-common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
-
-common-obj-$(CONFIG_M48T59) += m48t59.o
-common-obj-$(CONFIG_ESCC) += escc.o
-common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
-
-common-obj-$(CONFIG_SERIAL) += serial.o serial-isa.o
-common-obj-$(CONFIG_SERIAL_PCI) += serial-pci.o
-common-obj-$(CONFIG_PARALLEL) += parallel.o
-common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o
-common-obj-$(CONFIG_PCSPK) += pcspk.o
-common-obj-$(CONFIG_PCKBD) += pckbd.o
-common-obj-$(CONFIG_FDC) += fdc.o
-common-obj-$(CONFIG_ACPI) += acpi.o acpi_piix4.o acpi_ich9.o smbus_ich9.o
-common-obj-$(CONFIG_APM) += pm_smbus.o apm.o
-common-obj-$(CONFIG_DMA) += dma.o
-common-obj-$(CONFIG_I82374) += i82374.o
-common-obj-$(CONFIG_HPET) += hpet.o
-common-obj-$(CONFIG_APPLESMC) += applesmc.o
-ifeq ($(CONFIG_USB_SMARTCARD),y)
-common-obj-y += ccid-card-passthru.o
-common-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
-endif
-common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o
-common-obj-$(CONFIG_SDHCI) += sdhci.o
-common-obj-y += pam.o
-
-# PPC devices
-common-obj-$(CONFIG_PREP_PCI) += prep_pci.o
-common-obj-$(CONFIG_I82378) += i82378.o
-common-obj-$(CONFIG_PC87312) += pc87312.o
-# Mac shared devices
-common-obj-$(CONFIG_MACIO) += macio.o
-common-obj-$(CONFIG_CUDA) += cuda.o
-common-obj-$(CONFIG_ADB) += adb.o
-common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
-common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
-# OldWorld PowerMac
-common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
-common-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
-# NewWorld PowerMac
-common-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
-common-obj-$(CONFIG_DEC_PCI) += dec_pci.o
-# PowerPC E500 boards
-common-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
-
-# MIPS devices
-common-obj-$(CONFIG_PIIX4) += piix4.o
-common-obj-$(CONFIG_G364FB) += g364fb.o
-common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
-
-# Xilinx devices
-common-obj-$(CONFIG_XILINX) += xilinx_intc.o
-common-obj-$(CONFIG_XILINX) += xilinx_timer.o
-common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
-common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o
-common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
-common-obj-$(CONFIG_XILINX_AXI) += stream.o
-
-# PKUnity SoC devices
-common-obj-$(CONFIG_PUV3) += puv3_intc.o
-common-obj-$(CONFIG_PUV3) += puv3_ost.o
-common-obj-$(CONFIG_PUV3) += puv3_gpio.o
-common-obj-$(CONFIG_PUV3) += puv3_pm.o
-common-obj-$(CONFIG_PUV3) += puv3_dma.o
-
-# ARM devices
-common-obj-$(CONFIG_ARM_TIMER) += arm_timer.o
-common-obj-$(CONFIG_PL011) += pl011.o
-common-obj-$(CONFIG_PL022) += pl022.o
-common-obj-$(CONFIG_PL031) += pl031.o
-common-obj-$(CONFIG_PL041) += pl041.o lm4549.o
-common-obj-$(CONFIG_PL050) += pl050.o
-common-obj-$(CONFIG_PL061) += pl061.o
-common-obj-$(CONFIG_PL080) += pl080.o
-common-obj-$(CONFIG_PL110) += pl110.o
-common-obj-$(CONFIG_PL181) += pl181.o
-common-obj-$(CONFIG_PL190) += pl190.o
-common-obj-$(CONFIG_PL310) += arm_l2x0.o
-common-obj-$(CONFIG_PL330) += pl330.o
-common-obj-$(CONFIG_VERSATILE_PCI) += versatile_pci.o
-common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
-common-obj-$(CONFIG_CADENCE) += cadence_uart.o
-common-obj-$(CONFIG_CADENCE) += cadence_ttc.o
-common-obj-$(CONFIG_CADENCE) += cadence_gem.o
-common-obj-$(CONFIG_XGMAC) += xgmac.o
-
-# PCI watchdog devices
-common-obj-$(CONFIG_PCI) += wdt_i6300esb.o
-
-# IndustryPack
-common-obj-$(CONFIG_IPACK) += tpci200.o ipoctal232.o ipack.o
-
-# PCI network cards
-common-obj-$(CONFIG_NE2000_PCI) += ne2000.o
-common-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
-common-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
-common-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
-common-obj-$(CONFIG_E1000_PCI) += e1000.o
-common-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
-common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet_tx_pkt.o vmxnet_rx_pkt.o
-common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet3.o
-
-common-obj-$(CONFIG_SMC91C111) += smc91c111.o
-common-obj-$(CONFIG_LAN9118) += lan9118.o
-common-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
-common-obj-$(CONFIG_OPENCORES_ETH) += opencores_eth.o
-
-# SCSI layer
-common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
-common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
-common-obj-$(CONFIG_ESP) += esp.o
-common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
-
-common-obj-y += sysbus.o isa-bus.o
-common-obj-y += qdev-addr.o
-
-# VGA
-common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
-common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
-common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
-common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
-common-obj-$(CONFIG_VMMOUSE) += vmmouse.o
-common-obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o
-
-common-obj-$(CONFIG_RC4030) += rc4030.o
-common-obj-$(CONFIG_DP8393X) += dp8393x.o
-common-obj-$(CONFIG_DS1225Y) += ds1225y.o
-common-obj-$(CONFIG_MIPSNET) += mipsnet.o
-
-common-obj-y += null-machine.o
-
-# Sound
-sound-obj-y =
-sound-obj-$(CONFIG_SB16) += sb16.o
-sound-obj-$(CONFIG_ES1370) += es1370.o
-sound-obj-$(CONFIG_AC97) += ac97.o
-sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
-sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
-sound-obj-$(CONFIG_CS4231A) += cs4231a.o
-sound-obj-$(CONFIG_HDA) += intel-hda.o hda-audio.o
-
-$(obj)/adlib.o $(obj)/fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
-
-common-obj-$(CONFIG_SOUND) += $(sound-obj-y)
-
-common-obj-$(CONFIG_REALLY_VIRTFS) += 9pfs/
-
-common-obj-$(CONFIG_PTIMER) += ptimer.o
-common-obj-$(CONFIG_MAX7310) += max7310.o
-common-obj-$(CONFIG_WM8750) += wm8750.o
-common-obj-$(CONFIG_TWL92230) += twl92230.o
-common-obj-$(CONFIG_TSC2005) += tsc2005.o
-common-obj-$(CONFIG_LM832X) += lm832x.o
-common-obj-$(CONFIG_TMP105) += tmp105.o
-common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
-common-obj-$(CONFIG_SSD0303) += ssd0303.o
-common-obj-$(CONFIG_SSD0323) += ssd0323.o
-common-obj-$(CONFIG_ADS7846) += ads7846.o
-common-obj-$(CONFIG_MAX111X) += max111x.o
-common-obj-$(CONFIG_DS1338) += ds1338.o
-common-obj-y += i2c.o smbus.o smbus_eeprom.o
-common-obj-y += eeprom93xx.o
-common-obj-y += scsi-disk.o cdrom.o hd-geometry.o block-common.o
-common-obj-y += scsi-generic.o scsi-bus.o
-common-obj-y += hid.o
-common-obj-$(CONFIG_SSI) += ssi.o
-common-obj-$(CONFIG_SSI_M25P80) += m25p80.o
-common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
-common-obj-$(CONFIG_SD) += sd.o
-common-obj-y += bt.o bt-l2cap.o bt-sdp.o bt-hci.o bt-hid.o
-common-obj-y += bt-hci-csr.o
-common-obj-y += ps2.o
-common-obj-y += qdev-properties-system.o
-
-# xen backend driver support
-common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
-common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o xenfb.o xen_disk.o xen_nic.o
# Per-target files
# virtio has to be here due to weird dependency between PCI and virtio-net.
diff --git a/hw/acpi/Makefile.objs b/hw/acpi/Makefile.objs
index e69de29..a0b63b5 100644
--- a/hw/acpi/Makefile.objs
+++ b/hw/acpi/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-$(CONFIG_ACPI) += core.o piix4.o ich9.o
+
diff --git a/hw/acpi.c b/hw/acpi/core.c
index 64b8718..64b8718 100644
--- a/hw/acpi.c
+++ b/hw/acpi/core.c
diff --git a/hw/acpi_ich9.c b/hw/acpi/ich9.c
index e663d29..e663d29 100644
--- a/hw/acpi_ich9.c
+++ b/hw/acpi/ich9.c
diff --git a/hw/acpi_piix4.c b/hw/acpi/piix4.c
index 88386d7..88386d7 100644
--- a/hw/acpi_piix4.c
+++ b/hw/acpi/piix4.c
diff --git a/hw/audio/Makefile.objs b/hw/audio/Makefile.objs
index e69de29..c50c367 100644
--- a/hw/audio/Makefile.objs
+++ b/hw/audio/Makefile.objs
@@ -0,0 +1,16 @@
+# Sound
+sound-obj-y =
+sound-obj-$(CONFIG_SB16) += sb16.o
+sound-obj-$(CONFIG_ES1370) += es1370.o
+sound-obj-$(CONFIG_AC97) += ac97.o
+sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
+sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
+sound-obj-$(CONFIG_CS4231A) += cs4231a.o
+sound-obj-$(CONFIG_HDA) += intel-hda.o hda-codec.o
+
+common-obj-$(CONFIG_SOUND) += $(sound-obj-y)
+common-obj-$(CONFIG_PCSPK) += pcspk.o
+common-obj-$(CONFIG_WM8750) += wm8750.o
+common-obj-$(CONFIG_PL041) += pl041.o lm4549.o
+
+$(obj)/adlib.o $(obj)/fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
diff --git a/hw/ac97.c b/hw/audio/ac97.c
index ab68ec6..ab68ec6 100644
--- a/hw/ac97.c
+++ b/hw/audio/ac97.c
diff --git a/hw/adlib.c b/hw/audio/adlib.c
index 133c0ff..133c0ff 100644
--- a/hw/adlib.c
+++ b/hw/audio/adlib.c
diff --git a/hw/cs4231a.c b/hw/audio/cs4231a.c
index 5711b62..5711b62 100644
--- a/hw/cs4231a.c
+++ b/hw/audio/cs4231a.c
diff --git a/hw/es1370.c b/hw/audio/es1370.c
index 9fe5708..9fe5708 100644
--- a/hw/es1370.c
+++ b/hw/audio/es1370.c
diff --git a/hw/fmopl.c b/hw/audio/fmopl.c
index e50ba6c..e50ba6c 100644
--- a/hw/fmopl.c
+++ b/hw/audio/fmopl.c
diff --git a/hw/gus.c b/hw/audio/gus.c
index e44704b..e44704b 100644
--- a/hw/gus.c
+++ b/hw/audio/gus.c
diff --git a/hw/gusemu_hal.c b/hw/audio/gusemu_hal.c
index 0eee617..0eee617 100644
--- a/hw/gusemu_hal.c
+++ b/hw/audio/gusemu_hal.c
diff --git a/hw/gusemu_mixer.c b/hw/audio/gusemu_mixer.c
index 816c58a..816c58a 100644
--- a/hw/gusemu_mixer.c
+++ b/hw/audio/gusemu_mixer.c
diff --git a/hw/hda-audio.c b/hw/audio/hda-codec.c
index 6bdd820..6bdd820 100644
--- a/hw/hda-audio.c
+++ b/hw/audio/hda-codec.c
diff --git a/hw/intel-hda.c b/hw/audio/intel-hda.c
index 68201cd..68201cd 100644
--- a/hw/intel-hda.c
+++ b/hw/audio/intel-hda.c
diff --git a/hw/lm4549.c b/hw/audio/lm4549.c
index 67335cb..67335cb 100644
--- a/hw/lm4549.c
+++ b/hw/audio/lm4549.c
diff --git a/hw/pcspk.c b/hw/audio/pcspk.c
index 34e0df7..34e0df7 100644
--- a/hw/pcspk.c
+++ b/hw/audio/pcspk.c
diff --git a/hw/pl041.c b/hw/audio/pl041.c
index 92dddc2..92dddc2 100644
--- a/hw/pl041.c
+++ b/hw/audio/pl041.c
diff --git a/hw/pl041.hx b/hw/audio/pl041.hx
index dd7188c..dd7188c 100644
--- a/hw/pl041.hx
+++ b/hw/audio/pl041.hx
diff --git a/hw/sb16.c b/hw/audio/sb16.c
index 783b6b4..783b6b4 100644
--- a/hw/sb16.c
+++ b/hw/audio/sb16.c
diff --git a/hw/wm8750.c b/hw/audio/wm8750.c
index 6b5a349..6b5a349 100644
--- a/hw/wm8750.c
+++ b/hw/audio/wm8750.c
diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs
index e69de29..5fa5101 100644
--- a/hw/block/Makefile.objs
+++ b/hw/block/Makefile.objs
@@ -0,0 +1,8 @@
+common-obj-y += block.o cdrom.o hd-geometry.o
+common-obj-$(CONFIG_FDC) += fdc.o
+common-obj-$(CONFIG_SSI_M25P80) += m25p80.o
+common-obj-$(CONFIG_NAND) += nand.o
+common-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
+common-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_disk.o
+common-obj-$(CONFIG_ECC) += ecc.o
diff --git a/hw/block-common.c b/hw/block/block.c
index 33dd3f3..33dd3f3 100644
--- a/hw/block-common.c
+++ b/hw/block/block.c
diff --git a/hw/cdrom.c b/hw/block/cdrom.c
index 38469fa..38469fa 100644
--- a/hw/cdrom.c
+++ b/hw/block/cdrom.c
diff --git a/hw/ecc.c b/hw/block/ecc.c
index 8c888cc..8c888cc 100644
--- a/hw/ecc.c
+++ b/hw/block/ecc.c
diff --git a/hw/fdc.c b/hw/block/fdc.c
index 1ed874f..1ed874f 100644
--- a/hw/fdc.c
+++ b/hw/block/fdc.c
diff --git a/hw/hd-geometry.c b/hw/block/hd-geometry.c
index 6feb4f8..6feb4f8 100644
--- a/hw/hd-geometry.c
+++ b/hw/block/hd-geometry.c
diff --git a/hw/m25p80.c b/hw/block/m25p80.c
index cd560e3..cd560e3 100644
--- a/hw/m25p80.c
+++ b/hw/block/m25p80.c
diff --git a/hw/nand.c b/hw/block/nand.c
index 087ca14..087ca14 100644
--- a/hw/nand.c
+++ b/hw/block/nand.c
diff --git a/hw/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index 3ff20e0..3ff20e0 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
diff --git a/hw/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 9a7fa70..9a7fa70 100644
--- a/hw/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
diff --git a/hw/xen_disk.c b/hw/block/xen_disk.c
index 532347b..532347b 100644
--- a/hw/xen_disk.c
+++ b/hw/block/xen_disk.c
diff --git a/hw/bt/Makefile.objs b/hw/bt/Makefile.objs
index e69de29..867a7d2 100644
--- a/hw/bt/Makefile.objs
+++ b/hw/bt/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += core.o l2cap.o sdp.o hci.o hid.o
+common-obj-y += hci-csr.o
+
diff --git a/hw/bt.c b/hw/bt/core.c
index 24ef4de..24ef4de 100644
--- a/hw/bt.c
+++ b/hw/bt/core.c
diff --git a/hw/bt-hci-csr.c b/hw/bt/hci-csr.c
index 55c819b..55c819b 100644
--- a/hw/bt-hci-csr.c
+++ b/hw/bt/hci-csr.c
diff --git a/hw/bt-hci.c b/hw/bt/hci.c
index a76edea..a76edea 100644
--- a/hw/bt-hci.c
+++ b/hw/bt/hci.c
diff --git a/hw/bt-hid.c b/hw/bt/hid.c
index af494e1..af494e1 100644
--- a/hw/bt-hid.c
+++ b/hw/bt/hid.c
diff --git a/hw/bt-l2cap.c b/hw/bt/l2cap.c
index 521587a..521587a 100644
--- a/hw/bt-l2cap.c
+++ b/hw/bt/l2cap.c
diff --git a/hw/bt-sdp.c b/hw/bt/sdp.c
index 218e075..218e075 100644
--- a/hw/bt-sdp.c
+++ b/hw/bt/sdp.c
diff --git a/hw/char/Makefile.objs b/hw/char/Makefile.objs
index e69de29..eee23ff 100644
--- a/hw/char/Makefile.objs
+++ b/hw/char/Makefile.objs
@@ -0,0 +1,10 @@
+common-obj-$(CONFIG_IPACK) += tpci200.o ipoctal232.o ipack.o
+common-obj-$(CONFIG_ESCC) += escc.o
+common-obj-$(CONFIG_PARALLEL) += parallel.o
+common-obj-$(CONFIG_PL011) += pl011.o
+common-obj-$(CONFIG_SERIAL) += serial.o serial-isa.o
+common-obj-$(CONFIG_SERIAL_PCI) += serial-pci.o
+common-obj-$(CONFIG_VIRTIO) += virtio-console.o
+common-obj-$(CONFIG_XILINX) += xilinx_uartlite.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o
+common-obj-$(CONFIG_CADENCE) += cadence_uart.o
diff --git a/hw/cadence_uart.c b/hw/char/cadence_uart.c
index 421ec99..421ec99 100644
--- a/hw/cadence_uart.c
+++ b/hw/char/cadence_uart.c
diff --git a/hw/escc.c b/hw/char/escc.c
index 067b055..067b055 100644
--- a/hw/escc.c
+++ b/hw/char/escc.c
diff --git a/hw/ipack.c b/hw/char/ipack.c
index b1f46c1..b1f46c1 100644
--- a/hw/ipack.c
+++ b/hw/char/ipack.c
diff --git a/hw/ipoctal232.c b/hw/char/ipoctal232.c
index 685fee2..685fee2 100644
--- a/hw/ipoctal232.c
+++ b/hw/char/ipoctal232.c
diff --git a/hw/parallel.c b/hw/char/parallel.c
index 863a6fb..863a6fb 100644
--- a/hw/parallel.c
+++ b/hw/char/parallel.c
diff --git a/hw/pl011.c b/hw/char/pl011.c
index 332d5b9..332d5b9 100644
--- a/hw/pl011.c
+++ b/hw/char/pl011.c
diff --git a/hw/serial-isa.c b/hw/char/serial-isa.c
index ed140d0..ed140d0 100644
--- a/hw/serial-isa.c
+++ b/hw/char/serial-isa.c
diff --git a/hw/serial-pci.c b/hw/char/serial-pci.c
index 2138e35..2138e35 100644
--- a/hw/serial-pci.c
+++ b/hw/char/serial-pci.c
diff --git a/hw/serial.c b/hw/char/serial.c
index 1151bf1..1151bf1 100644
--- a/hw/serial.c
+++ b/hw/char/serial.c
diff --git a/hw/tpci200.c b/hw/char/tpci200.c
index e3408ef..e3408ef 100644
--- a/hw/tpci200.c
+++ b/hw/char/tpci200.c
diff --git a/hw/virtio-console.c b/hw/char/virtio-console.c
index 31f672c..31f672c 100644
--- a/hw/virtio-console.c
+++ b/hw/char/virtio-console.c
diff --git a/hw/xen_console.c b/hw/char/xen_console.c
index efc3232..efc3232 100644
--- a/hw/xen_console.c
+++ b/hw/char/xen_console.c
diff --git a/hw/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c
index 079f4d4..079f4d4 100644
--- a/hw/xilinx_uartlite.c
+++ b/hw/char/xilinx_uartlite.c
diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
index e69de29..94109f3 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -0,0 +1,14 @@
+# core qdev-related obj files, also used by *-user:
+common-obj-y += qdev.o qdev-properties.o
+# irq.o needed for qdev GPIO handling:
+common-obj-y += irq.o
+
+common-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
+common-obj-$(CONFIG_XILINX_AXI) += stream.o
+common-obj-$(CONFIG_PTIMER) += ptimer.o
+common-obj-$(CONFIG_SOFTMMU) += sysbus.o
+common-obj-$(CONFIG_SOFTMMU) += null-machine.o
+common-obj-$(CONFIG_SOFTMMU) += loader.o
+common-obj-$(CONFIG_SOFTMMU) += qdev-addr.o
+common-obj-$(CONFIG_SOFTMMU) += qdev-properties-system.o
+
diff --git a/hw/empty_slot.c b/hw/core/empty_slot.c
index 5234a4d..5234a4d 100644
--- a/hw/empty_slot.c
+++ b/hw/core/empty_slot.c
diff --git a/hw/irq.c b/hw/core/irq.c
index 2078542..2078542 100644
--- a/hw/irq.c
+++ b/hw/core/irq.c
diff --git a/hw/loader.c b/hw/core/loader.c
index 2f5072d..2f5072d 100644
--- a/hw/loader.c
+++ b/hw/core/loader.c
diff --git a/hw/null-machine.c b/hw/core/null-machine.c
index bdf109f..bdf109f 100644
--- a/hw/null-machine.c
+++ b/hw/core/null-machine.c
diff --git a/hw/ptimer.c b/hw/core/ptimer.c
index 4bc96c9..4bc96c9 100644
--- a/hw/ptimer.c
+++ b/hw/core/ptimer.c
diff --git a/hw/qdev-addr.c b/hw/core/qdev-addr.c
index 80a38bb..80a38bb 100644
--- a/hw/qdev-addr.c
+++ b/hw/core/qdev-addr.c
diff --git a/hw/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 8c2e152..8c2e152 100644
--- a/hw/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
diff --git a/hw/qdev-properties.c b/hw/core/qdev-properties.c
index 9a0872d..9a0872d 100644
--- a/hw/qdev-properties.c
+++ b/hw/core/qdev-properties.c
diff --git a/hw/qdev.c b/hw/core/qdev.c
index e2bb37d..e2bb37d 100644
--- a/hw/qdev.c
+++ b/hw/core/qdev.c
diff --git a/hw/stream.c b/hw/core/stream.c
index a07d6a5..a07d6a5 100644
--- a/hw/stream.c
+++ b/hw/core/stream.c
diff --git a/hw/sysbus.c b/hw/core/sysbus.c
index 9004d8c..9004d8c 100644
--- a/hw/sysbus.c
+++ b/hw/core/sysbus.c
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index e69de29..3ac154d 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -0,0 +1,13 @@
+common-obj-$(CONFIG_ADS7846) += ads7846.o
+common-obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o
+common-obj-$(CONFIG_G364FB) += g364fb.o
+common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
+common-obj-$(CONFIG_PL110) += pl110.o
+common-obj-$(CONFIG_SSD0303) += ssd0303.o
+common-obj-$(CONFIG_SSD0323) += ssd0323.o
+common-obj-$(CONFIG_XEN_BACKEND) += xenfb.o
+
+common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
+common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
+common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
+common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
diff --git a/hw/ads7846.c b/hw/display/ads7846.c
index 5da3dc5..5da3dc5 100644
--- a/hw/ads7846.c
+++ b/hw/display/ads7846.c
diff --git a/hw/cirrus_vga.c b/hw/display/cirrus_vga.c
index 7a4d634..7a4d634 100644
--- a/hw/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
diff --git a/hw/g364fb.c b/hw/display/g364fb.c
index f7014e9..f7014e9 100644
--- a/hw/g364fb.c
+++ b/hw/display/g364fb.c
diff --git a/hw/jazz_led.c b/hw/display/jazz_led.c
index 05528c7..05528c7 100644
--- a/hw/jazz_led.c
+++ b/hw/display/jazz_led.c
diff --git a/hw/pl110.c b/hw/display/pl110.c
index fbef675..fbef675 100644
--- a/hw/pl110.c
+++ b/hw/display/pl110.c
diff --git a/hw/ssd0303.c b/hw/display/ssd0303.c
index 183a878..183a878 100644
--- a/hw/ssd0303.c
+++ b/hw/display/ssd0303.c
diff --git a/hw/ssd0323.c b/hw/display/ssd0323.c
index 5cf2f70..5cf2f70 100644
--- a/hw/ssd0323.c
+++ b/hw/display/ssd0323.c
diff --git a/hw/vga-isa-mm.c b/hw/display/vga-isa-mm.c
index 3b08720..3b08720 100644
--- a/hw/vga-isa-mm.c
+++ b/hw/display/vga-isa-mm.c
diff --git a/hw/vga-isa.c b/hw/display/vga-isa.c
index 89d7fa6..89d7fa6 100644
--- a/hw/vga-isa.c
+++ b/hw/display/vga-isa.c
diff --git a/hw/vga-pci.c b/hw/display/vga-pci.c
index 05fa9bc..05fa9bc 100644
--- a/hw/vga-pci.c
+++ b/hw/display/vga-pci.c
diff --git a/hw/vmware_vga.c b/hw/display/vmware_vga.c
index 5b9ce8f..5b9ce8f 100644
--- a/hw/vmware_vga.c
+++ b/hw/display/vmware_vga.c
diff --git a/hw/xenfb.c b/hw/display/xenfb.c
index 8e42661..8e42661 100644
--- a/hw/xenfb.c
+++ b/hw/display/xenfb.c
diff --git a/hw/dma/Makefile.objs b/hw/dma/Makefile.objs
index e69de29..bce31cd 100644
--- a/hw/dma/Makefile.objs
+++ b/hw/dma/Makefile.objs
@@ -0,0 +1,7 @@
+common-obj-$(CONFIG_PUV3) += puv3_dma.o
+common-obj-$(CONFIG_RC4030) += rc4030.o
+common-obj-$(CONFIG_PL080) += pl080.o
+common-obj-$(CONFIG_PL330) += pl330.o
+common-obj-$(CONFIG_I82374) += i82374.o
+common-obj-$(CONFIG_I8257) += i8257.o
+common-obj-$(CONFIG_XILINX_AXI) += xilinx_axidma.o
diff --git a/hw/i82374.c b/hw/dma/i82374.c
index 835639d..835639d 100644
--- a/hw/i82374.c
+++ b/hw/dma/i82374.c
diff --git a/hw/dma.c b/hw/dma/i8257.c
index eb60d45..eb60d45 100644
--- a/hw/dma.c
+++ b/hw/dma/i8257.c
diff --git a/hw/pl080.c b/hw/dma/pl080.c
index 00b66b4..00b66b4 100644
--- a/hw/pl080.c
+++ b/hw/dma/pl080.c
diff --git a/hw/pl330.c b/hw/dma/pl330.c
index 8b33138..8b33138 100644
--- a/hw/pl330.c
+++ b/hw/dma/pl330.c
diff --git a/hw/puv3_dma.c b/hw/dma/puv3_dma.c
index 32844b5..32844b5 100644
--- a/hw/puv3_dma.c
+++ b/hw/dma/puv3_dma.c
diff --git a/hw/rc4030.c b/hw/dma/rc4030.c
index 03f92f1..03f92f1 100644
--- a/hw/rc4030.c
+++ b/hw/dma/rc4030.c
diff --git a/hw/xilinx_axidma.c b/hw/dma/xilinx_axidma.c
index 8db1a74..8db1a74 100644
--- a/hw/xilinx_axidma.c
+++ b/hw/dma/xilinx_axidma.c
diff --git a/hw/gpio/Makefile.objs b/hw/gpio/Makefile.objs
index e69de29..f8d8ee8 100644
--- a/hw/gpio/Makefile.objs
+++ b/hw/gpio/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-$(CONFIG_MAX7310) += max7310.o
+common-obj-$(CONFIG_PL061) += pl061.o
+common-obj-$(CONFIG_PUV3) += puv3_gpio.o
diff --git a/hw/max7310.c b/hw/gpio/max7310.c
index 59b2877..59b2877 100644
--- a/hw/max7310.c
+++ b/hw/gpio/max7310.c
diff --git a/hw/pl061.c b/hw/gpio/pl061.c
index 74bc109..74bc109 100644
--- a/hw/pl061.c
+++ b/hw/gpio/pl061.c
diff --git a/hw/puv3_gpio.c b/hw/gpio/puv3_gpio.c
index 5bab97e..5bab97e 100644
--- a/hw/puv3_gpio.c
+++ b/hw/gpio/puv3_gpio.c
diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs
index e69de29..f6bd8fa 100644
--- a/hw/i2c/Makefile.objs
+++ b/hw/i2c/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-y += core.o smbus.o smbus_eeprom.o
+common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o
+common-obj-$(CONFIG_ACPI) += smbus_ich9.o
+common-obj-$(CONFIG_APM) += pm_smbus.o
diff --git a/hw/i2c.c b/hw/i2c/core.c
index 0c4fc1d..0c4fc1d 100644
--- a/hw/i2c.c
+++ b/hw/i2c/core.c
diff --git a/hw/pm_smbus.c b/hw/i2c/pm_smbus.c
index 0b5bb89..0b5bb89 100644
--- a/hw/pm_smbus.c
+++ b/hw/i2c/pm_smbus.c
diff --git a/hw/smbus.c b/hw/i2c/smbus.c
index 25d2d04..25d2d04 100644
--- a/hw/smbus.c
+++ b/hw/i2c/smbus.c
diff --git a/hw/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index 0154283..0154283 100644
--- a/hw/smbus_eeprom.c
+++ b/hw/i2c/smbus_eeprom.c
diff --git a/hw/smbus_ich9.c b/hw/i2c/smbus_ich9.c
index ca22978..ca22978 100644
--- a/hw/smbus_ich9.c
+++ b/hw/i2c/smbus_ich9.c
diff --git a/hw/versatile_i2c.c b/hw/i2c/versatile_i2c.c
index d0444ae..d0444ae 100644
--- a/hw/versatile_i2c.c
+++ b/hw/i2c/versatile_i2c.c
diff --git a/hw/input/Makefile.objs b/hw/input/Makefile.objs
index e69de29..824997e 100644
--- a/hw/input/Makefile.objs
+++ b/hw/input/Makefile.objs
@@ -0,0 +1,9 @@
+common-obj-$(CONFIG_ADB) += adb.o
+common-obj-y += hid.o
+common-obj-$(CONFIG_LM832X) += lm832x.o
+common-obj-$(CONFIG_PCKBD) += pckbd.o
+common-obj-$(CONFIG_PL050) += pl050.o
+common-obj-y += ps2.o
+common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
+common-obj-$(CONFIG_TSC2005) += tsc2005.o
+common-obj-$(CONFIG_VMMOUSE) += vmmouse.o
diff --git a/hw/adb.c b/hw/input/adb.c
index a75d3fd..a75d3fd 100644
--- a/hw/adb.c
+++ b/hw/input/adb.c
diff --git a/hw/hid.c b/hw/input/hid.c
index 5fbde98..5fbde98 100644
--- a/hw/hid.c
+++ b/hw/input/hid.c
diff --git a/hw/lm832x.c b/hw/input/lm832x.c
index bacbeb2..bacbeb2 100644
--- a/hw/lm832x.c
+++ b/hw/input/lm832x.c
diff --git a/hw/pckbd.c b/hw/input/pckbd.c
index 08ceb9f..08ceb9f 100644
--- a/hw/pckbd.c
+++ b/hw/input/pckbd.c
diff --git a/hw/pl050.c b/hw/input/pl050.c
index 7dd8a59..7dd8a59 100644
--- a/hw/pl050.c
+++ b/hw/input/pl050.c
diff --git a/hw/ps2.c b/hw/input/ps2.c
index 3412079..3412079 100644
--- a/hw/ps2.c
+++ b/hw/input/ps2.c
diff --git a/hw/stellaris_input.c b/hw/input/stellaris_input.c
index f83fc3f..f83fc3f 100644
--- a/hw/stellaris_input.c
+++ b/hw/input/stellaris_input.c
diff --git a/hw/tsc2005.c b/hw/input/tsc2005.c
index 34ee1fb..34ee1fb 100644
--- a/hw/tsc2005.c
+++ b/hw/input/tsc2005.c
diff --git a/hw/vmmouse.c b/hw/input/vmmouse.c
index f4f9c93..f4f9c93 100644
--- a/hw/vmmouse.c
+++ b/hw/input/vmmouse.c
diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs
index e69de29..2813adb 100644
--- a/hw/intc/Makefile.objs
+++ b/hw/intc/Makefile.objs
@@ -0,0 +1,5 @@
+common-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
+common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o
+common-obj-$(CONFIG_PL190) += pl190.o
+common-obj-$(CONFIG_PUV3) += puv3_intc.o
+common-obj-$(CONFIG_XILINX) += xilinx_intc.o
diff --git a/hw/heathrow_pic.c b/hw/intc/heathrow_pic.c
index beb9661..beb9661 100644
--- a/hw/heathrow_pic.c
+++ b/hw/intc/heathrow_pic.c
diff --git a/hw/i8259.c b/hw/intc/i8259.c
index ce14bd0..ce14bd0 100644
--- a/hw/i8259.c
+++ b/hw/intc/i8259.c
diff --git a/hw/i8259_common.c b/hw/intc/i8259_common.c
index 996ba9d..996ba9d 100644
--- a/hw/i8259_common.c
+++ b/hw/intc/i8259_common.c
diff --git a/hw/pl190.c b/hw/intc/pl190.c
index 9610673..9610673 100644
--- a/hw/pl190.c
+++ b/hw/intc/pl190.c
diff --git a/hw/puv3_intc.c b/hw/intc/puv3_intc.c
index 0cd5e9e..0cd5e9e 100644
--- a/hw/puv3_intc.c
+++ b/hw/intc/puv3_intc.c
diff --git a/hw/xilinx_intc.c b/hw/intc/xilinx_intc.c
index b106e72..b106e72 100644
--- a/hw/xilinx_intc.c
+++ b/hw/intc/xilinx_intc.c
diff --git a/hw/isa/Makefile.objs b/hw/isa/Makefile.objs
index e69de29..ad3643b 100644
--- a/hw/isa/Makefile.objs
+++ b/hw/isa/Makefile.objs
@@ -0,0 +1,7 @@
+common-obj-y += isa-bus.o
+common-obj-$(CONFIG_APM) += apm.o
+common-obj-$(CONFIG_I82378) += i82378.o
+common-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
+common-obj-$(CONFIG_PC87312) += pc87312.o
+common-obj-$(CONFIG_PIIX4) += piix4.o
+
diff --git a/hw/apm.c b/hw/isa/apm.c
index 5f21d21..5f21d21 100644
--- a/hw/apm.c
+++ b/hw/isa/apm.c
diff --git a/hw/i82378.c b/hw/isa/i82378.c
index cced9af..cced9af 100644
--- a/hw/i82378.c
+++ b/hw/isa/i82378.c
diff --git a/hw/isa-bus.c b/hw/isa/isa-bus.c
index 7860b17..7860b17 100644
--- a/hw/isa-bus.c
+++ b/hw/isa/isa-bus.c
diff --git a/hw/isa_mmio.c b/hw/isa/isa_mmio.c
index d4dbf13..d4dbf13 100644
--- a/hw/isa_mmio.c
+++ b/hw/isa/isa_mmio.c
diff --git a/hw/pc87312.c b/hw/isa/pc87312.c
index 9f5e185..9f5e185 100644
--- a/hw/pc87312.c
+++ b/hw/isa/pc87312.c
diff --git a/hw/piix4.c b/hw/isa/piix4.c
index d750413..d750413 100644
--- a/hw/piix4.c
+++ b/hw/isa/piix4.c
diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs
index e69de29..009b1d9 100644
--- a/hw/misc/Makefile.objs
+++ b/hw/misc/Makefile.objs
@@ -0,0 +1,11 @@
+common-obj-$(CONFIG_APPLESMC) += applesmc.o
+common-obj-$(CONFIG_MAX111X) += max111x.o
+common-obj-$(CONFIG_TMP105) += tmp105.o
+
+# ARM devices
+common-obj-$(CONFIG_PL310) += arm_l2x0.o
+
+# PKUnity SoC devices
+common-obj-$(CONFIG_PUV3) += puv3_pm.o
+
+common-obj-$(CONFIG_MACIO) += macio/
diff --git a/hw/applesmc.c b/hw/misc/applesmc.c
index c29558b..c29558b 100644
--- a/hw/applesmc.c
+++ b/hw/misc/applesmc.c
diff --git a/hw/arm_l2x0.c b/hw/misc/arm_l2x0.c
index eb4427d..eb4427d 100644
--- a/hw/arm_l2x0.c
+++ b/hw/misc/arm_l2x0.c
diff --git a/hw/misc/macio/Makefile.objs b/hw/misc/macio/Makefile.objs
new file mode 100644
index 0000000..ef7ac24
--- /dev/null
+++ b/hw/misc/macio/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += macio.o
+common-obj-$(CONFIG_CUDA) += cuda.o
+common-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
diff --git a/hw/cuda.c b/hw/misc/macio/cuda.c
index f797796..f797796 100644
--- a/hw/cuda.c
+++ b/hw/misc/macio/cuda.c
diff --git a/hw/mac_dbdma.c b/hw/misc/macio/mac_dbdma.c
index a2363bb..a2363bb 100644
--- a/hw/mac_dbdma.c
+++ b/hw/misc/macio/mac_dbdma.c
diff --git a/hw/macio.c b/hw/misc/macio/macio.c
index 2f389dd..2f389dd 100644
--- a/hw/macio.c
+++ b/hw/misc/macio/macio.c
diff --git a/hw/max111x.c b/hw/misc/max111x.c
index d477ecd..d477ecd 100644
--- a/hw/max111x.c
+++ b/hw/misc/max111x.c
diff --git a/hw/puv3_pm.c b/hw/misc/puv3_pm.c
index 0aacdc2..0aacdc2 100644
--- a/hw/puv3_pm.c
+++ b/hw/misc/puv3_pm.c
diff --git a/hw/tmp105.c b/hw/misc/tmp105.c
index 21a27a6..21a27a6 100644
--- a/hw/tmp105.c
+++ b/hw/misc/tmp105.c
diff --git a/hw/net/Makefile.objs b/hw/net/Makefile.objs
index e69de29..ad91293 100644
--- a/hw/net/Makefile.objs
+++ b/hw/net/Makefile.objs
@@ -0,0 +1,22 @@
+common-obj-$(CONFIG_DP8393X) += dp8393x.o
+common-obj-$(CONFIG_XEN_BACKEND) += xen_nic.o
+
+# PCI network cards
+common-obj-$(CONFIG_NE2000_PCI) += ne2000.o
+common-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
+common-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
+common-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
+common-obj-$(CONFIG_E1000_PCI) += e1000.o
+common-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
+common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet_tx_pkt.o vmxnet_rx_pkt.o
+common-obj-$(CONFIG_VMXNET3_PCI) += vmxnet3.o
+
+common-obj-$(CONFIG_SMC91C111) += smc91c111.o
+common-obj-$(CONFIG_LAN9118) += lan9118.o
+common-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
+common-obj-$(CONFIG_OPENCORES_ETH) += opencores_eth.o
+common-obj-$(CONFIG_XGMAC) += xgmac.o
+common-obj-$(CONFIG_MIPSNET) += mipsnet.o
+common-obj-$(CONFIG_XILINX_AXI) += xilinx_axienet.o
+
+common-obj-$(CONFIG_CADENCE) += cadence_gem.o
diff --git a/hw/cadence_gem.c b/hw/net/cadence_gem.c
index e177057..e177057 100644
--- a/hw/cadence_gem.c
+++ b/hw/net/cadence_gem.c
diff --git a/hw/dp8393x.c b/hw/net/dp8393x.c
index 2289f08..2289f08 100644
--- a/hw/dp8393x.c
+++ b/hw/net/dp8393x.c
diff --git a/hw/e1000.c b/hw/net/e1000.c
index 3f18041..3f18041 100644
--- a/hw/e1000.c
+++ b/hw/net/e1000.c
diff --git a/hw/eepro100.c b/hw/net/eepro100.c
index dc99ea6..dc99ea6 100644
--- a/hw/eepro100.c
+++ b/hw/net/eepro100.c
diff --git a/hw/lan9118.c b/hw/net/lan9118.c
index 04cf267..04cf267 100644
--- a/hw/lan9118.c
+++ b/hw/net/lan9118.c
diff --git a/hw/mipsnet.c b/hw/net/mipsnet.c
index ac6193a..ac6193a 100644
--- a/hw/mipsnet.c
+++ b/hw/net/mipsnet.c
diff --git a/hw/ne2000-isa.c b/hw/net/ne2000-isa.c
index e4c10db..e4c10db 100644
--- a/hw/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
diff --git a/hw/ne2000.c b/hw/net/ne2000.c
index 7f45831..7f45831 100644
--- a/hw/ne2000.c
+++ b/hw/net/ne2000.c
diff --git a/hw/opencores_eth.c b/hw/net/opencores_eth.c
index be64bf2..be64bf2 100644
--- a/hw/opencores_eth.c
+++ b/hw/net/opencores_eth.c
diff --git a/hw/pcnet-pci.c b/hw/net/pcnet-pci.c
index 61af57e..61af57e 100644
--- a/hw/pcnet-pci.c
+++ b/hw/net/pcnet-pci.c
diff --git a/hw/pcnet.c b/hw/net/pcnet.c
index b0b462b..b0b462b 100644
--- a/hw/pcnet.c
+++ b/hw/net/pcnet.c
diff --git a/hw/rtl8139.c b/hw/net/rtl8139.c
index 9369507..9369507 100644
--- a/hw/rtl8139.c
+++ b/hw/net/rtl8139.c
diff --git a/hw/smc91c111.c b/hw/net/smc91c111.c
index f659256..f659256 100644
--- a/hw/smc91c111.c
+++ b/hw/net/smc91c111.c
diff --git a/hw/vmware_utils.h b/hw/net/vmware_utils.h
index 5307e2c..5307e2c 100644
--- a/hw/vmware_utils.h
+++ b/hw/net/vmware_utils.h
diff --git a/hw/vmxnet3.c b/hw/net/vmxnet3.c
index 5916624..5916624 100644
--- a/hw/vmxnet3.c
+++ b/hw/net/vmxnet3.c
diff --git a/hw/vmxnet3.h b/hw/net/vmxnet3.h
index 7db0c8f..7db0c8f 100644
--- a/hw/vmxnet3.h
+++ b/hw/net/vmxnet3.h
diff --git a/hw/vmxnet_debug.h b/hw/net/vmxnet_debug.h
index 96dae0f..96dae0f 100644
--- a/hw/vmxnet_debug.h
+++ b/hw/net/vmxnet_debug.h
diff --git a/hw/vmxnet_rx_pkt.c b/hw/net/vmxnet_rx_pkt.c
index a40e346..a40e346 100644
--- a/hw/vmxnet_rx_pkt.c
+++ b/hw/net/vmxnet_rx_pkt.c
diff --git a/hw/vmxnet_rx_pkt.h b/hw/net/vmxnet_rx_pkt.h
index 6b2c60e..6b2c60e 100644
--- a/hw/vmxnet_rx_pkt.h
+++ b/hw/net/vmxnet_rx_pkt.h
diff --git a/hw/vmxnet_tx_pkt.c b/hw/net/vmxnet_tx_pkt.c
index b1e795b..b1e795b 100644
--- a/hw/vmxnet_tx_pkt.c
+++ b/hw/net/vmxnet_tx_pkt.c
diff --git a/hw/vmxnet_tx_pkt.h b/hw/net/vmxnet_tx_pkt.h
index 57121a6..57121a6 100644
--- a/hw/vmxnet_tx_pkt.h
+++ b/hw/net/vmxnet_tx_pkt.h
diff --git a/hw/xen_nic.c b/hw/net/xen_nic.c
index 63918ae..63918ae 100644
--- a/hw/xen_nic.c
+++ b/hw/net/xen_nic.c
diff --git a/hw/xgmac.c b/hw/net/xgmac.c
index 5275f48..5275f48 100644
--- a/hw/xgmac.c
+++ b/hw/net/xgmac.c
diff --git a/hw/xilinx_axienet.c b/hw/net/xilinx_axienet.c
index 07c4bad..07c4bad 100644
--- a/hw/xilinx_axienet.c
+++ b/hw/net/xilinx_axienet.c
diff --git a/hw/nvram/Makefile.objs b/hw/nvram/Makefile.objs
index e69de29..80fb1b0 100644
--- a/hw/nvram/Makefile.objs
+++ b/hw/nvram/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_DS1225Y) += ds1225y.o
+common-obj-y += eeprom93xx.o
+common-obj-y += fw_cfg.o
+common-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
diff --git a/hw/ds1225y.c b/hw/nvram/ds1225y.c
index 488f1d7..488f1d7 100644
--- a/hw/ds1225y.c
+++ b/hw/nvram/ds1225y.c
diff --git a/hw/eeprom93xx.c b/hw/nvram/eeprom93xx.c
index 08f4df5..08f4df5 100644
--- a/hw/eeprom93xx.c
+++ b/hw/nvram/eeprom93xx.c
diff --git a/hw/fw_cfg.c b/hw/nvram/fw_cfg.c
index 97bba87..97bba87 100644
--- a/hw/fw_cfg.c
+++ b/hw/nvram/fw_cfg.c
diff --git a/hw/mac_nvram.c b/hw/nvram/mac_nvram.c
index 5223330..5223330 100644
--- a/hw/mac_nvram.c
+++ b/hw/nvram/mac_nvram.c
diff --git a/hw/pci/Makefile.objs b/hw/pci/Makefile.objs
index 1cd6cde..aac5f65 100644
--- a/hw/pci/Makefile.objs
+++ b/hw/pci/Makefile.objs
@@ -4,6 +4,8 @@ common-obj-$(CONFIG_PCI) += shpc.o
common-obj-$(CONFIG_PCI) += slotid_cap.o
common-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
common-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o pcie_port.o
-common-obj-$(CONFIG_NO_PCI) += pci-stub.o
+common-obj-$(CONFIG_NO_PCI) += pci-stub.o
common-obj-$(CONFIG_ALL) += pci-stub.o
+
+common-obj-$(CONFIG_PCI) += bridge/ host/
diff --git a/hw/pci/bridge/Makefile.objs b/hw/pci/bridge/Makefile.objs
new file mode 100644
index 0000000..5dd92d2
--- /dev/null
+++ b/hw/pci/bridge/Makefile.objs
@@ -0,0 +1,3 @@
+common-obj-y += pci_bridge_dev.o
+common-obj-y += ioh3420.o xio3130_upstream.o xio3130_downstream.o
+common-obj-y += i82801b11.o
diff --git a/hw/i82801b11.c b/hw/pci/bridge/i82801b11.c
index 5807a92..5807a92 100644
--- a/hw/i82801b11.c
+++ b/hw/pci/bridge/i82801b11.c
diff --git a/hw/ioh3420.c b/hw/pci/bridge/ioh3420.c
index 5cff61e..5cff61e 100644
--- a/hw/ioh3420.c
+++ b/hw/pci/bridge/ioh3420.c
diff --git a/hw/pci_bridge_dev.c b/hw/pci/bridge/pci_bridge_dev.c
index 971b432..971b432 100644
--- a/hw/pci_bridge_dev.c
+++ b/hw/pci/bridge/pci_bridge_dev.c
diff --git a/hw/xio3130_downstream.c b/hw/pci/bridge/xio3130_downstream.c
index b868f56..b868f56 100644
--- a/hw/xio3130_downstream.c
+++ b/hw/pci/bridge/xio3130_downstream.c
diff --git a/hw/xio3130_upstream.c b/hw/pci/bridge/xio3130_upstream.c
index cd5d97d..cd5d97d 100644
--- a/hw/xio3130_upstream.c
+++ b/hw/pci/bridge/xio3130_upstream.c
diff --git a/hw/pci/host/Makefile.objs b/hw/pci/host/Makefile.objs
new file mode 100644
index 0000000..e1d6cce
--- /dev/null
+++ b/hw/pci/host/Makefile.objs
@@ -0,0 +1,13 @@
+common-obj-y += pam.o
+
+# PPC devices
+common-obj-$(CONFIG_PREP_PCI) += prep.o
+common-obj-$(CONFIG_GRACKLE_PCI) += grackle.o
+# NewWorld PowerMac
+common-obj-$(CONFIG_UNIN_PCI) += uninorth.o
+common-obj-$(CONFIG_DEC_PCI) += dec.o
+# PowerPC E500 boards
+common-obj-$(CONFIG_PPCE500_PCI) += ppce500.o
+
+# ARM devices
+common-obj-$(CONFIG_VERSATILE_PCI) += versatile.o
diff --git a/hw/dec_pci.c b/hw/pci/host/dec.c
index 6ec3d22..6ec3d22 100644
--- a/hw/dec_pci.c
+++ b/hw/pci/host/dec.c
diff --git a/hw/grackle_pci.c b/hw/pci/host/grackle.c
index 69344d9..69344d9 100644
--- a/hw/grackle_pci.c
+++ b/hw/pci/host/grackle.c
diff --git a/hw/pam.c b/hw/pci/host/pam.c
index 7181bd6..7181bd6 100644
--- a/hw/pam.c
+++ b/hw/pci/host/pam.c
diff --git a/hw/ppce500_pci.c b/hw/pci/host/ppce500.c
index 5e7ad94..5e7ad94 100644
--- a/hw/ppce500_pci.c
+++ b/hw/pci/host/ppce500.c
diff --git a/hw/prep_pci.c b/hw/pci/host/prep.c
index 6130253..6130253 100644
--- a/hw/prep_pci.c
+++ b/hw/pci/host/prep.c
diff --git a/hw/unin_pci.c b/hw/pci/host/uninorth.c
index fff235d..fff235d 100644
--- a/hw/unin_pci.c
+++ b/hw/pci/host/uninorth.c
diff --git a/hw/versatile_pci.c b/hw/pci/host/versatile.c
index d67ca79..d67ca79 100644
--- a/hw/versatile_pci.c
+++ b/hw/pci/host/versatile.c
diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs
index e69de29..6a56504 100644
--- a/hw/scsi/Makefile.objs
+++ b/hw/scsi/Makefile.objs
@@ -0,0 +1,6 @@
+common-obj-y += scsi-disk.o
+common-obj-y += scsi-generic.o scsi-bus.o
+common-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
+common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o
+common-obj-$(CONFIG_ESP) += esp.o
+common-obj-$(CONFIG_ESP_PCI) += esp-pci.o
diff --git a/hw/esp-pci.c b/hw/scsi/esp-pci.c
index 3ca5c8c..3ca5c8c 100644
--- a/hw/esp-pci.c
+++ b/hw/scsi/esp-pci.c
diff --git a/hw/esp.c b/hw/scsi/esp.c
index 17adbec..17adbec 100644
--- a/hw/esp.c
+++ b/hw/scsi/esp.c
diff --git a/hw/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index c601b29..c601b29 100644
--- a/hw/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
diff --git a/hw/megasas.c b/hw/scsi/megasas.c
index f46f800..f46f800 100644
--- a/hw/megasas.c
+++ b/hw/scsi/megasas.c
diff --git a/hw/scsi-bus.c b/hw/scsi/scsi-bus.c
index 6239ee1..6239ee1 100644
--- a/hw/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
diff --git a/hw/scsi-disk.c b/hw/scsi/scsi-disk.c
index f52bd11..f52bd11 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
diff --git a/hw/scsi-generic.c b/hw/scsi/scsi-generic.c
index 2a9a561..2a9a561 100644
--- a/hw/scsi-generic.c
+++ b/hw/scsi/scsi-generic.c
diff --git a/hw/sd/Makefile.objs b/hw/sd/Makefile.objs
index e69de29..8acce02 100644
--- a/hw/sd/Makefile.objs
+++ b/hw/sd/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_PL181) += pl181.o
+common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
+common-obj-$(CONFIG_SD) += sd.o
+common-obj-$(CONFIG_SDHCI) += sdhci.o
diff --git a/hw/pl181.c b/hw/sd/pl181.c
index 2527296..2527296 100644
--- a/hw/pl181.c
+++ b/hw/sd/pl181.c
diff --git a/hw/sd.c b/hw/sd/sd.c
index 66c4014..66c4014 100644
--- a/hw/sd.c
+++ b/hw/sd/sd.c
diff --git a/hw/sdhci.c b/hw/sd/sdhci.c
index 4a29e6c..4a29e6c 100644
--- a/hw/sdhci.c
+++ b/hw/sd/sdhci.c
diff --git a/hw/ssi-sd.c b/hw/sd/ssi-sd.c
index 4d3c4f6..4d3c4f6 100644
--- a/hw/ssi-sd.c
+++ b/hw/sd/ssi-sd.c
diff --git a/hw/ssi/Makefile.objs b/hw/ssi/Makefile.objs
index e69de29..daada5c 100644
--- a/hw/ssi/Makefile.objs
+++ b/hw/ssi/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-$(CONFIG_PL022) += pl022.o
+common-obj-$(CONFIG_SSI) += ssi.o
diff --git a/hw/pl022.c b/hw/ssi/pl022.c
index 536c216..536c216 100644
--- a/hw/pl022.c
+++ b/hw/ssi/pl022.c
diff --git a/hw/ssi.c b/hw/ssi/ssi.c
index 1264d9d..1264d9d 100644
--- a/hw/ssi.c
+++ b/hw/ssi/ssi.c
diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs
index e69de29..12781dd 100644
--- a/hw/timer/Makefile.objs
+++ b/hw/timer/Makefile.objs
@@ -0,0 +1,10 @@
+common-obj-$(CONFIG_ARM_TIMER) += arm_timer.o
+common-obj-$(CONFIG_CADENCE) += cadence_ttc.o
+common-obj-$(CONFIG_DS1338) += ds1338.o
+common-obj-$(CONFIG_HPET) += hpet.o
+common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o
+common-obj-$(CONFIG_M48T59) += m48t59.o
+common-obj-$(CONFIG_PL031) += pl031.o
+common-obj-$(CONFIG_PUV3) += puv3_ost.o
+common-obj-$(CONFIG_TWL92230) += twl92230.o
+common-obj-$(CONFIG_XILINX) += xilinx_timer.o
diff --git a/hw/arm_timer.c b/hw/timer/arm_timer.c
index 6449870..6449870 100644
--- a/hw/arm_timer.c
+++ b/hw/timer/arm_timer.c
diff --git a/hw/cadence_ttc.c b/hw/timer/cadence_ttc.c
index ba584f4..ba584f4 100644
--- a/hw/cadence_ttc.c
+++ b/hw/timer/cadence_ttc.c
diff --git a/hw/ds1338.c b/hw/timer/ds1338.c
index 8987cdc9..8987cdc9 100644
--- a/hw/ds1338.c
+++ b/hw/timer/ds1338.c
diff --git a/hw/hpet.c b/hw/timer/hpet.c
index 95dd01d..95dd01d 100644
--- a/hw/hpet.c
+++ b/hw/timer/hpet.c
diff --git a/hw/i8254.c b/hw/timer/i8254.c
index 20c0c36..20c0c36 100644
--- a/hw/i8254.c
+++ b/hw/timer/i8254.c
diff --git a/hw/i8254_common.c b/hw/timer/i8254_common.c
index 5342df4..5342df4 100644
--- a/hw/i8254_common.c
+++ b/hw/timer/i8254_common.c
diff --git a/hw/m48t59.c b/hw/timer/m48t59.c
index 5019e06..5019e06 100644
--- a/hw/m48t59.c
+++ b/hw/timer/m48t59.c
diff --git a/hw/pl031.c b/hw/timer/pl031.c
index 764940b..764940b 100644
--- a/hw/pl031.c
+++ b/hw/timer/pl031.c
diff --git a/hw/puv3_ost.c b/hw/timer/puv3_ost.c
index 0c3d827..0c3d827 100644
--- a/hw/puv3_ost.c
+++ b/hw/timer/puv3_ost.c
diff --git a/hw/twl92230.c b/hw/timer/twl92230.c
index b730d85..b730d85 100644
--- a/hw/twl92230.c
+++ b/hw/timer/twl92230.c
diff --git a/hw/xilinx_timer.c b/hw/timer/xilinx_timer.c
index 0c39cff..0c39cff 100644
--- a/hw/xilinx_timer.c
+++ b/hw/timer/xilinx_timer.c
diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs
index e63e287..5c20644 100644
--- a/hw/usb/Makefile.objs
+++ b/hw/usb/Makefile.objs
@@ -21,7 +21,12 @@ common-obj-$(CONFIG_USB_NETWORK) += dev-network.o
# FIXME: make configurable too
CONFIG_USB_BLUETOOTH := y
common-obj-$(CONFIG_USB_BLUETOOTH) += dev-bluetooth.o
-common-obj-$(CONFIG_USB_SMARTCARD) += dev-smartcard-reader.o
+
+ifeq ($(CONFIG_USB_SMARTCARD),y)
+common-obj-y += dev-smartcard-reader.o
+common-obj-y += ccid-card-passthru.o
+common-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
+endif
# usb redirection
common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
diff --git a/hw/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index c8f8ba3..c8f8ba3 100644
--- a/hw/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
diff --git a/hw/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index 984bd0b..984bd0b 100644
--- a/hw/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index e69de29..ed63495 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -0,0 +1,4 @@
+common-obj-$(CONFIG_VIRTIO) += virtio-rng.o
+common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
+common-obj-$(CONFIG_VIRTIO) += virtio-bus.o
+
diff --git a/hw/virtio-bus.c b/hw/virtio/virtio-bus.c
index 1596a1c..1596a1c 100644
--- a/hw/virtio-bus.c
+++ b/hw/virtio/virtio-bus.c
diff --git a/hw/virtio-pci.c b/hw/virtio/virtio-pci.c
index 943b429..943b429 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
diff --git a/hw/virtio-rng.c b/hw/virtio/virtio-rng.c
index 6079b2a..6079b2a 100644
--- a/hw/virtio-rng.c
+++ b/hw/virtio/virtio-rng.c
diff --git a/hw/watchdog/Makefile.objs b/hw/watchdog/Makefile.objs
index e69de29..f57133b 100644
--- a/hw/watchdog/Makefile.objs
+++ b/hw/watchdog/Makefile.objs
@@ -0,0 +1,2 @@
+common-obj-y += watchdog.o
+common-obj-$(CONFIG_PCI) += wdt_i6300esb.o
diff --git a/hw/watchdog.c b/hw/watchdog/watchdog.c
index cb4e1f9..cb4e1f9 100644
--- a/hw/watchdog.c
+++ b/hw/watchdog/watchdog.c
diff --git a/hw/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c
index 1407fba..1407fba 100644
--- a/hw/wdt_i6300esb.c
+++ b/hw/watchdog/wdt_i6300esb.c
diff --git a/hw/xen/Makefile.objs b/hw/xen/Makefile.objs
index e69de29..4b209a7 100644
--- a/hw/xen/Makefile.objs
+++ b/hw/xen/Makefile.objs
@@ -0,0 +1,2 @@
+# xen backend driver support
+common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o
diff --git a/hw/xen_backend.c b/hw/xen/xen_backend.c
index 2a8c9f5..2a8c9f5 100644
--- a/hw/xen_backend.c
+++ b/hw/xen/xen_backend.c
diff --git a/hw/xen_devconfig.c b/hw/xen/xen_devconfig.c
index fa998ef..fa998ef 100644
--- a/hw/xen_devconfig.c
+++ b/hw/xen/xen_devconfig.c