qemu: upgrade to 1.3.0

remove-hardcoded-libexec.patch: removed
    - included in the new version

qemu-vmware-vga-depth.patch: removed
    - doesn't apply anymore
    - the problem addressed by the patch is fixed by
reverting commit 1f202568e0553b416483e5993f1bde219c22cf72

Revert-vmware_vga-Add-back-some-info-in-local-state-.patch:
    - VMware VGA requires that the depth presented to the guest
to be the same as the Display Surface depth in order to do not
corrupt the display
    - do not cache the DS depth (the depth might change)
    - revert commit 1f202568

- QEMU now uses pixman (DEPENDS += "pixman")
- rearrange the recipe in order to mimic the bitbake flow
- update both variants (.tar.bz2, git)

(From OE-Core rev: 7622c4f6c050f26f252066a0fcaacdbf340dcefa)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Constantin Musca
2012-12-10 10:08:13 +02:00
committed by Richard Purdie
parent 24b4976a42
commit 505f88fd3e
23 changed files with 178 additions and 476 deletions

View File

@@ -0,0 +1,114 @@
From 2cf7df441ce4c36525ba4d2d040f8cb0b0c75f14 Mon Sep 17 00:00:00 2001
From: Constantin Musca <constantinx.musca@intel.com>
Date: Fri, 7 Dec 2012 12:33:42 +0200
Subject: [PATCH] Revert "vmware_vga: Add back some info in local state
partially reverting aa32b38c"
- this reverts commit 1f202568e0553b416483e5993f1bde219c22cf72
- do not cache the DS depth (the depth might change)
Upstream-Status: Pending
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
---
hw/vmware_vga.c | 30 +++++++++---------------------
1 file changed, 9 insertions(+), 21 deletions(-)
diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c
index 834588d..7c766fb 100644
--- a/hw/vmware_vga.c
+++ b/hw/vmware_vga.c
@@ -39,8 +39,6 @@ struct vmsvga_state_s {
VGACommonState vga;
int invalidated;
- int depth;
- int bypp;
int enable;
int config;
struct {
@@ -57,9 +55,6 @@ struct vmsvga_state_s {
int new_height;
uint32_t guest;
uint32_t svgaid;
- uint32_t wred;
- uint32_t wgreen;
- uint32_t wblue;
int syncing;
MemoryRegion fifo_ram;
@@ -723,25 +718,25 @@ static uint32_t vmsvga_value_read(void *opaque, uint32_t address)
return SVGA_MAX_HEIGHT;
case SVGA_REG_DEPTH:
- return s->depth;
+ return ds_get_depth(s->vga.ds);
case SVGA_REG_BITS_PER_PIXEL:
- return (s->depth + 7) & ~7;
+ return ds_get_bits_per_pixel(s->vga.ds);
case SVGA_REG_PSEUDOCOLOR:
return 0x0;
case SVGA_REG_RED_MASK:
- return s->wred;
+ return ds_get_rmask(s->vga.ds);
case SVGA_REG_GREEN_MASK:
- return s->wgreen;
+ return ds_get_gmask(s->vga.ds);
case SVGA_REG_BLUE_MASK:
- return s->wblue;
+ return ds_get_bmask(s->vga.ds);
case SVGA_REG_BYTES_PER_LINE:
- return s->bypp * s->new_width;
+ return ds_get_bytes_per_pixel(s->vga.ds) * s->new_width;
case SVGA_REG_FB_START: {
struct pci_vmsvga_state_s *pci_vmsvga
@@ -806,7 +801,7 @@ static uint32_t vmsvga_value_read(void *opaque, uint32_t address)
return s->cursor.on;
case SVGA_REG_HOST_BITS_PER_PIXEL:
- return (s->depth + 7) & ~7;
+ return ds_get_bits_per_pixel(s->vga.ds);
case SVGA_REG_SCRATCH_SIZE:
return s->scratch_size;
@@ -869,7 +864,7 @@ static void vmsvga_value_write(void *opaque, uint32_t address, uint32_t value)
break;
case SVGA_REG_BITS_PER_PIXEL:
- if (value != s->depth) {
+ if (value != ds_get_bits_per_pixel(s->vga.ds)) {
printf("%s: Bad bits per pixel: %i bits\n", __func__, value);
s->config = 0;
}
@@ -1089,7 +1084,7 @@ static const VMStateDescription vmstate_vmware_vga_internal = {
.minimum_version_id_old = 0,
.post_load = vmsvga_post_load,
.fields = (VMStateField[]) {
- VMSTATE_INT32_EQUAL(depth, struct vmsvga_state_s),
+ VMSTATE_UNUSED(4), /* was depth */
VMSTATE_INT32(enable, struct vmsvga_state_s),
VMSTATE_INT32(config, struct vmsvga_state_s),
VMSTATE_INT32(cursor.id, struct vmsvga_state_s),
@@ -1142,13 +1137,6 @@ static void vmsvga_init(struct vmsvga_state_s *s,
vga_common_init(&s->vga);
vga_init(&s->vga, address_space, io, true);
vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);
- /* Save some values here in case they are changed later.
- * This is suspicious and needs more though why it is needed. */
- s->depth = ds_get_bits_per_pixel(s->vga.ds);
- s->bypp = ds_get_bytes_per_pixel(s->vga.ds);
- s->wred = ds_get_rmask(s->vga.ds);
- s->wgreen = ds_get_gmask(s->vga.ds);
- s->wblue = ds_get_bmask(s->vga.ds);
}
static uint64_t vmsvga_io_read(void *opaque, hwaddr addr, unsigned size)
--
1.7.11.7

View File

@@ -0,0 +1,30 @@
After kernel commit:
http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-3.0/commit/?h=meta&id=9728c1b6a724daefc413b44e10253cdbb5e06d08
It appears that the emulated colours in qemu are incorrect and that
the red and blue channels are reversed. This patch reverses that logic
so the colours are correctly displayed on the versatile platform which
doesn't support the BGR bit.
RP 16/9/2011
Upstream-Status: Pending
Index: qemu-1.2.0/hw/pl110.c
===================================================================
--- qemu-1.2.0.orig/hw/pl110.c 2012-09-06 14:07:27.619821133 -0700
+++ qemu-1.2.0/hw/pl110.c 2012-09-06 14:12:07.699829648 -0700
@@ -168,7 +168,11 @@
fprintf(stderr, "pl110: Bad color depth\n");
exit(1);
}
- if (s->cr & PL110_CR_BGR)
+
+ if (s->version && s->bpp == BPP_16)
+ /* Code assumes BPP_16 == 565 and BGR is never set on the versatile in 565 mode */
+ bpp_offset = 0;
+ else if (s->cr & PL110_CR_BGR)
bpp_offset = 0;
else
bpp_offset = 24;

View File

@@ -0,0 +1,55 @@
Enable i386-linux-user
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Upstream-Status: Inappropriate [configuration]
Index: qemu-0.14.0/Makefile.target
===================================================================
--- qemu-0.14.0.orig/Makefile.target
+++ qemu-0.14.0/Makefile.target
@@ -78,8 +78,13 @@ ifeq ($(TARGET_BASE_ARCH), i386)
libobj-y += cpuid.o
endif
libobj-$(CONFIG_NEED_MMU) += mmu.o
+ifndef CONFIG_LINUX_USER
libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o
+else
+libobj-$(TARGET_I386) += dummygl.o
+libobj-$(TARGET_X86_64) += dummygl.o
+endif #CONFIG_LINUX_USER
libobj-$(TARGET_ARM) += dummygl.o
libobj-$(TARGET_MIPS) += dummygl.o
libobj-$(TARGET_PPC) += dummygl.o
Index: qemu-0.14.0/target-i386/dummygl.c
===================================================================
--- /dev/null
+++ qemu-0.14.0/target-i386/dummygl.c
@@ -0,0 +1,26 @@
+#include <string.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <stdint.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window)
+{
+
+}
+
+void opengl_process_enable(void)
+{
+
+}
+
+
+void mem_opengl(uint64_t ptr)
+{
+
+}
+
+void helper_opengl(void)
+{
+}

View File

@@ -0,0 +1,39 @@
From c313f89c33217ac0e471554dace2144718f86669 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Thu, 13 May 2010 12:23:40 +0200
Subject: [PATCH] linux-user: use default mmap_min_addr 65536 when /proc/sys/vm/mmap_min_addr cannot be read
* 65536 is default at least for ubuntu and fedora.
---
linux-user/main.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
Upstream-Status: Pending
Index: qemu-0.14.0/linux-user/main.c
===================================================================
--- qemu-0.14.0.orig/linux-user/main.c
+++ qemu-0.14.0/linux-user/main.c
@@ -36,6 +36,7 @@
#include "envlist.h"
#define DEBUG_LOGFILE "/tmp/qemu.log"
+#define MMAP_MIN_ADDR_DEFAULT 65536
char *exec_path;
@@ -3010,8 +3011,14 @@ int main(int argc, char **argv, char **e
if (fscanf(fp, "%lu", &tmp) == 1) {
mmap_min_addr = tmp;
qemu_log("host mmap_min_addr=0x%lx\n", mmap_min_addr);
+ } else {
+ qemu_log("cannot read value from /proc/sys/vm/mmap_min_addr, assuming %d\n", MMAP_MIN_ADDR_DEFAULT);
+ mmap_min_addr = MMAP_MIN_ADDR_DEFAULT;
}
fclose(fp);
+ } else {
+ qemu_log("cannot open /proc/sys/vm/mmap_min_addr for reading, assuming %d\n", MMAP_MIN_ADDR_DEFAULT);
+ mmap_min_addr = MMAP_MIN_ADDR_DEFAULT;
}
}

View File

@@ -0,0 +1,22 @@
In native builds, qemu can fail to find zlib development files in the native
sysroot and the build machine might not have zlib-dev packages installed.
Add CFLAGS to qemu's CFLAGS which in the native case means BUILD_CFLAGS are
added and files in the sysroot can be found.
Patch from Paul Eggleton, Comments by RP 28/11/10
Upstream-Status: Inappropriate [embedded specific]
Index: qemu-1.2.0/configure
===================================================================
--- qemu-1.2.0.orig/configure 2012-09-05 07:03:06.000000000 -0700
+++ qemu-1.2.0/configure 2012-09-06 13:55:07.007793823 -0700
@@ -281,6 +281,7 @@
QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
+QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS"
if test "$debug_info" = "yes"; then
CFLAGS="-g $CFLAGS"
LDFLAGS="-g $LDFLAGS"

View File

@@ -0,0 +1,18 @@
# This is a workaround to the crashes seen on Ubuntu. Setting info to zero
# makes info.info.x11.display zero and avoids the calls to
# opengl_exec_set_parent_window, one of which is crashing.
Upstream-Status: Pending
Index: qemu-0.14.0/ui/sdl.c
===================================================================
--- qemu-0.14.0.orig/ui/sdl.c
+++ qemu-0.14.0/ui/sdl.c
@@ -863,6 +863,7 @@ void sdl_display_init(DisplayState *ds,
vi = SDL_GetVideoInfo();
host_format = *(vi->vfmt);
+ bzero(&info, sizeof(info));
SDL_GetWMInfo(&info);
if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display)
opengl_exec_set_parent_window(info.info.x11.display,

View File

@@ -0,0 +1,22 @@
This patch is taken from debian. 128M is too less sometimes if distro
with lot of packages is booted so this patch raises the default to 384M
It has not been applied to upstream qemu
Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: qemu-0.14.0/vl.c
===================================================================
--- qemu-0.14.0.orig/vl.c
+++ qemu-0.14.0/vl.c
@@ -168,7 +168,7 @@ int main(int argc, char **argv)
//#define DEBUG_NET
//#define DEBUG_SLIRP
-#define DEFAULT_RAM_SIZE 128
+#define DEFAULT_RAM_SIZE 384
#define MAX_VIRTIO_CONSOLES 1

View File

@@ -0,0 +1,25 @@
Fedora 13 switched the default behaviour of the linker to no longer
indirectly link to required libraries (i.e. dependencies of a library
already linked to). Therefore we need to explicitly pass the depended on
libraries into the linker for building to work on Fedora 13.
More information is available on the Fedora Wiki:
https://fedoraproject.org/wiki/UnderstandingDSOLinkChange
JL - 15/06/10
Upstream-Status: Inappropriate [configuration]
Index: qemu-1.2.0/Makefile.target
===================================================================
--- qemu-1.2.0.orig/Makefile.target 2012-09-05 07:03:06.000000000 -0700
+++ qemu-1.2.0/Makefile.target 2012-09-06 13:42:24.819764288 -0700
@@ -130,7 +130,7 @@
obj-$(CONFIG_HAVE_CORE_DUMP) += dump.o
obj-$(CONFIG_NO_GET_MEMORY_MAPPING) += memory_mapping-stub.o
obj-$(CONFIG_NO_CORE_DUMP) += dump-stub.o
-LIBS+=-lz
+LIBS+=-lz -lX11 -ldl
QEMU_CFLAGS += $(VNC_TLS_CFLAGS)
QEMU_CFLAGS += $(VNC_SASL_CFLAGS)

View File

@@ -0,0 +1,15 @@
Upstream-Status: Inappropriate [configuration]
Index: qemu-0.14.0/Makefile
===================================================================
--- qemu-0.14.0.orig/Makefile
+++ qemu-0.14.0/Makefile
@@ -235,7 +235,7 @@ install-sysconfig:
install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig
$(INSTALL_DIR) "$(DESTDIR)$(bindir)"
ifneq ($(TOOLS),)
- $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)"
+ $(INSTALL_PROG) $(TOOLS) "$(DESTDIR)$(bindir)"
endif
ifneq ($(BLOBS),)
$(INSTALL_DIR) "$(DESTDIR)$(datadir)"

Binary file not shown.

View File

@@ -0,0 +1,34 @@
Upstream-Status: Inappropriate [SDK specific]
In order to be able to change the dynamic loader path when relocating
binaries, the interp section has to be made big enough to accomodate
the new path (4096 is the maximum path length in Linux).
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Index: qemu-1.2.0/i386.ld
===================================================================
--- qemu-1.2.0.orig/i386.ld
+++ qemu-1.2.0/i386.ld
@@ -8,7 +8,7 @@ SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x60000000 + SIZEOF_HEADERS;
- .interp : { *(.interp) }
+ .interp : { *(.interp); . = 0x1000; }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
Index: qemu-1.2.0/x86_64.ld
===================================================================
--- qemu-1.2.0.orig/x86_64.ld
+++ qemu-1.2.0/x86_64.ld
@@ -6,7 +6,7 @@ SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x60000000 + SIZEOF_HEADERS;
- .interp : { *(.interp) }
+ .interp : { *(.interp); . = 0x1000; }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }