* [PATCH] kvm/qemu: Fix ia64 build broken.
@ 2007-12-21 14:58 Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB567F5-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 24+ messages in thread
From: Zhang, Xiantao @ 2007-12-21 14:58 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Avi Kivity
[-- Attachment #1: Type: text/plain, Size: 24251 bytes --]
Hi, Avi
Due to last merge with Qemu upstream, some interfaces are changed, and
leads to build fail
, this patch fixed them.
Xiantao
From: Zhang Xiantao <xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Date: Fri, 21 Dec 2007 22:47:52 +0800
Subject: [PATCH] kvm: qemu : Fix ia64 build on latest source.
Due to last merge with qemu upstream, ia64 build
is broken. This patch fix it.
Signed-off-by: Zhang Xiantao <xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
qemu/hw/boards.h | 3 +
qemu/hw/ipf.c | 553
+++++++++++++++++++++++-------------------
qemu/qemu-kvm-ia64.c | 2 +-
qemu/sysemu.h | 5 +
qemu/target-ia64/cpu.h | 10 +-
qemu/target-ia64/firmware.c | 1 -
qemu/target-ia64/op_helper.c | 2 +-
7 files changed, 325 insertions(+), 251 deletions(-)
diff --git a/qemu/hw/boards.h b/qemu/hw/boards.h
index 079760d..3285e6e 100644
--- a/qemu/hw/boards.h
+++ b/qemu/hw/boards.h
@@ -96,4 +96,7 @@ extern QEMUMachine dummy_m68k_machine;
/* mainstone.c */
extern QEMUMachine mainstone2_machine;
+/* ipf.c */
+extern QEMUMachine ipf_machine;
+
#endif
diff --git a/qemu/hw/ipf.c b/qemu/hw/ipf.c
index 9bcdb85..9c74531 100644
--- a/qemu/hw/ipf.c
+++ b/qemu/hw/ipf.c
@@ -24,9 +24,20 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN
* THE SOFTWARE.
*/
-#include "vl.h"
+
+#include "hw.h"
+#include "pc.h"
+#include "fdc.h"
+#include "pci.h"
+#include "block.h"
+#include "sysemu.h"
+#include "audio/audio.h"
+#include "net.h"
+#include "smbus.h"
+#include "boards.h"
#include "firmware.h"
#include "ia64intrin.h"
+#include "dyngen.h"
#include <unistd.h>
#ifdef USE_KVM
@@ -34,34 +45,23 @@
extern int kvm_allowed;
#endif
-/* output Bochs bios info messages */
-//#define DEBUG_BIOS
-
#define FW_FILENAME "Flash.fd"
/* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables.
*/
#define ACPI_DATA_SIZE 0x10000
+#define MAX_IDE_BUS 2
+
static fdctrl_t *floppy_controller;
static RTCState *rtc_state;
static PCIDevice *i440fx_state;
-static const int ide_iobase[2] = { 0x1f0, 0x170 };
-static const int ide_iobase2[2] = { 0x3f6, 0x376 };
-static const int ide_irq[2] = { 14, 15 };
-
-#define NE2000_NB_MAX 6
-
-static int ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360,
0x280, 0x380 };
-static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 };
-
-static int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8
};
-static int serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 };
-
-static int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
-static int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };
+static void pic_irq_request(void *opaque, int irq, int level)
+{
+ fprintf(stderr,"pic_irq_request called!\n");
+}
-/* cmos mappings */
+/* PC cmos mappings */
#define REG_EQUIPMENT_BYTE 0x14
@@ -106,10 +106,30 @@ static void cmos_init_hd(int type_ofs, int
info_ofs, BlockDriverState *hd)
rtc_set_memory(s, info_ofs + 8, sectors);
}
+/* convert boot_device letter to something recognizable by the bios */
+static int boot_device2nibble(char boot_device)
+{
+ switch(boot_device) {
+ case 'a':
+ case 'b':
+ return 0x01; /* floppy boot */
+ case 'c':
+ return 0x02; /* hard drive boot */
+ case 'd':
+ return 0x03; /* CD-ROM boot */
+ case 'n':
+ return 0x04; /* Network boot */
+ }
+ return 0;
+}
+
/* hd_table must contain 4 block drivers */
-static void cmos_init(ram_addr_t ram_size, ram_addr_t
above_4g_mem_size, int boot_device, BlockDriverState **hd_table, int
smp_cpus)
+static void cmos_init(ram_addr_t ram_size, ram_addr_t
above_4g_mem_size,
+ const char *boot_device, BlockDriverState
**hd_table,
+ int smp_cpus)
{
RTCState *s = rtc_state;
+ int nbds, bds[3] = { 0, };
int val;
int fd0, fd1, nb;
int i;
@@ -145,24 +165,23 @@ static void cmos_init(ram_addr_t ram_size,
ram_addr_t above_4g_mem_size, int boo
rtc_set_memory(s, 0x34, val);
rtc_set_memory(s, 0x35, val >> 8);
- switch(boot_device) {
- case 'a':
- case 'b':
- rtc_set_memory(s, 0x3d, 0x01); /* floppy boot */
- if (!fd_bootchk)
- rtc_set_memory(s, 0x38, 0x01); /* disable signature check
*/
- break;
- default:
- case 'c':
- rtc_set_memory(s, 0x3d, 0x02); /* hard drive boot */
- break;
- case 'd':
- rtc_set_memory(s, 0x3d, 0x03); /* CD-ROM boot */
- break;
- case 'n':
- rtc_set_memory(s, 0x3d, 0x04); /* Network boot */
- break;
+ /* set boot devices, and disable floppy signature check if
requested */
+#define PC_MAX_BOOT_DEVICES 3
+ nbds = strlen(boot_device);
+ if (nbds > PC_MAX_BOOT_DEVICES) {
+ fprintf(stderr, "Too many boot devices for PC\n");
+ exit(1);
+ }
+ for (i = 0; i < nbds; i++) {
+ bds[i] = boot_device2nibble(boot_device[i]);
+ if (bds[i] == 0) {
+ fprintf(stderr, "Invalid boot device for PC: '%c'\n",
+ boot_device[i]);
+ exit(1);
+ }
}
+ rtc_set_memory(s, 0x3d, (bds[1] << 4) | bds[0]);
+ rtc_set_memory(s, 0x38, (bds[2] << 4) | (fd_bootchk ? 0x0 : 0x1));
/* floppy type */
@@ -227,47 +246,67 @@ static void cmos_init(ram_addr_t ram_size,
ram_addr_t above_4g_mem_size, int boo
rtc_set_memory(s, 0x39, val);
}
+static void main_cpu_reset(void *opaque)
+{
+ CPUState *env = opaque;
+ cpu_reset(env);
+}
+
+static const int ide_iobase[2] = { 0x1f0, 0x170 };
+static const int ide_iobase2[2] = { 0x3f6, 0x376 };
+static const int ide_irq[2] = { 14, 15 };
+
+#define NE2000_NB_MAX 6
+
+static int ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360,
0x280, 0x380 };
+static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 };
+
+static int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8
};
+static int serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 };
+
+static int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
+static int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };
#ifdef HAS_AUDIO
static void audio_init (PCIBus *pci_bus, qemu_irq *pic)
{
- struct soundhw *c;
- int audio_enabled = 0;
+ struct soundhw *c;
+ int audio_enabled = 0;
- for (c = soundhw; !audio_enabled && c->name; ++c) {
- audio_enabled = c->enabled;
- }
+ for (c = soundhw; !audio_enabled && c->name; ++c) {
+ audio_enabled = c->enabled;
+ }
- if (audio_enabled) {
- AudioState *s;
-
- s = AUD_init ();
- if (s) {
- for (c = soundhw; c->name; ++c) {
- if (c->enabled) {
- if (c->isa) {
- c->init.init_isa (s,
pic);
- }
- else {
- if (pci_bus) {
- c->init.init_pci
(pci_bus, s);
- }
- }
- }
- }
- }
- }
+ if (audio_enabled) {
+ AudioState *s;
+
+ s = AUD_init ();
+ if (s) {
+ for (c = soundhw; c->name; ++c) {
+ if (c->enabled) {
+ if (c->isa) {
+ c->init.init_isa (s, pic);
+ }
+ else {
+ if (pci_bus) {
+ c->init.init_pci (pci_bus, s);
+ }
+ }
+ }
+ }
+ }
+ }
}
#endif
static void pc_init_ne2k_isa(NICInfo *nd, qemu_irq *pic)
{
- static int nb_ne2k = 0;
+ static int nb_ne2k = 0;
- if (nb_ne2k == NE2000_NB_MAX)
- return;
- isa_ne2000_init(ne2000_io[nb_ne2k], pic[ne2000_irq[nb_ne2k]],
nd);
- nb_ne2k++;
+ if (nb_ne2k == NE2000_NB_MAX)
+ return;
+ isa_ne2000_init(ne2000_io[nb_ne2k], pic[ne2000_irq[nb_ne2k]], nd);
+ nb_ne2k++;
}
#ifdef USE_KVM
@@ -275,55 +314,57 @@ extern kvm_context_t kvm_context;
extern int kvm_allowed;
#endif
-static void main_cpu_reset(void *opaque)
-{
- CPUState *env = opaque;
- cpu_reset(env);
-}
-static void pic_irq_request(void *opaque, int irq, int level)
-{
- fprintf(stderr,"pic_irq_request called!\n");
-}
-
-/* IPF hardware initialisation */
-static void ipf_init1(ram_addr_t ram_size, int vga_ram_size, int
boot_device,
- DisplayState *ds, const char **fd_filename, int
snapshot,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename,
- int pci_enabled)
+/* Itanium hardware initialisation */
+static void ipf_init1(ram_addr_t ram_size, int vga_ram_size,
+ const char *boot_device, DisplayState *ds,
+ const char *kernel_filename, const char
*kernel_cmdline,
+ const char *initrd_filename,
+ int pci_enabled, const char *cpu_model)
{
- char buf[1024];
- int i;
- ram_addr_t ram_addr, vga_ram_addr;
- ram_addr_t above_4g_mem_size = 0;
- PCIBus *pci_bus;
- int piix3_devfn = -1;
- CPUState *env;
- NICInfo *nd;
- qemu_irq *cpu_irq;
- qemu_irq *i8259;
- int page_size;
-
- page_size = getpagesize();
- if (page_size != TARGET_PAGE_SIZE) {
- fprintf(stderr,"Error! Host page size != qemu target
page size,"
- " you may need to change TARGET_PAGE_BITS in
qemu!\n");
+ char buf[1024];
+ int i;
+ ram_addr_t ram_addr, vga_ram_addr;
+ ram_addr_t above_4g_mem_size = 0;
+ PCIBus *pci_bus;
+ int piix3_devfn = -1;
+ CPUState *env;
+ NICInfo *nd;
+ qemu_irq *cpu_irq;
+ qemu_irq *i8259;
+ int page_size;
+ int index;
+ BlockDriverState *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
+ BlockDriverState *fd[MAX_FD];
+
+ page_size = getpagesize();
+ if (page_size != TARGET_PAGE_SIZE) {
+ fprintf(stderr,"Error! Host page size != qemu target page size,"
+ " you may need to change TARGET_PAGE_BITS in
qemu!"
+ "host page size:0x%x\n", page_size);
exit(-1);
- }
+ };
- if (ram_size >= 0xc0000000 ) {
- above_4g_mem_size = ram_size - 0xc0000000;
- ram_size = 0xc0000000;
- }
+ if (ram_size >= 0xc0000000 ) {
+ above_4g_mem_size = ram_size - 0xc0000000;
+ ram_size = 0xc0000000;
+ }
- /* init CPUs */
- for(i = 0; i < smp_cpus; i++) {
- env = cpu_init();
- if (i != 0)
- env->hflags |= HF_HALTED_MASK;
- register_savevm("cpu", i, 4, cpu_save, cpu_load, env);
- qemu_register_reset(main_cpu_reset, env);
- }
+ /* init CPUs */
+ if (cpu_model == NULL) {
+ cpu_model = "IA64";
+ }
+
+ for(i = 0; i < smp_cpus; i++) {
+ env = cpu_init(cpu_model);
+ if (!env) {
+ fprintf(stderr, "Unable to find CPU definition\n");
+ exit(1);
+ }
+ if (i != 0)
+ env->hflags |= HF_HALTED_MASK;
+ register_savevm("cpu", i, 4, cpu_save, cpu_load, env);
+ qemu_register_reset(main_cpu_reset, env);
+ }
/* allocate RAM */
#ifdef USE_KVM
@@ -346,20 +387,20 @@ static void ipf_init1(ram_addr_t ram_size, int
vga_ram_size, int boot_device,
} else
#endif
#endif
- {
- ram_addr = qemu_ram_alloc(ram_size);
- cpu_register_physical_memory(0, ram_size, ram_addr);
- }
- /* allocate VGA RAM */
- vga_ram_addr = qemu_ram_alloc(vga_ram_size);
+ {
+ ram_addr = qemu_ram_alloc(ram_size);
+ cpu_register_physical_memory(0, ram_size, ram_addr);
+ }
+ /* allocate VGA RAM */
+ vga_ram_addr = qemu_ram_alloc(vga_ram_size);
/* above 4giga memory allocation */
if (above_4g_mem_size > 0) {
ram_addr = qemu_ram_alloc(above_4g_mem_size);
cpu_register_physical_memory(0x100000000,
above_4g_mem_size, ram_addr);
#ifdef USE_KVM
- if (kvm_allowed)
- kvm_cpu_register_physical_memory(0x100000000,
above_4g_mem_size,
+ if (kvm_allowed)
+ kvm_cpu_register_physical_memory(0x100000000,
above_4g_mem_size,
ram_addr);
#endif
}
@@ -400,158 +441,180 @@ static void ipf_init1(ram_addr_t ram_size, int
vga_ram_size, int boot_device,
memcpy(fw_image_start, image, image_size);
}
free(image);
- kvm_sync_icache((unsigned long)fw_image_start,
image_size);
+ flush_icache_range((unsigned long)fw_image_start,
+ (unsigned long)fw_image_start + image_size);
kvm_ia64_build_hob(ram_size, smp_cpus, fw_start);
}
#endif
- cpu_irq = qemu_allocate_irqs(pic_irq_request, first_cpu, 1);
- i8259 = i8259_init(cpu_irq[0]);
+ cpu_irq = qemu_allocate_irqs(pic_irq_request, first_cpu, 1);
+ i8259 = i8259_init(cpu_irq[0]);
- if (pci_enabled) {
- pci_bus = i440fx_init(&i440fx_state, i8259);
- piix3_devfn = piix3_init(pci_bus, -1);
- } else {
- pci_bus = NULL;
- }
+ if (pci_enabled) {
+ pci_bus = i440fx_init(&i440fx_state, i8259);
+ piix3_devfn = piix3_init(pci_bus, -1);
+ } else {
+ pci_bus = NULL;
+ }
- if (cirrus_vga_enabled) {
- if (pci_enabled) {
- pci_cirrus_vga_init(pci_bus,
- ds, phys_ram_base +
vga_ram_addr,
- vga_ram_addr, vga_ram_size);
- } else {
- isa_cirrus_vga_init(ds, phys_ram_base +
vga_ram_addr,
- vga_ram_addr, vga_ram_size);
- }
- } else {
- if (pci_enabled) {
- pci_vga_init(pci_bus, ds, phys_ram_base +
vga_ram_addr,
- vga_ram_addr, vga_ram_size, 0,
0);
- } else {
- isa_vga_init(ds, phys_ram_base + vga_ram_addr,
- vga_ram_addr, vga_ram_size);
- }
- }
- rtc_state = rtc_init(0x70, i8259[8]);
+ if (cirrus_vga_enabled) {
+ if (pci_enabled) {
+ pci_cirrus_vga_init(pci_bus,
+ ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size);
+ } else {
+ isa_cirrus_vga_init(ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size);
+ }
+ } else {
+ if (pci_enabled) {
+ pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size, 0, 0);
+ } else {
+ isa_vga_init(ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size);
+ }
+ }
- if (pci_enabled) {
- pic_set_alt_irq_func(isa_pic, NULL, NULL);
- }
+ rtc_state = rtc_init(0x70, i8259[8]);
- for(i = 0; i < MAX_SERIAL_PORTS; i++) {
- if (serial_hds[i]) {
- serial_init(serial_io[i], i8259[serial_irq[i]],
serial_hds[i]);
- }
- }
+ if (pci_enabled) {
+ pic_set_alt_irq_func(isa_pic, NULL, NULL);
+ }
- for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
- if (parallel_hds[i]) {
- parallel_init(parallel_io[i],
i8259[parallel_irq[i]],
- parallel_hds[i]);
- }
- }
+ for(i = 0; i < MAX_SERIAL_PORTS; i++) {
+ if (serial_hds[i]) {
+ serial_init(serial_io[i], i8259[serial_irq[i]],
serial_hds[i]);
+ }
+ }
- for(i = 0; i < nb_nics; i++) {
- nd = &nd_table[i];
- if (!nd->model) {
- if (pci_enabled) {
- nd->model = "ne2k_pci";
- } else {
- nd->model = "ne2k_isa";
- }
- }
- if (strcmp(nd->model, "ne2k_isa") == 0) {
- pc_init_ne2k_isa(nd, i8259);
- } else if (pci_enabled) {
- if (strcmp(nd->model, "?") == 0)
- fprintf(stderr, "qemu: Supported ISA
NICs: ne2k_isa\n");
- pci_nic_init(pci_bus, nd, -1);
- } else if (strcmp(nd->model, "?") == 0) {
- fprintf(stderr, "qemu: Supported ISA NICs:
ne2k_isa\n");
- exit(1);
- } else {
- fprintf(stderr, "qemu: Unsupported NIC: %s\n",
nd->model);
- exit(1);
- }
- }
+ for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
+ if (parallel_hds[i]) {
+ parallel_init(parallel_io[i], i8259[parallel_irq[i]],
+ parallel_hds[i]);
+ }
+ }
-#undef USE_HYPERCALL // Disable hypercall now, due to shor of support
for VT-i.
+ for(i = 0; i < nb_nics; i++) {
+ nd = &nd_table[i];
+ if (!nd->model) {
+ if (pci_enabled) {
+ nd->model = "ne2k_pci";
+ } else {
+ nd->model = "ne2k_isa";
+ }
+ }
+ if (strcmp(nd->model, "ne2k_isa") == 0) {
+ pc_init_ne2k_isa(nd, i8259);
+ } else if (pci_enabled) {
+ if (strcmp(nd->model, "?") == 0)
+ fprintf(stderr, "qemu: Supported ISA NICs:
ne2k_isa\n");
+ pci_nic_init(pci_bus, nd, -1);
+ } else if (strcmp(nd->model, "?") == 0) {
+ fprintf(stderr, "qemu: Supported ISA NICs: ne2k_isa\n");
+ exit(1);
+ } else {
+ fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model);
+ exit(1);
+ }
+ }
+
+#undef USE_HYPERCALL //Disable it now, need to implement later!
#ifdef USE_HYPERCALL
- pci_hypercall_init(pci_bus);
+ pci_hypercall_init(pci_bus);
#endif
- if (pci_enabled) {
- pci_piix3_ide_init(pci_bus, bs_table, piix3_devfn + 1,
i8259);
- } else {
- for(i = 0; i < 2; i++) {
- isa_ide_init(ide_iobase[i], ide_iobase2[i],
i8259[ide_irq[i]],
- bs_table[2 * i], bs_table[2 * i
+ 1]);
- }
- }
- i8042_init(i8259[1], i8259[12], 0x60);
- DMA_init(0);
+ if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) {
+ fprintf(stderr, "qemu: too many IDE bus\n");
+ exit(1);
+ }
+
+ for(i = 0; i < MAX_IDE_BUS * MAX_IDE_DEVS; i++) {
+ index = drive_get_index(IF_IDE, i / MAX_IDE_DEVS, i %
MAX_IDE_DEVS);
+ if (index != -1)
+ hd[i] = drives_table[index].bdrv;
+ else
+ hd[i] = NULL;
+ }
+
+ if (pci_enabled) {
+ pci_piix3_ide_init(pci_bus, hd, piix3_devfn + 1, i8259);
+ } else {
+ for(i = 0; i < MAX_IDE_BUS; i++) {
+ isa_ide_init(ide_iobase[i], ide_iobase2[i],
i8259[ide_irq[i]],
+ hd[MAX_IDE_DEVS * i], hd[MAX_IDE_DEVS * i +
1]);
+ }
+ }
+
+ i8042_init(i8259[1], i8259[12], 0x60);
+ DMA_init(0);
#ifdef HAS_AUDIO
- audio_init(pci_enabled ? pci_bus : NULL, i8259);
+ audio_init(pci_enabled ? pci_bus : NULL, i8259);
#endif
- floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0,
fd_table);
+ for(i = 0; i < MAX_FD; i++) {
+ index = drive_get_index(IF_FLOPPY, 0, i);
+ if (index != -1)
+ fd[i] = drives_table[index].bdrv;
+ else
+ fd[i] = NULL;
+ }
+ floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0, fd);
- cmos_init(ram_size, above_4g_mem_size, boot_device, bs_table,
smp_cpus);
+ cmos_init(ram_size, above_4g_mem_size, boot_device, hd, smp_cpus);
- if (pci_enabled && usb_enabled) {
- usb_uhci_piix3_init(pci_bus, piix3_devfn + 2);
- }
+ if (pci_enabled && usb_enabled) {
+ usb_uhci_piix3_init(pci_bus, piix3_devfn + 2);
+ }
- if (pci_enabled && acpi_enabled) {
- uint8_t *eeprom_buf = qemu_mallocz(8 * 256); /* XXX:
make this persistent */
- i2c_bus *smbus;
+ if (pci_enabled && acpi_enabled) {
+ uint8_t *eeprom_buf = qemu_mallocz(8 * 256); /* XXX: make this
persistent */
+ i2c_bus *smbus;
- /* TODO: Populate SPD eeprom data. */
- smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100);
- for (i = 0; i < 8; i++) {
- smbus_eeprom_device_init(smbus, 0x50 + i,
eeprom_buf + (i * 256));
- }
- }
+ /* TODO: Populate SPD eeprom data. */
+ smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100);
+ for (i = 0; i < 8; i++) {
+ smbus_eeprom_device_init(smbus, 0x50 + i, eeprom_buf + (i *
256));
+ }
+ }
- if (i440fx_state) {
- i440fx_init_memory_mappings(i440fx_state);
- }
-#if 0
- /* ??? Need to figure out some way for the user to
- specify SCSI devices. */
- if (pci_enabled) {
- void *scsi;
- BlockDriverState *bdrv;
-
- scsi = lsi_scsi_init(pci_bus, -1);
- bdrv = bdrv_new("scsidisk");
- bdrv_open(bdrv, "scsi_disk.img", 0);
- lsi_scsi_attach(scsi, bdrv, -1);
- bdrv = bdrv_new("scsicd");
- bdrv_open(bdrv, "scsi_cd.iso", 0);
- bdrv_set_type_hint(bdrv, BDRV_TYPE_CDROM);
- lsi_scsi_attach(scsi, bdrv, -1);
- }
-#endif
+ if (i440fx_state) {
+ i440fx_init_memory_mappings(i440fx_state);
+ }
+
+ if (pci_enabled) {
+ int max_bus;
+ int bus, unit;
+ void *scsi;
+
+ max_bus = drive_get_max_bus(IF_SCSI);
+
+ for (bus = 0; bus <= max_bus; bus++) {
+ scsi = lsi_scsi_init(pci_bus, -1);
+ for (unit = 0; unit < LSI_MAX_DEVS; unit++) {
+ index = drive_get_index(IF_SCSI, bus, unit);
+ if (index == -1)
+ continue;
+ lsi_scsi_attach(scsi, drives_table[index].bdrv, unit);
+ }
+ }
+ }
}
-static void ipf_init_pci(ram_addr_t ram_size, int vga_ram_size, int
boot_device,
- DisplayState *ds, const char **fd_filename,
- int snapshot,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void ipf_init_pci(ram_addr_t ram_size, int vga_ram_size,
+ const char *boot_device, DisplayState *ds,
+ const char *kernel_filename,
+ const char *kernel_cmdline,
+ const char *initrd_filename,
+ const char *cpu_model)
{
- ipf_init1(ram_size, vga_ram_size, boot_device,
- ds, fd_filename, snapshot,
- kernel_filename, kernel_cmdline,
- initrd_filename, 1);
+ ipf_init1(ram_size, vga_ram_size, boot_device, ds,
+ kernel_filename, kernel_cmdline,
+ initrd_filename, 1, cpu_model);
}
QEMUMachine ipf_machine = {
- "itanium",
- "Itanium Platform",
- ipf_init_pci,
+ "itanium",
+ "Itanium Platform",
+ ipf_init_pci,
};
diff --git a/qemu/qemu-kvm-ia64.c b/qemu/qemu-kvm-ia64.c
index 0029a43..d3d6ac7 100644
--- a/qemu/qemu-kvm-ia64.c
+++ b/qemu/qemu-kvm-ia64.c
@@ -8,8 +8,8 @@ extern int kvm_irqchip;
#ifdef USE_KVM
#include <string.h>
-#include "vl.h"
+#include "hw/hw.h"
#include "qemu-kvm.h"
#include <libkvm.h>
#include <pthread.h>
diff --git a/qemu/sysemu.h b/qemu/sysemu.h
index 1f5b093..87098ae 100644
--- a/qemu/sysemu.h
+++ b/qemu/sysemu.h
@@ -107,7 +107,12 @@ extern unsigned int nb_prom_envs;
#endif
/* XXX: make it dynamic */
+#ifndef TARGET_IA64
#define MAX_BIOS_SIZE (4 * 1024 * 1024)
+#else
+#define MAX_BIOS_SIZE (16 * 1024 * 1024)
+#endif
+
#if defined (TARGET_PPC)
#define BIOS_SIZE (1024 * 1024)
#elif defined (TARGET_SPARC64)
diff --git a/qemu/target-ia64/cpu.h b/qemu/target-ia64/cpu.h
index be409c7..2d91cb9 100644
--- a/qemu/target-ia64/cpu.h
+++ b/qemu/target-ia64/cpu.h
@@ -30,11 +30,11 @@
#define TARGET_LONG_BITS 64
-
-#define TARGET_PAGE_BITS 14
+#define TARGET_PAGE_BITS 16
#define ELF_MACHINE EM_IA_64
+#define NB_MMU_MODES 2
#define CPU_PAL_HALT 1
#define HF_HALTED_MASK (1 << CPU_PAL_HALT)
@@ -69,7 +69,11 @@ void cpu_dump_state(CPUState *env, FILE *f,
int (*cpu_fprintf)(FILE *f, const char *fmt, ...),
int flags);
-CPUState *cpu_ia64_init(void);
+CPUState *cpu_ia64_init(char * cpu_model);
+static inline int cpu_mmu_index (CPUState *env)
+{
+ return 0;
+}
#include "cpu-all.h"
diff --git a/qemu/target-ia64/firmware.c b/qemu/target-ia64/firmware.c
index 2469350..51650c8 100644
--- a/qemu/target-ia64/firmware.c
+++ b/qemu/target-ia64/firmware.c
@@ -253,7 +253,6 @@ load_hob(void *hob_buf,
return 0;
}
-#define MIN(x, y) ((x) < (y)) ? (x) : (y)
static int
add_mem_hob(void* hob_buf, unsigned long dom_mem_size)
{
diff --git a/qemu/target-ia64/op_helper.c b/qemu/target-ia64/op_helper.c
index 1b8226a..5138af5 100644
--- a/qemu/target-ia64/op_helper.c
+++ b/qemu/target-ia64/op_helper.c
@@ -26,7 +26,7 @@
extern int kvm_allowed;
-CPUState *cpu_ia64_init(void){
+CPUState *cpu_ia64_init(char *cpu_model){
CPUState *env;
env = qemu_mallocz(sizeof(CPUState));
if (!env)
--
1.5.2
[-- Attachment #2: 0001-kvm-qemu-Fix-ia64-build-on-latest-source.patch --]
[-- Type: application/octet-stream, Size: 23276 bytes --]
From 9925c33dffdfbdc7502d255aa2200489f62c62be Mon Sep 17 00:00:00 2001
From: Zhang Xiantao <xiantao.zhang@intel.com>
Date: Fri, 21 Dec 2007 22:47:52 +0800
Subject: [PATCH] kvm: qemu : Fix ia64 build on latest source.
Due to last merge with qemu upstream, ia64 build
is broken. This patch fix it.
Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com>
---
qemu/hw/boards.h | 3 +
qemu/hw/ipf.c | 553 +++++++++++++++++++++++-------------------
qemu/qemu-kvm-ia64.c | 2 +-
qemu/sysemu.h | 5 +
qemu/target-ia64/cpu.h | 10 +-
qemu/target-ia64/firmware.c | 1 -
qemu/target-ia64/op_helper.c | 2 +-
7 files changed, 325 insertions(+), 251 deletions(-)
diff --git a/qemu/hw/boards.h b/qemu/hw/boards.h
index 079760d..3285e6e 100644
--- a/qemu/hw/boards.h
+++ b/qemu/hw/boards.h
@@ -96,4 +96,7 @@ extern QEMUMachine dummy_m68k_machine;
/* mainstone.c */
extern QEMUMachine mainstone2_machine;
+/* ipf.c */
+extern QEMUMachine ipf_machine;
+
#endif
diff --git a/qemu/hw/ipf.c b/qemu/hw/ipf.c
index 9bcdb85..9c74531 100644
--- a/qemu/hw/ipf.c
+++ b/qemu/hw/ipf.c
@@ -24,9 +24,20 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
-#include "vl.h"
+
+#include "hw.h"
+#include "pc.h"
+#include "fdc.h"
+#include "pci.h"
+#include "block.h"
+#include "sysemu.h"
+#include "audio/audio.h"
+#include "net.h"
+#include "smbus.h"
+#include "boards.h"
#include "firmware.h"
#include "ia64intrin.h"
+#include "dyngen.h"
#include <unistd.h>
#ifdef USE_KVM
@@ -34,34 +45,23 @@
extern int kvm_allowed;
#endif
-/* output Bochs bios info messages */
-//#define DEBUG_BIOS
-
#define FW_FILENAME "Flash.fd"
/* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables. */
#define ACPI_DATA_SIZE 0x10000
+#define MAX_IDE_BUS 2
+
static fdctrl_t *floppy_controller;
static RTCState *rtc_state;
static PCIDevice *i440fx_state;
-static const int ide_iobase[2] = { 0x1f0, 0x170 };
-static const int ide_iobase2[2] = { 0x3f6, 0x376 };
-static const int ide_irq[2] = { 14, 15 };
-
-#define NE2000_NB_MAX 6
-
-static int ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360, 0x280, 0x380 };
-static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 };
-
-static int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 };
-static int serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 };
-
-static int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
-static int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };
+static void pic_irq_request(void *opaque, int irq, int level)
+{
+ fprintf(stderr,"pic_irq_request called!\n");
+}
-/* cmos mappings */
+/* PC cmos mappings */
#define REG_EQUIPMENT_BYTE 0x14
@@ -106,10 +106,30 @@ static void cmos_init_hd(int type_ofs, int info_ofs, BlockDriverState *hd)
rtc_set_memory(s, info_ofs + 8, sectors);
}
+/* convert boot_device letter to something recognizable by the bios */
+static int boot_device2nibble(char boot_device)
+{
+ switch(boot_device) {
+ case 'a':
+ case 'b':
+ return 0x01; /* floppy boot */
+ case 'c':
+ return 0x02; /* hard drive boot */
+ case 'd':
+ return 0x03; /* CD-ROM boot */
+ case 'n':
+ return 0x04; /* Network boot */
+ }
+ return 0;
+}
+
/* hd_table must contain 4 block drivers */
-static void cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size, int boot_device, BlockDriverState **hd_table, int smp_cpus)
+static void cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
+ const char *boot_device, BlockDriverState **hd_table,
+ int smp_cpus)
{
RTCState *s = rtc_state;
+ int nbds, bds[3] = { 0, };
int val;
int fd0, fd1, nb;
int i;
@@ -145,24 +165,23 @@ static void cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size, int boo
rtc_set_memory(s, 0x34, val);
rtc_set_memory(s, 0x35, val >> 8);
- switch(boot_device) {
- case 'a':
- case 'b':
- rtc_set_memory(s, 0x3d, 0x01); /* floppy boot */
- if (!fd_bootchk)
- rtc_set_memory(s, 0x38, 0x01); /* disable signature check */
- break;
- default:
- case 'c':
- rtc_set_memory(s, 0x3d, 0x02); /* hard drive boot */
- break;
- case 'd':
- rtc_set_memory(s, 0x3d, 0x03); /* CD-ROM boot */
- break;
- case 'n':
- rtc_set_memory(s, 0x3d, 0x04); /* Network boot */
- break;
+ /* set boot devices, and disable floppy signature check if requested */
+#define PC_MAX_BOOT_DEVICES 3
+ nbds = strlen(boot_device);
+ if (nbds > PC_MAX_BOOT_DEVICES) {
+ fprintf(stderr, "Too many boot devices for PC\n");
+ exit(1);
+ }
+ for (i = 0; i < nbds; i++) {
+ bds[i] = boot_device2nibble(boot_device[i]);
+ if (bds[i] == 0) {
+ fprintf(stderr, "Invalid boot device for PC: '%c'\n",
+ boot_device[i]);
+ exit(1);
+ }
}
+ rtc_set_memory(s, 0x3d, (bds[1] << 4) | bds[0]);
+ rtc_set_memory(s, 0x38, (bds[2] << 4) | (fd_bootchk ? 0x0 : 0x1));
/* floppy type */
@@ -227,47 +246,67 @@ static void cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size, int boo
rtc_set_memory(s, 0x39, val);
}
+static void main_cpu_reset(void *opaque)
+{
+ CPUState *env = opaque;
+ cpu_reset(env);
+}
+
+static const int ide_iobase[2] = { 0x1f0, 0x170 };
+static const int ide_iobase2[2] = { 0x3f6, 0x376 };
+static const int ide_irq[2] = { 14, 15 };
+
+#define NE2000_NB_MAX 6
+
+static int ne2000_io[NE2000_NB_MAX] = { 0x300, 0x320, 0x340, 0x360, 0x280, 0x380 };
+static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 };
+
+static int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 };
+static int serial_irq[MAX_SERIAL_PORTS] = { 4, 3, 4, 3 };
+
+static int parallel_io[MAX_PARALLEL_PORTS] = { 0x378, 0x278, 0x3bc };
+static int parallel_irq[MAX_PARALLEL_PORTS] = { 7, 7, 7 };
#ifdef HAS_AUDIO
static void audio_init (PCIBus *pci_bus, qemu_irq *pic)
{
- struct soundhw *c;
- int audio_enabled = 0;
+ struct soundhw *c;
+ int audio_enabled = 0;
- for (c = soundhw; !audio_enabled && c->name; ++c) {
- audio_enabled = c->enabled;
- }
+ for (c = soundhw; !audio_enabled && c->name; ++c) {
+ audio_enabled = c->enabled;
+ }
- if (audio_enabled) {
- AudioState *s;
-
- s = AUD_init ();
- if (s) {
- for (c = soundhw; c->name; ++c) {
- if (c->enabled) {
- if (c->isa) {
- c->init.init_isa (s, pic);
- }
- else {
- if (pci_bus) {
- c->init.init_pci (pci_bus, s);
- }
- }
- }
- }
- }
- }
+ if (audio_enabled) {
+ AudioState *s;
+
+ s = AUD_init ();
+ if (s) {
+ for (c = soundhw; c->name; ++c) {
+ if (c->enabled) {
+ if (c->isa) {
+ c->init.init_isa (s, pic);
+ }
+ else {
+ if (pci_bus) {
+ c->init.init_pci (pci_bus, s);
+ }
+ }
+ }
+ }
+ }
+ }
}
#endif
static void pc_init_ne2k_isa(NICInfo *nd, qemu_irq *pic)
{
- static int nb_ne2k = 0;
+ static int nb_ne2k = 0;
- if (nb_ne2k == NE2000_NB_MAX)
- return;
- isa_ne2000_init(ne2000_io[nb_ne2k], pic[ne2000_irq[nb_ne2k]], nd);
- nb_ne2k++;
+ if (nb_ne2k == NE2000_NB_MAX)
+ return;
+ isa_ne2000_init(ne2000_io[nb_ne2k], pic[ne2000_irq[nb_ne2k]], nd);
+ nb_ne2k++;
}
#ifdef USE_KVM
@@ -275,55 +314,57 @@ extern kvm_context_t kvm_context;
extern int kvm_allowed;
#endif
-static void main_cpu_reset(void *opaque)
-{
- CPUState *env = opaque;
- cpu_reset(env);
-}
-static void pic_irq_request(void *opaque, int irq, int level)
-{
- fprintf(stderr,"pic_irq_request called!\n");
-}
-
-/* IPF hardware initialisation */
-static void ipf_init1(ram_addr_t ram_size, int vga_ram_size, int boot_device,
- DisplayState *ds, const char **fd_filename, int snapshot,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename,
- int pci_enabled)
+/* Itanium hardware initialisation */
+static void ipf_init1(ram_addr_t ram_size, int vga_ram_size,
+ const char *boot_device, DisplayState *ds,
+ const char *kernel_filename, const char *kernel_cmdline,
+ const char *initrd_filename,
+ int pci_enabled, const char *cpu_model)
{
- char buf[1024];
- int i;
- ram_addr_t ram_addr, vga_ram_addr;
- ram_addr_t above_4g_mem_size = 0;
- PCIBus *pci_bus;
- int piix3_devfn = -1;
- CPUState *env;
- NICInfo *nd;
- qemu_irq *cpu_irq;
- qemu_irq *i8259;
- int page_size;
-
- page_size = getpagesize();
- if (page_size != TARGET_PAGE_SIZE) {
- fprintf(stderr,"Error! Host page size != qemu target page size,"
- " you may need to change TARGET_PAGE_BITS in qemu!\n");
+ char buf[1024];
+ int i;
+ ram_addr_t ram_addr, vga_ram_addr;
+ ram_addr_t above_4g_mem_size = 0;
+ PCIBus *pci_bus;
+ int piix3_devfn = -1;
+ CPUState *env;
+ NICInfo *nd;
+ qemu_irq *cpu_irq;
+ qemu_irq *i8259;
+ int page_size;
+ int index;
+ BlockDriverState *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
+ BlockDriverState *fd[MAX_FD];
+
+ page_size = getpagesize();
+ if (page_size != TARGET_PAGE_SIZE) {
+ fprintf(stderr,"Error! Host page size != qemu target page size,"
+ " you may need to change TARGET_PAGE_BITS in qemu!"
+ "host page size:0x%x\n", page_size);
exit(-1);
- }
+ };
- if (ram_size >= 0xc0000000 ) {
- above_4g_mem_size = ram_size - 0xc0000000;
- ram_size = 0xc0000000;
- }
+ if (ram_size >= 0xc0000000 ) {
+ above_4g_mem_size = ram_size - 0xc0000000;
+ ram_size = 0xc0000000;
+ }
- /* init CPUs */
- for(i = 0; i < smp_cpus; i++) {
- env = cpu_init();
- if (i != 0)
- env->hflags |= HF_HALTED_MASK;
- register_savevm("cpu", i, 4, cpu_save, cpu_load, env);
- qemu_register_reset(main_cpu_reset, env);
- }
+ /* init CPUs */
+ if (cpu_model == NULL) {
+ cpu_model = "IA64";
+ }
+
+ for(i = 0; i < smp_cpus; i++) {
+ env = cpu_init(cpu_model);
+ if (!env) {
+ fprintf(stderr, "Unable to find CPU definition\n");
+ exit(1);
+ }
+ if (i != 0)
+ env->hflags |= HF_HALTED_MASK;
+ register_savevm("cpu", i, 4, cpu_save, cpu_load, env);
+ qemu_register_reset(main_cpu_reset, env);
+ }
/* allocate RAM */
#ifdef USE_KVM
@@ -346,20 +387,20 @@ static void ipf_init1(ram_addr_t ram_size, int vga_ram_size, int boot_device,
} else
#endif
#endif
- {
- ram_addr = qemu_ram_alloc(ram_size);
- cpu_register_physical_memory(0, ram_size, ram_addr);
- }
- /* allocate VGA RAM */
- vga_ram_addr = qemu_ram_alloc(vga_ram_size);
+ {
+ ram_addr = qemu_ram_alloc(ram_size);
+ cpu_register_physical_memory(0, ram_size, ram_addr);
+ }
+ /* allocate VGA RAM */
+ vga_ram_addr = qemu_ram_alloc(vga_ram_size);
/* above 4giga memory allocation */
if (above_4g_mem_size > 0) {
ram_addr = qemu_ram_alloc(above_4g_mem_size);
cpu_register_physical_memory(0x100000000, above_4g_mem_size, ram_addr);
#ifdef USE_KVM
- if (kvm_allowed)
- kvm_cpu_register_physical_memory(0x100000000, above_4g_mem_size,
+ if (kvm_allowed)
+ kvm_cpu_register_physical_memory(0x100000000, above_4g_mem_size,
ram_addr);
#endif
}
@@ -400,158 +441,180 @@ static void ipf_init1(ram_addr_t ram_size, int vga_ram_size, int boot_device,
memcpy(fw_image_start, image, image_size);
}
free(image);
- kvm_sync_icache((unsigned long)fw_image_start, image_size);
+ flush_icache_range((unsigned long)fw_image_start,
+ (unsigned long)fw_image_start + image_size);
kvm_ia64_build_hob(ram_size, smp_cpus, fw_start);
}
#endif
- cpu_irq = qemu_allocate_irqs(pic_irq_request, first_cpu, 1);
- i8259 = i8259_init(cpu_irq[0]);
+ cpu_irq = qemu_allocate_irqs(pic_irq_request, first_cpu, 1);
+ i8259 = i8259_init(cpu_irq[0]);
- if (pci_enabled) {
- pci_bus = i440fx_init(&i440fx_state, i8259);
- piix3_devfn = piix3_init(pci_bus, -1);
- } else {
- pci_bus = NULL;
- }
+ if (pci_enabled) {
+ pci_bus = i440fx_init(&i440fx_state, i8259);
+ piix3_devfn = piix3_init(pci_bus, -1);
+ } else {
+ pci_bus = NULL;
+ }
- if (cirrus_vga_enabled) {
- if (pci_enabled) {
- pci_cirrus_vga_init(pci_bus,
- ds, phys_ram_base + vga_ram_addr,
- vga_ram_addr, vga_ram_size);
- } else {
- isa_cirrus_vga_init(ds, phys_ram_base + vga_ram_addr,
- vga_ram_addr, vga_ram_size);
- }
- } else {
- if (pci_enabled) {
- pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_addr,
- vga_ram_addr, vga_ram_size, 0, 0);
- } else {
- isa_vga_init(ds, phys_ram_base + vga_ram_addr,
- vga_ram_addr, vga_ram_size);
- }
- }
- rtc_state = rtc_init(0x70, i8259[8]);
+ if (cirrus_vga_enabled) {
+ if (pci_enabled) {
+ pci_cirrus_vga_init(pci_bus,
+ ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size);
+ } else {
+ isa_cirrus_vga_init(ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size);
+ }
+ } else {
+ if (pci_enabled) {
+ pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size, 0, 0);
+ } else {
+ isa_vga_init(ds, phys_ram_base + vga_ram_addr,
+ vga_ram_addr, vga_ram_size);
+ }
+ }
- if (pci_enabled) {
- pic_set_alt_irq_func(isa_pic, NULL, NULL);
- }
+ rtc_state = rtc_init(0x70, i8259[8]);
- for(i = 0; i < MAX_SERIAL_PORTS; i++) {
- if (serial_hds[i]) {
- serial_init(serial_io[i], i8259[serial_irq[i]], serial_hds[i]);
- }
- }
+ if (pci_enabled) {
+ pic_set_alt_irq_func(isa_pic, NULL, NULL);
+ }
- for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
- if (parallel_hds[i]) {
- parallel_init(parallel_io[i], i8259[parallel_irq[i]],
- parallel_hds[i]);
- }
- }
+ for(i = 0; i < MAX_SERIAL_PORTS; i++) {
+ if (serial_hds[i]) {
+ serial_init(serial_io[i], i8259[serial_irq[i]], serial_hds[i]);
+ }
+ }
- for(i = 0; i < nb_nics; i++) {
- nd = &nd_table[i];
- if (!nd->model) {
- if (pci_enabled) {
- nd->model = "ne2k_pci";
- } else {
- nd->model = "ne2k_isa";
- }
- }
- if (strcmp(nd->model, "ne2k_isa") == 0) {
- pc_init_ne2k_isa(nd, i8259);
- } else if (pci_enabled) {
- if (strcmp(nd->model, "?") == 0)
- fprintf(stderr, "qemu: Supported ISA NICs: ne2k_isa\n");
- pci_nic_init(pci_bus, nd, -1);
- } else if (strcmp(nd->model, "?") == 0) {
- fprintf(stderr, "qemu: Supported ISA NICs: ne2k_isa\n");
- exit(1);
- } else {
- fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model);
- exit(1);
- }
- }
+ for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
+ if (parallel_hds[i]) {
+ parallel_init(parallel_io[i], i8259[parallel_irq[i]],
+ parallel_hds[i]);
+ }
+ }
-#undef USE_HYPERCALL // Disable hypercall now, due to shor of support for VT-i.
+ for(i = 0; i < nb_nics; i++) {
+ nd = &nd_table[i];
+ if (!nd->model) {
+ if (pci_enabled) {
+ nd->model = "ne2k_pci";
+ } else {
+ nd->model = "ne2k_isa";
+ }
+ }
+ if (strcmp(nd->model, "ne2k_isa") == 0) {
+ pc_init_ne2k_isa(nd, i8259);
+ } else if (pci_enabled) {
+ if (strcmp(nd->model, "?") == 0)
+ fprintf(stderr, "qemu: Supported ISA NICs: ne2k_isa\n");
+ pci_nic_init(pci_bus, nd, -1);
+ } else if (strcmp(nd->model, "?") == 0) {
+ fprintf(stderr, "qemu: Supported ISA NICs: ne2k_isa\n");
+ exit(1);
+ } else {
+ fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model);
+ exit(1);
+ }
+ }
+
+#undef USE_HYPERCALL //Disable it now, need to implement later!
#ifdef USE_HYPERCALL
- pci_hypercall_init(pci_bus);
+ pci_hypercall_init(pci_bus);
#endif
- if (pci_enabled) {
- pci_piix3_ide_init(pci_bus, bs_table, piix3_devfn + 1, i8259);
- } else {
- for(i = 0; i < 2; i++) {
- isa_ide_init(ide_iobase[i], ide_iobase2[i], i8259[ide_irq[i]],
- bs_table[2 * i], bs_table[2 * i + 1]);
- }
- }
- i8042_init(i8259[1], i8259[12], 0x60);
- DMA_init(0);
+ if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) {
+ fprintf(stderr, "qemu: too many IDE bus\n");
+ exit(1);
+ }
+
+ for(i = 0; i < MAX_IDE_BUS * MAX_IDE_DEVS; i++) {
+ index = drive_get_index(IF_IDE, i / MAX_IDE_DEVS, i % MAX_IDE_DEVS);
+ if (index != -1)
+ hd[i] = drives_table[index].bdrv;
+ else
+ hd[i] = NULL;
+ }
+
+ if (pci_enabled) {
+ pci_piix3_ide_init(pci_bus, hd, piix3_devfn + 1, i8259);
+ } else {
+ for(i = 0; i < MAX_IDE_BUS; i++) {
+ isa_ide_init(ide_iobase[i], ide_iobase2[i], i8259[ide_irq[i]],
+ hd[MAX_IDE_DEVS * i], hd[MAX_IDE_DEVS * i + 1]);
+ }
+ }
+
+ i8042_init(i8259[1], i8259[12], 0x60);
+ DMA_init(0);
#ifdef HAS_AUDIO
- audio_init(pci_enabled ? pci_bus : NULL, i8259);
+ audio_init(pci_enabled ? pci_bus : NULL, i8259);
#endif
- floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0, fd_table);
+ for(i = 0; i < MAX_FD; i++) {
+ index = drive_get_index(IF_FLOPPY, 0, i);
+ if (index != -1)
+ fd[i] = drives_table[index].bdrv;
+ else
+ fd[i] = NULL;
+ }
+ floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0, fd);
- cmos_init(ram_size, above_4g_mem_size, boot_device, bs_table, smp_cpus);
+ cmos_init(ram_size, above_4g_mem_size, boot_device, hd, smp_cpus);
- if (pci_enabled && usb_enabled) {
- usb_uhci_piix3_init(pci_bus, piix3_devfn + 2);
- }
+ if (pci_enabled && usb_enabled) {
+ usb_uhci_piix3_init(pci_bus, piix3_devfn + 2);
+ }
- if (pci_enabled && acpi_enabled) {
- uint8_t *eeprom_buf = qemu_mallocz(8 * 256); /* XXX: make this persistent */
- i2c_bus *smbus;
+ if (pci_enabled && acpi_enabled) {
+ uint8_t *eeprom_buf = qemu_mallocz(8 * 256); /* XXX: make this persistent */
+ i2c_bus *smbus;
- /* TODO: Populate SPD eeprom data. */
- smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100);
- for (i = 0; i < 8; i++) {
- smbus_eeprom_device_init(smbus, 0x50 + i, eeprom_buf + (i * 256));
- }
- }
+ /* TODO: Populate SPD eeprom data. */
+ smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100);
+ for (i = 0; i < 8; i++) {
+ smbus_eeprom_device_init(smbus, 0x50 + i, eeprom_buf + (i * 256));
+ }
+ }
- if (i440fx_state) {
- i440fx_init_memory_mappings(i440fx_state);
- }
-#if 0
- /* ??? Need to figure out some way for the user to
- specify SCSI devices. */
- if (pci_enabled) {
- void *scsi;
- BlockDriverState *bdrv;
-
- scsi = lsi_scsi_init(pci_bus, -1);
- bdrv = bdrv_new("scsidisk");
- bdrv_open(bdrv, "scsi_disk.img", 0);
- lsi_scsi_attach(scsi, bdrv, -1);
- bdrv = bdrv_new("scsicd");
- bdrv_open(bdrv, "scsi_cd.iso", 0);
- bdrv_set_type_hint(bdrv, BDRV_TYPE_CDROM);
- lsi_scsi_attach(scsi, bdrv, -1);
- }
-#endif
+ if (i440fx_state) {
+ i440fx_init_memory_mappings(i440fx_state);
+ }
+
+ if (pci_enabled) {
+ int max_bus;
+ int bus, unit;
+ void *scsi;
+
+ max_bus = drive_get_max_bus(IF_SCSI);
+
+ for (bus = 0; bus <= max_bus; bus++) {
+ scsi = lsi_scsi_init(pci_bus, -1);
+ for (unit = 0; unit < LSI_MAX_DEVS; unit++) {
+ index = drive_get_index(IF_SCSI, bus, unit);
+ if (index == -1)
+ continue;
+ lsi_scsi_attach(scsi, drives_table[index].bdrv, unit);
+ }
+ }
+ }
}
-static void ipf_init_pci(ram_addr_t ram_size, int vga_ram_size, int boot_device,
- DisplayState *ds, const char **fd_filename,
- int snapshot,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void ipf_init_pci(ram_addr_t ram_size, int vga_ram_size,
+ const char *boot_device, DisplayState *ds,
+ const char *kernel_filename,
+ const char *kernel_cmdline,
+ const char *initrd_filename,
+ const char *cpu_model)
{
- ipf_init1(ram_size, vga_ram_size, boot_device,
- ds, fd_filename, snapshot,
- kernel_filename, kernel_cmdline,
- initrd_filename, 1);
+ ipf_init1(ram_size, vga_ram_size, boot_device, ds,
+ kernel_filename, kernel_cmdline,
+ initrd_filename, 1, cpu_model);
}
QEMUMachine ipf_machine = {
- "itanium",
- "Itanium Platform",
- ipf_init_pci,
+ "itanium",
+ "Itanium Platform",
+ ipf_init_pci,
};
diff --git a/qemu/qemu-kvm-ia64.c b/qemu/qemu-kvm-ia64.c
index 0029a43..d3d6ac7 100644
--- a/qemu/qemu-kvm-ia64.c
+++ b/qemu/qemu-kvm-ia64.c
@@ -8,8 +8,8 @@ extern int kvm_irqchip;
#ifdef USE_KVM
#include <string.h>
-#include "vl.h"
+#include "hw/hw.h"
#include "qemu-kvm.h"
#include <libkvm.h>
#include <pthread.h>
diff --git a/qemu/sysemu.h b/qemu/sysemu.h
index 1f5b093..87098ae 100644
--- a/qemu/sysemu.h
+++ b/qemu/sysemu.h
@@ -107,7 +107,12 @@ extern unsigned int nb_prom_envs;
#endif
/* XXX: make it dynamic */
+#ifndef TARGET_IA64
#define MAX_BIOS_SIZE (4 * 1024 * 1024)
+#else
+#define MAX_BIOS_SIZE (16 * 1024 * 1024)
+#endif
+
#if defined (TARGET_PPC)
#define BIOS_SIZE (1024 * 1024)
#elif defined (TARGET_SPARC64)
diff --git a/qemu/target-ia64/cpu.h b/qemu/target-ia64/cpu.h
index be409c7..2d91cb9 100644
--- a/qemu/target-ia64/cpu.h
+++ b/qemu/target-ia64/cpu.h
@@ -30,11 +30,11 @@
#define TARGET_LONG_BITS 64
-
-#define TARGET_PAGE_BITS 14
+#define TARGET_PAGE_BITS 16
#define ELF_MACHINE EM_IA_64
+#define NB_MMU_MODES 2
#define CPU_PAL_HALT 1
#define HF_HALTED_MASK (1 << CPU_PAL_HALT)
@@ -69,7 +69,11 @@ void cpu_dump_state(CPUState *env, FILE *f,
int (*cpu_fprintf)(FILE *f, const char *fmt, ...),
int flags);
-CPUState *cpu_ia64_init(void);
+CPUState *cpu_ia64_init(char * cpu_model);
+static inline int cpu_mmu_index (CPUState *env)
+{
+ return 0;
+}
#include "cpu-all.h"
diff --git a/qemu/target-ia64/firmware.c b/qemu/target-ia64/firmware.c
index 2469350..51650c8 100644
--- a/qemu/target-ia64/firmware.c
+++ b/qemu/target-ia64/firmware.c
@@ -253,7 +253,6 @@ load_hob(void *hob_buf,
return 0;
}
-#define MIN(x, y) ((x) < (y)) ? (x) : (y)
static int
add_mem_hob(void* hob_buf, unsigned long dom_mem_size)
{
diff --git a/qemu/target-ia64/op_helper.c b/qemu/target-ia64/op_helper.c
index 1b8226a..5138af5 100644
--- a/qemu/target-ia64/op_helper.c
+++ b/qemu/target-ia64/op_helper.c
@@ -26,7 +26,7 @@
extern int kvm_allowed;
-CPUState *cpu_ia64_init(void){
+CPUState *cpu_ia64_init(char *cpu_model){
CPUState *env;
env = qemu_mallocz(sizeof(CPUState));
if (!env)
--
1.5.2
[-- Attachment #3: Type: text/plain, Size: 228 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
[-- Attachment #4: Type: text/plain, Size: 186 bytes --]
_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB567F5-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2007-12-21 17:52 ` Amit Shah
[not found] ` <200712212322.31805.amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-22 20:15 ` Avi Kivity
` (2 subsequent siblings)
3 siblings, 1 reply; 24+ messages in thread
From: Amit Shah @ 2007-12-21 17:52 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Avi Kivity, Zhang, Xiantao
On Friday 21 December 2007 20:28:23 Zhang, Xiantao wrote:
> Hi, Avi
> Due to last merge with Qemu upstream, some interfaces are changed, and
> leads to build fail
> , this patch fixed them.
> Xiantao
I've not checked the patch yet; but a curiosity question: Do you also test x86
compiles / builds? (Just to make sure these fixes don't just fix ia64, but
also don't break x86)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <200712212322.31805.amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-12-21 18:08 ` Izik Eidus
[not found] ` <476C010E.1020606-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-22 5:00 ` Zhang, Xiantao
2007-12-22 20:25 ` Avi Kivity
2 siblings, 1 reply; 24+ messages in thread
From: Izik Eidus @ 2007-12-21 18:08 UTC (permalink / raw)
To: Amit Shah
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao,
Avi Kivity
Amit Shah wrote:
> On Friday 21 December 2007 20:28:23 Zhang, Xiantao wrote:
>
>> Hi, Avi
>> Due to last merge with Qemu upstream, some interfaces are changed, and
>> leads to build fail
>> , this patch fixed them.
>> Xiantao
>>
>
> I've not checked the patch yet; but a curiosity question: Do you also test x86
> compiles / builds? (Just to make sure these fixes don't just fix ia64, but
> also don't break x86)
is it mean that i should place order for
http://h20341.www2.hp.com/integrity/cache/342370-0-0-0-121.html
? :)
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> kvm-devel mailing list
> kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/kvm-devel
>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <476C010E.1020606-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-12-21 18:25 ` Amit Shah
0 siblings, 0 replies; 24+ messages in thread
From: Amit Shah @ 2007-12-21 18:25 UTC (permalink / raw)
To: Izik Eidus; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
On Friday 21 December 2007 23:38:14 Izik Eidus wrote:
> Amit Shah wrote:
> > On Friday 21 December 2007 20:28:23 Zhang, Xiantao wrote:
> >> Hi, Avi
> >> Due to last merge with Qemu upstream, some interfaces are changed, and
> >> leads to build fail
> >> , this patch fixed them.
> >> Xiantao
> >
> > I've not checked the patch yet; but a curiosity question: Do you also
> > test x86 compiles / builds? (Just to make sure these fixes don't just fix
> > ia64, but also don't break x86)
>
> is it mean that i should place order for
> http://h20341.www2.hp.com/integrity/cache/342370-0-0-0-121.html
> ? :)
That, or just set up a cross-build environment. I think the first option
sounds simpler ;-)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <200712212322.31805.amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-21 18:08 ` Izik Eidus
@ 2007-12-22 5:00 ` Zhang, Xiantao
2007-12-22 20:25 ` Avi Kivity
2 siblings, 0 replies; 24+ messages in thread
From: Zhang, Xiantao @ 2007-12-22 5:00 UTC (permalink / raw)
To: Amit Shah, kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Avi Kivity
Amit Shah wrote:
> On Friday 21 December 2007 20:28:23 Zhang, Xiantao wrote:
>> Hi, Avi
>> Due to last merge with Qemu upstream, some interfaces are changed,
>> and leads to build fail , this patch fixed them.
>> Xiantao
>
> I've not checked the patch yet; but a curiosity question: Do you also
> test x86 compiles / builds? (Just to make sure these fixes don't just
> fix ia64,
I don't know x86 is broken. But seems somebody has sent out patchset to
fix x86. :)
>but also don't break x86)
Honestly, I didn't try it on x86 platform. But they shouldn't break x86,
because these fixes only touch ia64 files. Very few changes about common
code doesn't impact other platforms.
Xiantao
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB567F5-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-12-21 17:52 ` Amit Shah
@ 2007-12-22 20:15 ` Avi Kivity
2007-12-26 8:57 ` Akio Takebe
2008-01-01 1:27 ` Carlo Marcelo Arenas Belon
3 siblings, 0 replies; 24+ messages in thread
From: Avi Kivity @ 2007-12-22 20:15 UTC (permalink / raw)
To: Zhang, Xiantao; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Zhang, Xiantao wrote:
> Hi, Avi
> Due to last merge with Qemu upstream, some interfaces are changed, and
> leads to build fail
> , this patch fixed them.
> Xiantao
> From: Zhang Xiantao <xiantao.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> Date: Fri, 21 Dec 2007 22:47:52 +0800
> Subject: [PATCH] kvm: qemu : Fix ia64 build on latest source.
>
> Due to last merge with qemu upstream, ia64 build
> is broken. This patch fix it.
>
Applied, thanks.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <200712212322.31805.amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-21 18:08 ` Izik Eidus
2007-12-22 5:00 ` Zhang, Xiantao
@ 2007-12-22 20:25 ` Avi Kivity
[not found] ` <476D72D3.8010601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2 siblings, 1 reply; 24+ messages in thread
From: Avi Kivity @ 2007-12-22 20:25 UTC (permalink / raw)
To: Zhang, Xiantao; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Amit Shah wrote:
> On Friday 21 December 2007 20:28:23 Zhang, Xiantao wrote:
>
>> Hi, Avi
>> Due to last merge with Qemu upstream, some interfaces are changed, and
>> leads to build fail
>> , this patch fixed them.
>> Xiantao
>>
>
> I've not checked the patch yet; but a curiosity question: Do you also test x86
> compiles / builds? (Just to make sure these fixes don't just fix ia64, but
> also don't break x86)
>
Well, please do test patchsets on x86. But I'd also like to check x86
patches against ia64 (and ppc, s390). Do you have easy instructions for
setting up a cross-build environment?
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB567F5-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-12-21 17:52 ` Amit Shah
2007-12-22 20:15 ` Avi Kivity
@ 2007-12-26 8:57 ` Akio Takebe
[not found] ` <B1C8479D552433takebe_akio-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-01-01 1:27 ` Carlo Marcelo Arenas Belon
3 siblings, 1 reply; 24+ messages in thread
From: Akio Takebe @ 2007-12-26 8:57 UTC (permalink / raw)
To: Zhang, Xiantao, kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Avi Kivity
Hi, Xiantao
>diff --git a/qemu/target-ia64/cpu.h b/qemu/target-ia64/cpu.h
>index be409c7..2d91cb9 100644
>--- a/qemu/target-ia64/cpu.h
>+++ b/qemu/target-ia64/cpu.h
>@@ -30,11 +30,11 @@
>
> #define TARGET_LONG_BITS 64
>
>-
>-#define TARGET_PAGE_BITS 14
>+#define TARGET_PAGE_BITS 16
>
Do we need to use CONFIG_IA64_PAGE_SIZE_64KB in .config of kernel?
Cannot we use CONFIG_IA64_PAGE_SIZE_16KB?
Best Regards,
Akio Takebe
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <B1C8479D552433takebe_akio-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
@ 2007-12-26 9:03 ` Zhang, Xiantao
0 siblings, 0 replies; 24+ messages in thread
From: Zhang, Xiantao @ 2007-12-26 9:03 UTC (permalink / raw)
To: Akio Takebe, kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Avi Kivity
Akio Takebe wrote:
> Hi, Xiantao
>
>> diff --git a/qemu/target-ia64/cpu.h b/qemu/target-ia64/cpu.h index
>> be409c7..2d91cb9 100644 --- a/qemu/target-ia64/cpu.h
>> +++ b/qemu/target-ia64/cpu.h
>> @@ -30,11 +30,11 @@
>>
>> #define TARGET_LONG_BITS 64
>>
>> -
>> -#define TARGET_PAGE_BITS 14
>> +#define TARGET_PAGE_BITS 16
>>
> Do we need to use CONFIG_IA64_PAGE_SIZE_64KB in .config of kernel?
> Cannot we use CONFIG_IA64_PAGE_SIZE_16KB?CONFIG_IA64_PAGE_SIZE_16KB
Since current kvm/ia64 doesn't support build in userspace source,
userspace qemu built can't reference kernel's autoconf.h now. Once
userspace built supported, we can let it use CONFIG_IA64_PAGE_SIZE_16KB
or CONFIG_IA64_PAGE_SIZE_64KB in autoconf.h to define TARGET_PAGE_BITS.
Now, I added a page size check in ipf_pci_init, and let user know the
mismatch. :)
Xiantao
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB567F5-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
` (2 preceding siblings ...)
2007-12-26 8:57 ` Akio Takebe
@ 2008-01-01 1:27 ` Carlo Marcelo Arenas Belon
2008-01-01 9:04 ` Avi Kivity
` (2 more replies)
3 siblings, 3 replies; 24+ messages in thread
From: Carlo Marcelo Arenas Belon @ 2008-01-01 1:27 UTC (permalink / raw)
To: Zhang, Xiantao; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Avi Kivity
On Fri, Dec 21, 2007 at 10:58:23PM +0800, Zhang, Xiantao wrote:
> Due to last merge with Qemu upstream, some interfaces are changed, and
> leads to build fail
kvm-58 as released doesn't build in ia64 either because of the tpr/vapic
changes that were done at release date as shown by :
gcc -Wl,-G0 -Wl,-T,/house/cmarenas/kvm-58/qemu/ia64.ld -L
/house/cmarenas/kvm-58/qemu/../libkvm -g -o qemu-system-ia64 vl.o osdep.o
monitor.o pci.o loader.o isa_mmio.o migration.o block-raw-posix.o lsi53c895a.o
usb-ohci.o eeprom93xx.o eepro100.o ne2000.o pcnet.o rtl8139.o hypercall.o
ide.o pckbd.o ps2.o vga.o sb16.o es1370.o dma.o fdc.o mc146818rtc.o serial.o
i8259.o ipf.o cirrus_vga.o parallel.o acpi.o piix_pci.o usb-uhci.o
/house/cmarenas/kvm-58/qemu/smbus_eeprom.o ../libqemu_common.a libqemu.a
/house/cmarenas/kvm-58/qemu/../libkvm/libkvm.a -lm -lz -lkvm -lrt -lpthread
-lutil
libqemu.a(kvm-tpr-opt.o): In function `kvm_tpr_opt_setup':
/house/cmarenas/kvm-58/qemu/kvm-tpr-opt.c:287: undefined reference to
`kvm_enable_tpr_access_reporting'
libqemu.a(kvm-tpr-opt.o): In function `enable_vapic':
/house/cmarenas/kvm-58/qemu/kvm-tpr-opt.c:221: undefined reference to
`kvm_enable_vapic'
Xiantao, are there any plans to merge into qemu all changes required to get
host/guest support for ia64?, if for nothing else that could help with
problems due to qemu merges.
Avi, how would you like patches to fix build issues in ia64 to be handled?,
should be expected that kvm releases build for ia64? is there any system that
could be used as part of a compile farm / testing for ia64?
if nothing is available hp's testdrive have some itanium systems that could be
used at least to validate the userspace part builds (as I did) :
http://www.testdrive.hp.com/systems/itanium.shtml
Carlo
PS. there are more warnings and other issues in that build that the ones shown
above.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
2008-01-01 1:27 ` Carlo Marcelo Arenas Belon
@ 2008-01-01 9:04 ` Avi Kivity
[not found] ` <477A0211.9020708-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-01 15:31 ` Zhang, Xiantao
2008-01-01 16:37 ` Avi Kivity
2 siblings, 1 reply; 24+ messages in thread
From: Avi Kivity @ 2008-01-01 9:04 UTC (permalink / raw)
To: Carlo Marcelo Arenas Belon
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
Carlo Marcelo Arenas Belon wrote:
> Avi, how would you like patches to fix build issues in ia64 to be handled?,
> should be expected that kvm releases build for ia64? is there any system that
> could be used as part of a compile farm / testing for ia64?
>
>
In theory every commit should compile and build on ia64. I still don't
have an ia64 cross compiler so that doesn't work in practice.
> if nothing is available hp's testdrive have some itanium systems that could be
> used at least to validate the userspace part builds (as I did) :
>
> http://www.testdrive.hp.com/systems/itanium.shtml
>
I prefer a cross compiler, but if that turns out to difficult to set up,
this can be a good substitute.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
2008-01-01 1:27 ` Carlo Marcelo Arenas Belon
2008-01-01 9:04 ` Avi Kivity
@ 2008-01-01 15:31 ` Zhang, Xiantao
2008-01-01 16:37 ` Avi Kivity
2 siblings, 0 replies; 24+ messages in thread
From: Zhang, Xiantao @ 2008-01-01 15:31 UTC (permalink / raw)
To: Carlo Marcelo Arenas Belon
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Avi Kivity
Carlo Marcelo Arenas Belon wrote:
Thank you for reporting this issue. I will fix it later.
> libqemu.a(kvm-tpr-opt.o): In function `enable_vapic':
> /house/cmarenas/kvm-58/qemu/kvm-tpr-opt.c:221: undefined reference to
> `kvm_enable_vapic'
>
> Xiantao, are there any plans to merge into qemu all changes required
> to get host/guest support for ia64?, if for nothing else that could
> help with problems due to qemu merges.
Yes, we indeed have plan to push the changes to upstream for qemu/ia64
support. But you know, the current change mostly works on kvm
infrastructure, so we more time to identify them out, and to see which
changes can benefits qemu, and to decide the final push. Qemu/ia64
support should be support from the long run. :-)
> Avi, how would you like patches to fix build issues in ia64 to be
> handled?, should be expected that kvm releases build for ia64? is
> there any system that could be used as part of a compile farm /
> testing for ia64?
>
> if nothing is available hp's testdrive have some itanium systems that
> could be used at least to validate the userspace part builds (as I
> did) :
Good choice! But seems still be complex to maintainer. I will find the
method to setup cross-compile, and hope it will help Avi to validate
them.
Xiantao
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <477A0211.9020708-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2008-01-01 15:37 ` Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB7441-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 24+ messages in thread
From: Zhang, Xiantao @ 2008-01-01 15:37 UTC (permalink / raw)
To: Avi Kivity, Carlo Marcelo Arenas Belon
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Avi Kivity wrote:
> Carlo Marcelo Arenas Belon wrote:
>> Avi, how would you like patches to fix build issues in ia64 to be
>> handled?, should be expected that kvm releases build for ia64? is
>> there any system that could be used as part of a compile farm /
>> testing for ia64?
>>
>>
>
> In theory every commit should compile and build on ia64. I still
> don't have an ia64 cross compiler so that doesn't work in practice.
Agree, for ia64 support, we indeed to assume build pass for every
commit. But in fact it should be hard to operate, but at least to
assure workable commit for release version, since final users mostly
only use release kvm source. :)
>> if nothing is available hp's testdrive have some itanium systems
>> that could be used at least to validate the userspace part builds
>> (as I did) :
>>
>> http://www.testdrive.hp.com/systems/itanium.shtml
>>
>
> I prefer a cross compiler, but if that turns out to difficult to set
> up, this can be a good substitute.
I will try to setup the environment and send the BKM to you if it is
easy to go. :)
Xiantao
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB7441-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2008-01-01 15:51 ` Avi Kivity
[not found] ` <477A6193.1080804-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
0 siblings, 1 reply; 24+ messages in thread
From: Avi Kivity @ 2008-01-01 15:51 UTC (permalink / raw)
To: Zhang, Xiantao
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
Carlo Marcelo Arenas Belon
Zhang, Xiantao wrote:
>
>>> if nothing is available hp's testdrive have some itanium systems
>>> that could be used at least to validate the userspace part builds
>>> (as I did) :
>>>
>>> http://www.testdrive.hp.com/systems/itanium.shtml
>>>
>>>
>> I prefer a cross compiler, but if that turns out to difficult to set
>> up, this can be a good substitute.
>>
>
> I will try to setup the environment and send the BKM to you if it is
> easy to go. :)
>
What is a BKM?
I tried setting up a crosstool environment, but I couldn't get binutils
(2.18 and 2.18.50.0.3) to build (FC6 and F8, both x86_64).
Maybe someone has a VM image with working cross-compiler support?
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <477A6193.1080804-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2008-01-01 16:07 ` Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB7443-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 24+ messages in thread
From: Zhang, Xiantao @ 2008-01-01 16:07 UTC (permalink / raw)
To: Avi Kivity
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
Carlo Marcelo Arenas Belon
Avi Kivity wrote:
> Zhang, Xiantao wrote:
>>
>>>> if nothing is available hp's testdrive have some itanium systems
>>>> that could be used at least to validate the userspace part builds
>>>> (as I did) :
>>>>
>>>> http://www.testdrive.hp.com/systems/itanium.shtml
>>>>
>>>>
>>> I prefer a cross compiler, but if that turns out to difficult to set
>>> up, this can be a good substitute.
>>>
>>
>> I will try to setup the environment and send the BKM to you if it
>> is easy to go. :)
>>
>
> What is a BKM?
Oh sorry for misunderstanding , it is the abbreviation of Best Known
Method. Here I mean a tutorial to setup this environment.
> I tried setting up a crosstool environment, but I couldn't get
> binutils (2.18 and 2.18.50.0.3) to build (FC6 and F8, both x86_64).
Frankly speaking, I have no experience on it. But seems this page can
help us :
http://www.gelato.unsw.edu.au/IA64wiki/CrossCompilation
> Maybe someone has a VM image with working cross-compiler support?
If that, sound good to solve this problem. :)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB7443-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2008-01-01 16:14 ` Avi Kivity
0 siblings, 0 replies; 24+ messages in thread
From: Avi Kivity @ 2008-01-01 16:14 UTC (permalink / raw)
To: Zhang, Xiantao
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
Carlo Marcelo Arenas Belon
Zhang, Xiantao wrote:
>
>> I tried setting up a crosstool environment, but I couldn't get
>> binutils (2.18 and 2.18.50.0.3) to build (FC6 and F8, both x86_64).
>>
>
> Frankly speaking, I have no experience on it. But seems this page can
> help us :
> http://www.gelato.unsw.edu.au/IA64wiki/CrossCompilation
>
Since I don't use debian, I tried following
http://www.gelato.unsw.edu.au/IA64wiki/AlternateCrossCompilation from
the same site. But as I said, I couldn't even complete the first step.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
2008-01-01 1:27 ` Carlo Marcelo Arenas Belon
2008-01-01 9:04 ` Avi Kivity
2008-01-01 15:31 ` Zhang, Xiantao
@ 2008-01-01 16:37 ` Avi Kivity
[not found] ` <477A6C43.5030301-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2 siblings, 1 reply; 24+ messages in thread
From: Avi Kivity @ 2008-01-01 16:37 UTC (permalink / raw)
To: Carlo Marcelo Arenas Belon
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
Carlo Marcelo Arenas Belon wrote:
> if nothing is available hp's testdrive have some itanium systems that could be
> used at least to validate the userspace part builds (as I did) :
>
> http://www.testdrive.hp.com/systems/itanium.shtml
>
>
I signed up for an account, but they don't allow ssh access (only
telnet), and no outgoing connections, so it's impossible to use git or
rsync with this thing.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <477A6C43.5030301-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2008-01-01 19:49 ` Carlo Marcelo Arenas Belon
2008-01-02 9:22 ` Avi Kivity
0 siblings, 1 reply; 24+ messages in thread
From: Carlo Marcelo Arenas Belon @ 2008-01-01 19:49 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
On Tue, Jan 01, 2008 at 06:37:23PM +0200, Avi Kivity wrote:
> Carlo Marcelo Arenas Belon wrote:
> >if nothing is available hp's testdrive have some itanium systems that
> >could be
> >used at least to validate the userspace part builds (as I did) :
> >
> > http://www.testdrive.hp.com/systems/itanium.shtml
> >
> >
>
> I signed up for an account, but they don't allow ssh access (only
> telnet), and no outgoing connections, so it's impossible to use git or
> rsync with this thing.
telnet in, and ftp in a snapshot tar (one that has all the files chown to root
to avoid username lookups in their NIS environment) worked for me.
Carlo
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
2008-01-01 19:49 ` Carlo Marcelo Arenas Belon
@ 2008-01-02 9:22 ` Avi Kivity
0 siblings, 0 replies; 24+ messages in thread
From: Avi Kivity @ 2008-01-02 9:22 UTC (permalink / raw)
To: Carlo Marcelo Arenas Belon
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
Carlo Marcelo Arenas Belon wrote:
> On Tue, Jan 01, 2008 at 06:37:23PM +0200, Avi Kivity wrote:
>
>> Carlo Marcelo Arenas Belon wrote:
>>
>>> if nothing is available hp's testdrive have some itanium systems that
>>> could be
>>> used at least to validate the userspace part builds (as I did) :
>>>
>>> http://www.testdrive.hp.com/systems/itanium.shtml
>>>
>>>
>>>
>> I signed up for an account, but they don't allow ssh access (only
>> telnet), and no outgoing connections, so it's impossible to use git or
>> rsync with this thing.
>>
>
> telnet in, and ftp in a snapshot tar (one that has all the files chown to root
> to avoid username lookups in their NIS environment) worked for me.
>
>
For a compile-after-every-commit approach that's too slow. Consider
sending a kernel tree using this method...
Maybe rsync --write-batch / --read-batch can be made to work.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <476D72D3.8010601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2008-01-02 19:59 ` Hollis Blanchard
2008-01-02 20:32 ` Amit Shah
0 siblings, 1 reply; 24+ messages in thread
From: Hollis Blanchard @ 2008-01-02 19:59 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
On Sat, 2007-12-22 at 22:25 +0200, Avi Kivity wrote:
> Amit Shah wrote:
> > On Friday 21 December 2007 20:28:23 Zhang, Xiantao wrote:
> >
> >> Hi, Avi
> >> Due to last merge with Qemu upstream, some interfaces are changed, and
> >> leads to build fail
> >> , this patch fixed them.
> >> Xiantao
> >>
> >
> > I've not checked the patch yet; but a curiosity question: Do you also test x86
> > compiles / builds? (Just to make sure these fixes don't just fix ia64, but
> > also don't break x86)
> >
>
> Well, please do test patchsets on x86. But I'd also like to check x86
> patches against ia64 (and ppc, s390). Do you have easy instructions for
> setting up a cross-build environment?
http://kernelnewbies.org/FAQ/KernelCrossCompilation has some info. It's
surprisingly easy.
--
Hollis Blanchard
IBM Linux Technology Center
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
2008-01-02 19:59 ` Hollis Blanchard
@ 2008-01-02 20:32 ` Amit Shah
0 siblings, 0 replies; 24+ messages in thread
From: Amit Shah @ 2008-01-02 20:32 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Hollis Blanchard
Cc: Zhang, Xiantao, Avi Kivity
On Thursday 03 January 2008 01:29:24 Hollis Blanchard wrote:
> On Sat, 2007-12-22 at 22:25 +0200, Avi Kivity wrote:
> > Amit Shah wrote:
> > > On Friday 21 December 2007 20:28:23 Zhang, Xiantao wrote:
> > >> Hi, Avi
> > >> Due to last merge with Qemu upstream, some interfaces are changed, and
> > >> leads to build fail
> > >> , this patch fixed them.
> > >> Xiantao
> > >
> > > I've not checked the patch yet; but a curiosity question: Do you also
> > > test x86 compiles / builds? (Just to make sure these fixes don't just
> > > fix ia64, but also don't break x86)
> >
> > Well, please do test patchsets on x86. But I'd also like to check x86
> > patches against ia64 (and ppc, s390). Do you have easy instructions for
> > setting up a cross-build environment?
>
> http://kernelnewbies.org/FAQ/KernelCrossCompilation has some info. It's
> surprisingly easy.
Till we get some kind of an infrastructure ready, I suggest at least one or
two people working on the respective architectures have a nightly build
system in place that fetches the latest git tree and builds it. That way,
each maintainer is responsible for kvm building on his arch.
The scripts can be shared and be made smarter to complain about which commit
broke the build, but that can be done later when we have the complete test
infrastructure ready (it's in progress).
Amit
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB743E-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2008-01-06 1:06 ` Miklos Vajna
[not found] ` <20080106010600.GD29972-mNO0jnlB3V1KNP/gQ5GeZj64mgHaRSMb@public.gmane.org>
0 siblings, 1 reply; 24+ messages in thread
From: Miklos Vajna @ 2008-01-06 1:06 UTC (permalink / raw)
To: kernel virtual machine development
[-- Attachment #1.1: Type: text/plain, Size: 460 bytes --]
On Jan 01, 2007, Zhang, Xiantao wrote:
> Thank you for reporting this issue. I will fix it later.
>
> > libqemu.a(kvm-tpr-opt.o): In function `enable_vapic':
> > /house/cmarenas/kvm-58/qemu/kvm-tpr-opt.c:221: undefined reference to
> > `kvm_enable_vapic'
i still get this on i686 using kvm-59. (log at
http://frugalware.org/~vmiklos/logs/kvm-59-1-i686.log)
is this a known issue?
ps: please cc me, i'm not on the list.
thanks,
- VMiklos
[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 228 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
[-- Attachment #3: Type: text/plain, Size: 186 bytes --]
_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
[not found] ` <20080106010600.GD29972-mNO0jnlB3V1KNP/gQ5GeZj64mgHaRSMb@public.gmane.org>
@ 2008-01-06 1:53 ` Carlo Marcelo Arenas Belon
2008-01-10 12:44 ` Miklos Vajna
0 siblings, 1 reply; 24+ messages in thread
From: Carlo Marcelo Arenas Belon @ 2008-01-06 1:53 UTC (permalink / raw)
To: Miklos Vajna; +Cc: kernel virtual machine development
On Sun, Jan 06, 2008 at 02:06:00AM +0100, Miklos Vajna wrote:
> On Jan 01, 2007, Zhang, Xiantao wrote:
> > Thank you for reporting this issue. I will fix it later.
> >
> > > libqemu.a(kvm-tpr-opt.o): In function `enable_vapic':
> > > /house/cmarenas/kvm-58/qemu/kvm-tpr-opt.c:221: undefined reference to
> > > `kvm_enable_vapic'
>
> i still get this on i686 using kvm-59. (log at
> http://frugalware.org/~vmiklos/logs/kvm-59-1-i686.log)
there has to be something wrong with your build system as from the log it
seems you are using "-I /include " which most likely doesn't exist
> is this a known issue?
only for ia64
Carlo
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] kvm/qemu: Fix ia64 build broken.
2008-01-06 1:53 ` Carlo Marcelo Arenas Belon
@ 2008-01-10 12:44 ` Miklos Vajna
0 siblings, 0 replies; 24+ messages in thread
From: Miklos Vajna @ 2008-01-10 12:44 UTC (permalink / raw)
To: Carlo Marcelo Arenas Belon; +Cc: kernel virtual machine development
[-- Attachment #1.1: Type: text/plain, Size: 448 bytes --]
On Sat, Jan 05, 2008 at 07:53:03PM -0600, Carlo Marcelo Arenas Belon <carenas-kLeDWSohozoJb6fo7hG9ng@public.gmane.org> wrote:
> there has to be something wrong with your build system as from the log it
> seems you are using "-I /include " which most likely doesn't exist
right, that was the problem.
for the record, i needed ./configure --kerneldir=`pwd`/kernel, rather
than /usr/src/linux and now it works fine.
thanks for your help,
- VMiklos
[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 278 bytes --]
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
[-- Attachment #3: Type: text/plain, Size: 186 bytes --]
_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2008-01-10 12:44 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20071222135553.1341211901C5@genesis.frugalware.org>
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB743E-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2008-01-06 1:06 ` [PATCH] kvm/qemu: Fix ia64 build broken Miklos Vajna
[not found] ` <20080106010600.GD29972-mNO0jnlB3V1KNP/gQ5GeZj64mgHaRSMb@public.gmane.org>
2008-01-06 1:53 ` Carlo Marcelo Arenas Belon
2008-01-10 12:44 ` Miklos Vajna
2007-12-21 14:58 Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB567F5-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-12-21 17:52 ` Amit Shah
[not found] ` <200712212322.31805.amit.shah-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-21 18:08 ` Izik Eidus
[not found] ` <476C010E.1020606-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-12-21 18:25 ` Amit Shah
2007-12-22 5:00 ` Zhang, Xiantao
2007-12-22 20:25 ` Avi Kivity
[not found] ` <476D72D3.8010601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-02 19:59 ` Hollis Blanchard
2008-01-02 20:32 ` Amit Shah
2007-12-22 20:15 ` Avi Kivity
2007-12-26 8:57 ` Akio Takebe
[not found] ` <B1C8479D552433takebe_akio-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2007-12-26 9:03 ` Zhang, Xiantao
2008-01-01 1:27 ` Carlo Marcelo Arenas Belon
2008-01-01 9:04 ` Avi Kivity
[not found] ` <477A0211.9020708-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-01 15:37 ` Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB7441-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2008-01-01 15:51 ` Avi Kivity
[not found] ` <477A6193.1080804-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-01 16:07 ` Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCBB7443-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2008-01-01 16:14 ` Avi Kivity
2008-01-01 15:31 ` Zhang, Xiantao
2008-01-01 16:37 ` Avi Kivity
[not found] ` <477A6C43.5030301-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-01 19:49 ` Carlo Marcelo Arenas Belon
2008-01-02 9:22 ` Avi Kivity
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox