[Qemu-devel] Shutting down the unused bug tracker
I've put this into a seperate email for thread purposes. It appears you have a bug tracker running on Savannah that people have people have been submitting bugs into for 2 years, but that nobody has actually been handling. Of the 59 bug reports in the tracking system, none have been assigned, prioritised, or closed. I would highly recommend shutting this down if you are not using it, as it may be causing people to falsely believe they have reported bugs, when they should have reported them to this (or the -user) mailing list. Adam K ___ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
[Qemu-devel] Feature Request: command line option to validate params without starting an image
I'm currently writing a large scale image-based testing system. (for background info) http://ali.as/pita/ Part of this involves a wrapper for Qemu to launch images with generated options. However currently I have no way way to write unit tests for this code that I can determine. What would be extremely useful would be a command line option I could add to the beginning (or end) of the options ... say -z to pick something at random. This would cause qemu to do all it's normal pre-startup procedures (parse the options, preconfigure and precheck as much stuff as possible) and then bail out before allocating the memory or starting the system (while somehow confirming the params were ok). I'm not sure how much work this would be, but it would be extraordinarily useful when writing wrappers, since the unit tests would typically try to validate 10-20 different combinations of options, and booting an image and shutting it down 20 times would be extremely harsh. Thanks Adam Kennedy ___ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
[Qemu-devel] PPC fix for upcoming hand written code generator
Hi Paul, I just had a short look at your hand written code generator (https://nowt.dyndns.org/cgi-bin/svn-qop-diff) and did some quick tests with the i386-softmmu target on my iMac G5 (Mac OS 10.4.3). Before I could successfully compile the code, I needed to apply a small fix: --- host-ppc/qop-code.h +++ host-ppc/qop-code.h @@ -243,8 +243,8 @@ ENCODE_D(14, dest, 0, 0); \ QOP_END -DO_SETcc32(lt, 0, 0); -DO_SETcc32(le, 1, 1); +DO_SETcc32(ltu, 0, 0) +DO_SETcc32(leu, 1, 1) #define DO_JMPcc32(name, negate, cond) \ QOP_START(jmp_##name##32) \ --- host-ppc/qop-host.def +++ host-ppc/qop-host.def @@ -33,8 +33,8 @@ DEF2(jmp_ns32, HRC_G, 0) DEF1(jmp, 0) -DEF3(set_lt32, HRC_G, HRC_G, HRC_G) -DEF3(set_le32, HRC_G, HRC_G, HRC_G) +DEF3(set_ltu32, HRC_G, HRC_G, HRC_G) +DEF3(set_leu32, HRC_G, HRC_G, HRC_G) DEF2(ld8s32, HRC_G, HRC_G) DEF2(ld8u32, HRC_G, HRC_G) I hope this helps you. Before, GCC returned with an error: gcc-3.3 -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I. -I/build/qemu-pb/target-i386 -I/build/qemu-pb -I/build/qemu-pb/host-ppc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/build/qemu-pb/fpu -DHAS_AUDIO -I/build/qemu-pb/slirp -c -o translate-qop.o /build/qemu-pb/translate-qop.c In file included from /build/qemu-pb/translate-qop.c:59: /build/qemu-pb/host-ppc/qop-code.h: In function `dyngen_qop': /build/qemu-pb/host-ppc/qop-code.h:246: error: `INDEX_op_set_lt32' undeclared (first use in this function) /build/qemu-pb/host-ppc/qop-code.h:246: error: (Each undeclared identifier is reported only once /build/qemu-pb/host-ppc/qop-code.h:246: error: for each function it appears in.) /build/qemu-pb/host-ppc/qop-code.h:247: error: `INDEX_op_set_le32' undeclared (first use in this function) make[1]: *** [translate-qop.o] Error 1 make: *** [all] Error 1 Although benchmarking with LZMA (7-Zip) on Win98SE showed a speed improve of about 10%, the time it ran (taken with an external stopwatch) was almost the same. Seems that QEMU's "internal clock" ticks a bit slower with your patch. I'm just a bit curious to know, when the i386 target will benefit from your new code, and if it will be ready to be included into main CVS soon. Thanks for your work! Jo. ___ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
Re: [Qemu-devel] qemu-0.8.0 question?
On Mon, Jan 02, 2006 at 12:30:39PM -0500, Ishwar Rattan wrote: > > Has there been a change in -user-net part > (other than -net user) for qemu-0.8.0? > > I installed Minix-3.1.1 under qemu-0.7.2 > and the network part of the install does > not work with qemu-0.8.0. > > -> qemu-0.7.2 (with -user-net option) > > #ifconfig -a > /dev/ip: address 10.0.2.15 netmask 255.255.255.0 mtu 1500 > # > > -> qemu-0.8.0 (with -net user option) > #ifconfig -a > # ifconfig -h 10.0.2.15 -n 255.255.255.0 > ifconfig: Unable to open /dev/ip: No such device or address > # > > Any ideas? Try -net nic -net user. Or no -net option at all; this should be the default if no -net options are specified, IIRC. -- Daniel Jacobowitz CodeSourcery ___ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
Re: [Qemu-devel] qemu-0.8.0 question?
On 02/01/06, Ishwar Rattan <[EMAIL PROTECTED]> wrote: > > Has there been a change in -user-net part > (other than -net user) for qemu-0.8.0? > Yes, you need -net nic as well as -net user. Cheers, Al. ___ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
[Qemu-devel] qemu-0.8.0 question?
Has there been a change in -user-net part (other than -net user) for qemu-0.8.0? I installed Minix-3.1.1 under qemu-0.7.2 and the network part of the install does not work with qemu-0.8.0. -> qemu-0.7.2 (with -user-net option) #ifconfig -a /dev/ip: address 10.0.2.15 netmask 255.255.255.0 mtu 1500 # -> qemu-0.8.0 (with -net user option) #ifconfig -a # ifconfig -h 10.0.2.15 -n 255.255.255.0 ifconfig: Unable to open /dev/ip: No such device or address # Any ideas? -ishwar ___ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
[Qemu-devel] Unable to compile qemu-kqemu from source
Hi, I'm currently running qemu 0.7.2 on my Mandrake 10.0 without problems, but since I would like to use kqemu too and there are no binary packages for it, I've tried to compile qemu-kqemu from sources, following the instructions on Fabrice's site. The ./configure and make seem to go without errors, but the make install fails complaining for a missing kqemu.o I've looked around in various lists and seen the same problem reported (without solution) for Mandrake 10.1 also, so I decided to ask here Following, an excerpt of the make / make install output (everything regarding kqemu) Thank you all in advance Carlo "make" messages regarding kqemu: make -C kqemu make[1]: Entering directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu' make -C /usr/src/linux M=`pwd` modules make[2]: Entering directory `/usr/src/linux-2.6.3-15mdk' make[3]: `arch/i386/kernel/asm-offsets.s' is up to date. CHK include/asm-i386/asm_offsets.h CC [M] 3rdparty/prism54/islpci_eth.o CC [M] 3rdparty/prism54/islpci_mgt.o CC [M] 3rdparty/prism54/isl_38xx.o CC [M] 3rdparty/prism54/isl_ioctl.o 3rdparty/prism54/isl_ioctl.c:854: warning: `prism54_set_rate' defined but not used CC [M] 3rdparty/prism54/islpci_dev.o CC [M] 3rdparty/prism54/islpci_hotplug.o CC [M] 3rdparty/prism54/isl_wds.o CC [M] 3rdparty/prism54/oid_mgt.o LD [M] 3rdparty/prism54/prism54.o Building modules, stage 2. MODPOST LD [M] 3rdparty/prism54/prism54.ko make[2]: Leaving directory `/usr/src/linux-2.6.3-15mdk' make[1]: Leaving directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu' "make install" messages regarding kqemu: make -C kqemu make[1]: Entering directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu' make -C /usr/src/linux M=`pwd` modules make[2]: Entering directory `/usr/src/linux-2.6.3-15mdk' make[3]: `arch/i386/kernel/asm-offsets.s' is up to date. CHK include/asm-i386/asm_offsets.h Building modules, stage 2. MODPOST make[2]: Leaving directory `/usr/src/linux-2.6.3-15mdk' make[1]: Leaving directory `/home/carlo/Software/QEmu/qemu-0.7.2/kqemu' cd kqemu ; ./install.sh cp: cannot stat `kqemu.o': No such file or directory ___ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel
Re: [Qemu-devel] [PATCH] lba48 support
On Fri, Dec 30 2005, Fabrice Bellard wrote: > Jens Axboe wrote: > >Saw the posts on this the other day and had a few spare hours to play > >with this. Works for me, with and without DMA (didn't test mult mode, > >but that should work fine too). > > > >Test with caution though, it's changing the ide code so could eat your > >data if there's a bug there... Most clever OS's don't use lba48 even for > >lba48 capable drives, unless the device is > 2^28 sectors and the > >current request is past that (but they could be taking advantage of the > >larger transfer size possible, in which case lba48 will be used even for > >low sectors...). > > Thank you for the patch ! At least two details should be corrected > before I can apply it: > > 1) Each duplicated IDE register acts as a 2 byte FIFO, so the logic you > added in the write function should be modified (the regs_written field > is not needed). > > 2) The read back logic should be implemented (HOB bit in the device > control register). Updated patch below. The read back logic doesn't work right now, since we always set bits 5-7 (the obsolete) bits in device select. But I've dropped the regs_written hack, the hob registers are now (as intended) always the previous value. That makes it LIFO, which I suppose is what you meant? Index: hw/ide.c === RCS file: /sources/qemu/qemu/hw/ide.c,v retrieving revision 1.38 diff -u -r1.38 ide.c --- hw/ide.c6 Aug 2005 09:14:32 - 1.38 +++ hw/ide.c2 Jan 2006 12:58:15 - @@ -305,14 +305,24 @@ /* ide regs */ uint8_t feature; uint8_t error; -uint16_t nsector; /* 0 is 256 to ease computations */ +uint32_t nsector; uint8_t sector; uint8_t lcyl; uint8_t hcyl; +/* other part of tf for lba48 support */ +uint8_t hob_feature; +uint8_t hob_nsector; +uint8_t hob_sector; +uint8_t hob_lcyl; +uint8_t hob_hcyl; + uint8_t select; uint8_t status; + /* 0x3f6 command, only meaningful for drive 0 */ uint8_t cmd; +/* set for lba48 access */ +uint8_t lba48; /* depends on bit 4 in select, only meaningful for drive 0 */ struct IDEState *cur_drive; BlockDriverState *bs; @@ -449,13 +459,17 @@ put_le16(p + 61, s->nb_sectors >> 16); put_le16(p + 80, (1 << 1) | (1 << 2)); put_le16(p + 82, (1 << 14)); -put_le16(p + 83, (1 << 14)); +put_le16(p + 83, (1 << 14) | (1 << 10)); /* lba48 supported */ put_le16(p + 84, (1 << 14)); put_le16(p + 85, (1 << 14)); -put_le16(p + 86, 0); +put_le16(p + 86, (1 << 14) | (1 << 10)); /* lba48 supported */ put_le16(p + 87, (1 << 14)); put_le16(p + 88, 0x1f | (1 << 13)); put_le16(p + 93, 1 | (1 << 14) | 0x2000 | 0x4000); +put_le16(p + 100, s->nb_sectors); +put_le16(p + 101, s->nb_sectors >> 16); +put_le16(p + 102, s->nb_sectors >> 32); +put_le16(p + 103, s->nb_sectors >> 48); } static void ide_atapi_identify(IDEState *s) @@ -548,12 +562,18 @@ int64_t sector_num; if (s->select & 0x40) { /* lba */ -sector_num = ((s->select & 0x0f) << 24) | (s->hcyl << 16) | -(s->lcyl << 8) | s->sector; + if (!s->lba48) { + sector_num = ((s->select & 0x0f) << 24) | (s->hcyl << 16) | + (s->lcyl << 8) | s->sector; + } else { + sector_num = ((int64_t)s->hcyl << 40) | + ((int64_t) s->lcyl << 32) | + (s->sector << 24) | (s->hob_hcyl << 16) | + (s->hob_lcyl << 8) | s->hob_sector; + } } else { sector_num = ((s->hcyl << 8) | s->lcyl) * s->heads * s->sectors + -(s->select & 0x0f) * s->sectors + -(s->sector - 1); +(s->select & 0x0f) * s->sectors + (s->sector - 1); } return sector_num; } @@ -562,10 +582,19 @@ { unsigned int cyl, r; if (s->select & 0x40) { -s->select = (s->select & 0xf0) | (sector_num >> 24); -s->hcyl = (sector_num >> 16); -s->lcyl = (sector_num >> 8); -s->sector = (sector_num); + if (!s->lba48) { +s->select = (s->select & 0xf0) | (sector_num >> 24); +s->hcyl = (sector_num >> 16); +s->lcyl = (sector_num >> 8); +s->sector = (sector_num); + } else { + s->hob_sector = sector_num; + s->hob_lcyl = sector_num >> 8; + s->hob_hcyl = sector_num >> 16; + s->sector = sector_num >> 24; + s->lcyl = sector_num >> 32; + s->hcyl = sector_num >> 40; + } } else { cyl = sector_num / (s->heads * s->sectors); r = sector_num % (s->heads * s->sectors); @@ -1451,43 +1480,65 @@ s->nb_sectors = nb_sectors; } +static void ide_clear_hob(IDEState *ide_if) +{ +/* any write clears HOB high bit of device control register */ +ide_if[0].select &= ~(1 << 7); +ide_if[1].select &= ~(1 << 7); +} +