Package: qemu
Version: 0.9.0-2
Severity: normal
Tags: patch
Hi,
qemu sometimes fails to install etch. It hang during disk partitioning.
This is due to a bug in a emulated scsi controller.
Please find below a patch (backport from CVS) to fix that, as well as
other important arm bugs.
Bye,
Aurelien
diff -u qemu-0.9.0/debian/patches/series qemu-0.9.0/debian/patches/series
--- qemu-0.9.0/debian/patches/series
+++ qemu-0.9.0/debian/patches/series
@@ -24,6 +24,7 @@
42_arm_tls.patch -p0
43_arm_cpustate.patch -p0
44_arm_eabi_built_on_64bit_arches.patch -p0
+45_arm_instructions.patch -p0
50_linuxbios_isa_bios_ram.patch -p0
51_linuxbios_piix_ram_size.patch -p0
52_ne2000_return.patch
@@ -36,4 +37,6 @@
65_kfreebsd.patch -p0
66_tls_ld.patch -p0
+70_lsi53c895a.patch -p0
+71_smc91c111.patch -p0
80_ui_curses.patch -p0
90_security.patch -p0
only in patch2:
unchanged:
--- qemu-0.9.0.orig/debian/patches/45_arm_instructions.patch
+++ qemu-0.9.0/debian/patches/45_arm_instructions.patch
@@ -0,0 +1,24 @@
+--- target-arm/translate.c.orig 2007-02-15 12:38:36.000000000 +0100
++++ target-arm/translate.c 2007-02-15 12:38:42.000000000 +0100
+@@ -391,9 +391,9 @@
+ if (insn & (1 << 22)) {
+ /* immediate */
+ val = (insn & 0xf) | ((insn >> 4) & 0xf0);
+- val += extra;
+ if (!(insn & (1 << 23)))
+ val = -val;
++ val += extra;
+ if (val != 0)
+ gen_op_addl_T1_im(val);
+ } else {
+--- target-arm/op.c 2007-06-22 15:27:12.000000000 +0200
++++ target-arm/op.c 2007-05-21 19:48:01.000000000 +0200
+@@ -667,7 +667,7 @@
+ if (shift >= 32) {
+ env->CF = (T1 >> 31) & 1;
+ T1 = (int32_t)T1 >> 31;
+- } else {
++ } else if (shift != 0) {
+ env->CF = (T1 >> (shift - 1)) & 1;
+ T1 = (int32_t)T1 >> shift;
+ }
only in patch2:
unchanged:
--- qemu-0.9.0.orig/debian/patches/70_lsi53c895a.patch
+++ qemu-0.9.0/debian/patches/70_lsi53c895a.patch
@@ -0,0 +1,110 @@
+--- hw/lsi53c895a.c 2007-02-06 00:01:54.000000000 +0100
++++ hw/lsi53c895a.c 2007-04-28 22:45:04.000000000 +0200
+@@ -251,7 +251,7 @@
+ uint32_t ia;
+ uint32_t sbc;
+ uint32_t csbc;
+- uint32_t scratch[13]; /* SCRATCHA-SCRATCHR */
++ uint32_t scratch[18]; /* SCRATCHA-SCRATCHR */
+
+ /* Script ram is stored as 32-bit words in host byteorder. */
+ uint32_t script_ram[2048];
+@@ -855,6 +855,7 @@
+ offset = sxt24(addr);
+ cpu_physical_memory_read(s->dsa + offset, (uint8_t *)buf, 8);
+ s->dbc = cpu_to_le32(buf[0]);
++ s->rbc = s->dbc;
+ addr = cpu_to_le32(buf[1]);
+ }
+ if ((s->sstat1 & PHASE_MASK) != ((insn >> 24) & 7)) {
+@@ -864,6 +865,8 @@
+ break;
+ }
+ s->dnad = addr;
++ /* ??? Set ESA. */
++ s->ia = s->dsp - 8;
+ switch (s->sstat1 & 0x7) {
+ case PHASE_DO:
+ s->waiting = 2;
+@@ -898,8 +901,6 @@
+ s->sbc = s->dbc;
+ s->rbc -= s->dbc;
+ s->ua = addr + s->dbc;
+- /* ??? Set ESA. */
+- s->ia = s->dsp - 8;
+ break;
+
+ case 1: /* IO or Read/Write instruction. */
+@@ -1038,7 +1039,7 @@
+ op0 |= op1;
+ break;
+ case 3: /* XOR */
+- op0 |= op1;
++ op0 ^= op1;
+ break;
+ case 4: /* AND */
+ op0 &= op1;
+@@ -1046,6 +1047,7 @@
+ case 5: /* SHR */
+ op1 = op0 & 1;
+ op0 = (op0 >> 1) | (s->carry << 7);
++ s->carry = op1;
+ break;
+ case 6: /* ADD */
+ op0 += op1;
+@@ -1388,7 +1390,7 @@
+ break;
+ case 0x02: /* SCNTL2 */
+ val &= ~(LSI_SCNTL2_WSR | LSI_SCNTL2_WSS);
+- s->scntl3 = val;
++ s->scntl2 = val;
+ break;
+ case 0x03: /* SCNTL3 */
+ s->scntl3 = val;
+@@ -1433,10 +1435,13 @@
+ if (val & LSI_ISTAT0_SRST) {
+ lsi_soft_reset(s);
+ }
++ break;
+ case 0x16: /* MBOX0 */
+ s->mbox0 = val;
++ break;
+ case 0x17: /* MBOX1 */
+ s->mbox1 = val;
++ break;
+ case 0x1b: /* CTEST3 */
+ s->ctest3 = val & 0x0f;
+ break;
+@@ -1453,19 +1458,19 @@
+ }
+ s->ctest5 = val;
+ break;
+- case 0x2c: /* DSPS[0:7] */
++ case 0x2c: /* DSP[0:7] */
+ s->dsp &= 0xffffff00;
+ s->dsp |= val;
+ break;
+- case 0x2d: /* DSPS[8:15] */
++ case 0x2d: /* DSP[8:15] */
+ s->dsp &= 0xffff00ff;
+ s->dsp |= val << 8;
+ break;
+- case 0x2e: /* DSPS[16:23] */
++ case 0x2e: /* DSP[16:23] */
+ s->dsp &= 0xff00ffff;
+ s->dsp |= val << 16;
+ break;
+- case 0x2f: /* DSPS[14:31] */
++ case 0x2f: /* DSP[24:31] */
+ s->dsp &= 0x00ffffff;
+ s->dsp |= val << 24;
+ if ((s->dmode & LSI_DMODE_MAN) == 0
+@@ -1765,7 +1770,7 @@
+ lsi_reg_writeb(s, addr, val & 0xff);
+ lsi_reg_writeb(s, addr + 1, (val >> 8) & 0xff);
+ lsi_reg_writeb(s, addr + 2, (val >> 16) & 0xff);
+- lsi_reg_writeb(s, addr + 2, (val >> 24) & 0xff);
++ lsi_reg_writeb(s, addr + 3, (val >> 24) & 0xff);
+ }
+
+ static void lsi_io_mapfunc(PCIDevice *pci_dev, int region_num,
only in patch2:
unchanged:
--- qemu-0.9.0.orig/debian/patches/71_smc91c111.patch
+++ qemu-0.9.0/debian/patches/71_smc91c111.patch
@@ -0,0 +1,27 @@
+Index: hw/smc91c111.c
+===================================================================
+RCS file: /sources/qemu/qemu/hw/smc91c111.c,v
+retrieving revision 1.5
+diff -u -r1.5 smc91c111.c
+--- hw/smc91c111.c 21 Dec 2006 17:23:49 -0000 1.5
++++ hw/smc91c111.c 24 Mar 2007 18:15:21 -0000
+@@ -446,7 +446,9 @@
+ case 7:
+ /* Not implemented. */
+ return 0;
+- case 8: /* Free memory available. */
++ case 8: /* Memory size. */
++ return NUM_PACKETS;
++ case 9: /* Free memory available. */
+ {
+ int i;
+ int n;
+@@ -457,8 +459,6 @@
+ }
+ return n;
+ }
+- case 9: /* Memory size. */
+- return NUM_PACKETS;
+ case 10: case 11: /* RPCR */
+ /* Not implemented. */
+ return 0;
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.21.1 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages qemu depends on:
ii bochsbios 2.3-2 BIOS for the Bochs emulator
ii libasound2 1.0.14a-1 ALSA library
ii libc6 2.5-11 GNU C Library: Shared libraries
ii libncurses5 5.6-3 Shared libraries for terminal hand
ii libsdl1.2debian 1.2.11-9 Simple DirectMedia Layer
ii openhackware 0.4.1-2 OpenFirmware emulator for PowerPC
ii proll 18-2 JavaStation PROM 2.x compatible re
ii vgabios 0.6a-1 VGA BIOS software for the Bochs an
ii zlib1g 1:1.2.3-15 compression library - runtime
Versions of packages qemu recommends:
ii debootstrap 0.3.3.3 Bootstrap a basic Debian system
ii sharutils 1:4.6.3-1 shar, unshar, uuencode, uudecode
pn vde <none> (no description available)
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]