From e7e1f780b43c7476a036d4695136eac4339fc689 Mon Sep 17 00:00:00 2001 From: SeokYeon Hwang Date: Tue, 10 Sep 2013 16:30:12 +0900 Subject: [PATCH] Fix compilation errors on maru specific sources Change-Id: Icdedbc435b179a6da90d344c7b1c3dcdc55b15e9 Signed-off-by: SeokYeon Hwang --- tizen/src/Makefile.tizen | 2 +- tizen/src/hw/maru_board.c | 28 +++++++++++++++++++--------- tizen/src/hw/maru_brightness.c | 2 +- tizen/src/hw/maru_camera_common_pci.c | 4 ++-- tizen/src/hw/maru_codec.c | 4 ++-- tizen/src/hw/maru_overlay.c | 4 ++-- tizen/src/hw/maru_pm.c | 31 ++++++++++++++++--------------- tizen/src/hw/maru_vga.c | 4 ++-- tizen/src/hw/maru_vga_int.h | 2 +- tizen/src/hw/virtio-gl-stub.c | 2 +- tizen/src/mloop_event.c | 9 +++++---- 11 files changed, 52 insertions(+), 40 deletions(-) diff --git a/tizen/src/Makefile.tizen b/tizen/src/Makefile.tizen index adf078a..e326a64 100644 --- a/tizen/src/Makefile.tizen +++ b/tizen/src/Makefile.tizen @@ -48,7 +48,7 @@ ifdef CONFIG_GL GL_CUR_PATH = $(SRC_PATH)/tizen/src/hw GL_CFLAGS += -I$(GL_CUR_PATH) -I$(SRC_PATH)/fpu -GL_CFLAGS += -I$(SRC_PATH)/$(TARGET_ARCH)-softmmu $(QEMU_CFLAGS) $(CFLAGS) +GL_CFLAGS += -I$(SRC_PATH)/$(TARGET_NAME)-softmmu $(QEMU_CFLAGS) $(CFLAGS) parse_gl_h: parse_gl_h.c $(CC) -g -o $@ $< diff --git a/tizen/src/hw/maru_board.c b/tizen/src/hw/maru_board.c index e70390c..478e96e 100644 --- a/tizen/src/hw/maru_board.c +++ b/tizen/src/hw/maru_board.c @@ -90,6 +90,7 @@ static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 }; static const int ide_irq[MAX_IDE_BUS] = { 14, 15 }; static bool has_pvpanic = true; +static bool has_pci_info = true; MemoryRegion *global_ram_memory; @@ -129,6 +130,8 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, MemoryRegion *rom_memory; DeviceState *icc_bridge; void *fw_cfg = NULL; + PcGuestInfo *guest_info; + #if defined(__linux__) Display *display = XOpenDisplay(0); if (!display && !enable_spice) { @@ -140,6 +143,11 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, #endif struct winsys_interface *vigs_wsi = NULL; + if (xen_enabled() && xen_hvm_init() != 0) { + fprintf(stderr, "xen hardware virtual machine initialisation failed\n"); + exit(1); + } + icc_bridge = qdev_create(NULL, TYPE_ICC_BRIDGE); object_property_add_child(qdev_get_machine(), "icc-bridge", OBJECT(icc_bridge), NULL); @@ -161,13 +169,17 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, if (pci_enabled) { pci_memory = g_new(MemoryRegion, 1); - memory_region_init(pci_memory, "pci", INT64_MAX); + memory_region_init(pci_memory, NULL, "pci", INT64_MAX); rom_memory = pci_memory; } else { pci_memory = NULL; rom_memory = system_memory; } + guest_info = pc_guest_info_init(below_4g_mem_size, above_4g_mem_size); + guest_info->has_pci_info = has_pci_info; + guest_info->isapc_ram_fw = !pci_enabled; + /* allocate ram and load rom/bios */ if (!xen_enabled()) { // W/A for allocate larger continuous heap. @@ -179,7 +191,7 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, fw_cfg = pc_memory_init(system_memory, kernel_filename, kernel_cmdline, initrd_filename, below_4g_mem_size, above_4g_mem_size, - rom_memory, &ram_memory); + rom_memory, &ram_memory, guest_info); } // for ramdump... @@ -199,10 +211,7 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, system_memory, system_io, ram_size, below_4g_mem_size, 0x100000000ULL - below_4g_mem_size, - 0x100000000ULL + above_4g_mem_size, - (sizeof(hwaddr) == 4 - ? 0 - : ((uint64_t)1 << 62)), + above_4g_mem_size, pci_memory, ram_memory); } else { pci_bus = NULL; @@ -257,7 +266,7 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, dev = isa_ide_init(isa_bus, ide_iobase[i], ide_iobase2[i], ide_irq[i], hd[MAX_IDE_DEVS * i], hd[MAX_IDE_DEVS * i + 1]); - idebus[i] = qdev_get_child_bus(&dev->qdev, "ide.0"); + idebus[i] = qdev_get_child_bus(DEVICE(dev), "ide.0"); } } @@ -271,8 +280,7 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, if (pci_enabled && acpi_enabled) { i2c_bus *smbus; - smi_irq = qemu_allocate_irqs(pc_acpi_smi_interrupt, - x86_env_get_cpu(first_cpu), 1); + smi_irq = qemu_allocate_irqs(pc_acpi_smi_interrupt, first_cpu, 1); /* TODO: Populate SPD eeprom data. */ smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100, gsi[9], *smi_irq, @@ -316,6 +324,8 @@ static void maru_x86_machine_init(MemoryRegion *system_memory, static void maru_x86_board_init(QEMUMachineInitArgs *args) { + has_pci_info = false; + ram_addr_t ram_size = args->ram_size; const char *cpu_model = args->cpu_model; const char *kernel_filename = args->kernel_filename; diff --git a/tizen/src/hw/maru_brightness.c b/tizen/src/hw/maru_brightness.c index b694301..c875172 100644 --- a/tizen/src/hw/maru_brightness.c +++ b/tizen/src/hw/maru_brightness.c @@ -193,7 +193,7 @@ static int brightness_initfn(PCIDevice *dev) pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_VIRTUAL_BRIGHTNESS); pci_config_set_class(pci_conf, PCI_CLASS_DISPLAY_OTHER); - memory_region_init_io(&s->mmio_addr, &brightness_mmio_ops, s, + memory_region_init_io(&s->mmio_addr, OBJECT(s), &brightness_mmio_ops, s, "maru_brightness_mmio", BRIGHTNESS_REG_SIZE); pci_register_bar(&s->dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->mmio_addr); diff --git a/tizen/src/hw/maru_camera_common_pci.c b/tizen/src/hw/maru_camera_common_pci.c index a741492..23f7e66 100644 --- a/tizen/src/hw/maru_camera_common_pci.c +++ b/tizen/src/hw/maru_camera_common_pci.c @@ -206,11 +206,11 @@ static int marucam_initfn(PCIDevice *dev) pci_config_set_interrupt_pin(pci_conf, 0x03); - memory_region_init_ram(&s->vram, "marucamera.ram", MARUCAM_MEM_SIZE); + memory_region_init_ram(&s->vram, OBJECT(s), "marucamera.ram", MARUCAM_MEM_SIZE); s->vaddr = memory_region_get_ram_ptr(&s->vram); memset(s->vaddr, 0, MARUCAM_MEM_SIZE); - memory_region_init_io(&s->mmio, + memory_region_init_io(&s->mmio, OBJECT(s), &maru_camera_mmio_ops, s, "maru-camera-mmio", diff --git a/tizen/src/hw/maru_codec.c b/tizen/src/hw/maru_codec.c index 484bb1f..2c9b2db 100644 --- a/tizen/src/hw/maru_codec.c +++ b/tizen/src/hw/maru_codec.c @@ -1632,10 +1632,10 @@ static int codec_initfn(PCIDevice *dev) pci_config_set_interrupt_pin(pci_conf, 1); - memory_region_init_ram(&s->vram, "codec.ram", MARU_CODEC_MEM_SIZE); + memory_region_init_ram(&s->vram, OBJECT(s), "codec.ram", MARU_CODEC_MEM_SIZE); s->vaddr = memory_region_get_ram_ptr(&s->vram); - memory_region_init_io(&s->mmio, &codec_mmio_ops, s, + memory_region_init_io(&s->mmio, OBJECT(s), &codec_mmio_ops, s, "codec-mmio", MARU_CODEC_REG_SIZE); pci_register_bar(&s->dev, 0, PCI_BASE_ADDRESS_MEM_PREFETCH, &s->vram); diff --git a/tizen/src/hw/maru_overlay.c b/tizen/src/hw/maru_overlay.c index 55fbea6..ebe77ac 100644 --- a/tizen/src/hw/maru_overlay.c +++ b/tizen/src/hw/maru_overlay.c @@ -209,10 +209,10 @@ static int overlay_initfn(PCIDevice *dev) pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_VIRTUAL_OVERLAY); pci_config_set_class(pci_conf, PCI_CLASS_DISPLAY_OTHER); - memory_region_init_ram(&s->mem_addr, "maru_overlay.ram", OVERLAY_MEM_SIZE); + memory_region_init_ram(&s->mem_addr, NULL, "maru_overlay.ram", OVERLAY_MEM_SIZE); overlay_ptr = memory_region_get_ram_ptr(&s->mem_addr); - memory_region_init_io(&s->mmio_addr, &overlay_mmio_ops, + memory_region_init_io(&s->mmio_addr, NULL, &overlay_mmio_ops, s, "maru_overlay_mmio", OVERLAY_REG_SIZE); diff --git a/tizen/src/hw/maru_pm.c b/tizen/src/hw/maru_pm.c index 7e00240..4f9bc35 100644 --- a/tizen/src/hw/maru_pm.c +++ b/tizen/src/hw/maru_pm.c @@ -454,14 +454,16 @@ static void piix4_pm_powerdown_req(Notifier *n, void *opaque) static void piix4_pm_machine_ready(Notifier *n, void *opaque) { PIIX4PMState *s = container_of(n, PIIX4PMState, machine_ready); + PCIDevice *d = PCI_DEVICE(s); + MemoryRegion *io_as = pci_address_space_io(d); uint8_t *pci_conf; - pci_conf = s->dev.config; - pci_conf[0x5f] = (isa_is_ioport_assigned(0x378) ? 0x80 : 0) | 0x10; + pci_conf = d->config; + pci_conf[0x5f] = 0x10 | + (memory_region_present(io_as, 0x378) ? 0x80 : 0); pci_conf[0x63] = 0x60; - pci_conf[0x67] = (isa_is_ioport_assigned(0x3f8) ? 0x08 : 0) | - (isa_is_ioport_assigned(0x2f8) ? 0x90 : 0); - + pci_conf[0x67] = (memory_region_present(io_as, 0x3f8) ? 0x08 : 0) | + (memory_region_present(io_as, 0x2f8) ? 0x90 : 0); } static int piix4_pm_initfn(PCIDevice *dev) @@ -496,7 +498,7 @@ static int piix4_pm_initfn(PCIDevice *dev) memory_region_add_subregion(pci_address_space_io(dev), s->smb_io_base, &s->smb.io); - memory_region_init(&s->io, "maru-pm", 64); + memory_region_init(&s->io, OBJECT(s), "maru-pm", 64); memory_region_set_enabled(&s->io, false); memory_region_add_subregion(pci_address_space_io(dev), 0, &s->io); @@ -505,7 +507,7 @@ static int piix4_pm_initfn(PCIDevice *dev) acpi_pm1_evt_init(&s->ar, pm_tmr_timer, &s->io); acpi_pm1_cnt_init(&s->ar, &s->io, s->s4_val); #if defined(CONFIG_MARU) - memory_region_init_io(&s->ar.pm1.cnt.io, &maru_pm_cnt_ops, &s->ar, "acpi-cnt", 2); + memory_region_init_io(&s->ar.pm1.cnt.io, OBJECT(s), &maru_pm_cnt_ops, &s->ar, "acpi-cnt", 2); #endif acpi_gpe_init(&s->ar, GPE_LEN); @@ -746,20 +748,19 @@ static int piix4_device_hotplug(DeviceState *qdev, PCIDevice *dev, static void piix4_acpi_system_hot_add_init(MemoryRegion *parent, PCIBus *bus, PIIX4PMState *s) { - - memory_region_init_io(&s->io_gpe, &piix4_gpe_ops, s, "apci-gpe0", - GPE_LEN); + memory_region_init_io(&s->io_gpe, OBJECT(s), &piix4_gpe_ops, s, + "acpi-gpe0", GPE_LEN); memory_region_add_subregion(parent, GPE_BASE, &s->io_gpe); - memory_region_init_io(&s->io_pci, &piix4_pci_ops, s, "apci-pci-hotplug", - PCI_HOTPLUG_SIZE); + memory_region_init_io(&s->io_pci, OBJECT(s), &piix4_pci_ops, s, + "acpi-pci-hotplug", PCI_HOTPLUG_SIZE); memory_region_add_subregion(parent, PCI_HOTPLUG_ADDR, &s->io_pci); - pci_bus_hotplug(bus, piix4_device_hotplug, &s->dev.qdev); + pci_bus_hotplug(bus, piix4_device_hotplug, DEVICE(s)); qemu_for_each_cpu(piix4_init_cpu_status, &s->gpe_cpu); - memory_region_init_io(&s->io_cpu, &cpu_hotplug_ops, s, "apci-cpu-hotplug", - PIIX4_PROC_LEN); + memory_region_init_io(&s->io_cpu, OBJECT(s), &cpu_hotplug_ops, s, + "acpi-cpu-hotplug", PIIX4_PROC_LEN); memory_region_add_subregion(parent, PIIX4_PROC_BASE, &s->io_cpu); s->cpu_added_notifier.notify = piix4_cpu_added_req; qemu_register_cpu_added_notifier(&s->cpu_added_notifier); diff --git a/tizen/src/hw/maru_vga.c b/tizen/src/hw/maru_vga.c index 13c8679..db547c6 100644 --- a/tizen/src/hw/maru_vga.c +++ b/tizen/src/hw/maru_vga.c @@ -1395,7 +1395,7 @@ static const GraphicHwOps vga_ops = { .text_update = vga_update_text, }; -void maru_vga_common_init(VGACommonState *s) +void maru_vga_common_init(VGACommonState *s, Object *obj) { int i, j, v, b; @@ -1431,7 +1431,7 @@ void maru_vga_common_init(VGACommonState *s) s->vram_size_mb = s->vram_size >> 20; s->is_vbe_vmstate = 1; - memory_region_init_ram(&s->vram, "maru_vga.vram", s->vram_size); + memory_region_init_ram(&s->vram, obj, "maru_vga.vram", s->vram_size); vmstate_register_ram_global(&s->vram); xen_register_framebuffer(&s->vram); s->vram_ptr = memory_region_get_ram_ptr(&s->vram); diff --git a/tizen/src/hw/maru_vga_int.h b/tizen/src/hw/maru_vga_int.h index d59a963..1183e17 100644 --- a/tizen/src/hw/maru_vga_int.h +++ b/tizen/src/hw/maru_vga_int.h @@ -31,7 +31,7 @@ #ifndef MARU_VGA_INT_H_ #define MARU_VGA_INT_H_ -void maru_vga_common_init(VGACommonState *s); +void maru_vga_common_init(VGACommonState *s, Object *obj); void maru_vga_common_fini(void); #endif /* MARU_VGA_INT_H_ */ diff --git a/tizen/src/hw/virtio-gl-stub.c b/tizen/src/hw/virtio-gl-stub.c index 76fbcf6..5a12d59 100644 --- a/tizen/src/hw/virtio-gl-stub.c +++ b/tizen/src/hw/virtio-gl-stub.c @@ -16,7 +16,7 @@ * with this program; if not, see . */ -#include "virtio.h" +#include "hw/virtio/virtio.h" VirtIODevice *virtio_gl_init(DeviceState *dev) { diff --git a/tizen/src/mloop_event.c b/tizen/src/mloop_event.c index f6b1a92..32e838b 100644 --- a/tizen/src/mloop_event.c +++ b/tizen/src/mloop_event.c @@ -47,6 +47,7 @@ #include "monitor/monitor.h" #include "hw/pci/pci.h" #include "sysemu/sysemu.h" +#include "exec/memory-internal.h" #include "emulator.h" #include "guest_debug.h" @@ -303,8 +304,8 @@ static void mloop_evhandle_kbd_add(char *name) hostkbd = do_pci_device_hot_add(cur_mon, qdict); if (hostkbd) { - TRACE("virtio-keyboard device: domain %d, bus %d, slot %d, function %d\n", - pci_find_domain(hostkbd->bus), pci_bus_num(hostkbd->bus), + TRACE("virtio-keyboard device: root_bus_path %s, bus %d, slot %d, function %d\n", + pci_root_bus_path(hostkbd), pci_bus_num(hostkbd->bus), PCI_SLOT(hostkbd->devfn), PCI_FUNC(hostkbd->devfn)); } else { ERR("failed to hot_add keyboard device.\n"); @@ -368,8 +369,8 @@ static void mloop_evhandle_sdcard_attach(char *name) virtio_sdcard = do_pci_device_hot_add(cur_mon, qdict); if (virtio_sdcard) { INFO("hot add virtio storage device with [%s]\n", opts); - INFO("virtio-sdcard device: domain %d, bus %d, slot %d, function %d\n", - pci_find_domain(virtio_sdcard->bus), pci_bus_num(virtio_sdcard->bus), + INFO("virtio-sdcard device: root_bus_path %s, bus %d, slot %d, function %d\n", + pci_root_bus_path(virtio_sdcard), pci_bus_num(virtio_sdcard->bus), PCI_SLOT(virtio_sdcard->devfn), PCI_FUNC(virtio_sdcard->devfn)); } else { ERR("failed to create a sdcard device.\n"); -- 2.7.4