From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58407) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uf1gr-0002RY-H1 for qemu-devel@nongnu.org; Wed, 22 May 2013 01:34:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uf1gm-0008U9-Nd for qemu-devel@nongnu.org; Wed, 22 May 2013 01:34:21 -0400 Received: from [222.73.24.84] (port=23659 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uf1gm-0008Rl-3G for qemu-devel@nongnu.org; Wed, 22 May 2013 01:34:16 -0400 From: Hu Tao Date: Wed, 22 May 2013 13:33:04 +0800 Message-Id: Subject: [Qemu-devel] [RFC PATCH v1 00/20] Refactor PC machine to take advantage of QOM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Vasilis Liaskovitis , Jan Kiszka , Anthony Liguori , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Wanpeng Li This is a re-do of original series posted by Anthony Liguori at: http://lists.gnu.org/archive/html/qemu-devel/2012-01/msg03501.html I post this series because: 1. there are no news from Anthony since the first version for more than a year 2. Li Wanfeng di some work on the refactor last year, but no news for half a year 3. memory hotplug requires i440fx pmc refactor if I'm getting it right (http://lists.gnu.org/archive/html/qemu-devel/2012-12/msg02693.html) Problems: 1. isapc is broken 2. too many code duplication between piix and ich 3. others TODO: 1. make a proper ISA model 2. a base class PCSuperIO that piix and ich can inherit from. isapc may also be modelled with PCSuperIO. But there was argument on this. (http://lists.gnu.org/archive/html/qemu-devel/2012-01/msg03626.html) 3. a base class MemoryController that i440fx-pmc and q35-mch can inherit from 4. others Hu Tao (20): i440fx: remove unused parameter i440fx_state of i440fx_init. i440fx: rename i440FX to i440FX-PMC i440fx: rename i440FX-pcihost to i440FX i440fx: prepare for composition piix3: make PIIX3-xen a subclass of PIIX3 piix3: prepare for composition piix3: create piix3 through composition. rtc: remove rtc_set_date ich9: function rename piix3,ich9: create the HPET through composition add rtc_set_irq piix3,ich9: create the RTC through composition piix3,ich9: create pit through composition piix3,ich9: create pc speaker through composition i440fx pmc: create pmc through comosition i440fx-pmc: calculate PCI memory hole directly i440fx-pmc: create pci address space q35-mch: create pci address space i440fx-pmc: move ram initialization into i440fx-pmc q35-mch: move ram initialization into q35-mch hw/i386/pc.c | 71 +------ hw/i386/pc_piix.c | 50 ++--- hw/i386/pc_q35.c | 35 ++-- hw/isa/lpc_ich9.c | 87 +++++++- hw/pci-host/piix.c | 447 ++++++++++++++++++++++++++++------------- hw/pci-host/q35.c | 48 ++++- hw/timer/hpet.c | 2 +- hw/timer/mc146818rtc.c | 8 +- include/hw/i386/ich9.h | 5 + include/hw/i386/pc.h | 20 +- include/hw/pci-host/q35.h | 10 +- include/hw/timer/hpet.h | 3 + include/hw/timer/i8254.h | 3 + include/hw/timer/mc146818rtc.h | 2 +- 14 files changed, 504 insertions(+), 287 deletions(-) -- 1.8.2.3