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]