ICC Bus was used for providing a hotpluggable bus for APIC and CPU,
but now we use HotplugHandler to make hotplug. So ICC Bus is
unnecessary.
This code has passed the new pc-cpu-test.
And I have tested with kvm along with kernel_irqchip=on/off,
it works fine.
This patch series is based on Eduardo's x86 tree.
https://github.com/ehabkost/qemu.git
v8:
-add a wrapper to specify reset order
v7:
-update to register reset handler for main_system_bus when created
-register reset handler for apic after all devices are initialized
v6:
-reword commit message
-drop NULL check for APIC device
-use C cast instead of QOM cast
v5:
-convert DEVICE() casts to C casts
-use a local variable instead of doing the cast inline twice
-drop to set cpu's parent bus
-rename patch 3's subject
-fix a bug about setting cpu's apic base
v4:
-add wrapper to get root memory region from address space
-set cpu apic base's default value in x86_cpu_apic_create()
-drop NULL check for cpu apic_state
-put drop of the unused files about icc_bus into a seprate patch
-put DEVICE() casts into a seprate patch
v3:
-replace init apic by object_new()
-add reset apic at the time of CPU reset
Chen Fan (2):
apic: map APIC's MMIO region at each CPU's address space
cpu/apic: drop icc bus/bridge
Zhu Guihua (2):
hw: add a wrapper for registering reset handler
icc_bus: drop the unused files
default-configs/i386-softmmu.mak | 1 -
default-configs/x86_64-softmmu.mak | 1 -
exec.c | 5 ++
hw/cpu/Makefile.objs | 1 -
hw/cpu/icc_bus.c | 118 -------------------------------------
hw/i386/pc.c | 31 +++-------
hw/i386/pc_piix.c | 9 +--
hw/i386/pc_q35.c | 9 +--
hw/intc/apic_common.c | 19 +++---
include/exec/memory.h | 5 ++
include/hw/cpu/icc_bus.h | 82 --------------------------
include/hw/hw.h | 4 ++
include/hw/i386/apic_internal.h | 7 ++-
include/hw/i386/pc.h | 2 +-
target-i386/cpu.c | 25 +++++---
target-i386/cpu.h | 4 ++
vl.c | 18 +++++-
17 files changed, 78 insertions(+), 263 deletions(-)
delete mode 100644 hw/cpu/icc_bus.c
delete mode 100644 include/hw/cpu/icc_bus.h