mirror of
https://git.yoctoproject.org/poky
synced 2026-09-15 15:49:32 +02:00
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:
committed by
Richard Purdie
parent
24b4976a42
commit
505f88fd3e
@@ -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
|
||||
|
||||
30
meta/recipes-devtools/qemu/files/arm-bgr.patch
Normal file
30
meta/recipes-devtools/qemu/files/arm-bgr.patch
Normal 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;
|
||||
@@ -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)
|
||||
+{
|
||||
+}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
22
meta/recipes-devtools/qemu/files/fix-configure-checks.patch
Normal file
22
meta/recipes-devtools/qemu/files/fix-configure-checks.patch
Normal 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"
|
||||
18
meta/recipes-devtools/qemu/files/init-info.patch
Normal file
18
meta/recipes-devtools/qemu/files/init-info.patch
Normal 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,
|
||||
@@ -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
|
||||
|
||||
25
meta/recipes-devtools/qemu/files/linker-flags.patch
Normal file
25
meta/recipes-devtools/qemu/files/linker-flags.patch
Normal 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)
|
||||
15
meta/recipes-devtools/qemu/files/no-strip.patch
Normal file
15
meta/recipes-devtools/qemu/files/no-strip.patch
Normal 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)"
|
||||
BIN
meta/recipes-devtools/qemu/files/powerpc_rom.bin
Normal file
BIN
meta/recipes-devtools/qemu/files/powerpc_rom.bin
Normal file
Binary file not shown.
34
meta/recipes-devtools/qemu/files/relocatable_sdk.patch
Normal file
34
meta/recipes-devtools/qemu/files/relocatable_sdk.patch
Normal 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) }
|
||||
Reference in New Issue
Block a user