diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c index 56b01aa99f..58209b89a9 100644 --- a/hw/xen_machine_pv.c +++ b/hw/xen_machine_pv.c @@ -82,6 +82,12 @@ static void xen_init_pv(ram_addr_t ram_size, int vga_ram_size, xen_be_register("qdisk", &xen_blkdev_ops); xen_be_register("qnic", &xen_netdev_ops); + /* configure framebuffer */ + if (xenfb_enabled) { + xen_config_dev_vfb(0, "vnc"); + xen_config_dev_vkbd(0); + } + /* configure disks */ for (i = 0; i < 16; i++) { index = drive_get_index(IF_XEN, 0, i); diff --git a/qemu-options.hx b/qemu-options.hx index 108502e363..aa786e3bc1 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -465,7 +465,7 @@ Rotate graphical output 90 deg left (only PXA LCD). ETEXI DEF("vga", HAS_ARG, QEMU_OPTION_vga, - "-vga [std|cirrus|vmware|none]\n" + "-vga [std|cirrus|vmware|xenfb|none]\n" " select video card type\n") STEXI @item -vga @var{type} diff --git a/sysemu.h b/sysemu.h index e97fc010bf..50438a67e8 100644 --- a/sysemu.h +++ b/sysemu.h @@ -88,6 +88,7 @@ extern int bios_size; extern int cirrus_vga_enabled; extern int std_vga_enabled; extern int vmsvga_enabled; +extern int xenfb_enabled; extern int graphic_width; extern int graphic_height; extern int graphic_depth; diff --git a/vl.c b/vl.c index b14f7b0123..05e760cfd5 100644 --- a/vl.c +++ b/vl.c @@ -216,6 +216,7 @@ static int rtc_date_offset = -1; /* -1 means no change */ int cirrus_vga_enabled = 1; int std_vga_enabled = 0; int vmsvga_enabled = 0; +int xenfb_enabled = 0; #ifdef TARGET_SPARC int graphic_width = 1024; int graphic_height = 768; @@ -4225,12 +4226,15 @@ static void select_vgahw (const char *p) cirrus_vga_enabled = 0; std_vga_enabled = 0; vmsvga_enabled = 0; + xenfb_enabled = 0; if (strstart(p, "std", &opts)) { std_vga_enabled = 1; } else if (strstart(p, "cirrus", &opts)) { cirrus_vga_enabled = 1; } else if (strstart(p, "vmware", &opts)) { vmsvga_enabled = 1; + } else if (strstart(p, "xenfb", &opts)) { + xenfb_enabled = 1; } else if (!strstart(p, "none", &opts)) { invalid_vga: fprintf(stderr, "Unknown vga type: %s\n", p);