aurel32 [Wed, 14 Jan 2009 14:47:56 +0000 (14:47 +0000)]
escc: allow one IRQ per serial channel
The Z85C30 on the PowerMAC machines have one interrupt per serial
channel, while the Sparc machines have only one for both. Allow the
emulated device to use one IRQ per channel.
aliguori [Tue, 13 Jan 2009 19:39:36 +0000 (19:39 +0000)]
Check NIC model in some NIC init functions (Mark McLoughlin)
Some NIC init functions are only called when that model is
the only valid model. In that case, it makes sense to use
qemu_check_nic_model() from the NIC init function itself.
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6286 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Tue, 13 Jan 2009 19:15:55 +0000 (19:15 +0000)]
Fix tap downscript argument (Mark McLoughlin)
Kill off the hack that parses info_str for the tap interface
name to pass as the argument to the downscript and, instead,
just explicitly keep a copy of the string for later.
Reported-by: John Wong <johnw@wonghome.net> Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6285 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Tue, 13 Jan 2009 15:20:14 +0000 (15:20 +0000)]
RTL8139: Latch C+ mode state instead of inferring it from C+ Command register (Avi Kivity)
It was observed that Windows 2003 x64 hangs when shutting down if an
RTL8139 NIC and a USB device tablet are both present. What seems to be
happening is:
- the guest shuts down the transmitter and receiver
- time passes
- the guest requests a tally counter dump
As it happens, the tally counter command register overlaps the transmit
status register in C mode. Qemu determines whether the chip is in C or C+
mode by looking at the C+ transmit enable bit; as this is now unset, the
dump tally counter command is interpreted as a C mode transmit command. The
guest doesn't think so, however, and continues to poll for completion of the
tally counter dump command. This never occurs, so the guest hangs.
Fix by redefining C+ mode as "a write to the C+ command register has occurred
since the last reset". The data sheet is silent on the matter.
Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6279 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Tue, 13 Jan 2009 15:13:53 +0000 (15:13 +0000)]
Fix race in POSIX AIO emulation (Jan Kiszka)
When we cancel an AIO request that is already being processed by
aio_thread, qemu_paio_cancel should return QEMU_PAIO_NOTCANCELED as long
as aio_thread isn't done with this request. But as the latter currently
updates aiocb->ret after every block of the request, we may report
QEMU_PAIO_ALLDONE too early.
Futhermore, in case some zero-length request should have been queued,
aiocb->ret is never set to != -EINPROGRESS and callers like
raw_aio_cancel could get stuck in an endless loop.
Fix those issues by updating aiocb->ret _after_ the request has been
fully processed. This also simplifies the locking.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6278 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Fri, 9 Jan 2009 20:05:10 +0000 (20:05 +0000)]
fix configuring kvm probe when using --kerneldir (Christian Ehrhardt)
There is already a variable kvm_cflags which gets the path of the kernel
includes when using --kerneldir. But eventually with newer kernels we all will
need arch/$arch/include too (my case was a incldue of asm/kvm.h which was not
found anymore). Headers in a full kernel source are not flattened to
one arch like they are if e.g. installed kernel headers are used.
To fix that, the includes added to cflags depending on --kerneldir should also
contian the arch includes. The patch adds a special check for x86 because its
source layout recently changed, all others directly use arch/$cpu/include if
existent.
Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6263 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Fri, 9 Jan 2009 00:48:28 +0000 (00:48 +0000)]
Make the set_link cmd handle multiple nics.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6256 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Fri, 9 Jan 2009 00:04:35 +0000 (00:04 +0000)]
ETRAX: Let the ethernet PHY report the current link-state.
* PHY reports correct link-state.
* Allow the board description to assign separate addresses to each PHY.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6255 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Thu, 8 Jan 2009 21:03:55 +0000 (21:03 +0000)]
Enable ac97 by default
ac97 has drivers for Vista 64-bit whereas sb16 and es1370 do not appear to. I
asked malc why it was disabled and he said it was because it was GPL. He did
not object to enabling it now that more QEMU code is GPL'd.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6253 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Thu, 8 Jan 2009 21:03:07 +0000 (21:03 +0000)]
IDE: Return zero when reading error register with slave selected (Justin Chevrier)
During hardware detection Openserver issues commands to slaves on both primary
and secondary ports. We already return a zero for the status register in this
situation but after reading the status register the Openserver installer
proceeds to check the value of the error register. Currently we return the
existing value in the register. This confuses the installer and it tries to
access the slave units later on. When the command that gets issued later gets
ignored the installer freezes. The patch below returns zero when reading the
error register if a slave unit is selected. Openserver can now successfully be
installed using the emulated IDE hard drive.
Return zero when reading error register with slave selected
aliguori [Thu, 8 Jan 2009 19:45:50 +0000 (19:45 +0000)]
Implement e1000 link status (Mark McLoughlin)
On link up or down we set the E1000_STATUS_LU ("link up") bit
in the status register and set the E1000_ICR_LSC ("link
status changed") bit in the interrupt cause register before
interrupting the guest.
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6249 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Thu, 8 Jan 2009 19:29:03 +0000 (19:29 +0000)]
qcow1: Fix compressed images (Kevin Wolf)
Revert r4673, the removed dead code wasn't dead in fact.
Additionally, change the misleading else which tricks the reader into
believing that allocate is a boolean to else if (allocate == 2).
Signed-off-by: Kevin Wolf <kwolf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6244 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Thu, 8 Jan 2009 19:01:37 +0000 (19:01 +0000)]
Add model field to nic info (Mark McLoughlin)
The model type used to be printed as part of the nic info. It was removed when
the name type was added. This adds back a model field for those that were
using it previously.
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6239 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 23:38:41 +0000 (23:38 +0000)]
CRIS: Purify some of the flag evaluation helpers.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6227 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 22:46:50 +0000 (22:46 +0000)]
ETRAX: Always provide a valid net model.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6226 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 20:07:09 +0000 (20:07 +0000)]
CRIS: Enable NTPL.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6225 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 19:47:53 +0000 (19:47 +0000)]
CRIS: Add a bunch of syscall numbers.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6223 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 19:43:47 +0000 (19:43 +0000)]
CRIS: Clone flags are reversed on CRIS.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6222 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Wed, 7 Jan 2009 17:40:15 +0000 (17:40 +0000)]
snapshot subcommand for qemu-img (Kevin Wolf)
Add snapshot subcommand to qemu-img which allows to list, create, apply
and delete snapshots on qcow2 images.
Signed-off-by: Kevin Wolf <kwolf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6215 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Wed, 7 Jan 2009 17:32:33 +0000 (17:32 +0000)]
add "serial" parameter to -drive flag (Gleb Natapov)
Windows calculates HW "uniqueness" based on a hard drive serial number
among other things. The patch allows to specify drive serial number
from a command line.
aliguori [Wed, 7 Jan 2009 17:22:19 +0000 (17:22 +0000)]
qcow2: Fix cluster allocation (Kevin Wolf)
When allocating multiple clusters at once, the qcow2 implementation
tries to find as many physically contiguous clusters as possible to
allow larger writes. This search includes allocated clusters which are
in the right place and still free clusters. If the range to allocate
spans clusters in patterns like "10 allocated, then 10 free, then again
10 allocated" it is only checked that the chunks of allocated clusters
are contiguous for themselves.
However, what is actually needed is to have _all_ allocated clusters
contiguous, starting at the first cluster of the allocation and spanning
multiple such chunks. This patch changes the check so that each offset
is not compared to the offset of the first cluster in its own chunk but
to the first cluster in the whole allocation.
I haven't seen it happen, but without this fix data corruption on qcow2
images is possible.
Signed-off-by: Kevin Wolf <kwolf@suse.de> Acked-by: Gleb Natapov <gleb@redhat.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6213 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori [Wed, 7 Jan 2009 16:43:13 +0000 (16:43 +0000)]
Fix compressed qcow2 (Gleb Natapov)
Correctly calculate number of contiguous clusters.
Acked-by: Kevin Wolf <kwolf@suse.de> Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6212 c046a42c-6fe2-441c-8c8c-71466251a162
the usb-hid spec states that the SET_IDLE request has a 16bit value,
where the upper byte specifies the idle rate (currently unimplemented,
we handle only the 0 case, meaning infinite duration) and the lower
byte specifies the report id (0 means all reports).
In our code we do idle = value, while it should be idle = "upper byte",
especially if the guest issues a GET_IDLE, we should return only the
idle rate while we are returning only the report id.
In practice it doesn't make much difference because I have only seen
SET_VALUE with both bytes set to 0 so far, but still it is wrong.
edgar_igl [Wed, 7 Jan 2009 14:19:38 +0000 (14:19 +0000)]
CRIS: Implement set_thread_area for CRIS.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6210 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 14:00:33 +0000 (14:00 +0000)]
ETRAX: Correct size of control-register area.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6209 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 13:46:31 +0000 (13:46 +0000)]
ETRAX: Process out channels immediately when the channel is started.
* Process out channels immediately when the channel is started.
* Context descriptor load does not start a channel.
* Store updated descriptors after processing them regardless of eol state.
* Correct control-register area size.
edgar_igl [Wed, 7 Jan 2009 13:30:41 +0000 (13:30 +0000)]
ETRAX: Correctly update the interrupt vector when interrupts get masked.
Cannot believe this bug has been around for so long.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6207 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 13:24:40 +0000 (13:24 +0000)]
ETRAX: Support timer count reads and correct frequencies.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6206 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 13:19:21 +0000 (13:19 +0000)]
CRIS: Use a helper for lz.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6205 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 13:15:29 +0000 (13:15 +0000)]
CRIS: bound operates directly on regs, no need to allocate temp destination.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6204 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 13:11:22 +0000 (13:11 +0000)]
CRIS: Speedup btst by using a helper.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6203 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 13:05:58 +0000 (13:05 +0000)]
ETRAX: Add a dummy tempsensor and correct the NAND flash model.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6202 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 12:36:06 +0000 (12:36 +0000)]
CRIS: NMI wakes up the core.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6201 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 12:35:08 +0000 (12:35 +0000)]
CRIS: NMI wakes up the core.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6200 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 12:27:46 +0000 (12:27 +0000)]
CRIS: Move operations can be optimized as arithmetic ones for cc evaluation.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6199 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 12:25:15 +0000 (12:25 +0000)]
CRIS: Slight performance improvement for flag evaluation.
Translate sub and cmp ops separately when evaluating flags to avoid checking
for them at runtime.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6198 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl [Wed, 7 Jan 2009 12:19:50 +0000 (12:19 +0000)]
ETRAX: Add a model for the axis devboard88 machine.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6197 c046a42c-6fe2-441c-8c8c-71466251a162