diff options
author | Zhai Edwin <edwin.zhai@intel.com> | 2011-01-15 16:32:15 +0800 |
---|---|---|
committer | Saul Wold <sgw@linux.intel.com> | 2011-01-21 01:36:14 -0800 |
commit | 576e136d9d6d473ce6a7ffc7abadc75e1a218418 (patch) | |
tree | 1a3498eddb2ad99d0a864389d0d011b6c828fecc /meta/recipes-devtools | |
parent | 7d9a8fc931966012a9ddd50e607c6de1d94fe394 (diff) | |
download | poky-576e136d9d6d473ce6a7ffc7abadc75e1a218418.tar.gz |
qemu: Upgrade from 0.12.4 to 0.13.0
Patch status:
-- Removed --
arm-cp15-fix.patch
arm_timer-fix-oneshot-mode.patch
arm_timer-reload-timer-when-enabled.patch
cursor-shadow-fix.patch
-- They are already in upstream or some new changes make them useless.
-- Added --
parallel_make.patch: Fix "make -j(>=6)" failure
wacom-tablet-fix.patch: Fix seg fault of usb tablet.
port92_fix.patch: Fix boot failure on ppc due to port 0x92 conflict.
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.12.4/arm-cp15-fix.patch | 131 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-fix-oneshot-mode.patch | 32 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-reload-timer-when-enabled.patch | 40 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch | 35 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.12.4/qemu-ppc-hack.patch | 136 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/enable-i386-linux-user.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/enable-i386-linux-user.patch) | 16 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/fix-configure-checks.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/fix-configure-checks.patch) | 12 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/fix-dirent.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/fix-dirent.patch) | 0 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/fix-nogl.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/fix-nogl.patch) | 24 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/glflags.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/glflags.patch) | 0 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/init-info.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/init-info.patch) | 8 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/linker-flags.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/linker-flags.patch) | 16 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/no-strip.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/no-strip.patch) | 18 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/parallel_make.patch | 34 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/port92_fix.patch | 196 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/powerpc_rom.bin (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/powerpc_rom.bin) | bin | 4096 -> 4096 bytes | |||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/qemu-git-qemugl-host.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/qemu-git-qemugl-host.patch) | 518 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/qemu-ppc-hack.patch | 108 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/qemu-vmware-vga-depth.patch) | 52 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/qemugl-allow-glxcontext-release.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch) | 0 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/vmware-vga-fifo-rewind.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/vmware-vga-fifo-rewind.patch) | 24 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/wacom-tablet-fix.patch | 65 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.13.0/workaround_bad_futex_headers.patch (renamed from meta/recipes-devtools/qemu/qemu-0.12.4/workaround_bad_futex_headers.patch) | 8 | ||||
-rw-r--r-- | meta/recipes-devtools/qemu/qemu_0.13.0.bb (renamed from meta/recipes-devtools/qemu/qemu_0.12.4.bb) | 15 |
24 files changed, 752 insertions, 736 deletions
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/arm-cp15-fix.patch b/meta/recipes-devtools/qemu/qemu-0.12.4/arm-cp15-fix.patch deleted file mode 100644 index 1e0ea43083..0000000000 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/arm-cp15-fix.patch +++ /dev/null | |||
@@ -1,131 +0,0 @@ | |||
1 | From: Riku Voipio <riku.voipio@nokia.com> | ||
2 | |||
3 | Access the cp15.c13 TLS registers directly with TCG ops instead of with | ||
4 | a slow helper. If the the cp15 read/write was not TLS register access, | ||
5 | fall back to the cp15 helper. | ||
6 | |||
7 | This makes accessing __thread variables in linux-user when apps are compiled | ||
8 | with -mtp=cp15 possible. legal cp15 register to acces from linux-user are | ||
9 | already checked in cp15_user_ok. | ||
10 | |||
11 | While at it, make the cp15.c13 Thread ID registers available only on | ||
12 | ARMv6K and newer. | ||
13 | |||
14 | Signed-off-by: Riku Voipio <riku.voipio@nokia.com> | ||
15 | Acked-by: Laurent Desnogues <laurent.desnogues@gmail.com> | ||
16 | |||
17 | diff --git a/target-arm/helper.c b/target-arm/helper.c | ||
18 | index b3aec99..27001e8 100644 | ||
19 | --- a/target-arm/helper.c | ||
20 | +++ b/target-arm/helper.c | ||
21 | @@ -511,7 +511,6 @@ void HELPER(set_cp15)(CPUState *env, uint32_t insn, uint32_t val) | ||
22 | uint32_t HELPER(get_cp15)(CPUState *env, uint32_t insn) | ||
23 | { | ||
24 | cpu_abort(env, "cp15 insn %08x\n", insn); | ||
25 | - return 0; | ||
26 | } | ||
27 | |||
28 | /* These should probably raise undefined insn exceptions. */ | ||
29 | @@ -1491,15 +1490,6 @@ void HELPER(set_cp15)(CPUState *env, uint32_t insn, uint32_t val) | ||
30 | tlb_flush(env, 0); | ||
31 | env->cp15.c13_context = val; | ||
32 | break; | ||
33 | - case 2: | ||
34 | - env->cp15.c13_tls1 = val; | ||
35 | - break; | ||
36 | - case 3: | ||
37 | - env->cp15.c13_tls2 = val; | ||
38 | - break; | ||
39 | - case 4: | ||
40 | - env->cp15.c13_tls3 = val; | ||
41 | - break; | ||
42 | default: | ||
43 | goto bad_reg; | ||
44 | } | ||
45 | @@ -1779,12 +1769,6 @@ uint32_t HELPER(get_cp15)(CPUState *env, uint32_t insn) | ||
46 | return env->cp15.c13_fcse; | ||
47 | case 1: | ||
48 | return env->cp15.c13_context; | ||
49 | - case 2: | ||
50 | - return env->cp15.c13_tls1; | ||
51 | - case 3: | ||
52 | - return env->cp15.c13_tls2; | ||
53 | - case 4: | ||
54 | - return env->cp15.c13_tls3; | ||
55 | default: | ||
56 | goto bad_reg; | ||
57 | } | ||
58 | diff --git a/target-arm/translate.c b/target-arm/translate.c | ||
59 | index 5cf3e06..786c329 100644 | ||
60 | --- a/target-arm/translate.c | ||
61 | +++ b/target-arm/translate.c | ||
62 | @@ -2455,6 +2455,57 @@ static int cp15_user_ok(uint32_t insn) | ||
63 | return 0; | ||
64 | } | ||
65 | |||
66 | +static int cp15_tls_load_store(CPUState *env, DisasContext *s, uint32_t insn, uint32_t rd) | ||
67 | +{ | ||
68 | + TCGv tmp; | ||
69 | + int cpn = (insn >> 16) & 0xf; | ||
70 | + int cpm = insn & 0xf; | ||
71 | + int op = ((insn >> 5) & 7) | ((insn >> 18) & 0x38); | ||
72 | + | ||
73 | + if (!arm_feature(env, ARM_FEATURE_V6K)) | ||
74 | + return 0; | ||
75 | + | ||
76 | + if (!(cpn == 13 && cpm == 0)) | ||
77 | + return 0; | ||
78 | + | ||
79 | + if (insn & ARM_CP_RW_BIT) { | ||
80 | + tmp = new_tmp(); | ||
81 | + switch (op) { | ||
82 | + case 2: | ||
83 | + tcg_gen_ld_i32(tmp, cpu_env, offsetof(CPUARMState, cp15.c13_tls1)); | ||
84 | + break; | ||
85 | + case 3: | ||
86 | + tcg_gen_ld_i32(tmp, cpu_env, offsetof(CPUARMState, cp15.c13_tls2)); | ||
87 | + break; | ||
88 | + case 4: | ||
89 | + tcg_gen_ld_i32(tmp, cpu_env, offsetof(CPUARMState, cp15.c13_tls3)); | ||
90 | + break; | ||
91 | + default: | ||
92 | + dead_tmp(tmp); | ||
93 | + return 0; | ||
94 | + } | ||
95 | + store_reg(s, rd, tmp); | ||
96 | + | ||
97 | + } else { | ||
98 | + tmp = load_reg(s, rd); | ||
99 | + switch (op) { | ||
100 | + case 2: | ||
101 | + tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUARMState, cp15.c13_tls1)); | ||
102 | + break; | ||
103 | + case 3: | ||
104 | + tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUARMState, cp15.c13_tls2)); | ||
105 | + break; | ||
106 | + case 4: | ||
107 | + tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUARMState, cp15.c13_tls3)); | ||
108 | + break; | ||
109 | + default: | ||
110 | + return 0; | ||
111 | + } | ||
112 | + dead_tmp(tmp); | ||
113 | + } | ||
114 | + return 1; | ||
115 | +} | ||
116 | + | ||
117 | /* Disassemble system coprocessor (cp15) instruction. Return nonzero if | ||
118 | instruction is not defined. */ | ||
119 | static int disas_cp15_insn(CPUState *env, DisasContext *s, uint32_t insn) | ||
120 | @@ -2489,6 +2540,10 @@ static int disas_cp15_insn(CPUState *env, DisasContext *s, uint32_t insn) | ||
121 | return 0; | ||
122 | } | ||
123 | rd = (insn >> 12) & 0xf; | ||
124 | + | ||
125 | + if (cp15_tls_load_store(env, s, insn, rd)) | ||
126 | + return 0; | ||
127 | + | ||
128 | tmp2 = tcg_const_i32(insn); | ||
129 | if (insn & ARM_CP_RW_BIT) { | ||
130 | tmp = new_tmp(); | ||
131 | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-fix-oneshot-mode.patch b/meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-fix-oneshot-mode.patch deleted file mode 100644 index 530736c4ca..0000000000 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-fix-oneshot-mode.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From a9cf98d939c4f6539fad7e7d812ea16d96ba3dc9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Rabin Vincent <rabin@rab.in> | ||
3 | Date: Sun, 2 May 2010 15:20:52 +0530 | ||
4 | Subject: [PATCH] arm_timer: fix oneshot mode | ||
5 | |||
6 | commit id: a9cf98d939c4f6539fad7e7d812ea16d96ba3dc9 in git://git.sv.gnu.org/qemu.git | ||
7 | |||
8 | In oneshot mode, the delta needs to come from the TimerLoad register, | ||
9 | not the maximum limit. | ||
10 | |||
11 | Signed-off-by: Rabin Vincent <rabin@rab.in> | ||
12 | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> | ||
13 | --- | ||
14 | hw/arm_timer.c | 2 +- | ||
15 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
16 | |||
17 | diff --git a/hw/arm_timer.c b/hw/arm_timer.c | ||
18 | index 5b6947a..9073ffc 100644 | ||
19 | --- a/hw/arm_timer.c | ||
20 | +++ b/hw/arm_timer.c | ||
21 | @@ -71,7 +71,7 @@ static void arm_timer_recalibrate(arm_timer_state *s, int reload) | ||
22 | { | ||
23 | uint32_t limit; | ||
24 | |||
25 | - if ((s->control & TIMER_CTRL_PERIODIC) == 0) { | ||
26 | + if ((s->control & (TIMER_CTRL_PERIODIC | TIMER_CTRL_ONESHOT)) == 0) { | ||
27 | /* Free running. */ | ||
28 | if (s->control & TIMER_CTRL_32BIT) | ||
29 | limit = 0xffffffff; | ||
30 | -- | ||
31 | 1.6.5.2 | ||
32 | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-reload-timer-when-enabled.patch b/meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-reload-timer-when-enabled.patch deleted file mode 100644 index 1890e21e60..0000000000 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/arm_timer-reload-timer-when-enabled.patch +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | From d6759902cb467c002086853d2eb38fb969c29f7f Mon Sep 17 00:00:00 2001 | ||
2 | From: Rabin Vincent <rabin@rab.in> | ||
3 | Date: Sun, 2 May 2010 15:20:51 +0530 | ||
4 | Subject: [PATCH] arm_timer: reload timer when enabled | ||
5 | |||
6 | commit id: d6759902cb467c002086853d2eb38fb969c29f7f in git://git.sv.gnu.org/qemu.git | ||
7 | |||
8 | Reload the timer when TimerControl is written, if the timer is to be | ||
9 | enabled. Otherwise, if an earlier write to TimerLoad was done while | ||
10 | periodic mode was not set, s->delta may incorrectly still have the value | ||
11 | of the maximum limit instead of the value written to TimerLoad. | ||
12 | |||
13 | This problem is evident on versatileap on current linux-next, which | ||
14 | enables TIMER_CTRL_32BIT before writing to TimerLoad and then enabling | ||
15 | periodic mode and starting the timer. This causes the first periodic | ||
16 | tick to be scheduled to occur after 0xffffffff periods, leading to a | ||
17 | perceived hang while the kernel waits for the first timer tick. | ||
18 | |||
19 | Signed-off-by: Rabin Vincent <rabin@rab.in> | ||
20 | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> | ||
21 | --- | ||
22 | hw/arm_timer.c | 2 +- | ||
23 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
24 | |||
25 | diff --git a/hw/arm_timer.c b/hw/arm_timer.c | ||
26 | index 9fef191..5b6947a 100644 | ||
27 | --- a/hw/arm_timer.c | ||
28 | +++ b/hw/arm_timer.c | ||
29 | @@ -113,7 +113,7 @@ static void arm_timer_write(void *opaque, target_phys_addr_t offset, | ||
30 | case 1: freq >>= 4; break; | ||
31 | case 2: freq >>= 8; break; | ||
32 | } | ||
33 | - arm_timer_recalibrate(s, 0); | ||
34 | + arm_timer_recalibrate(s, s->control & TIMER_CTRL_ENABLE); | ||
35 | ptimer_set_freq(s->timer, freq); | ||
36 | if (s->control & TIMER_CTRL_ENABLE) { | ||
37 | /* Restart the timer if still enabled. */ | ||
38 | -- | ||
39 | 1.6.5.2 | ||
40 | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch b/meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch deleted file mode 100644 index 6600c4303f..0000000000 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/cursor-shadow-fix.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | Fix the mouse shadow in qemu | ||
2 | |||
3 | the root cause is that the qemu cursor array is hardcoded to 256 bytes, while the sato use cursor of the size 64*64=4096, thus lead buffer overflow and abnormal mouse. | ||
4 | |||
5 | This issue has been fixed in upstream starting from v0.13.0-rc0. v0.12.5 still has this issue. So when qemu is upgraded to 0.13.0 or above, this patch can be safely removed. | ||
6 | |||
7 | Signed-off-by: Yu Ke <ke.yu@intel.com> | ||
8 | |||
9 | diff --git a/sdl.c b/sdl.c | ||
10 | index 7912c91..2f33cd2 100644 | ||
11 | --- a/sdl.c | ||
12 | +++ b/sdl.c | ||
13 | @@ -775,12 +775,12 @@ static void sdl_mouse_define(int width, int height, int bpp, | ||
14 | int hot_x, int hot_y, | ||
15 | uint8_t *image, uint8_t *mask) | ||
16 | { | ||
17 | - uint8_t sprite[256], *line; | ||
18 | + uint8_t *sprite, *line; | ||
19 | int x, y, dst, bypl, src = 0; | ||
20 | if (guest_sprite) | ||
21 | SDL_FreeCursor(guest_sprite); | ||
22 | |||
23 | - memset(sprite, 0, 256); | ||
24 | + sprite = (uint8_t*)qemu_mallocz(width * height); | ||
25 | bypl = ((width * bpp + 31) >> 5) << 2; | ||
26 | for (y = 0, dst = 0; y < height; y ++, image += bypl) { | ||
27 | line = image; | ||
28 | @@ -818,6 +818,7 @@ static void sdl_mouse_define(int width, int height, int bpp, | ||
29 | if (guest_cursor && | ||
30 | (gui_grab || kbd_mouse_is_absolute() || absolute_enabled)) | ||
31 | SDL_SetCursor(guest_sprite); | ||
32 | + qemu_free(sprite); | ||
33 | } | ||
34 | |||
35 | static void sdl_cleanup(void) | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/qemu-ppc-hack.patch b/meta/recipes-devtools/qemu/qemu-0.12.4/qemu-ppc-hack.patch deleted file mode 100644 index 3ed227ec35..0000000000 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/qemu-ppc-hack.patch +++ /dev/null | |||
@@ -1,136 +0,0 @@ | |||
1 | Quick fixes to get the ppc system model to boot a 603e based | ||
2 | kernel. | ||
3 | |||
4 | diff --git a/hw/m48t59.c b/hw/m48t59.c | ||
5 | index ce38f8b..d99054f 100644 | ||
6 | --- a/hw/m48t59.c | ||
7 | +++ b/hw/m48t59.c | ||
8 | @@ -50,6 +50,7 @@ | ||
9 | */ | ||
10 | |||
11 | struct m48t59_t { | ||
12 | + SysBusDevice busdev; | ||
13 | /* Model parameters */ | ||
14 | uint32_t type; // 2 = m48t02, 8 = m48t08, 59 = m48t59 | ||
15 | /* Hardware parameters */ | ||
16 | @@ -74,11 +75,6 @@ typedef struct M48t59ISAState { | ||
17 | m48t59_t state; | ||
18 | } M48t59ISAState; | ||
19 | |||
20 | -typedef struct M48t59SysBusState { | ||
21 | - SysBusDevice busdev; | ||
22 | - m48t59_t state; | ||
23 | -} M48t59SysBusState; | ||
24 | - | ||
25 | /* Fake timer functions */ | ||
26 | |||
27 | /* Alarm management */ | ||
28 | @@ -629,8 +625,7 @@ static void m48t59_reset_isa(DeviceState *d) | ||
29 | |||
30 | static void m48t59_reset_sysbus(DeviceState *d) | ||
31 | { | ||
32 | - M48t59SysBusState *sys = container_of(d, M48t59SysBusState, busdev.qdev); | ||
33 | - m48t59_t *NVRAM = &sys->state; | ||
34 | + m48t59_t *NVRAM = container_of(d, m48t59_t, busdev.qdev); | ||
35 | |||
36 | m48t59_reset_common(NVRAM); | ||
37 | } | ||
38 | @@ -642,7 +637,7 @@ m48t59_t *m48t59_init (qemu_irq IRQ, target_phys_addr_t mem_base, | ||
39 | { | ||
40 | DeviceState *dev; | ||
41 | SysBusDevice *s; | ||
42 | - M48t59SysBusState *d; | ||
43 | + m48t59_t *d; | ||
44 | |||
45 | dev = qdev_create(NULL, "m48t59"); | ||
46 | qdev_prop_set_uint32(dev, "type", type); | ||
47 | @@ -659,9 +654,9 @@ m48t59_t *m48t59_init (qemu_irq IRQ, target_phys_addr_t mem_base, | ||
48 | sysbus_mmio_map(s, 0, mem_base); | ||
49 | } | ||
50 | |||
51 | - d = FROM_SYSBUS(M48t59SysBusState, s); | ||
52 | + d = FROM_SYSBUS(m48t59_t, s); | ||
53 | |||
54 | - return &d->state; | ||
55 | + return d; | ||
56 | } | ||
57 | |||
58 | m48t59_t *m48t59_init_isa(uint32_t io_base, uint16_t size, int type) | ||
59 | @@ -711,8 +706,7 @@ static int m48t59_init_isa1(ISADevice *dev) | ||
60 | |||
61 | static int m48t59_init1(SysBusDevice *dev) | ||
62 | { | ||
63 | - M48t59SysBusState *d = FROM_SYSBUS(M48t59SysBusState, dev); | ||
64 | - m48t59_t *s = &d->state; | ||
65 | + m48t59_t *s = FROM_SYSBUS(m48t59_t, dev); | ||
66 | int mem_index; | ||
67 | |||
68 | sysbus_init_irq(dev, &s->IRQ); | ||
69 | @@ -741,12 +735,12 @@ static ISADeviceInfo m48t59_isa_info = { | ||
70 | static SysBusDeviceInfo m48t59_info = { | ||
71 | .init = m48t59_init1, | ||
72 | .qdev.name = "m48t59", | ||
73 | - .qdev.size = sizeof(M48t59SysBusState), | ||
74 | + .qdev.size = sizeof(m48t59_t), | ||
75 | .qdev.reset = m48t59_reset_sysbus, | ||
76 | .qdev.props = (Property[]) { | ||
77 | - DEFINE_PROP_UINT32("size", M48t59SysBusState, state.size, -1), | ||
78 | - DEFINE_PROP_UINT32("type", M48t59SysBusState, state.type, -1), | ||
79 | - DEFINE_PROP_HEX32( "io_base", M48t59SysBusState, state.io_base, 0), | ||
80 | + DEFINE_PROP_UINT32("size", m48t59_t, size, -1), | ||
81 | + DEFINE_PROP_UINT32("type", m48t59_t, type, -1), | ||
82 | + DEFINE_PROP_HEX32( "io_base", m48t59_t, io_base, 0), | ||
83 | DEFINE_PROP_END_OF_LIST(), | ||
84 | } | ||
85 | }; | ||
86 | diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c | ||
87 | index eb758f2..08db51b 100644 | ||
88 | --- a/hw/ppc_prep.c | ||
89 | +++ b/hw/ppc_prep.c | ||
90 | @@ -73,7 +73,7 @@ qemu_log_mask(CPU_LOG_IOPORT, fmt, ## __VA_ARGS__) | ||
91 | /* Constants for devices init */ | ||
92 | static const int ide_iobase[2] = { 0x1f0, 0x170 }; | ||
93 | static const int ide_iobase2[2] = { 0x3f6, 0x376 }; | ||
94 | -static const int ide_irq[2] = { 13, 13 }; | ||
95 | +static const int ide_irq[2] = { 13, 14 }; | ||
96 | |||
97 | #define NE2000_NB_MAX 6 | ||
98 | |||
99 | @@ -620,9 +620,6 @@ static void ppc_prep_init (ram_addr_t ram_size, | ||
100 | if (filename) { | ||
101 | qemu_free(filename); | ||
102 | } | ||
103 | - if (env->nip < 0xFFF80000 && bios_size < 0x00100000) { | ||
104 | - hw_error("PowerPC 601 / 620 / 970 need a 1MB BIOS\n"); | ||
105 | - } | ||
106 | |||
107 | if (linux_boot) { | ||
108 | kernel_base = KERNEL_LOAD_ADDR; | ||
109 | diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c | ||
110 | index e3bd29c..1cb2e07 100644 | ||
111 | --- a/target-ppc/op_helper.c | ||
112 | +++ b/target-ppc/op_helper.c | ||
113 | @@ -1646,20 +1646,20 @@ static inline void do_rfi(target_ulong nip, target_ulong msr, | ||
114 | void helper_rfi (void) | ||
115 | { | ||
116 | do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1], | ||
117 | - ~((target_ulong)0x0), 1); | ||
118 | + ~((target_ulong)0xFFFF0000), 1); | ||
119 | } | ||
120 | |||
121 | #if defined(TARGET_PPC64) | ||
122 | void helper_rfid (void) | ||
123 | { | ||
124 | do_rfi(env->spr[SPR_SRR0], env->spr[SPR_SRR1], | ||
125 | - ~((target_ulong)0x0), 0); | ||
126 | + ~((target_ulong)0xFFFF0000), 0); | ||
127 | } | ||
128 | |||
129 | void helper_hrfid (void) | ||
130 | { | ||
131 | do_rfi(env->spr[SPR_HSRR0], env->spr[SPR_HSRR1], | ||
132 | - ~((target_ulong)0x0), 0); | ||
133 | + ~((target_ulong)0xFFFF0000), 0); | ||
134 | } | ||
135 | #endif | ||
136 | #endif | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/enable-i386-linux-user.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/enable-i386-linux-user.patch index 550d48b138..95420ef99e 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/enable-i386-linux-user.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/enable-i386-linux-user.patch | |||
@@ -2,13 +2,13 @@ Enable i386-linux-user | |||
2 | 2 | ||
3 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | 3 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> |
4 | 4 | ||
5 | Index: qemu-0.12.4/Makefile.target | 5 | Index: qemu-0.13.0/Makefile.target |
6 | =================================================================== | 6 | =================================================================== |
7 | --- qemu-0.12.4.orig/Makefile.target 2010-08-31 13:57:01.000000000 +0800 | 7 | --- qemu-0.13.0.orig/Makefile.target 2011-01-17 16:50:39.000000000 +0800 |
8 | +++ qemu-0.12.4/Makefile.target 2010-08-31 14:03:06.000000000 +0800 | 8 | +++ qemu-0.13.0/Makefile.target 2011-01-17 16:50:41.000000000 +0800 |
9 | @@ -46,8 +46,13 @@ | 9 | @@ -54,8 +54,13 @@ |
10 | libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o | 10 | libobj-y += cpuid.o |
11 | libobj-y += op_helper.o helper.o | 11 | endif |
12 | libobj-$(CONFIG_NEED_MMU) += mmu.o | 12 | libobj-$(CONFIG_NEED_MMU) += mmu.o |
13 | +ifndef CONFIG_LINUX_USER | 13 | +ifndef CONFIG_LINUX_USER |
14 | libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o | 14 | libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o |
@@ -20,10 +20,10 @@ Index: qemu-0.12.4/Makefile.target | |||
20 | libobj-$(TARGET_ARM) += dummygl.o | 20 | libobj-$(TARGET_ARM) += dummygl.o |
21 | libobj-$(TARGET_MIPS) += dummygl.o | 21 | libobj-$(TARGET_MIPS) += dummygl.o |
22 | libobj-$(TARGET_PPC) += dummygl.o | 22 | libobj-$(TARGET_PPC) += dummygl.o |
23 | Index: qemu-0.12.4/target-i386/dummygl.c | 23 | Index: qemu-0.13.0/target-i386/dummygl.c |
24 | =================================================================== | 24 | =================================================================== |
25 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 25 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
26 | +++ qemu-0.12.4/target-i386/dummygl.c 2010-08-31 15:25:25.000000000 +0800 | 26 | +++ qemu-0.13.0/target-i386/dummygl.c 2011-01-17 16:50:41.000000000 +0800 |
27 | @@ -0,0 +1,26 @@ | 27 | @@ -0,0 +1,26 @@ |
28 | +#include <string.h> | 28 | +#include <string.h> |
29 | +#include <stdlib.h> | 29 | +#include <stdlib.h> |
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/fix-configure-checks.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/fix-configure-checks.patch index 28ca2b3646..46ddc6e206 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/fix-configure-checks.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/fix-configure-checks.patch | |||
@@ -6,15 +6,15 @@ added and files in the sysroot can be found. | |||
6 | 6 | ||
7 | Patch from Paul Eggleton, Comments by RP 28/11/10 | 7 | Patch from Paul Eggleton, Comments by RP 28/11/10 |
8 | 8 | ||
9 | Index: qemu-0.12.4/configure | 9 | Index: qemu-0.13.0/configure |
10 | =================================================================== | 10 | =================================================================== |
11 | --- qemu-0.12.4.orig/configure | 11 | --- qemu-0.13.0.orig/configure 2010-10-16 04:56:09.000000000 +0800 |
12 | +++ qemu-0.12.4/configure | 12 | +++ qemu-0.13.0/configure 2011-01-15 18:19:41.000000000 +0800 |
13 | @@ -99,6 +99,7 @@ QEMU_CFLAGS="-Wstrict-prototypes -Wredun | 13 | @@ -134,6 +134,7 @@ |
14 | QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" | 14 | QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" |
15 | QEMU_CFLAGS="-U_FORTIFY_SOURCE $QEMU_CFLAGS" | 15 | QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS" |
16 | QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS" | 16 | QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS" |
17 | +QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS" | 17 | +QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS" |
18 | LDFLAGS="-g $LDFLAGS" | 18 | LDFLAGS="-g $LDFLAGS" |
19 | 19 | ||
20 | gcc_flags="-Wold-style-declaration -Wold-style-definition" | 20 | gcc_flags="-Wold-style-declaration -Wold-style-definition -fstack-protector-all" |
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/fix-dirent.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/fix-dirent.patch index 8bbfa0e88e..8bbfa0e88e 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/fix-dirent.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/fix-dirent.patch | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/fix-nogl.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/fix-nogl.patch index 528b6f0d18..fa518abbf7 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/fix-nogl.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/fix-nogl.patch | |||
@@ -1,9 +1,9 @@ | |||
1 | Index: qemu-0.12.4/Makefile.target | 1 | Index: qemu-0.13.0/Makefile.target |
2 | =================================================================== | 2 | =================================================================== |
3 | --- qemu-0.12.4.orig/Makefile.target 2010-06-24 07:59:15.669394205 +0100 | 3 | --- qemu-0.13.0.orig/Makefile.target 2011-01-17 16:53:08.000000000 +0800 |
4 | +++ qemu-0.12.4/Makefile.target 2010-06-24 08:07:38.739399512 +0100 | 4 | +++ qemu-0.13.0/Makefile.target 2011-01-17 16:53:11.000000000 +0800 |
5 | @@ -47,6 +47,10 @@ | 5 | @@ -55,6 +55,10 @@ |
6 | libobj-y += op_helper.o helper.o | 6 | endif |
7 | libobj-$(CONFIG_NEED_MMU) += mmu.o | 7 | libobj-$(CONFIG_NEED_MMU) += mmu.o |
8 | libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o | 8 | libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o |
9 | +libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o | 9 | +libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o |
@@ -11,12 +11,12 @@ Index: qemu-0.12.4/Makefile.target | |||
11 | +libobj-$(TARGET_MIPS) += dummygl.o | 11 | +libobj-$(TARGET_MIPS) += dummygl.o |
12 | +libobj-$(TARGET_PPC) += dummygl.o | 12 | +libobj-$(TARGET_PPC) += dummygl.o |
13 | libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o | 13 | libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o |
14 | libobj-$(TARGET_ALPHA) += alpha_palcode.o | ||
15 | 14 | ||
16 | Index: qemu-0.12.4/target-arm/dummygl.c | 15 | libobj-y += disas.o |
16 | Index: qemu-0.13.0/target-arm/dummygl.c | ||
17 | =================================================================== | 17 | =================================================================== |
18 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 18 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
19 | +++ qemu-0.12.4/target-arm/dummygl.c 2010-06-24 07:59:15.899401748 +0100 | 19 | +++ qemu-0.13.0/target-arm/dummygl.c 2011-01-17 16:53:11.000000000 +0800 |
20 | @@ -0,0 +1,22 @@ | 20 | @@ -0,0 +1,22 @@ |
21 | +#include <string.h> | 21 | +#include <string.h> |
22 | +#include <stdlib.h> | 22 | +#include <stdlib.h> |
@@ -40,10 +40,10 @@ Index: qemu-0.12.4/target-arm/dummygl.c | |||
40 | +{ | 40 | +{ |
41 | + | 41 | + |
42 | +} | 42 | +} |
43 | Index: qemu-0.12.4/target-mips/dummygl.c | 43 | Index: qemu-0.13.0/target-mips/dummygl.c |
44 | =================================================================== | 44 | =================================================================== |
45 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 45 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
46 | +++ qemu-0.12.4/target-mips/dummygl.c 2010-06-24 07:59:15.899401748 +0100 | 46 | +++ qemu-0.13.0/target-mips/dummygl.c 2011-01-17 16:53:11.000000000 +0800 |
47 | @@ -0,0 +1,22 @@ | 47 | @@ -0,0 +1,22 @@ |
48 | +#include <string.h> | 48 | +#include <string.h> |
49 | +#include <stdlib.h> | 49 | +#include <stdlib.h> |
@@ -67,10 +67,10 @@ Index: qemu-0.12.4/target-mips/dummygl.c | |||
67 | +{ | 67 | +{ |
68 | + | 68 | + |
69 | +} | 69 | +} |
70 | Index: qemu-0.12.4/target-ppc/dummygl.c | 70 | Index: qemu-0.13.0/target-ppc/dummygl.c |
71 | =================================================================== | 71 | =================================================================== |
72 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 72 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
73 | +++ qemu-0.12.4/target-ppc/dummygl.c 2010-06-24 08:07:59.070712946 +0100 | 73 | +++ qemu-0.13.0/target-ppc/dummygl.c 2011-01-17 16:53:11.000000000 +0800 |
74 | @@ -0,0 +1,22 @@ | 74 | @@ -0,0 +1,22 @@ |
75 | +#include <string.h> | 75 | +#include <string.h> |
76 | +#include <stdlib.h> | 76 | +#include <stdlib.h> |
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/glflags.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/glflags.patch index 0a27c2dee1..0a27c2dee1 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/glflags.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/glflags.patch | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/init-info.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/init-info.patch index 8ba7d8ff4c..77022ae541 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/init-info.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/init-info.patch | |||
@@ -2,11 +2,11 @@ | |||
2 | # makes info.info.x11.display zero and avoids the calls to | 2 | # makes info.info.x11.display zero and avoids the calls to |
3 | # opengl_exec_set_parent_window, one of which is crashing. | 3 | # opengl_exec_set_parent_window, one of which is crashing. |
4 | 4 | ||
5 | Index: qemu-0.12.4/sdl.c | 5 | Index: qemu-0.13.0/ui/sdl.c |
6 | =================================================================== | 6 | =================================================================== |
7 | --- qemu-0.12.4.orig/sdl.c | 7 | --- qemu-0.13.0.orig/ui/sdl.c 2011-01-15 17:40:59.000000000 +0800 |
8 | +++ qemu-0.12.4/sdl.c | 8 | +++ qemu-0.13.0/ui/sdl.c 2011-01-15 17:41:04.000000000 +0800 |
9 | @@ -871,6 +871,7 @@ void sdl_display_init(DisplayState *ds, | 9 | @@ -857,6 +857,7 @@ |
10 | vi = SDL_GetVideoInfo(); | 10 | vi = SDL_GetVideoInfo(); |
11 | host_format = *(vi->vfmt); | 11 | host_format = *(vi->vfmt); |
12 | 12 | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/linker-flags.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/linker-flags.patch index 7b33aa4840..54c480f94b 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/linker-flags.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/linker-flags.patch | |||
@@ -7,16 +7,16 @@ More information is available on the Fedora Wiki: | |||
7 | https://fedoraproject.org/wiki/UnderstandingDSOLinkChange | 7 | https://fedoraproject.org/wiki/UnderstandingDSOLinkChange |
8 | 8 | ||
9 | JL - 15/06/10 | 9 | JL - 15/06/10 |
10 | Index: qemu-0.12.4/Makefile.target | 10 | Index: qemu-0.13.0/Makefile.target |
11 | =================================================================== | 11 | =================================================================== |
12 | --- qemu-0.12.4.orig/Makefile.target 2010-06-15 11:21:52.000000000 +0100 | 12 | --- qemu-0.13.0.orig/Makefile.target 2011-01-15 17:30:45.000000000 +0800 |
13 | +++ qemu-0.12.4/Makefile.target 2010-06-15 11:25:27.212852910 +0100 | 13 | +++ qemu-0.13.0/Makefile.target 2011-01-15 17:33:22.000000000 +0800 |
14 | @@ -178,7 +178,7 @@ | 14 | @@ -193,7 +193,7 @@ |
15 | obj-y += virtio-blk.o virtio-balloon.o virtio-net.o virtio-console.o virtio-pci.o | 15 | obj-y += rwhandler.o |
16 | obj-$(CONFIG_KVM) += kvm.o kvm-all.o | 16 | obj-$(CONFIG_KVM) += kvm.o kvm-all.o |
17 | obj-$(CONFIG_ISA_MMIO) += isa_mmio.o | 17 | obj-$(CONFIG_NO_KVM) += kvm-stub.o |
18 | -LIBS+=-lz | 18 | -LIBS+=-lz |
19 | +LIBS+=-lz -lX11 -ldl | 19 | +LIBS+=-lz -lX11 -ldl |
20 | 20 | ||
21 | sound-obj-y = | 21 | QEMU_CFLAGS += $(VNC_TLS_CFLAGS) |
22 | sound-obj-$(CONFIG_SB16) += sb16.o | 22 | QEMU_CFLAGS += $(VNC_SASL_CFLAGS) |
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/no-strip.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/no-strip.patch index 8a95a688b3..62cdec6109 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/no-strip.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/no-strip.patch | |||
@@ -1,9 +1,9 @@ | |||
1 | Index: qemu/Makefile | 1 | Index: qemu-0.13.0/Makefile |
2 | =================================================================== | 2 | =================================================================== |
3 | --- qemu.orig/Makefile 2010-05-11 17:17:06.416912704 -0400 | 3 | --- qemu-0.13.0.orig/Makefile 2011-01-17 16:41:59.000000000 +0800 |
4 | +++ qemu/Makefile 2010-05-11 17:17:17.051812402 -0400 | 4 | +++ qemu-0.13.0/Makefile 2011-01-17 16:44:57.000000000 +0800 |
5 | @@ -300,7 +300,7 @@ endif | 5 | @@ -185,7 +185,7 @@ |
6 | install: all $(if $(BUILD_DOCS),install-doc) | 6 | install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig |
7 | $(INSTALL_DIR) "$(DESTDIR)$(bindir)" | 7 | $(INSTALL_DIR) "$(DESTDIR)$(bindir)" |
8 | ifneq ($(TOOLS),) | 8 | ifneq ($(TOOLS),) |
9 | - $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)" | 9 | - $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)" |
@@ -11,11 +11,11 @@ Index: qemu/Makefile | |||
11 | endif | 11 | endif |
12 | ifneq ($(BLOBS),) | 12 | ifneq ($(BLOBS),) |
13 | $(INSTALL_DIR) "$(DESTDIR)$(datadir)" | 13 | $(INSTALL_DIR) "$(DESTDIR)$(datadir)" |
14 | Index: qemu/Makefile.target | 14 | Index: qemu-0.13.0/Makefile.target |
15 | =================================================================== | 15 | =================================================================== |
16 | --- qemu.orig/Makefile.target 2010-05-11 17:17:12.188784092 -0400 | 16 | --- qemu-0.13.0.orig/Makefile.target 2011-01-17 16:42:36.000000000 +0800 |
17 | +++ qemu/Makefile.target 2010-05-11 17:17:17.052808122 -0400 | 17 | +++ qemu-0.13.0/Makefile.target 2011-01-17 16:44:57.000000000 +0800 |
18 | @@ -351,7 +351,7 @@ clean: | 18 | @@ -351,7 +351,7 @@ |
19 | 19 | ||
20 | install: all | 20 | install: all |
21 | ifneq ($(PROGS),) | 21 | ifneq ($(PROGS),) |
diff --git a/meta/recipes-devtools/qemu/qemu-0.13.0/parallel_make.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/parallel_make.patch new file mode 100644 index 0000000000..278b1a759d --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/parallel_make.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | Make -j(>=6) always fail as some job depends on config-host.h. Added following | ||
2 | patch in upstream to resolve it. | ||
3 | |||
4 | Could remove it in next upgrade if necessary. | ||
5 | |||
6 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
7 | |||
8 | commit f0acb38015409024683911380daa94cc974e4e0e | ||
9 | Author: Paul Brook <paul@codesourcery.com> | ||
10 | Date: Fri Nov 26 18:46:03 2010 +0000 | ||
11 | |||
12 | Add missing dependency. | ||
13 | |||
14 | Teach Makefile that cmd.o depends on a generated header (specifically | ||
15 | config-host.h). | ||
16 | |||
17 | Signed-off-by: Paul Brook <paul@codesourcery.com> | ||
18 | (cherry picked from commit 6e14404aab26f74a448747d1e793ac16bde8a92b) | ||
19 | |||
20 | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> | ||
21 | |||
22 | Index: qemu-0.13.0/Makefile | ||
23 | =================================================================== | ||
24 | --- qemu-0.13.0.orig/Makefile 2011-01-18 09:45:45.000000000 +0800 | ||
25 | +++ qemu-0.13.0/Makefile 2011-01-18 09:45:45.000000000 +0800 | ||
26 | @@ -107,7 +107,7 @@ | ||
27 | ###################################################################### | ||
28 | |||
29 | qemu-img.o: qemu-img-cmds.h | ||
30 | -qemu-img.o qemu-tool.o qemu-nbd.o qemu-io.o: $(GENERATED_HEADERS) | ||
31 | +qemu-img.o qemu-tool.o qemu-nbd.o qemu-io.o cmd.o: $(GENERATED_HEADERS) | ||
32 | |||
33 | qemu-img$(EXESUF): qemu-img.o qemu-tool.o qemu-error.o $(block-obj-y) $(qobject-obj-y) | ||
34 | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.13.0/port92_fix.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/port92_fix.patch new file mode 100644 index 0000000000..e101c687c0 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/port92_fix.patch | |||
@@ -0,0 +1,196 @@ | |||
1 | With qemu 0.13.0, poky failed to start on ppc arch because both ppc_prep_init | ||
2 | and i8042_initfn try to register to port 0x92 then cause conflict. Introduce | ||
3 | this patch from upstream to fix it. | ||
4 | |||
5 | Could remove it in future if necessary. | ||
6 | |||
7 | Signed-off-by: Zhai, Edwin <edwin.zhai@intel.com> | ||
8 | |||
9 | commit 4b78a802ffaabb325a0f7b773031da92d173bde1 | ||
10 | Author: Blue Swirl <blauwirbel@gmail.com> | ||
11 | Date: Thu Jan 6 18:24:35 2011 +0000 | ||
12 | |||
13 | pc: move port 92 stuff back to pc.c from pckbd.c | ||
14 | |||
15 | 956a3e6bb7386de48b642d4fee11f7f86a2fcf9a introduced a bug concerning | ||
16 | reset bit for port 92. | ||
17 | |||
18 | Since the keyboard output port and port 92 are not compatible anyway, | ||
19 | let's separate them. | ||
20 | |||
21 | Reported-by: Peter Lieven <pl@dlh.net> | ||
22 | Signed-off-by: Blue Swirl <blauwirbel@gmail.com> | ||
23 | -- | ||
24 | v2: added reset handler and VMState | ||
25 | |||
26 | Index: qemu-0.13.0/hw/pc.c | ||
27 | =================================================================== | ||
28 | --- qemu-0.13.0.orig/hw/pc.c 2010-10-16 04:56:09.000000000 +0800 | ||
29 | +++ qemu-0.13.0/hw/pc.c 2011-01-20 20:37:37.000000000 +0800 | ||
30 | @@ -409,11 +409,91 @@ | ||
31 | qemu_register_reset(pc_cmos_init_late, &arg); | ||
32 | } | ||
33 | |||
34 | +/* port 92 stuff: could be split off */ | ||
35 | +typedef struct Port92State { | ||
36 | + ISADevice dev; | ||
37 | + uint8_t outport; | ||
38 | + qemu_irq *a20_out; | ||
39 | +} Port92State; | ||
40 | + | ||
41 | +static void port92_write(void *opaque, uint32_t addr, uint32_t val) | ||
42 | +{ | ||
43 | + Port92State *s = opaque; | ||
44 | + | ||
45 | + DPRINTF("port92: write 0x%02x\n", val); | ||
46 | + s->outport = val; | ||
47 | + qemu_set_irq(*s->a20_out, (val >> 1) & 1); | ||
48 | + if (val & 1) { | ||
49 | + qemu_system_reset_request(); | ||
50 | + } | ||
51 | +} | ||
52 | + | ||
53 | +static uint32_t port92_read(void *opaque, uint32_t addr) | ||
54 | +{ | ||
55 | + Port92State *s = opaque; | ||
56 | + uint32_t ret; | ||
57 | + | ||
58 | + ret = s->outport; | ||
59 | + DPRINTF("port92: read 0x%02x\n", ret); | ||
60 | + return ret; | ||
61 | +} | ||
62 | + | ||
63 | +static void port92_init(ISADevice *dev, qemu_irq *a20_out) | ||
64 | +{ | ||
65 | + Port92State *s = DO_UPCAST(Port92State, dev, dev); | ||
66 | + | ||
67 | + s->a20_out = a20_out; | ||
68 | +} | ||
69 | + | ||
70 | +static const VMStateDescription vmstate_port92_isa = { | ||
71 | + .name = "port92", | ||
72 | + .version_id = 1, | ||
73 | + .minimum_version_id = 1, | ||
74 | + .minimum_version_id_old = 1, | ||
75 | + .fields = (VMStateField []) { | ||
76 | + VMSTATE_UINT8(outport, Port92State), | ||
77 | + VMSTATE_END_OF_LIST() | ||
78 | + } | ||
79 | +}; | ||
80 | + | ||
81 | +static void port92_reset(DeviceState *d) | ||
82 | +{ | ||
83 | + Port92State *s = container_of(d, Port92State, dev.qdev); | ||
84 | + | ||
85 | + s->outport &= ~1; | ||
86 | +} | ||
87 | + | ||
88 | +static int port92_initfn(ISADevice *dev) | ||
89 | +{ | ||
90 | + Port92State *s = DO_UPCAST(Port92State, dev, dev); | ||
91 | + | ||
92 | + register_ioport_read(0x92, 1, 1, port92_read, s); | ||
93 | + register_ioport_write(0x92, 1, 1, port92_write, s); | ||
94 | + s->outport = 0; | ||
95 | + return 0; | ||
96 | +} | ||
97 | + | ||
98 | +static ISADeviceInfo port92_info = { | ||
99 | + .qdev.name = "port92", | ||
100 | + .qdev.size = sizeof(Port92State), | ||
101 | + .qdev.vmsd = &vmstate_port92_isa, | ||
102 | + .qdev.no_user = 1, | ||
103 | + .qdev.reset = port92_reset, | ||
104 | + .init = port92_initfn, | ||
105 | +}; | ||
106 | + | ||
107 | +static void port92_register(void) | ||
108 | +{ | ||
109 | + isa_qdev_register(&port92_info); | ||
110 | +} | ||
111 | +device_init(port92_register) | ||
112 | + | ||
113 | static void handle_a20_line_change(void *opaque, int irq, int level) | ||
114 | { | ||
115 | CPUState *cpu = opaque; | ||
116 | |||
117 | /* XXX: send to all CPUs ? */ | ||
118 | + /* XXX: add logic to handle multiple A20 line sources */ | ||
119 | cpu_x86_set_a20(cpu, level); | ||
120 | } | ||
121 | |||
122 | @@ -1017,7 +1097,7 @@ | ||
123 | PITState *pit; | ||
124 | qemu_irq rtc_irq = NULL; | ||
125 | qemu_irq *a20_line; | ||
126 | - ISADevice *i8042; | ||
127 | + ISADevice *i8042, *port92; | ||
128 | qemu_irq *cpu_exit_irq; | ||
129 | |||
130 | register_ioport_write(0x80, 1, 1, ioport80_write, NULL); | ||
131 | @@ -1051,10 +1131,12 @@ | ||
132 | } | ||
133 | } | ||
134 | |||
135 | - a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 1); | ||
136 | + a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2); | ||
137 | i8042 = isa_create_simple("i8042"); | ||
138 | - i8042_setup_a20_line(i8042, a20_line); | ||
139 | + i8042_setup_a20_line(i8042, &a20_line[0]); | ||
140 | vmmouse_init(i8042); | ||
141 | + port92 = isa_create_simple("port92"); | ||
142 | + port92_init(port92, &a20_line[1]); | ||
143 | |||
144 | cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1); | ||
145 | DMA_init(0, cpu_exit_irq); | ||
146 | Index: qemu-0.13.0/hw/pckbd.c | ||
147 | =================================================================== | ||
148 | --- qemu-0.13.0.orig/hw/pckbd.c 2010-10-16 04:56:09.000000000 +0800 | ||
149 | +++ qemu-0.13.0/hw/pckbd.c 2011-01-20 20:33:44.000000000 +0800 | ||
150 | @@ -209,10 +209,8 @@ | ||
151 | ps2_queue(s->kbd, b); | ||
152 | } | ||
153 | |||
154 | -static void ioport92_write(void *opaque, uint32_t addr, uint32_t val) | ||
155 | +static void outport_write(KBDState *s, uint32_t val) | ||
156 | { | ||
157 | - KBDState *s = opaque; | ||
158 | - | ||
159 | DPRINTF("kbd: write outport=0x%02x\n", val); | ||
160 | s->outport = val; | ||
161 | if (s->a20_out) { | ||
162 | @@ -223,16 +221,6 @@ | ||
163 | } | ||
164 | } | ||
165 | |||
166 | -static uint32_t ioport92_read(void *opaque, uint32_t addr) | ||
167 | -{ | ||
168 | - KBDState *s = opaque; | ||
169 | - uint32_t ret; | ||
170 | - | ||
171 | - ret = s->outport; | ||
172 | - DPRINTF("kbd: read outport=0x%02x\n", ret); | ||
173 | - return ret; | ||
174 | -} | ||
175 | - | ||
176 | static void kbd_write_command(void *opaque, uint32_t addr, uint32_t val) | ||
177 | { | ||
178 | KBDState *s = opaque; | ||
179 | @@ -340,7 +328,7 @@ | ||
180 | kbd_queue(s, val, 1); | ||
181 | break; | ||
182 | case KBD_CCMD_WRITE_OUTPORT: | ||
183 | - ioport92_write(s, 0, val); | ||
184 | + outport_write(s, val); | ||
185 | break; | ||
186 | case KBD_CCMD_WRITE_MOUSE: | ||
187 | ps2_write_mouse(s->mouse, val); | ||
188 | @@ -469,8 +457,6 @@ | ||
189 | register_ioport_write(0x60, 1, 1, kbd_write_data, s); | ||
190 | register_ioport_read(0x64, 1, 1, kbd_read_status, s); | ||
191 | register_ioport_write(0x64, 1, 1, kbd_write_command, s); | ||
192 | - register_ioport_read(0x92, 1, 1, ioport92_read, s); | ||
193 | - register_ioport_write(0x92, 1, 1, ioport92_write, s); | ||
194 | |||
195 | s->kbd = ps2_kbd_init(kbd_update_kbd_irq, s); | ||
196 | s->mouse = ps2_mouse_init(kbd_update_aux_irq, s); | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/powerpc_rom.bin b/meta/recipes-devtools/qemu/qemu-0.13.0/powerpc_rom.bin index c4044296c5..c4044296c5 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/powerpc_rom.bin +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/powerpc_rom.bin | |||
Binary files differ | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/qemu-git-qemugl-host.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-git-qemugl-host.patch index ab31476218..085477c575 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/qemu-git-qemugl-host.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-git-qemugl-host.patch | |||
@@ -1,16 +1,16 @@ | |||
1 | Index: qemu-0.12.4/Makefile.target | 1 | Index: qemu-0.13.0/Makefile.target |
2 | =================================================================== | 2 | =================================================================== |
3 | --- qemu-0.12.4.orig/Makefile.target | 3 | --- qemu-0.13.0.orig/Makefile.target 2011-01-17 16:41:59.000000000 +0800 |
4 | +++ qemu-0.12.4/Makefile.target | 4 | +++ qemu-0.13.0/Makefile.target 2011-01-17 16:42:36.000000000 +0800 |
5 | @@ -46,6 +46,7 @@ libobj-$(CONFIG_SOFTFLOAT) += fpu/softfl | 5 | @@ -54,6 +54,7 @@ |
6 | libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o | 6 | libobj-y += cpuid.o |
7 | libobj-y += op_helper.o helper.o | 7 | endif |
8 | libobj-$(CONFIG_NEED_MMU) += mmu.o | 8 | libobj-$(CONFIG_NEED_MMU) += mmu.o |
9 | +libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o | 9 | +libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o |
10 | libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o | 10 | libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o |
11 | libobj-$(TARGET_ALPHA) += alpha_palcode.o | ||
12 | 11 | ||
13 | @@ -82,6 +83,21 @@ op_helper.o cpu-exec.o: QEMU_CFLAGS += $ | 12 | libobj-y += disas.o |
13 | @@ -76,6 +77,21 @@ | ||
14 | # cpu_signal_handler() in cpu-exec.c. | 14 | # cpu_signal_handler() in cpu-exec.c. |
15 | signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS) | 15 | signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS) |
16 | 16 | ||
@@ -32,31 +32,31 @@ Index: qemu-0.12.4/Makefile.target | |||
32 | ######################################################### | 32 | ######################################################### |
33 | # Linux user emulator target | 33 | # Linux user emulator target |
34 | 34 | ||
35 | @@ -196,6 +212,10 @@ obj-i386-y += usb-uhci.o vmmouse.o vmpor | 35 | @@ -202,6 +218,10 @@ |
36 | obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o | 36 | obj-i386-y += debugcon.o multiboot.o |
37 | obj-i386-y += ne2000-isa.o | 37 | obj-i386-y += pc_piix.o |
38 | 38 | ||
39 | +ifeq ($(TARGET_BASE_ARCH), i386) | 39 | +ifeq ($(TARGET_BASE_ARCH), i386) |
40 | +QEMU_CFLAGS += -DTARGET_OPENGL_OK | 40 | +QEMU_CFLAGS += -DTARGET_OPENGL_OK |
41 | +endif | 41 | +endif |
42 | + | 42 | + |
43 | # shared objects | 43 | # shared objects |
44 | obj-ppc-y = ppc.o ide/core.o ide/qdev.o ide/isa.o ide/pci.o ide/macio.o | 44 | obj-ppc-y = ppc.o |
45 | obj-ppc-y += ide/cmd646.o | 45 | obj-ppc-y += vga.o |
46 | @@ -303,6 +323,8 @@ vl.o: qemu-options.h | 46 | @@ -301,6 +321,8 @@ |
47 | 47 | ||
48 | monitor.o: qemu-monitor.h | 48 | monitor.o: qemu-monitor.h |
49 | 49 | ||
50 | +LIBS += -lGL -lGLU | 50 | +LIBS += -lGL -lGLU |
51 | + | 51 | + |
52 | ARLIBS=../libqemu_common.a libqemu.a $(HWLIB) | 52 | $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS) |
53 | 53 | ||
54 | endif # CONFIG_SOFTMMU | 54 | obj-y += $(addprefix ../, $(common-obj-y)) |
55 | Index: qemu-0.12.4/hw/pixel_ops.h | 55 | Index: qemu-0.13.0/hw/pixel_ops.h |
56 | =================================================================== | 56 | =================================================================== |
57 | --- qemu-0.12.4.orig/hw/pixel_ops.h | 57 | --- qemu-0.13.0.orig/hw/pixel_ops.h 2011-01-17 16:41:59.000000000 +0800 |
58 | +++ qemu-0.12.4/hw/pixel_ops.h | 58 | +++ qemu-0.13.0/hw/pixel_ops.h 2011-01-17 16:42:36.000000000 +0800 |
59 | @@ -4,6 +4,12 @@ static inline unsigned int rgb_to_pixel8 | 59 | @@ -4,6 +4,12 @@ |
60 | return ((r >> 5) << 5) | ((g >> 5) << 2) | (b >> 6); | 60 | return ((r >> 5) << 5) | ((g >> 5) << 2) | (b >> 6); |
61 | } | 61 | } |
62 | 62 | ||
@@ -69,11 +69,11 @@ Index: qemu-0.12.4/hw/pixel_ops.h | |||
69 | static inline unsigned int rgb_to_pixel15(unsigned int r, unsigned int g, | 69 | static inline unsigned int rgb_to_pixel15(unsigned int r, unsigned int g, |
70 | unsigned int b) | 70 | unsigned int b) |
71 | { | 71 | { |
72 | Index: qemu-0.12.4/hw/vmware_vga.c | 72 | Index: qemu-0.13.0/hw/vmware_vga.c |
73 | =================================================================== | 73 | =================================================================== |
74 | --- qemu-0.12.4.orig/hw/vmware_vga.c | 74 | --- qemu-0.13.0.orig/hw/vmware_vga.c 2011-01-17 16:41:59.000000000 +0800 |
75 | +++ qemu-0.12.4/hw/vmware_vga.c | 75 | +++ qemu-0.13.0/hw/vmware_vga.c 2011-01-17 16:42:36.000000000 +0800 |
76 | @@ -489,6 +489,8 @@ static inline void vmsvga_cursor_define( | 76 | @@ -519,6 +519,8 @@ |
77 | 77 | ||
78 | #define CMD(f) le32_to_cpu(s->cmd->f) | 78 | #define CMD(f) le32_to_cpu(s->cmd->f) |
79 | 79 | ||
@@ -82,7 +82,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
82 | static inline int vmsvga_fifo_empty(struct vmsvga_state_s *s) | 82 | static inline int vmsvga_fifo_empty(struct vmsvga_state_s *s) |
83 | { | 83 | { |
84 | if (!s->config || !s->enable) | 84 | if (!s->config || !s->enable) |
85 | @@ -498,11 +500,18 @@ static inline int vmsvga_fifo_empty(stru | 85 | @@ -528,11 +530,18 @@ |
86 | 86 | ||
87 | static inline uint32_t vmsvga_fifo_read_raw(struct vmsvga_state_s *s) | 87 | static inline uint32_t vmsvga_fifo_read_raw(struct vmsvga_state_s *s) |
88 | { | 88 | { |
@@ -105,7 +105,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
105 | } | 105 | } |
106 | 106 | ||
107 | static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s) | 107 | static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s) |
108 | @@ -512,12 +521,12 @@ static inline uint32_t vmsvga_fifo_read( | 108 | @@ -542,12 +551,12 @@ |
109 | 109 | ||
110 | static void vmsvga_fifo_run(struct vmsvga_state_s *s) | 110 | static void vmsvga_fifo_run(struct vmsvga_state_s *s) |
111 | { | 111 | { |
@@ -120,7 +120,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
120 | case SVGA_CMD_UPDATE: | 120 | case SVGA_CMD_UPDATE: |
121 | case SVGA_CMD_UPDATE_VERBOSE: | 121 | case SVGA_CMD_UPDATE_VERBOSE: |
122 | x = vmsvga_fifo_read(s); | 122 | x = vmsvga_fifo_read(s); |
123 | @@ -624,7 +633,7 @@ static void vmsvga_fifo_run(struct vmsvg | 123 | @@ -654,7 +663,7 @@ |
124 | while (args --) | 124 | while (args --) |
125 | vmsvga_fifo_read(s); | 125 | vmsvga_fifo_read(s); |
126 | printf("%s: Unknown command 0x%02x in SVGA command FIFO\n", | 126 | printf("%s: Unknown command 0x%02x in SVGA command FIFO\n", |
@@ -129,7 +129,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
129 | break; | 129 | break; |
130 | } | 130 | } |
131 | 131 | ||
132 | @@ -1143,6 +1152,12 @@ static void vmsvga_init(struct vmsvga_st | 132 | @@ -1173,6 +1182,12 @@ |
133 | 133 | ||
134 | vga_init_vbe(&s->vga); | 134 | vga_init_vbe(&s->vga); |
135 | 135 | ||
@@ -142,11 +142,11 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
142 | rom_add_vga(VGABIOS_FILENAME); | 142 | rom_add_vga(VGABIOS_FILENAME); |
143 | 143 | ||
144 | vmsvga_reset(s); | 144 | vmsvga_reset(s); |
145 | Index: qemu-0.12.4/qemu-char.c | 145 | Index: qemu-0.13.0/qemu-char.c |
146 | =================================================================== | 146 | =================================================================== |
147 | --- qemu-0.12.4.orig/qemu-char.c | 147 | --- qemu-0.13.0.orig/qemu-char.c 2011-01-17 16:41:59.000000000 +0800 |
148 | +++ qemu-0.12.4/qemu-char.c | 148 | +++ qemu-0.13.0/qemu-char.c 2011-01-17 16:42:36.000000000 +0800 |
149 | @@ -2235,6 +2235,69 @@ static CharDriverState *qemu_chr_open_so | 149 | @@ -2278,6 +2278,69 @@ |
150 | return NULL; | 150 | return NULL; |
151 | } | 151 | } |
152 | 152 | ||
@@ -216,7 +216,7 @@ Index: qemu-0.12.4/qemu-char.c | |||
216 | QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename) | 216 | QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename) |
217 | { | 217 | { |
218 | char host[65], port[33], width[8], height[8]; | 218 | char host[65], port[33], width[8], height[8]; |
219 | @@ -2353,6 +2416,10 @@ QemuOpts *qemu_chr_parse_compat(const ch | 219 | @@ -2396,6 +2459,10 @@ |
220 | qemu_opt_set(opts, "path", filename); | 220 | qemu_opt_set(opts, "path", filename); |
221 | return opts; | 221 | return opts; |
222 | } | 222 | } |
@@ -227,7 +227,7 @@ Index: qemu-0.12.4/qemu-char.c | |||
227 | 227 | ||
228 | fail: | 228 | fail: |
229 | qemu_opts_del(opts); | 229 | qemu_opts_del(opts); |
230 | @@ -2368,6 +2435,7 @@ static const struct { | 230 | @@ -2411,6 +2478,7 @@ |
231 | { .name = "udp", .open = qemu_chr_open_udp }, | 231 | { .name = "udp", .open = qemu_chr_open_udp }, |
232 | { .name = "msmouse", .open = qemu_chr_open_msmouse }, | 232 | { .name = "msmouse", .open = qemu_chr_open_msmouse }, |
233 | { .name = "vc", .open = text_console_init }, | 233 | { .name = "vc", .open = text_console_init }, |
@@ -235,136 +235,19 @@ Index: qemu-0.12.4/qemu-char.c | |||
235 | #ifdef _WIN32 | 235 | #ifdef _WIN32 |
236 | { .name = "file", .open = qemu_chr_open_win_file_out }, | 236 | { .name = "file", .open = qemu_chr_open_win_file_out }, |
237 | { .name = "pipe", .open = qemu_chr_open_win_pipe }, | 237 | { .name = "pipe", .open = qemu_chr_open_win_pipe }, |
238 | Index: qemu-0.12.4/sdl.c | 238 | Index: qemu-0.13.0/slirp/udp.c |
239 | =================================================================== | 239 | =================================================================== |
240 | --- qemu-0.12.4.orig/sdl.c | 240 | --- qemu-0.13.0.orig/slirp/udp.c 2011-01-17 16:41:59.000000000 +0800 |
241 | +++ qemu-0.12.4/sdl.c | 241 | +++ qemu-0.13.0/slirp/udp.c 2011-01-17 16:42:36.000000000 +0800 |
242 | @@ -58,6 +58,8 @@ static uint8_t allocator; | ||
243 | static SDL_PixelFormat host_format; | ||
244 | static int scaling_active = 0; | ||
245 | |||
246 | +extern void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window); | ||
247 | + | ||
248 | static void sdl_update(DisplayState *ds, int x, int y, int w, int h) | ||
249 | { | ||
250 | // printf("updating x=%d y=%d w=%d h=%d\n", x, y, w, h); | ||
251 | @@ -119,12 +121,22 @@ static void do_sdl_resize(int new_width, | ||
252 | |||
253 | static void sdl_resize(DisplayState *ds) | ||
254 | { | ||
255 | - if (!allocator) { | ||
256 | + SDL_SysWMinfo info; | ||
257 | + static Display *dpy; | ||
258 | + | ||
259 | + if (!allocator) { | ||
260 | if (!scaling_active) | ||
261 | do_sdl_resize(ds_get_width(ds), ds_get_height(ds), 0); | ||
262 | else if (real_screen->format->BitsPerPixel != ds_get_bits_per_pixel(ds)) | ||
263 | do_sdl_resize(real_screen->w, real_screen->h, ds_get_bits_per_pixel(ds)); | ||
264 | sdl_setdata(ds); | ||
265 | + | ||
266 | + SDL_GetWMInfo(&info); | ||
267 | + if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display && | ||
268 | + (!dpy || dpy == info.info.x11.display)) { | ||
269 | + dpy = info.info.x11.display; | ||
270 | + opengl_exec_set_parent_window(dpy, info.info.x11.window); | ||
271 | + } | ||
272 | } else { | ||
273 | if (guest_screen != NULL) { | ||
274 | SDL_FreeSurface(guest_screen); | ||
275 | @@ -453,7 +465,7 @@ static void sdl_show_cursor(void) | ||
276 | |||
277 | if (!kbd_mouse_is_absolute()) { | ||
278 | SDL_ShowCursor(1); | ||
279 | - if (guest_cursor && | ||
280 | + if (guest_cursor && !force_pointer && | ||
281 | (gui_grab || kbd_mouse_is_absolute() || absolute_enabled)) | ||
282 | SDL_SetCursor(guest_sprite); | ||
283 | else | ||
284 | @@ -464,7 +476,8 @@ static void sdl_show_cursor(void) | ||
285 | static void sdl_grab_start(void) | ||
286 | { | ||
287 | if (guest_cursor) { | ||
288 | - SDL_SetCursor(guest_sprite); | ||
289 | + if (!force_pointer) | ||
290 | + SDL_SetCursor(guest_sprite); | ||
291 | if (!kbd_mouse_is_absolute() && !absolute_enabled) | ||
292 | SDL_WarpMouse(guest_x, guest_y); | ||
293 | } else | ||
294 | @@ -505,8 +518,8 @@ static void sdl_send_mouse_event(int dx, | ||
295 | absolute_enabled = 1; | ||
296 | } | ||
297 | |||
298 | - dx = x * 0x7FFF / (width - 1); | ||
299 | - dy = y * 0x7FFF / (height - 1); | ||
300 | + dx = x * 0x7FFF / (width - 1); | ||
301 | + dy = y * 0x7FFF / (height - 1); | ||
302 | } else if (absolute_enabled) { | ||
303 | sdl_show_cursor(); | ||
304 | absolute_enabled = 0; | ||
305 | @@ -761,7 +774,8 @@ static void sdl_mouse_warp(int x, int y, | ||
306 | if (!guest_cursor) | ||
307 | sdl_show_cursor(); | ||
308 | if (gui_grab || kbd_mouse_is_absolute() || absolute_enabled) { | ||
309 | - SDL_SetCursor(guest_sprite); | ||
310 | + if (!force_pointer) | ||
311 | + SDL_SetCursor(guest_sprite); | ||
312 | if (!kbd_mouse_is_absolute() && !absolute_enabled) | ||
313 | SDL_WarpMouse(x, y); | ||
314 | } | ||
315 | @@ -815,7 +829,7 @@ static void sdl_mouse_define(int width, | ||
316 | } | ||
317 | guest_sprite = SDL_CreateCursor(sprite, mask, width, height, hot_x, hot_y); | ||
318 | |||
319 | - if (guest_cursor && | ||
320 | + if (guest_cursor && !force_pointer && | ||
321 | (gui_grab || kbd_mouse_is_absolute() || absolute_enabled)) | ||
322 | SDL_SetCursor(guest_sprite); | ||
323 | } | ||
324 | @@ -832,6 +846,7 @@ void sdl_display_init(DisplayState *ds, | ||
325 | int flags; | ||
326 | uint8_t data = 0; | ||
327 | DisplayAllocator *da; | ||
328 | + SDL_SysWMinfo info; | ||
329 | const SDL_VideoInfo *vi; | ||
330 | |||
331 | #if defined(__APPLE__) | ||
332 | @@ -856,6 +871,12 @@ void sdl_display_init(DisplayState *ds, | ||
333 | vi = SDL_GetVideoInfo(); | ||
334 | host_format = *(vi->vfmt); | ||
335 | |||
336 | + SDL_GetWMInfo(&info); | ||
337 | + if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display) | ||
338 | + opengl_exec_set_parent_window(info.info.x11.display, | ||
339 | + RootWindow(info.info.x11.display, | ||
340 | + DefaultScreen(info.info.x11.display))); | ||
341 | + | ||
342 | dcl = qemu_mallocz(sizeof(DisplayChangeListener)); | ||
343 | dcl->dpy_update = sdl_update; | ||
344 | dcl->dpy_resize = sdl_resize; | ||
345 | @@ -891,4 +912,9 @@ void sdl_display_init(DisplayState *ds, | ||
346 | gui_fullscreen_initial_grab = 1; | ||
347 | sdl_grab_start(); | ||
348 | } | ||
349 | + | ||
350 | + SDL_GetWMInfo(&info); | ||
351 | + if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display) | ||
352 | + opengl_exec_set_parent_window(info.info.x11.display, | ||
353 | + info.info.x11.window); | ||
354 | } | ||
355 | Index: qemu-0.12.4/slirp/udp.c | ||
356 | =================================================================== | ||
357 | --- qemu-0.12.4.orig/slirp/udp.c | ||
358 | +++ qemu-0.12.4/slirp/udp.c | ||
359 | @@ -40,6 +40,7 @@ | 242 | @@ -40,6 +40,7 @@ |
360 | 243 | ||
361 | #include <slirp.h> | 244 | #include <slirp.h> |
362 | #include "ip_icmp.h" | 245 | #include "ip_icmp.h" |
363 | +#include "bswap.h" | 246 | +#include "bswap.h" |
364 | 247 | ||
365 | static u_int8_t udp_tos(struct socket *so); | 248 | static uint8_t udp_tos(struct socket *so); |
366 | 249 | ||
367 | @@ -125,6 +126,11 @@ udp_input(register struct mbuf *m, int i | 250 | @@ -125,6 +126,11 @@ |
368 | goto bad; | 251 | goto bad; |
369 | } | 252 | } |
370 | 253 | ||
@@ -376,11 +259,11 @@ Index: qemu-0.12.4/slirp/udp.c | |||
376 | if (slirp->restricted) { | 259 | if (slirp->restricted) { |
377 | goto bad; | 260 | goto bad; |
378 | } | 261 | } |
379 | Index: qemu-0.12.4/sysemu.h | 262 | Index: qemu-0.13.0/sysemu.h |
380 | =================================================================== | 263 | =================================================================== |
381 | --- qemu-0.12.4.orig/sysemu.h | 264 | --- qemu-0.13.0.orig/sysemu.h 2011-01-17 16:41:59.000000000 +0800 |
382 | +++ qemu-0.12.4/sysemu.h | 265 | +++ qemu-0.13.0/sysemu.h 2011-01-17 16:42:36.000000000 +0800 |
383 | @@ -141,6 +141,7 @@ extern int semihosting_enabled; | 266 | @@ -133,6 +133,7 @@ |
384 | extern int old_param; | 267 | extern int old_param; |
385 | extern int boot_menu; | 268 | extern int boot_menu; |
386 | extern QEMUClock *rtc_clock; | 269 | extern QEMUClock *rtc_clock; |
@@ -388,10 +271,10 @@ Index: qemu-0.12.4/sysemu.h | |||
388 | 271 | ||
389 | #define MAX_NODES 64 | 272 | #define MAX_NODES 64 |
390 | extern int nb_numa_nodes; | 273 | extern int nb_numa_nodes; |
391 | Index: qemu-0.12.4/target-i386/beginend_funcs.sh | 274 | Index: qemu-0.13.0/target-i386/beginend_funcs.sh |
392 | =================================================================== | 275 | =================================================================== |
393 | --- /dev/null | 276 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
394 | +++ qemu-0.12.4/target-i386/beginend_funcs.sh | 277 | +++ qemu-0.13.0/target-i386/beginend_funcs.sh 2011-01-17 16:42:36.000000000 +0800 |
395 | @@ -0,0 +1,23 @@ | 278 | @@ -0,0 +1,23 @@ |
396 | +#! /bin/sh | 279 | +#! /bin/sh |
397 | +# Copyright 2008 (C) Intel Corporation | 280 | +# Copyright 2008 (C) Intel Corporation |
@@ -416,10 +299,10 @@ Index: qemu-0.12.4/target-i386/beginend_funcs.sh | |||
416 | +echo -e MAGIC_MACRO\(glCallList\)\\n | 299 | +echo -e MAGIC_MACRO\(glCallList\)\\n |
417 | +echo -e MAGIC_MACRO\(glCallLists\)\\n | 300 | +echo -e MAGIC_MACRO\(glCallLists\)\\n |
418 | +echo -e MAGIC_MACRO\(glEdgeFlag{,v}\)\\n | 301 | +echo -e MAGIC_MACRO\(glEdgeFlag{,v}\)\\n |
419 | Index: qemu-0.12.4/target-i386/ghash.c | 302 | Index: qemu-0.13.0/target-i386/ghash.c |
420 | =================================================================== | 303 | =================================================================== |
421 | --- /dev/null | 304 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
422 | +++ qemu-0.12.4/target-i386/ghash.c | 305 | +++ qemu-0.13.0/target-i386/ghash.c 2011-01-17 16:42:36.000000000 +0800 |
423 | @@ -0,0 +1,347 @@ | 306 | @@ -0,0 +1,347 @@ |
424 | +/* This is a modified and simplified version of original ghash.c */ | 307 | +/* This is a modified and simplified version of original ghash.c */ |
425 | + | 308 | + |
@@ -768,10 +651,10 @@ Index: qemu-0.12.4/target-i386/ghash.c | |||
768 | + hash_node = next; | 651 | + hash_node = next; |
769 | + } | 652 | + } |
770 | +} | 653 | +} |
771 | Index: qemu-0.12.4/target-i386/ghash.h | 654 | Index: qemu-0.13.0/target-i386/ghash.h |
772 | =================================================================== | 655 | =================================================================== |
773 | --- /dev/null | 656 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
774 | +++ qemu-0.12.4/target-i386/ghash.h | 657 | +++ qemu-0.13.0/target-i386/ghash.h 2011-01-17 16:42:36.000000000 +0800 |
775 | @@ -0,0 +1,59 @@ | 658 | @@ -0,0 +1,59 @@ |
776 | +/* This is a modified and simplified version of original ghash.h */ | 659 | +/* This is a modified and simplified version of original ghash.h */ |
777 | + | 660 | + |
@@ -832,10 +715,10 @@ Index: qemu-0.12.4/target-i386/ghash.h | |||
832 | + | 715 | + |
833 | +#endif /* __SIMPLE_HASH_H__ */ | 716 | +#endif /* __SIMPLE_HASH_H__ */ |
834 | + | 717 | + |
835 | Index: qemu-0.12.4/target-i386/gl_func_perso.h | 718 | Index: qemu-0.13.0/target-i386/gl_func_perso.h |
836 | =================================================================== | 719 | =================================================================== |
837 | --- /dev/null | 720 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
838 | +++ qemu-0.12.4/target-i386/gl_func_perso.h | 721 | +++ qemu-0.13.0/target-i386/gl_func_perso.h 2011-01-17 16:42:36.000000000 +0800 |
839 | @@ -0,0 +1,135 @@ | 722 | @@ -0,0 +1,135 @@ |
840 | +/* | 723 | +/* |
841 | + * Hand-implemented GL/GLX API | 724 | + * Hand-implemented GL/GLX API |
@@ -972,11 +855,11 @@ Index: qemu-0.12.4/target-i386/gl_func_perso.h | |||
972 | +MAGIC_MACRO(_glGetSelectBuffer_fake), | 855 | +MAGIC_MACRO(_glGetSelectBuffer_fake), |
973 | +MAGIC_MACRO(_glFeedbackBuffer_fake), | 856 | +MAGIC_MACRO(_glFeedbackBuffer_fake), |
974 | +MAGIC_MACRO(_glGetFeedbackBuffer_fake), | 857 | +MAGIC_MACRO(_glGetFeedbackBuffer_fake), |
975 | Index: qemu-0.12.4/target-i386/helper.c | 858 | Index: qemu-0.13.0/target-i386/helper.c |
976 | =================================================================== | 859 | =================================================================== |
977 | --- qemu-0.12.4.orig/target-i386/helper.c | 860 | --- qemu-0.13.0.orig/target-i386/helper.c 2011-01-17 16:41:59.000000000 +0800 |
978 | +++ qemu-0.12.4/target-i386/helper.c | 861 | +++ qemu-0.13.0/target-i386/helper.c 2011-01-17 16:42:36.000000000 +0800 |
979 | @@ -1435,7 +1435,7 @@ target_phys_addr_t cpu_get_phys_page_deb | 862 | @@ -914,7 +914,7 @@ |
980 | } | 863 | } |
981 | 864 | ||
982 | page_offset = (addr & TARGET_PAGE_MASK) & (page_size - 1); | 865 | page_offset = (addr & TARGET_PAGE_MASK) & (page_size - 1); |
@@ -985,21 +868,21 @@ Index: qemu-0.12.4/target-i386/helper.c | |||
985 | return paddr; | 868 | return paddr; |
986 | } | 869 | } |
987 | 870 | ||
988 | Index: qemu-0.12.4/target-i386/helper.h | 871 | Index: qemu-0.13.0/target-i386/helper.h |
989 | =================================================================== | 872 | =================================================================== |
990 | --- qemu-0.12.4.orig/target-i386/helper.h | 873 | --- qemu-0.13.0.orig/target-i386/helper.h 2011-01-17 16:41:59.000000000 +0800 |
991 | +++ qemu-0.12.4/target-i386/helper.h | 874 | +++ qemu-0.13.0/target-i386/helper.h 2011-01-17 16:42:36.000000000 +0800 |
992 | @@ -217,4 +217,6 @@ DEF_HELPER_2(rclq, tl, tl, tl) | 875 | @@ -217,4 +217,6 @@ |
993 | DEF_HELPER_2(rcrq, tl, tl, tl) | 876 | DEF_HELPER_2(rcrq, tl, tl, tl) |
994 | #endif | 877 | #endif |
995 | 878 | ||
996 | +DEF_HELPER_0(opengl, void) | 879 | +DEF_HELPER_0(opengl, void) |
997 | + | 880 | + |
998 | #include "def-helper.h" | 881 | #include "def-helper.h" |
999 | Index: qemu-0.12.4/target-i386/helper_opengl.c | 882 | Index: qemu-0.13.0/target-i386/helper_opengl.c |
1000 | =================================================================== | 883 | =================================================================== |
1001 | --- /dev/null | 884 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1002 | +++ qemu-0.12.4/target-i386/helper_opengl.c | 885 | +++ qemu-0.13.0/target-i386/helper_opengl.c 2011-01-17 16:44:27.000000000 +0800 |
1003 | @@ -0,0 +1,1207 @@ | 886 | @@ -0,0 +1,1207 @@ |
1004 | +/* | 887 | +/* |
1005 | + * Host-side implementation of GL/GLX API | 888 | + * Host-side implementation of GL/GLX API |
@@ -1086,7 +969,7 @@ Index: qemu-0.12.4/target-i386/helper_opengl.c | |||
1086 | + cpu_x86_handle_mmu_fault((CPUState *) env, addr, 0, 1, 1)); | 969 | + cpu_x86_handle_mmu_fault((CPUState *) env, addr, 0, 1, 1)); |
1087 | + return NULL; | 970 | + return NULL; |
1088 | + } else { | 971 | + } else { |
1089 | + if (ret + TARGET_PAGE_SIZE <= last_ram_offset) { | 972 | + if (ret + TARGET_PAGE_SIZE <= ram_bytes_total()) { |
1090 | + return qemu_get_ram_ptr(ret + | 973 | + return qemu_get_ram_ptr(ret + |
1091 | + (((target_ulong) addr) & (TARGET_PAGE_SIZE - 1))); | 974 | + (((target_ulong) addr) & (TARGET_PAGE_SIZE - 1))); |
1092 | + } else { | 975 | + } else { |
@@ -1095,7 +978,7 @@ Index: qemu-0.12.4/target-i386/helper_opengl.c | |||
1095 | + TARGET_FMT_lx "\n", addr, ret); | 978 | + TARGET_FMT_lx "\n", addr, ret); |
1096 | + fprintf(stderr, | 979 | + fprintf(stderr, |
1097 | + "ret=" TARGET_FMT_lx " last_ram_offset= " TARGET_FMT_lx | 980 | + "ret=" TARGET_FMT_lx " last_ram_offset= " TARGET_FMT_lx |
1098 | + "\n", ret, (target_ulong) last_ram_offset); | 981 | + "\n", ret, (target_ulong) ram_bytes_total()); |
1099 | + return NULL; | 982 | + return NULL; |
1100 | + } | 983 | + } |
1101 | + } | 984 | + } |
@@ -2201,19 +2084,19 @@ Index: qemu-0.12.4/target-i386/helper_opengl.c | |||
2201 | + | 2084 | + |
2202 | + allow_kernel = 0; | 2085 | + allow_kernel = 0; |
2203 | + if (kvm_enabled()) | 2086 | + if (kvm_enabled()) |
2204 | + kvm_arch_put_registers(env); | 2087 | + kvm_arch_put_registers(env, KVM_PUT_RUNTIME_STATE); |
2205 | + | 2088 | + |
2206 | + printf("Granted OpenGL access to process '%s'\n", name); | 2089 | + printf("Granted OpenGL access to process '%s'\n", name); |
2207 | + | 2090 | + |
2208 | + io_register(); | 2091 | + io_register(); |
2209 | +} | 2092 | +} |
2210 | +#endif | 2093 | +#endif |
2211 | Index: qemu-0.12.4/target-i386/kvm.c | 2094 | Index: qemu-0.13.0/target-i386/kvm.c |
2212 | =================================================================== | 2095 | =================================================================== |
2213 | --- qemu-0.12.4.orig/target-i386/kvm.c | 2096 | --- qemu-0.13.0.orig/target-i386/kvm.c 2011-01-17 16:41:59.000000000 +0800 |
2214 | +++ qemu-0.12.4/target-i386/kvm.c | 2097 | +++ qemu-0.13.0/target-i386/kvm.c 2011-01-17 16:42:36.000000000 +0800 |
2215 | @@ -529,7 +529,7 @@ static int kvm_get_fpu(CPUState *env) | 2098 | @@ -746,7 +746,7 @@ |
2216 | return 0; | 2099 | #endif |
2217 | } | 2100 | } |
2218 | 2101 | ||
2219 | -static int kvm_get_sregs(CPUState *env) | 2102 | -static int kvm_get_sregs(CPUState *env) |
@@ -2221,10 +2104,10 @@ Index: qemu-0.12.4/target-i386/kvm.c | |||
2221 | { | 2104 | { |
2222 | struct kvm_sregs sregs; | 2105 | struct kvm_sregs sregs; |
2223 | uint32_t hflags; | 2106 | uint32_t hflags; |
2224 | Index: qemu-0.12.4/target-i386/mesa_enums.c | 2107 | Index: qemu-0.13.0/target-i386/mesa_enums.c |
2225 | =================================================================== | 2108 | =================================================================== |
2226 | --- /dev/null | 2109 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2227 | +++ qemu-0.12.4/target-i386/mesa_enums.c | 2110 | +++ qemu-0.13.0/target-i386/mesa_enums.c 2011-01-17 16:42:36.000000000 +0800 |
2228 | @@ -0,0 +1,4890 @@ | 2111 | @@ -0,0 +1,4890 @@ |
2229 | +/* DO NOT EDIT - This file generated automatically by gl_enums.py (from Mesa) script */ | 2112 | +/* DO NOT EDIT - This file generated automatically by gl_enums.py (from Mesa) script */ |
2230 | + | 2113 | + |
@@ -7116,10 +6999,10 @@ Index: qemu-0.12.4/target-i386/mesa_enums.c | |||
7116 | +} | 6999 | +} |
7117 | + | 7000 | + |
7118 | + | 7001 | + |
7119 | Index: qemu-0.12.4/target-i386/mesa_get.c | 7002 | Index: qemu-0.13.0/target-i386/mesa_get.c |
7120 | =================================================================== | 7003 | =================================================================== |
7121 | --- /dev/null | 7004 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
7122 | +++ qemu-0.12.4/target-i386/mesa_get.c | 7005 | +++ qemu-0.13.0/target-i386/mesa_get.c 2011-01-17 16:42:36.000000000 +0800 |
7123 | @@ -0,0 +1,5563 @@ | 7006 | @@ -0,0 +1,5563 @@ |
7124 | + | 7007 | + |
7125 | +/*** | 7008 | +/*** |
@@ -12684,10 +12567,10 @@ Index: qemu-0.12.4/target-i386/mesa_get.c | |||
12684 | + params[i] = (GLdouble) values[i]; | 12567 | + params[i] = (GLdouble) values[i]; |
12685 | +} | 12568 | +} |
12686 | + | 12569 | + |
12687 | Index: qemu-0.12.4/target-i386/mesa_gl.h | 12570 | Index: qemu-0.13.0/target-i386/mesa_gl.h |
12688 | =================================================================== | 12571 | =================================================================== |
12689 | --- /dev/null | 12572 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
12690 | +++ qemu-0.12.4/target-i386/mesa_gl.h | 12573 | +++ qemu-0.13.0/target-i386/mesa_gl.h 2011-01-17 16:42:36.000000000 +0800 |
12691 | @@ -0,0 +1,2251 @@ | 12574 | @@ -0,0 +1,2251 @@ |
12692 | +/* | 12575 | +/* |
12693 | + * Mesa 3-D graphics library | 12576 | + * Mesa 3-D graphics library |
@@ -14940,10 +14823,10 @@ Index: qemu-0.12.4/target-i386/mesa_gl.h | |||
14940 | +#endif | 14823 | +#endif |
14941 | + | 14824 | + |
14942 | +#endif /* __gl_h_ */ | 14825 | +#endif /* __gl_h_ */ |
14943 | Index: qemu-0.12.4/target-i386/mesa_glext.h | 14826 | Index: qemu-0.13.0/target-i386/mesa_glext.h |
14944 | =================================================================== | 14827 | =================================================================== |
14945 | --- /dev/null | 14828 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
14946 | +++ qemu-0.12.4/target-i386/mesa_glext.h | 14829 | +++ qemu-0.13.0/target-i386/mesa_glext.h 2011-01-17 16:42:36.000000000 +0800 |
14947 | @@ -0,0 +1,7279 @@ | 14830 | @@ -0,0 +1,7279 @@ |
14948 | +#ifndef __glext_h_ | 14831 | +#ifndef __glext_h_ |
14949 | +#define __glext_h_ | 14832 | +#define __glext_h_ |
@@ -22224,10 +22107,10 @@ Index: qemu-0.12.4/target-i386/mesa_glext.h | |||
22224 | + | 22107 | + |
22225 | +/* ERO */ | 22108 | +/* ERO */ |
22226 | +GLAPI void GLAPIENTRY fake_gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data); | 22109 | +GLAPI void GLAPIENTRY fake_gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data); |
22227 | Index: qemu-0.12.4/target-i386/mesa_glu.h | 22110 | Index: qemu-0.13.0/target-i386/mesa_glu.h |
22228 | =================================================================== | 22111 | =================================================================== |
22229 | --- /dev/null | 22112 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
22230 | +++ qemu-0.12.4/target-i386/mesa_glu.h | 22113 | +++ qemu-0.13.0/target-i386/mesa_glu.h 2011-01-17 16:42:36.000000000 +0800 |
22231 | @@ -0,0 +1,354 @@ | 22114 | @@ -0,0 +1,354 @@ |
22232 | +/* | 22115 | +/* |
22233 | +** License Applicability. Except to the extent portions of this file are | 22116 | +** License Applicability. Except to the extent portions of this file are |
@@ -22583,10 +22466,10 @@ Index: qemu-0.12.4/target-i386/mesa_glu.h | |||
22583 | +#endif | 22466 | +#endif |
22584 | + | 22467 | + |
22585 | +#endif /* __glu_h__ */ | 22468 | +#endif /* __glu_h__ */ |
22586 | Index: qemu-0.12.4/target-i386/mesa_glx.h | 22469 | Index: qemu-0.13.0/target-i386/mesa_glx.h |
22587 | =================================================================== | 22470 | =================================================================== |
22588 | --- /dev/null | 22471 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
22589 | +++ qemu-0.12.4/target-i386/mesa_glx.h | 22472 | +++ qemu-0.13.0/target-i386/mesa_glx.h 2011-01-17 16:42:36.000000000 +0800 |
22590 | @@ -0,0 +1,510 @@ | 22473 | @@ -0,0 +1,510 @@ |
22591 | +/* | 22474 | +/* |
22592 | + * Mesa 3-D graphics library | 22475 | + * Mesa 3-D graphics library |
@@ -23098,10 +22981,10 @@ Index: qemu-0.12.4/target-i386/mesa_glx.h | |||
23098 | +#endif | 22981 | +#endif |
23099 | + | 22982 | + |
23100 | +#endif | 22983 | +#endif |
23101 | Index: qemu-0.12.4/target-i386/mesa_glxext.h | 22984 | Index: qemu-0.13.0/target-i386/mesa_glxext.h |
23102 | =================================================================== | 22985 | =================================================================== |
23103 | --- /dev/null | 22986 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
23104 | +++ qemu-0.12.4/target-i386/mesa_glxext.h | 22987 | +++ qemu-0.13.0/target-i386/mesa_glxext.h 2011-01-17 16:42:36.000000000 +0800 |
23105 | @@ -0,0 +1,785 @@ | 22988 | @@ -0,0 +1,785 @@ |
23106 | +#ifndef __glxext_h_ | 22989 | +#ifndef __glxext_h_ |
23107 | +#define __glxext_h_ | 22990 | +#define __glxext_h_ |
@@ -23888,10 +23771,10 @@ Index: qemu-0.12.4/target-i386/mesa_glxext.h | |||
23888 | +#endif | 23771 | +#endif |
23889 | + | 23772 | + |
23890 | +#endif | 23773 | +#endif |
23891 | Index: qemu-0.12.4/target-i386/mesa_mipmap.c | 23774 | Index: qemu-0.13.0/target-i386/mesa_mipmap.c |
23892 | =================================================================== | 23775 | =================================================================== |
23893 | --- /dev/null | 23776 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
23894 | +++ qemu-0.12.4/target-i386/mesa_mipmap.c | 23777 | +++ qemu-0.13.0/target-i386/mesa_mipmap.c 2011-01-17 16:42:36.000000000 +0800 |
23895 | @@ -0,0 +1,824 @@ | 23778 | @@ -0,0 +1,824 @@ |
23896 | + | 23779 | + |
23897 | +/* | 23780 | +/* |
@@ -24717,10 +24600,10 @@ Index: qemu-0.12.4/target-i386/mesa_mipmap.c | |||
24717 | + | 24600 | + |
24718 | + return retval; | 24601 | + return retval; |
24719 | +} | 24602 | +} |
24720 | Index: qemu-0.12.4/target-i386/opengl_exec.c | 24603 | Index: qemu-0.13.0/target-i386/opengl_exec.c |
24721 | =================================================================== | 24604 | =================================================================== |
24722 | --- /dev/null | 24605 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
24723 | +++ qemu-0.12.4/target-i386/opengl_exec.c | 24606 | +++ qemu-0.13.0/target-i386/opengl_exec.c 2011-01-17 16:42:36.000000000 +0800 |
24724 | @@ -0,0 +1,3931 @@ | 24607 | @@ -0,0 +1,3931 @@ |
24725 | +/* | 24608 | +/* |
24726 | + * Host-side implementation of GL/GLX API | 24609 | + * Host-side implementation of GL/GLX API |
@@ -28653,10 +28536,10 @@ Index: qemu-0.12.4/target-i386/opengl_exec.c | |||
28653 | + | 28536 | + |
28654 | + return ret_int; | 28537 | + return ret_int; |
28655 | +} | 28538 | +} |
28656 | Index: qemu-0.12.4/target-i386/opengl_func.h | 28539 | Index: qemu-0.13.0/target-i386/opengl_func.h |
28657 | =================================================================== | 28540 | =================================================================== |
28658 | --- /dev/null | 28541 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
28659 | +++ qemu-0.12.4/target-i386/opengl_func.h | 28542 | +++ qemu-0.13.0/target-i386/opengl_func.h 2011-01-17 16:42:36.000000000 +0800 |
28660 | @@ -0,0 +1,1108 @@ | 28543 | @@ -0,0 +1,1108 @@ |
28661 | +/* | 28544 | +/* |
28662 | + * Main header for both host and guest sides | 28545 | + * Main header for both host and guest sides |
@@ -29766,10 +29649,10 @@ Index: qemu-0.12.4/target-i386/opengl_func.h | |||
29766 | +#error Unsupported ABI | 29649 | +#error Unsupported ABI |
29767 | +#endif | 29650 | +#endif |
29768 | +#endif | 29651 | +#endif |
29769 | Index: qemu-0.12.4/target-i386/opengl_player.c | 29652 | Index: qemu-0.13.0/target-i386/opengl_player.c |
29770 | =================================================================== | 29653 | =================================================================== |
29771 | --- /dev/null | 29654 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
29772 | +++ qemu-0.12.4/target-i386/opengl_player.c | 29655 | +++ qemu-0.13.0/target-i386/opengl_player.c 2011-01-17 16:42:36.000000000 +0800 |
29773 | @@ -0,0 +1,1461 @@ | 29656 | @@ -0,0 +1,1461 @@ |
29774 | +/* | 29657 | +/* |
29775 | + * Plays a sequence of OpenGL calls recorded either under qemu or with opengl_server | 29658 | + * Plays a sequence of OpenGL calls recorded either under qemu or with opengl_server |
@@ -31232,10 +31115,10 @@ Index: qemu-0.12.4/target-i386/opengl_player.c | |||
31232 | + } | 31115 | + } |
31233 | + return 0; | 31116 | + return 0; |
31234 | +} | 31117 | +} |
31235 | Index: qemu-0.12.4/target-i386/opengl_server.c | 31118 | Index: qemu-0.13.0/target-i386/opengl_server.c |
31236 | =================================================================== | 31119 | =================================================================== |
31237 | --- /dev/null | 31120 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
31238 | +++ qemu-0.12.4/target-i386/opengl_server.c | 31121 | +++ qemu-0.13.0/target-i386/opengl_server.c 2011-01-17 16:42:36.000000000 +0800 |
31239 | @@ -0,0 +1,826 @@ | 31122 | @@ -0,0 +1,826 @@ |
31240 | +/* | 31123 | +/* |
31241 | + * TCP/IP OpenGL server | 31124 | + * TCP/IP OpenGL server |
@@ -32063,10 +31946,10 @@ Index: qemu-0.12.4/target-i386/opengl_server.c | |||
32063 | + | 31946 | + |
32064 | + return 0; | 31947 | + return 0; |
32065 | +} | 31948 | +} |
32066 | Index: qemu-0.12.4/target-i386/opengl_utils.h | 31949 | Index: qemu-0.13.0/target-i386/opengl_utils.h |
32067 | =================================================================== | 31950 | =================================================================== |
32068 | --- /dev/null | 31951 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
32069 | +++ qemu-0.12.4/target-i386/opengl_utils.h | 31952 | +++ qemu-0.13.0/target-i386/opengl_utils.h 2011-01-17 16:42:36.000000000 +0800 |
32070 | @@ -0,0 +1,453 @@ | 31953 | @@ -0,0 +1,453 @@ |
32071 | +/* | 31954 | +/* |
32072 | + * Functions used by host & client sides | 31955 | + * Functions used by host & client sides |
@@ -32521,10 +32404,10 @@ Index: qemu-0.12.4/target-i386/opengl_utils.h | |||
32521 | +} | 32404 | +} |
32522 | + | 32405 | + |
32523 | +#endif | 32406 | +#endif |
32524 | Index: qemu-0.12.4/target-i386/parse_gl_h.c | 32407 | Index: qemu-0.13.0/target-i386/parse_gl_h.c |
32525 | =================================================================== | 32408 | =================================================================== |
32526 | --- /dev/null | 32409 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
32527 | +++ qemu-0.12.4/target-i386/parse_gl_h.c | 32410 | +++ qemu-0.13.0/target-i386/parse_gl_h.c 2011-01-17 16:42:36.000000000 +0800 |
32528 | @@ -0,0 +1,1496 @@ | 32411 | @@ -0,0 +1,1496 @@ |
32529 | +/* | 32412 | +/* |
32530 | + * Parse gl.h et glx.h to auto-generate source code | 32413 | + * Parse gl.h et glx.h to auto-generate source code |
@@ -34022,10 +33905,10 @@ Index: qemu-0.12.4/target-i386/parse_gl_h.c | |||
34022 | + | 33905 | + |
34023 | + return 0; | 33906 | + return 0; |
34024 | +} | 33907 | +} |
34025 | Index: qemu-0.12.4/target-i386/parse_mesa_get_c.c | 33908 | Index: qemu-0.13.0/target-i386/parse_mesa_get_c.c |
34026 | =================================================================== | 33909 | =================================================================== |
34027 | --- /dev/null | 33910 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
34028 | +++ qemu-0.12.4/target-i386/parse_mesa_get_c.c | 33911 | +++ qemu-0.13.0/target-i386/parse_mesa_get_c.c 2011-01-17 16:42:36.000000000 +0800 |
34029 | @@ -0,0 +1,225 @@ | 33912 | @@ -0,0 +1,225 @@ |
34030 | +/* | 33913 | +/* |
34031 | + * Parse the "get.c" from mesa source tree to generate "glgetv_cst.h" | 33914 | + * Parse the "get.c" from mesa source tree to generate "glgetv_cst.h" |
@@ -34252,11 +34135,11 @@ Index: qemu-0.12.4/target-i386/parse_mesa_get_c.c | |||
34252 | + fclose(outf); | 34135 | + fclose(outf); |
34253 | + return 0; | 34136 | + return 0; |
34254 | +} | 34137 | +} |
34255 | Index: qemu-0.12.4/target-i386/translate.c | 34138 | Index: qemu-0.13.0/target-i386/translate.c |
34256 | =================================================================== | 34139 | =================================================================== |
34257 | --- qemu-0.12.4.orig/target-i386/translate.c | 34140 | --- qemu-0.13.0.orig/target-i386/translate.c 2011-01-17 16:41:59.000000000 +0800 |
34258 | +++ qemu-0.12.4/target-i386/translate.c | 34141 | +++ qemu-0.13.0/target-i386/translate.c 2011-01-17 16:42:36.000000000 +0800 |
34259 | @@ -743,6 +743,8 @@ static void gen_check_io(DisasContext *s | 34142 | @@ -745,6 +745,8 @@ |
34260 | int state_saved; | 34143 | int state_saved; |
34261 | target_ulong next_eip; | 34144 | target_ulong next_eip; |
34262 | 34145 | ||
@@ -34265,8 +34148,8 @@ Index: qemu-0.12.4/target-i386/translate.c | |||
34265 | state_saved = 0; | 34148 | state_saved = 0; |
34266 | if (s->pe && (s->cpl > s->iopl || s->vm86)) { | 34149 | if (s->pe && (s->cpl > s->iopl || s->vm86)) { |
34267 | if (s->cc_op != CC_OP_DYNAMIC) | 34150 | if (s->cc_op != CC_OP_DYNAMIC) |
34268 | @@ -2676,11 +2678,18 @@ static void gen_exception(DisasContext * | 34151 | @@ -2672,11 +2674,18 @@ |
34269 | s->is_jmp = 3; | 34152 | s->is_jmp = DISAS_TB_JUMP; |
34270 | } | 34153 | } |
34271 | 34154 | ||
34272 | +int enable_gl = 0; | 34155 | +int enable_gl = 0; |
@@ -34284,27 +34167,26 @@ Index: qemu-0.12.4/target-i386/translate.c | |||
34284 | if (s->cc_op != CC_OP_DYNAMIC) | 34167 | if (s->cc_op != CC_OP_DYNAMIC) |
34285 | gen_op_set_cc_op(s->cc_op); | 34168 | gen_op_set_cc_op(s->cc_op); |
34286 | gen_jmp_im(cur_eip); | 34169 | gen_jmp_im(cur_eip); |
34287 | Index: qemu-0.12.4/vl.c | 34170 | Index: qemu-0.13.0/vl.c |
34288 | =================================================================== | 34171 | =================================================================== |
34289 | --- qemu-0.12.4.orig/vl.c | 34172 | --- qemu-0.13.0.orig/vl.c 2011-01-17 16:41:59.000000000 +0800 |
34290 | +++ qemu-0.12.4/vl.c | 34173 | +++ qemu-0.13.0/vl.c 2011-01-17 16:42:36.000000000 +0800 |
34291 | @@ -238,6 +238,7 @@ int semihosting_enabled = 0; | 34174 | @@ -217,12 +217,14 @@ |
34292 | #ifdef TARGET_ARM | 34175 | int nb_option_roms; |
34176 | int semihosting_enabled = 0; | ||
34293 | int old_param = 0; | 34177 | int old_param = 0; |
34294 | #endif | ||
34295 | +int force_pointer = 0; | 34178 | +int force_pointer = 0; |
34296 | const char *qemu_name; | 34179 | const char *qemu_name; |
34297 | int alt_grab = 0; | 34180 | int alt_grab = 0; |
34298 | int ctrl_grab = 0; | 34181 | int ctrl_grab = 0; |
34299 | @@ -246,6 +247,7 @@ unsigned int nb_prom_envs = 0; | 34182 | unsigned int nb_prom_envs = 0; |
34300 | const char *prom_envs[MAX_PROM_ENVS]; | 34183 | const char *prom_envs[MAX_PROM_ENVS]; |
34301 | #endif | ||
34302 | int boot_menu; | 34184 | int boot_menu; |
34303 | +extern int enable_gl; | 34185 | +extern int enable_gl; |
34304 | 34186 | ||
34305 | int nb_numa_nodes; | 34187 | int nb_numa_nodes; |
34306 | uint64_t node_mem[MAX_NODES]; | 34188 | uint64_t node_mem[MAX_NODES]; |
34307 | @@ -4432,6 +4434,8 @@ static void select_vgahw (const char *p) | 34189 | @@ -1433,6 +1435,8 @@ |
34308 | } else if (strstart(p, "xenfb", &opts)) { | 34190 | } else if (strstart(p, "xenfb", &opts)) { |
34309 | vga_interface_type = VGA_XENFB; | 34191 | vga_interface_type = VGA_XENFB; |
34310 | } else if (!strstart(p, "none", &opts)) { | 34192 | } else if (!strstart(p, "none", &opts)) { |
@@ -34313,17 +34195,17 @@ Index: qemu-0.12.4/vl.c | |||
34313 | invalid_vga: | 34195 | invalid_vga: |
34314 | fprintf(stderr, "Unknown vga type: %s\n", p); | 34196 | fprintf(stderr, "Unknown vga type: %s\n", p); |
34315 | exit(1); | 34197 | exit(1); |
34316 | @@ -5563,6 +5567,9 @@ int main(int argc, char **argv, char **e | 34198 | @@ -2535,6 +2539,9 @@ |
34199 | case QEMU_OPTION_old_param: | ||
34317 | old_param = 1; | 34200 | old_param = 1; |
34318 | break; | 34201 | break; |
34319 | #endif | ||
34320 | + case QEMU_OPTION_force_pointer: | 34202 | + case QEMU_OPTION_force_pointer: |
34321 | + force_pointer = 1; | 34203 | + force_pointer = 1; |
34322 | + break; | 34204 | + break; |
34323 | case QEMU_OPTION_clock: | 34205 | case QEMU_OPTION_clock: |
34324 | configure_alarms(optarg); | 34206 | configure_alarms(optarg); |
34325 | break; | 34207 | break; |
34326 | @@ -5577,6 +5584,12 @@ int main(int argc, char **argv, char **e | 34208 | @@ -2548,6 +2555,12 @@ |
34327 | } | 34209 | } |
34328 | configure_rtc(opts); | 34210 | configure_rtc(opts); |
34329 | break; | 34211 | break; |
@@ -34336,9 +34218,9 @@ Index: qemu-0.12.4/vl.c | |||
34336 | case QEMU_OPTION_tb_size: | 34218 | case QEMU_OPTION_tb_size: |
34337 | tb_size = strtol(optarg, NULL, 0); | 34219 | tb_size = strtol(optarg, NULL, 0); |
34338 | if (tb_size < 0) | 34220 | if (tb_size < 0) |
34339 | @@ -5933,6 +5946,14 @@ int main(int argc, char **argv, char **e | 34221 | @@ -2887,6 +2900,14 @@ |
34340 | } | 34222 | if (foreach_device_config(DEV_USB, usb_parse) < 0) |
34341 | } | 34223 | exit(1); |
34342 | } | 34224 | } |
34343 | +#ifdef TARGET_OPENGL_OK | 34225 | +#ifdef TARGET_OPENGL_OK |
34344 | + if (enable_gl) { | 34226 | + if (enable_gl) { |
@@ -34349,24 +34231,24 @@ Index: qemu-0.12.4/vl.c | |||
34349 | + } | 34231 | + } |
34350 | +#endif | 34232 | +#endif |
34351 | 34233 | ||
34352 | if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) | 34234 | /* init generic devices */ |
34353 | exit(1); | 34235 | if (qemu_opts_foreach(&qemu_device_opts, device_init_func, NULL, 1) != 0) |
34354 | Index: qemu-0.12.4/qemu-options.hx | 34236 | Index: qemu-0.13.0/qemu-options.hx |
34355 | =================================================================== | 34237 | =================================================================== |
34356 | --- qemu-0.12.4.orig/qemu-options.hx | 34238 | --- qemu-0.13.0.orig/qemu-options.hx 2011-01-17 16:41:59.000000000 +0800 |
34357 | +++ qemu-0.12.4/qemu-options.hx | 34239 | +++ qemu-0.13.0/qemu-options.hx 2011-01-17 16:44:27.000000000 +0800 |
34358 | @@ -1789,6 +1789,18 @@ many timer interrupts were not processed | 34240 | @@ -2024,6 +2024,18 @@ |
34359 | re-inject them. | 34241 | re-inject them. |
34360 | ETEXI | 34242 | ETEXI |
34361 | 34243 | ||
34362 | +DEF("enable-gl", 0, QEMU_OPTION_enable_gl, \ | 34244 | +DEF("enable-gl", 0, QEMU_OPTION_enable_gl, \ |
34363 | + "-enable-gl\n") | 34245 | + "-enable-gl\n", QEMU_ARCH_I386) |
34364 | +STEXI | 34246 | +STEXI |
34365 | +@item -enable-gl | 34247 | +@item -enable-gl |
34366 | +ETEXI | 34248 | +ETEXI |
34367 | + | 34249 | + |
34368 | +DEF("force-pointer", 0, QEMU_OPTION_force_pointer, \ | 34250 | +DEF("force-pointer", 0, QEMU_OPTION_force_pointer, \ |
34369 | + "-force-pointer\n") | 34251 | + "-force-pointer\n", QEMU_ARCH_ALL) |
34370 | +STEXI | 34252 | +STEXI |
34371 | +@item -force-pointer | 34253 | +@item -force-pointer |
34372 | +ETEXI | 34254 | +ETEXI |
@@ -34374,3 +34256,109 @@ Index: qemu-0.12.4/qemu-options.hx | |||
34374 | DEF("icount", HAS_ARG, QEMU_OPTION_icount, \ | 34256 | DEF("icount", HAS_ARG, QEMU_OPTION_icount, \ |
34375 | "-icount [N|auto]\n" \ | 34257 | "-icount [N|auto]\n" \ |
34376 | " enable virtual instruction counter with 2^N clock ticks per\n" \ | 34258 | " enable virtual instruction counter with 2^N clock ticks per\n" \ |
34259 | Index: qemu-0.13.0/ui/sdl.c | ||
34260 | =================================================================== | ||
34261 | --- qemu-0.13.0.orig/ui/sdl.c 2011-01-17 16:41:59.000000000 +0800 | ||
34262 | +++ qemu-0.13.0/ui/sdl.c 2011-01-17 16:42:36.000000000 +0800 | ||
34263 | @@ -59,6 +59,8 @@ | ||
34264 | static int scaling_active = 0; | ||
34265 | static Notifier mouse_mode_notifier; | ||
34266 | |||
34267 | +extern void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window); | ||
34268 | + | ||
34269 | static void sdl_update(DisplayState *ds, int x, int y, int w, int h) | ||
34270 | { | ||
34271 | // printf("updating x=%d y=%d w=%d h=%d\n", x, y, w, h); | ||
34272 | @@ -121,12 +123,22 @@ | ||
34273 | |||
34274 | static void sdl_resize(DisplayState *ds) | ||
34275 | { | ||
34276 | - if (!allocator) { | ||
34277 | + SDL_SysWMinfo info; | ||
34278 | + static Display *dpy; | ||
34279 | + | ||
34280 | + if (!allocator) { | ||
34281 | if (!scaling_active) | ||
34282 | do_sdl_resize(ds_get_width(ds), ds_get_height(ds), 0); | ||
34283 | else if (real_screen->format->BitsPerPixel != ds_get_bits_per_pixel(ds)) | ||
34284 | do_sdl_resize(real_screen->w, real_screen->h, ds_get_bits_per_pixel(ds)); | ||
34285 | sdl_setdata(ds); | ||
34286 | + | ||
34287 | + SDL_GetWMInfo(&info); | ||
34288 | + if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display && | ||
34289 | + (!dpy || dpy == info.info.x11.display)) { | ||
34290 | + dpy = info.info.x11.display; | ||
34291 | + opengl_exec_set_parent_window(dpy, info.info.x11.window); | ||
34292 | + } | ||
34293 | } else { | ||
34294 | if (guest_screen != NULL) { | ||
34295 | SDL_FreeSurface(guest_screen); | ||
34296 | @@ -455,7 +467,7 @@ | ||
34297 | |||
34298 | if (!kbd_mouse_is_absolute()) { | ||
34299 | SDL_ShowCursor(1); | ||
34300 | - if (guest_cursor && | ||
34301 | + if (guest_cursor && !force_pointer && | ||
34302 | (gui_grab || kbd_mouse_is_absolute() || absolute_enabled)) | ||
34303 | SDL_SetCursor(guest_sprite); | ||
34304 | else | ||
34305 | @@ -466,7 +478,8 @@ | ||
34306 | static void sdl_grab_start(void) | ||
34307 | { | ||
34308 | if (guest_cursor) { | ||
34309 | - SDL_SetCursor(guest_sprite); | ||
34310 | + if (!force_pointer) | ||
34311 | + SDL_SetCursor(guest_sprite); | ||
34312 | if (!kbd_mouse_is_absolute() && !absolute_enabled) | ||
34313 | SDL_WarpMouse(guest_x, guest_y); | ||
34314 | } else | ||
34315 | @@ -768,7 +781,8 @@ | ||
34316 | if (!guest_cursor) | ||
34317 | sdl_show_cursor(); | ||
34318 | if (gui_grab || kbd_mouse_is_absolute() || absolute_enabled) { | ||
34319 | - SDL_SetCursor(guest_sprite); | ||
34320 | + if (!force_pointer) | ||
34321 | + SDL_SetCursor(guest_sprite); | ||
34322 | if (!kbd_mouse_is_absolute() && !absolute_enabled) | ||
34323 | SDL_WarpMouse(x, y); | ||
34324 | } | ||
34325 | @@ -796,7 +810,7 @@ | ||
34326 | qemu_free(image); | ||
34327 | qemu_free(mask); | ||
34328 | |||
34329 | - if (guest_cursor && | ||
34330 | + if (guest_cursor && !force_pointer && | ||
34331 | (gui_grab || kbd_mouse_is_absolute() || absolute_enabled)) | ||
34332 | SDL_SetCursor(guest_sprite); | ||
34333 | } | ||
34334 | @@ -813,6 +827,7 @@ | ||
34335 | int flags; | ||
34336 | uint8_t data = 0; | ||
34337 | DisplayAllocator *da; | ||
34338 | + SDL_SysWMinfo info; | ||
34339 | const SDL_VideoInfo *vi; | ||
34340 | |||
34341 | #if defined(__APPLE__) | ||
34342 | @@ -842,6 +857,12 @@ | ||
34343 | vi = SDL_GetVideoInfo(); | ||
34344 | host_format = *(vi->vfmt); | ||
34345 | |||
34346 | + SDL_GetWMInfo(&info); | ||
34347 | + if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display) | ||
34348 | + opengl_exec_set_parent_window(info.info.x11.display, | ||
34349 | + RootWindow(info.info.x11.display, | ||
34350 | + DefaultScreen(info.info.x11.display))); | ||
34351 | + | ||
34352 | dcl = qemu_mallocz(sizeof(DisplayChangeListener)); | ||
34353 | dcl->dpy_update = sdl_update; | ||
34354 | dcl->dpy_resize = sdl_resize; | ||
34355 | @@ -876,4 +897,9 @@ | ||
34356 | gui_fullscreen_initial_grab = 1; | ||
34357 | sdl_grab_start(); | ||
34358 | } | ||
34359 | + | ||
34360 | + SDL_GetWMInfo(&info); | ||
34361 | + if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display) | ||
34362 | + opengl_exec_set_parent_window(info.info.x11.display, | ||
34363 | + info.info.x11.window); | ||
34364 | } | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-ppc-hack.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-ppc-hack.patch new file mode 100644 index 0000000000..6f45788183 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-ppc-hack.patch | |||
@@ -0,0 +1,108 @@ | |||
1 | Quick fixes to get the ppc system model to boot a 603e based | ||
2 | kernel. | ||
3 | |||
4 | Index: qemu-0.13.0/hw/m48t59.c | ||
5 | =================================================================== | ||
6 | --- qemu-0.13.0.orig/hw/m48t59.c 2010-10-16 04:56:09.000000000 +0800 | ||
7 | +++ qemu-0.13.0/hw/m48t59.c 2011-01-17 16:40:09.000000000 +0800 | ||
8 | @@ -50,6 +50,7 @@ | ||
9 | */ | ||
10 | |||
11 | struct M48t59State { | ||
12 | + SysBusDevice busdev; | ||
13 | /* Model parameters */ | ||
14 | uint32_t type; // 2 = m48t02, 8 = m48t08, 59 = m48t59 | ||
15 | /* Hardware parameters */ | ||
16 | @@ -74,11 +75,6 @@ | ||
17 | M48t59State state; | ||
18 | } M48t59ISAState; | ||
19 | |||
20 | -typedef struct M48t59SysBusState { | ||
21 | - SysBusDevice busdev; | ||
22 | - M48t59State state; | ||
23 | -} M48t59SysBusState; | ||
24 | - | ||
25 | /* Fake timer functions */ | ||
26 | |||
27 | /* Alarm management */ | ||
28 | @@ -629,8 +625,7 @@ | ||
29 | |||
30 | static void m48t59_reset_sysbus(DeviceState *d) | ||
31 | { | ||
32 | - M48t59SysBusState *sys = container_of(d, M48t59SysBusState, busdev.qdev); | ||
33 | - M48t59State *NVRAM = &sys->state; | ||
34 | + M48t59State *NVRAM = container_of(d, M48t59State, busdev.qdev); | ||
35 | |||
36 | m48t59_reset_common(NVRAM); | ||
37 | } | ||
38 | @@ -641,7 +636,7 @@ | ||
39 | { | ||
40 | DeviceState *dev; | ||
41 | SysBusDevice *s; | ||
42 | - M48t59SysBusState *d; | ||
43 | + M48t59State *d; | ||
44 | |||
45 | dev = qdev_create(NULL, "m48t59"); | ||
46 | qdev_prop_set_uint32(dev, "type", type); | ||
47 | @@ -658,9 +653,9 @@ | ||
48 | sysbus_mmio_map(s, 0, mem_base); | ||
49 | } | ||
50 | |||
51 | - d = FROM_SYSBUS(M48t59SysBusState, s); | ||
52 | + d = FROM_SYSBUS(M48t59State, s); | ||
53 | |||
54 | - return &d->state; | ||
55 | + return d; | ||
56 | } | ||
57 | |||
58 | M48t59State *m48t59_init_isa(uint32_t io_base, uint16_t size, int type) | ||
59 | @@ -710,8 +705,7 @@ | ||
60 | |||
61 | static int m48t59_init1(SysBusDevice *dev) | ||
62 | { | ||
63 | - M48t59SysBusState *d = FROM_SYSBUS(M48t59SysBusState, dev); | ||
64 | - M48t59State *s = &d->state; | ||
65 | + M48t59State *s = FROM_SYSBUS(M48t59State, dev); | ||
66 | int mem_index; | ||
67 | |||
68 | sysbus_init_irq(dev, &s->IRQ); | ||
69 | @@ -740,12 +734,12 @@ | ||
70 | static SysBusDeviceInfo m48t59_info = { | ||
71 | .init = m48t59_init1, | ||
72 | .qdev.name = "m48t59", | ||
73 | - .qdev.size = sizeof(M48t59SysBusState), | ||
74 | + .qdev.size = sizeof(M48t59State), | ||
75 | .qdev.reset = m48t59_reset_sysbus, | ||
76 | .qdev.props = (Property[]) { | ||
77 | - DEFINE_PROP_UINT32("size", M48t59SysBusState, state.size, -1), | ||
78 | - DEFINE_PROP_UINT32("type", M48t59SysBusState, state.type, -1), | ||
79 | - DEFINE_PROP_HEX32( "io_base", M48t59SysBusState, state.io_base, 0), | ||
80 | + DEFINE_PROP_UINT32("size", M48t59State, size, -1), | ||
81 | + DEFINE_PROP_UINT32("type", M48t59State, type, -1), | ||
82 | + DEFINE_PROP_HEX32( "io_base", M48t59State, io_base, 0), | ||
83 | DEFINE_PROP_END_OF_LIST(), | ||
84 | } | ||
85 | }; | ||
86 | Index: qemu-0.13.0/hw/ppc_prep.c | ||
87 | =================================================================== | ||
88 | --- qemu-0.13.0.orig/hw/ppc_prep.c 2010-10-16 04:56:09.000000000 +0800 | ||
89 | +++ qemu-0.13.0/hw/ppc_prep.c 2011-01-15 18:29:25.000000000 +0800 | ||
90 | @@ -74,7 +74,7 @@ | ||
91 | /* Constants for devices init */ | ||
92 | static const int ide_iobase[2] = { 0x1f0, 0x170 }; | ||
93 | static const int ide_iobase2[2] = { 0x3f6, 0x376 }; | ||
94 | -static const int ide_irq[2] = { 13, 13 }; | ||
95 | +static const int ide_irq[2] = { 13, 14 }; | ||
96 | |||
97 | #define NE2000_NB_MAX 6 | ||
98 | |||
99 | @@ -631,9 +631,6 @@ | ||
100 | if (filename) { | ||
101 | qemu_free(filename); | ||
102 | } | ||
103 | - if (env->nip < 0xFFF80000 && bios_size < 0x00100000) { | ||
104 | - hw_error("PowerPC 601 / 620 / 970 need a 1MB BIOS\n"); | ||
105 | - } | ||
106 | |||
107 | if (linux_boot) { | ||
108 | kernel_base = KERNEL_LOAD_ADDR; | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/qemu-vmware-vga-depth.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch index 43071868f3..5bdbaf3937 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/qemu-vmware-vga-depth.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch | |||
@@ -1,11 +1,11 @@ | |||
1 | # fix VMware VGA driver depth calculation error, which may cause segmentation fault | 1 | # fix VMware VGA driver depth calculation error, which may cause segmentation fault |
2 | # | 2 | # |
3 | # ktian1, 06/29/2010 | 3 | # ktian1, 06/29/2010 |
4 | diff --git a/console.h b/console.h | 4 | Index: qemu-0.13.0/console.h |
5 | index dfc8ae4..05fbf17 100644 | 5 | =================================================================== |
6 | --- a/console.h | 6 | --- qemu-0.13.0.orig/console.h 2011-01-17 16:41:58.000000000 +0800 |
7 | +++ b/console.h | 7 | +++ qemu-0.13.0/console.h 2011-01-17 16:48:00.000000000 +0800 |
8 | @@ -122,6 +122,12 @@ struct DisplayAllocator { | 8 | @@ -171,6 +171,12 @@ |
9 | void (*free_displaysurface)(DisplaySurface *surface); | 9 | void (*free_displaysurface)(DisplaySurface *surface); |
10 | }; | 10 | }; |
11 | 11 | ||
@@ -18,15 +18,15 @@ index dfc8ae4..05fbf17 100644 | |||
18 | struct DisplayState { | 18 | struct DisplayState { |
19 | struct DisplaySurface *surface; | 19 | struct DisplaySurface *surface; |
20 | void *opaque; | 20 | void *opaque; |
21 | @@ -129,6 +135,7 @@ struct DisplayState { | 21 | @@ -178,6 +184,7 @@ |
22 | 22 | ||
23 | struct DisplayAllocator* allocator; | 23 | struct DisplayAllocator* allocator; |
24 | struct DisplayChangeListener* listeners; | 24 | struct DisplayChangeListener* listeners; |
25 | + struct DisplayPostCallback* postcalls; | 25 | + struct DisplayPostCallback* postcalls; |
26 | 26 | ||
27 | void (*mouse_set)(int x, int y, int on); | 27 | void (*mouse_set)(int x, int y, int on); |
28 | void (*cursor_define)(int width, int height, int bpp, int hot_x, int hot_y, | 28 | void (*cursor_define)(QEMUCursor *cursor); |
29 | @@ -185,6 +192,12 @@ static inline void register_displaychangelistener(DisplayState *ds, DisplayChang | 29 | @@ -229,6 +236,12 @@ |
30 | ds->listeners = dcl; | 30 | ds->listeners = dcl; |
31 | } | 31 | } |
32 | 32 | ||
@@ -39,11 +39,11 @@ index dfc8ae4..05fbf17 100644 | |||
39 | static inline void dpy_update(DisplayState *s, int x, int y, int w, int h) | 39 | static inline void dpy_update(DisplayState *s, int x, int y, int w, int h) |
40 | { | 40 | { |
41 | struct DisplayChangeListener *dcl = s->listeners; | 41 | struct DisplayChangeListener *dcl = s->listeners; |
42 | diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c | 42 | Index: qemu-0.13.0/hw/vmware_vga.c |
43 | index 01bb85b..d73cca6 100644 | 43 | =================================================================== |
44 | --- a/hw/vmware_vga.c | 44 | --- qemu-0.13.0.orig/hw/vmware_vga.c 2011-01-17 16:42:36.000000000 +0800 |
45 | +++ b/hw/vmware_vga.c | 45 | +++ qemu-0.13.0/hw/vmware_vga.c 2011-01-17 16:48:00.000000000 +0800 |
46 | @@ -927,8 +927,9 @@ static void vmsvga_update_display(void *opaque) | 46 | @@ -957,8 +957,9 @@ |
47 | } | 47 | } |
48 | } | 48 | } |
49 | 49 | ||
@@ -54,7 +54,7 @@ index 01bb85b..d73cca6 100644 | |||
54 | s->index = 0; | 54 | s->index = 0; |
55 | s->enable = 0; | 55 | s->enable = 0; |
56 | s->config = 0; | 56 | s->config = 0; |
57 | @@ -1133,6 +1134,8 @@ static const VMStateDescription vmstate_vmware_vga = { | 57 | @@ -1163,6 +1164,8 @@ |
58 | 58 | ||
59 | static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) | 59 | static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) |
60 | { | 60 | { |
@@ -63,7 +63,7 @@ index 01bb85b..d73cca6 100644 | |||
63 | s->scratch_size = SVGA_SCRATCH_SIZE; | 63 | s->scratch_size = SVGA_SCRATCH_SIZE; |
64 | s->scratch = qemu_malloc(s->scratch_size * 4); | 64 | s->scratch = qemu_malloc(s->scratch_size * 4); |
65 | 65 | ||
66 | @@ -1160,7 +1163,10 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) | 66 | @@ -1190,7 +1193,10 @@ |
67 | 67 | ||
68 | rom_add_vga(VGABIOS_FILENAME); | 68 | rom_add_vga(VGABIOS_FILENAME); |
69 | 69 | ||
@@ -75,11 +75,11 @@ index 01bb85b..d73cca6 100644 | |||
75 | } | 75 | } |
76 | 76 | ||
77 | static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num, | 77 | static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num, |
78 | diff --git a/qemu-common.h b/qemu-common.h | 78 | Index: qemu-0.13.0/qemu-common.h |
79 | index a23afbc..19f107a 100644 | 79 | =================================================================== |
80 | --- a/qemu-common.h | 80 | --- qemu-0.13.0.orig/qemu-common.h 2011-01-17 16:41:58.000000000 +0800 |
81 | +++ b/qemu-common.h | 81 | +++ qemu-0.13.0/qemu-common.h 2011-01-17 16:48:00.000000000 +0800 |
82 | @@ -198,6 +198,7 @@ typedef struct DisplayState DisplayState; | 82 | @@ -205,6 +205,7 @@ |
83 | typedef struct DisplayChangeListener DisplayChangeListener; | 83 | typedef struct DisplayChangeListener DisplayChangeListener; |
84 | typedef struct DisplaySurface DisplaySurface; | 84 | typedef struct DisplaySurface DisplaySurface; |
85 | typedef struct DisplayAllocator DisplayAllocator; | 85 | typedef struct DisplayAllocator DisplayAllocator; |
@@ -87,11 +87,11 @@ index a23afbc..19f107a 100644 | |||
87 | typedef struct PixelFormat PixelFormat; | 87 | typedef struct PixelFormat PixelFormat; |
88 | typedef struct TextConsole TextConsole; | 88 | typedef struct TextConsole TextConsole; |
89 | typedef TextConsole QEMUConsole; | 89 | typedef TextConsole QEMUConsole; |
90 | diff --git a/vl.c b/vl.c | 90 | Index: qemu-0.13.0/vl.c |
91 | index 39182ea..9a3e9fd 100644 | 91 | =================================================================== |
92 | --- a/vl.c | 92 | --- qemu-0.13.0.orig/vl.c 2011-01-17 16:42:36.000000000 +0800 |
93 | +++ b/vl.c | 93 | +++ qemu-0.13.0/vl.c 2011-01-17 16:48:00.000000000 +0800 |
94 | @@ -4863,6 +4863,7 @@ int main(int argc, char **argv, char **envp) | 94 | @@ -1814,6 +1814,7 @@ |
95 | char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */ | 95 | char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */ |
96 | DisplayState *ds; | 96 | DisplayState *ds; |
97 | DisplayChangeListener *dcl; | 97 | DisplayChangeListener *dcl; |
@@ -99,7 +99,7 @@ index 39182ea..9a3e9fd 100644 | |||
99 | int cyls, heads, secs, translation; | 99 | int cyls, heads, secs, translation; |
100 | QemuOpts *hda_opts = NULL, *opts; | 100 | QemuOpts *hda_opts = NULL, *opts; |
101 | int optind; | 101 | int optind; |
102 | @@ -6053,6 +6053,13 @@ int main(int argc, char **argv, char **envp) | 102 | @@ -2960,6 +2961,13 @@ |
103 | } | 103 | } |
104 | dpy_resize(ds); | 104 | dpy_resize(ds); |
105 | 105 | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/qemugl-allow-glxcontext-release.patch index 43acc361a0..43acc361a0 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/qemugl-allow-glxcontext-release.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/qemugl-allow-glxcontext-release.patch | |||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/vmware-vga-fifo-rewind.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/vmware-vga-fifo-rewind.patch index ef92f54c8b..867e54ba11 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/vmware-vga-fifo-rewind.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/vmware-vga-fifo-rewind.patch | |||
@@ -14,11 +14,11 @@ Date: Fri Sep 10 02:23:31 2010 +0200 | |||
14 | this should be relatively rare but it is suspected to have been the | 14 | this should be relatively rare but it is suspected to have been the |
15 | cause of the occasional FIFO overrun that killed the display. | 15 | cause of the occasional FIFO overrun that killed the display. |
16 | 16 | ||
17 | Index: qemu-0.12.4/hw/vmware_vga.c | 17 | Index: qemu-0.13.0/hw/vmware_vga.c |
18 | =================================================================== | 18 | =================================================================== |
19 | --- qemu-0.12.4.orig/hw/vmware_vga.c 2010-09-30 23:04:34.000000000 +0800 | 19 | --- qemu-0.13.0.orig/hw/vmware_vga.c 2011-01-15 18:06:06.000000000 +0800 |
20 | +++ qemu-0.12.4/hw/vmware_vga.c 2010-10-01 01:17:02.000000000 +0800 | 20 | +++ qemu-0.13.0/hw/vmware_vga.c 2011-01-15 18:17:04.000000000 +0800 |
21 | @@ -491,27 +491,37 @@ | 21 | @@ -521,27 +521,37 @@ |
22 | 22 | ||
23 | static uint32_t last_cmd; | 23 | static uint32_t last_cmd; |
24 | 24 | ||
@@ -64,7 +64,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
64 | } | 64 | } |
65 | 65 | ||
66 | static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s) | 66 | static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s) |
67 | @@ -522,13 +532,23 @@ | 67 | @@ -552,13 +562,23 @@ |
68 | static void vmsvga_fifo_run(struct vmsvga_state_s *s) | 68 | static void vmsvga_fifo_run(struct vmsvga_state_s *s) |
69 | { | 69 | { |
70 | uint32_t colour; | 70 | uint32_t colour; |
@@ -90,7 +90,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
90 | x = vmsvga_fifo_read(s); | 90 | x = vmsvga_fifo_read(s); |
91 | y = vmsvga_fifo_read(s); | 91 | y = vmsvga_fifo_read(s); |
92 | width = vmsvga_fifo_read(s); | 92 | width = vmsvga_fifo_read(s); |
93 | @@ -537,6 +557,10 @@ | 93 | @@ -567,6 +587,10 @@ |
94 | break; | 94 | break; |
95 | 95 | ||
96 | case SVGA_CMD_RECT_FILL: | 96 | case SVGA_CMD_RECT_FILL: |
@@ -101,7 +101,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
101 | colour = vmsvga_fifo_read(s); | 101 | colour = vmsvga_fifo_read(s); |
102 | x = vmsvga_fifo_read(s); | 102 | x = vmsvga_fifo_read(s); |
103 | y = vmsvga_fifo_read(s); | 103 | y = vmsvga_fifo_read(s); |
104 | @@ -546,10 +570,15 @@ | 104 | @@ -576,10 +600,15 @@ |
105 | vmsvga_fill_rect(s, colour, x, y, width, height); | 105 | vmsvga_fill_rect(s, colour, x, y, width, height); |
106 | break; | 106 | break; |
107 | #else | 107 | #else |
@@ -117,7 +117,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
117 | x = vmsvga_fifo_read(s); | 117 | x = vmsvga_fifo_read(s); |
118 | y = vmsvga_fifo_read(s); | 118 | y = vmsvga_fifo_read(s); |
119 | dx = vmsvga_fifo_read(s); | 119 | dx = vmsvga_fifo_read(s); |
120 | @@ -560,10 +589,15 @@ | 120 | @@ -590,10 +619,15 @@ |
121 | vmsvga_copy_rect(s, x, y, dx, dy, width, height); | 121 | vmsvga_copy_rect(s, x, y, dx, dy, width, height); |
122 | break; | 122 | break; |
123 | #else | 123 | #else |
@@ -133,7 +133,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
133 | cursor.id = vmsvga_fifo_read(s); | 133 | cursor.id = vmsvga_fifo_read(s); |
134 | cursor.hot_x = vmsvga_fifo_read(s); | 134 | cursor.hot_x = vmsvga_fifo_read(s); |
135 | cursor.hot_y = vmsvga_fifo_read(s); | 135 | cursor.hot_y = vmsvga_fifo_read(s); |
136 | @@ -572,11 +606,14 @@ | 136 | @@ -602,11 +636,14 @@ |
137 | vmsvga_fifo_read(s); | 137 | vmsvga_fifo_read(s); |
138 | cursor.bpp = vmsvga_fifo_read(s); | 138 | cursor.bpp = vmsvga_fifo_read(s); |
139 | 139 | ||
@@ -151,7 +151,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
151 | 151 | ||
152 | for (args = 0; args < SVGA_BITMAP_SIZE(x, y); args ++) | 152 | for (args = 0; args < SVGA_BITMAP_SIZE(x, y); args ++) |
153 | cursor.mask[args] = vmsvga_fifo_read_raw(s); | 153 | cursor.mask[args] = vmsvga_fifo_read_raw(s); |
154 | @@ -595,6 +632,10 @@ | 154 | @@ -625,6 +662,10 @@ |
155 | * for so we can avoid FIFO desync if driver uses them illegally. | 155 | * for so we can avoid FIFO desync if driver uses them illegally. |
156 | */ | 156 | */ |
157 | case SVGA_CMD_DEFINE_ALPHA_CURSOR: | 157 | case SVGA_CMD_DEFINE_ALPHA_CURSOR: |
@@ -162,7 +162,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
162 | vmsvga_fifo_read(s); | 162 | vmsvga_fifo_read(s); |
163 | vmsvga_fifo_read(s); | 163 | vmsvga_fifo_read(s); |
164 | vmsvga_fifo_read(s); | 164 | vmsvga_fifo_read(s); |
165 | @@ -609,6 +650,10 @@ | 165 | @@ -639,6 +680,10 @@ |
166 | args = 7; | 166 | args = 7; |
167 | goto badcmd; | 167 | goto badcmd; |
168 | case SVGA_CMD_DRAW_GLYPH_CLIPPED: | 168 | case SVGA_CMD_DRAW_GLYPH_CLIPPED: |
@@ -173,7 +173,7 @@ Index: qemu-0.12.4/hw/vmware_vga.c | |||
173 | vmsvga_fifo_read(s); | 173 | vmsvga_fifo_read(s); |
174 | vmsvga_fifo_read(s); | 174 | vmsvga_fifo_read(s); |
175 | args = 7 + (vmsvga_fifo_read(s) >> 2); | 175 | args = 7 + (vmsvga_fifo_read(s) >> 2); |
176 | @@ -629,14 +674,22 @@ | 176 | @@ -659,14 +704,22 @@ |
177 | break; /* Nop */ | 177 | break; /* Nop */ |
178 | 178 | ||
179 | default: | 179 | default: |
diff --git a/meta/recipes-devtools/qemu/qemu-0.13.0/wacom-tablet-fix.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/wacom-tablet-fix.patch new file mode 100644 index 0000000000..b8210db2b1 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/wacom-tablet-fix.patch | |||
@@ -0,0 +1,65 @@ | |||
1 | qemu 0.13.0 cause seg fault in qemu_remove_mouse_event_handler, this patch from | ||
2 | upstream can fix it. | ||
3 | |||
4 | Should remove it in next upgrade if necessary. | ||
5 | |||
6 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
7 | |||
8 | commit b2d4d8329963b13c5cebe5944dcc99f0e9d1b5c7 | ||
9 | Author: Gerd Hoffmann <kraxel@redhat.com> | ||
10 | Date: Fri Oct 8 12:30:14 2010 +0200 | ||
11 | |||
12 | wacom tablet: activate event handlers. | ||
13 | |||
14 | Add qemu_activate_mouse_event_handler() calls to the usb wavom tablet so | ||
15 | it actually receives events. Also make sure we only remove the handler | ||
16 | if we registered it before. | ||
17 | |||
18 | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> | ||
19 | Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> | ||
20 | |||
21 | Index: qemu-0.13.0/hw/usb-wacom.c | ||
22 | =================================================================== | ||
23 | --- qemu-0.13.0.orig/hw/usb-wacom.c 2010-10-16 04:56:09.000000000 +0800 | ||
24 | +++ qemu-0.13.0/hw/usb-wacom.c 2011-01-18 16:58:44.000000000 +0800 | ||
25 | @@ -160,6 +160,7 @@ | ||
26 | if (!s->mouse_grabbed) { | ||
27 | s->eh_entry = qemu_add_mouse_event_handler(usb_mouse_event, s, 0, | ||
28 | "QEMU PenPartner tablet"); | ||
29 | + qemu_activate_mouse_event_handler(s->eh_entry); | ||
30 | s->mouse_grabbed = 1; | ||
31 | } | ||
32 | |||
33 | @@ -197,6 +198,7 @@ | ||
34 | if (!s->mouse_grabbed) { | ||
35 | s->eh_entry = qemu_add_mouse_event_handler(usb_wacom_event, s, 1, | ||
36 | "QEMU PenPartner tablet"); | ||
37 | + qemu_activate_mouse_event_handler(s->eh_entry); | ||
38 | s->mouse_grabbed = 1; | ||
39 | } | ||
40 | |||
41 | @@ -334,8 +336,10 @@ | ||
42 | ret = 0; | ||
43 | break; | ||
44 | case WACOM_SET_REPORT: | ||
45 | - qemu_remove_mouse_event_handler(s->eh_entry); | ||
46 | - s->mouse_grabbed = 0; | ||
47 | + if (s->mouse_grabbed) { | ||
48 | + qemu_remove_mouse_event_handler(s->eh_entry); | ||
49 | + s->mouse_grabbed = 0; | ||
50 | + } | ||
51 | s->mode = data[0]; | ||
52 | ret = 0; | ||
53 | break; | ||
54 | @@ -397,7 +401,10 @@ | ||
55 | { | ||
56 | USBWacomState *s = (USBWacomState *) dev; | ||
57 | |||
58 | - qemu_remove_mouse_event_handler(s->eh_entry); | ||
59 | + if (s->mouse_grabbed) { | ||
60 | + qemu_remove_mouse_event_handler(s->eh_entry); | ||
61 | + s->mouse_grabbed = 0; | ||
62 | + } | ||
63 | } | ||
64 | |||
65 | static int usb_wacom_initfn(USBDevice *dev) | ||
diff --git a/meta/recipes-devtools/qemu/qemu-0.12.4/workaround_bad_futex_headers.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/workaround_bad_futex_headers.patch index 7727a39f37..a08e2d9acd 100644 --- a/meta/recipes-devtools/qemu/qemu-0.12.4/workaround_bad_futex_headers.patch +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/workaround_bad_futex_headers.patch | |||
@@ -2,11 +2,11 @@ | |||
2 | linux-user/syscall.c | 10 +++++++++- | 2 | linux-user/syscall.c | 10 +++++++++- |
3 | 1 file changed, 9 insertions(+), 1 deletion(-) | 3 | 1 file changed, 9 insertions(+), 1 deletion(-) |
4 | 4 | ||
5 | Index: qemu/linux-user/syscall.c | 5 | Index: qemu-0.13.0/linux-user/syscall.c |
6 | =================================================================== | 6 | =================================================================== |
7 | --- qemu.orig/linux-user/syscall.c 2010-05-11 16:52:16.929785275 -0400 | 7 | --- qemu-0.13.0.orig/linux-user/syscall.c 2011-01-17 16:52:18.000000000 +0800 |
8 | +++ qemu/linux-user/syscall.c 2010-05-11 16:52:25.174783517 -0400 | 8 | +++ qemu-0.13.0/linux-user/syscall.c 2011-01-17 16:52:20.000000000 +0800 |
9 | @@ -94,6 +94,15 @@ | 9 | @@ -99,6 +99,15 @@ |
10 | #define CLONE_NPTL_FLAGS2 0 | 10 | #define CLONE_NPTL_FLAGS2 0 |
11 | #endif | 11 | #endif |
12 | 12 | ||
diff --git a/meta/recipes-devtools/qemu/qemu_0.12.4.bb b/meta/recipes-devtools/qemu/qemu_0.13.0.bb index 6125bca0d1..945c570f7c 100644 --- a/meta/recipes-devtools/qemu/qemu_0.12.4.bb +++ b/meta/recipes-devtools/qemu/qemu_0.13.0.bb | |||
@@ -3,7 +3,7 @@ require qemu.inc | |||
3 | LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ | 3 | LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ |
4 | file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" | 4 | file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" |
5 | 5 | ||
6 | PR = "r23" | 6 | PR = "r0" |
7 | 7 | ||
8 | FILESPATH = "${FILE_DIRNAME}/qemu-${PV}" | 8 | FILESPATH = "${FILE_DIRNAME}/qemu-${PV}" |
9 | FILESDIR = "${WORKDIR}" | 9 | FILESDIR = "${WORKDIR}" |
@@ -21,16 +21,15 @@ SRC_URI = "\ | |||
21 | file://qemu-vmware-vga-depth.patch \ | 21 | file://qemu-vmware-vga-depth.patch \ |
22 | file://qemu-ppc-hack.patch \ | 22 | file://qemu-ppc-hack.patch \ |
23 | file://enable-i386-linux-user.patch \ | 23 | file://enable-i386-linux-user.patch \ |
24 | file://arm-cp15-fix.patch \ | ||
25 | file://cursor-shadow-fix.patch \ | ||
26 | file://vmware-vga-fifo-rewind.patch \ | 24 | file://vmware-vga-fifo-rewind.patch \ |
27 | file://fix-configure-checks.patch \ | 25 | file://fix-configure-checks.patch \ |
28 | file://powerpc_rom.bin \ | 26 | file://parallel_make.patch \ |
29 | file://arm_timer-fix-oneshot-mode.patch \ | 27 | file://wacom-tablet-fix.patch \ |
30 | file://arm_timer-reload-timer-when-enabled.patch" | 28 | file://port92_fix.patch \ |
29 | file://powerpc_rom.bin" | ||
31 | 30 | ||
32 | SRC_URI[md5sum] = "93e6b134dff89b2799f57b7d9e0e0fc5" | 31 | SRC_URI[md5sum] = "397a0d665da8ba9d3b9583629f3d6421" |
33 | SRC_URI[sha256sum] = "1a29a5b5151162d1de035c4926d1a1dbffee4a145ef61ee865d6b82aaea0602e" | 32 | SRC_URI[sha256sum] = "1e6f5851b05cea6e377c835f4668408d4124cfb845f9948d922808743c5fd877" |
34 | 33 | ||
35 | do_install_append () { | 34 | do_install_append () { |
36 | install -d ${D}${datadir}/qemu | 35 | install -d ${D}${datadir}/qemu |