sdk/emulator/qemu.git
15 years agovirtio-blk: Use bdrv_aio_multiwrite
Kevin Wolf [Wed, 9 Sep 2009 15:53:38 +0000 (17:53 +0200)]
virtio-blk: Use bdrv_aio_multiwrite

It is quite common for virtio-blk to submit more than one write request in a
row to the qemu block layer. Use bdrv_aio_multiwrite to allow block drivers to
optimize its handling of the requests.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoAdd bdrv_aio_multiwrite
Kevin Wolf [Wed, 9 Sep 2009 15:53:37 +0000 (17:53 +0200)]
Add bdrv_aio_multiwrite

One performance problem of qcow2 during the initial image growth are
sequential writes that are not cluster aligned. In this case, when a first
requests requires to allocate a new cluster but writes only to the first
couple of sectors in that cluster, the rest of the cluster is zeroed - just
to be overwritten by the following second request that fills up the cluster.

Let's try to merge sequential write requests to the same cluster, so we can
avoid to write the zero padding to the disk in the first place.

As a nice side effect, also other formats take advantage of dealing with less
and larger requests.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoRevert "don't call cpu_sychronize_state from reset handlers"
Anthony Liguori [Thu, 10 Sep 2009 13:45:43 +0000 (08:45 -0500)]
Revert "don't call cpu_sychronize_state from reset handlers"

This reverts commit 733318ea9c6d846a6a047b87619e7d9d6e9707d1.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agomicroblaze: Trap if QEMU finds an unknown insns.
Edgar E. Iglesias [Fri, 11 Sep 2009 08:38:31 +0000 (10:38 +0200)]
microblaze: Trap if QEMU finds an unknown insns.

If PVR settings enable illegal insn trap, trap when QEMU finds an
insn it knows nothing about.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
15 years agomicroblaze: Correct prio between MMU and unaligned exceptions.
Edgar E. Iglesias [Fri, 11 Sep 2009 08:35:27 +0000 (10:35 +0200)]
microblaze: Correct prio between MMU and unaligned exceptions.

The microblaze gives MMU faults priority. For stores we still
have a flaw that the value leaks to memory in the case of an
unaligned exception.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
15 years agomicroblaze: HW Exception fixes.
Edgar E. Iglesias [Fri, 11 Sep 2009 08:27:38 +0000 (10:27 +0200)]
microblaze: HW Exception fixes.

* Correct PVR checks for masking off individual exceptions.
* Correct FPU exception code.
* Set EAR on unaligned and unassigned exceptions.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
15 years agoUpdate OpenBIOS images to r577
Aurelien Jarno [Fri, 11 Sep 2009 07:13:04 +0000 (09:13 +0200)]
Update OpenBIOS images to r577

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
15 years agoX86_64: Use proper jumps/calls when displacement exceeds +-2G
malc [Thu, 3 Sep 2009 00:20:01 +0000 (04:20 +0400)]
X86_64: Use proper jumps/calls when displacement exceeds +-2G

Signed-off-by: malc <av1474@comtv.ru>
15 years agoRemove bit-rotten threshold handling
malc [Thu, 10 Sep 2009 17:08:53 +0000 (21:08 +0400)]
Remove bit-rotten threshold handling

Thanks to Toshiya Takeda for bringing up an unrelated issue which led
to this.

Signed-off-by: malc <av1474@comtv.ru>
15 years agoF_DUPFD_CLOEXEC is not universally available
malc [Sun, 6 Sep 2009 02:31:59 +0000 (06:31 +0400)]
F_DUPFD_CLOEXEC is not universally available

The same issue (and the same patch to the byte) was experienced/proposed
by Vince Weaver.

Signed-off-by: malc <av1474@comtv.ru>
15 years agoAdd information w.r.t default GUS IRQ assigment
malc [Thu, 10 Sep 2009 16:05:59 +0000 (20:05 +0400)]
Add information w.r.t default GUS IRQ assigment

15 years agoFix formatting
malc [Thu, 10 Sep 2009 15:59:50 +0000 (19:59 +0400)]
Fix formatting

15 years agoFix formatting, get rid of conf and fix description
malc [Thu, 10 Sep 2009 15:59:41 +0000 (19:59 +0400)]
Fix formatting, get rid of conf and fix description

15 years agoFix formatting and and description field
malc [Thu, 10 Sep 2009 15:59:00 +0000 (19:59 +0400)]
Fix formatting and and description field

15 years agoqdev/isa: convert real time clock
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:35 +0000 (11:43 +0200)]
qdev/isa: convert real time clock

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev/isa: finish pckbd conversion
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:34 +0000 (11:43 +0200)]
qdev/isa: finish pckbd conversion

drop old init path and switch remaining users to
isa_create_simple().

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev/isa: convert ne2000
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:33 +0000 (11:43 +0200)]
qdev/isa: convert ne2000

Also split the isa bits into a separate source file, so we don't drag in
a dependency for isa-bus.o for machines which want ne2k_pci only.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev/isa: convert gravis ultrasound
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:32 +0000 (11:43 +0200)]
qdev/isa: convert gravis ultrasound

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev/isa: convert cs4231a sound card
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:31 +0000 (11:43 +0200)]
qdev/isa: convert cs4231a sound card

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev/isa: convert soundblaster
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:30 +0000 (11:43 +0200)]
qdev/isa: convert soundblaster

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev: add isa_create() function
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:29 +0000 (11:43 +0200)]
qdev: add isa_create() function

Like isa_create_simple, but doesn't call qdev_init, so one can set
properties after creating and before initializing the device.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev: tag isabus-bridge as no-user
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:28 +0000 (11:43 +0200)]
qdev: tag isabus-bridge as no-user

isabus-bridge isn't supposed to be added via -device ...

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev: simplify isa irq assignments
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:27 +0000 (11:43 +0200)]
qdev: simplify isa irq assignments

isa-bus owns the isa irqs now, so it can hand them out directly.
There is no need for the separate isa_connect_irqs step, drop it.

Also hard-code isa interrupts which can't be configured anyway.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev: drop iobase properties from isa bus
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:26 +0000 (11:43 +0200)]
qdev: drop iobase properties from isa bus

Lot of ISA devices work at fixed addresses, so having iobase
as bus property doesn't make much sense.  Devices which can
have different iobases will get a device property.

Also simply hard-code stuff which can't be configured anyway.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoqdev: add property type for 32bit signed integers.
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:25 +0000 (11:43 +0200)]
qdev: add property type for 32bit signed integers.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoisapc: pick a more sane default cpu for such old hardware.
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:24 +0000 (11:43 +0200)]
isapc: pick a more sane default cpu for such old hardware.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoisapc: Fix irq routing
Gerd Hoffmann [Thu, 10 Sep 2009 09:43:23 +0000 (11:43 +0200)]
isapc: Fix irq routing

Only send irqs to ioapic in case we have one.
Fixes qemu segfault.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
15 years agoAllow to unscale the output window with a Ctrl-Alt-u hotkey
malc [Thu, 10 Sep 2009 01:15:07 +0000 (05:15 +0400)]
Allow to unscale the output window with a Ctrl-Alt-u hotkey

Signed-off-by: malc <av1474@comtv.ru>
15 years agoFix VMSTATE_PCI_DEVICE version
Juan Quintela [Wed, 9 Sep 2009 07:46:57 +0000 (09:46 +0200)]
Fix VMSTATE_PCI_DEVICE version

PCI device entries have to have a default version, not 2, because they are
used in the midle of other structures that can have _any_ version number.

We can't use proper versioning here until we have SubSections support.
Why we didn't noticed before?  Because in a PC, the only device ported with
a version less that 2 is piix_pm, and for that one, default pci values are
right.  If you use a virtio-console, you will see that its state it is not
loaded back.

Thanks to Amit Shah for reporting the problem and help debug the fix.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agodon't call cpu_sychronize_state from reset handlers
Glauber Costa [Wed, 2 Sep 2009 21:18:43 +0000 (17:18 -0400)]
don't call cpu_sychronize_state from reset handlers

Doing this will make the vcpu ioctl be issued from the I/O thread, instead
of cpu thread. The correct behaviour is to call it from within the cpu thread,
as soon as we are ready to go.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoRTC polling mode broken
Bernhard Kauer [Wed, 2 Sep 2009 07:49:05 +0000 (09:49 +0200)]
RTC polling mode broken

The RTC emulation does not set the IRQ flags independent of the IRQ enable bits.

The original MC146818A datasheet from 1984 notes:
        "flag bits in Register C [...] are set independent of the
        state of the corresponding enable bits in Register B"
Similar sections can be found in newer documentation e.g. in rtc82885.

Qemu and Bochs set the IRQ flags only if they are enabled,
which breaks drivers polling on them.

The following patch corrects this for the update-ended-flag in Qemu only.
It does not fix the handling of the other flags.

Signed-off-by: Bernhard Kauer <kauer@tudos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqemu-kvm: fix segfault when running kvm without /dev/kvm, falling back to non-acceler...
Dustin Kirkland [Thu, 3 Sep 2009 17:31:33 +0000 (12:31 -0500)]
qemu-kvm: fix segfault when running kvm without /dev/kvm, falling back to non-accelerated mode

qemu-kvm: fix segfault when running kvm without /dev/kvm, falling back
to non-accelerated mode

We're seeing segfaults on systems without access to /dev/kvm.  It
looks like the global kvm_allowed is being set just a little too late
in vl.c.  This patch moves the kvm initialization a bit higher in the
vl.c main, just after options processing, and solves the segfaults.
We're carrying this patch in Ubuntu 9.10 Alpha.  Please apply
upstream, or advise if and why this might not be the optimal solution.

Signed-off-by: Dustin Kirkland <kirkland@canonical.com>
Move the kvm_init() call a bit higher to fix a segfault when
/dev/kvm is not available.  The kvm_allowed global needs
to be set correctly a little earlier.

Signed-off-by: Dustin Kirkland <kirkland@canonical.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoconfigure: fix Linux AIO detection
Luiz Capitulino [Mon, 31 Aug 2009 16:18:12 +0000 (13:18 -0300)]
configure: fix Linux AIO detection

We should set $linux_aio to 'no' if detection failed, otherwise
its contents will be empty, which is a bug as we test for 'yes'
or 'no'.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoFix compilation warnings when DEBUG_BUFFERED_FILE is defined
Pierre Riteau [Tue, 1 Sep 2009 09:57:20 +0000 (11:57 +0200)]
Fix compilation warnings when DEBUG_BUFFERED_FILE is defined

gcc 4.3.2 throws warnings when DEBUG_BUFFERED_FILE is defined, because
we are using the wrong format specifiers to print size_t/ssize_t values.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqcow2: Order concurrent AIO requests on the same unallocated cluster
Kevin Wolf [Mon, 31 Aug 2009 14:48:49 +0000 (16:48 +0200)]
qcow2: Order concurrent AIO requests on the same unallocated cluster

When two AIO requests write to the same cluster, and this cluster is
unallocated, currently both requests allocate a new cluster and the second one
merges the first one when it is completed. This means an cluster allocation, a
read and a cluster deallocation which cause some overhead. If we simply let the
second request wait until the first one is done, we improve overall performance
with AIO requests (specifially, qcow2/virtio combinations).

This patch maintains a list of in-flight requests that have allocated new
clusters. A second request touching the same cluster is limited so that it
either doesn't touch the allocation of the first request (so it can have a
non-overlapping allocation) or it waits for the first request to complete.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqcow2: Fix metadata preallocation
Kevin Wolf [Mon, 31 Aug 2009 10:26:57 +0000 (12:26 +0200)]
qcow2: Fix metadata preallocation

The wrong version of the preallocation patch has been applied, so this is the
remaining diff.

We can't use truncate to grow the image file to the right size because we don't
know if metadata has been written after the last data cluster. In this case
truncate would shrink the file and destroy its metadata. Write a zero sector at
the end of the virtual disk instead to ensure that the file is big enough.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agofix VNC SASL detection
Juan Quintela [Mon, 31 Aug 2009 15:16:43 +0000 (17:16 +0200)]
fix VNC SASL detection

This test was missing the change to != no.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agooptionrom: make clean should remove raw and .d
Juan Quintela [Sun, 30 Aug 2009 22:41:35 +0000 (00:41 +0200)]
optionrom: make clean should remove raw and .d

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agootionrom: Use local CFLAGS no global one
Juan Quintela [Sun, 30 Aug 2009 22:48:46 +0000 (00:48 +0200)]
otionrom: Use local CFLAGS no global one

It is needed by %.o : %.c rule.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoRemove CFLAGS parameter in cc-option
Juan Quintela [Sun, 30 Aug 2009 22:48:45 +0000 (00:48 +0200)]
Remove CFLAGS parameter in cc-option

With cc-option we are testing if gcc just accept a particular option, we don't need CFLAGS at all.  And this fixes the recursive problem with CFLAGS

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoFix for commit 3f9cb1c14dc368f41447db5f78d6248c4f100ad4
Naphtali Sprei [Mon, 31 Aug 2009 16:20:58 +0000 (19:20 +0300)]
Fix for commit 3f9cb1c14dc368f41447db5f78d6248c4f100ad4

Here's a patch to fix the issue introduced by me, as Reimar Döffinger pointed out,

Reimar Döffinger wrote:
> On Thu, Aug 13, 2009 at 03:01:20PM +0300, Naphtali Sprei wrote:
>> Bug fix for segfault when run as i82551 HW:
>> Use Extended TBD only when HW supports it (i82558 and up).
>>
>> Added assertions to guard from such buffer overflow
>> Introduce the MAX_TCB_BYTE_COUNT macro
>> Allocate buf big enough as HW needs (MAX_ETH_FRAME_SIZE -> MAX_TCB_BYTE_COUNT)
>>
>>
>> I don't feel 100% OK with the "s->device >= i82558B" condition
>> since it relies on the numeric (hex) value of those defines, which currently
>> is correct, but changes (which I don't forsee now) might break it.
>
> It seems this was applied. Unfortunately this breaks things on FreeBSD.
> There seem to be multiple issues.
> First, the intel document says the 82551, 82550, 82559 models are all
> supersets of the 82558. Or in other words: they all support this
> feature.
> Only the 82557 does not.
> But then even for that the FreeBSD driver will fail.
> The reason for that is this line:
>     eeprom_contents[0xa] = 0x4000;
> the value here must be 0x01000 for all 82557 models it seems.

 Correct the logic of determining devices that supports
 extended TxCB: only the 82557 do not support it.

Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agomv from strdup to qemu_strdup in qemu-option.c
Jean-Christophe DUBOIS [Wed, 2 Sep 2009 22:37:00 +0000 (00:37 +0200)]
mv from strdup to qemu_strdup in qemu-option.c

one place is using strdup() instead of qemu_strdup

Fix it

Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agomv strdup to qemu_strdup in vl.c
Jean-Christophe DUBOIS [Wed, 2 Sep 2009 21:59:06 +0000 (23:59 +0200)]
mv strdup to qemu_strdup in vl.c

There are few places in vl.c not using the qemu version of
malloc/free/strdup.

Fix it.

Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agofix vl.c compilation if CONFIG_KVM is not defined
Jean-Christophe DUBOIS [Wed, 2 Sep 2009 21:59:04 +0000 (23:59 +0200)]
fix vl.c compilation if CONFIG_KVM is not defined

vl.c will not link if CONFIG_KVM is not defined.

This patch fixes the problem.

Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agofix PATH_MAX conditional compilation
Jean-Christophe DUBOIS [Wed, 2 Sep 2009 21:59:02 +0000 (23:59 +0200)]
fix PATH_MAX conditional compilation

PATH_MAX is used elsewhere in the qemu source tree without protection.

In addtion the actual code would not compile if PATH_MAX is not defined

Last the free() call is wrong as p is not malloc()ed.

Signed-off-by: Jean-Christophe Dubois <jcd@tribudubois.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoeepro100: Clean code which sets the PCI device id
Stefan Weil [Tue, 1 Sep 2009 20:16:10 +0000 (22:16 +0200)]
eepro100: Clean code which sets the PCI device id

* Use function pci_config_set_device_id
* Use new macro PCI_DEVICE_ID_INTEL_82557

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqemu-io: Improve portability (win32 now supported).
Stefan Weil [Mon, 31 Aug 2009 20:16:16 +0000 (22:16 +0200)]
qemu-io: Improve portability (win32 now supported).

* Add missing include for struct timeval.
* Replace non-portable strsep by local qemu_strsep.
* Use POSIX basename by including libgen.h.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoFix spelling in comment.
Stefan Weil [Mon, 31 Aug 2009 19:42:16 +0000 (21:42 +0200)]
Fix spelling in comment.

The company which made Virtual PC was Connectix.
They use the magic string "conectix" in their disk images.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev: convert tcx to reset + vmsd
Gerd Hoffmann [Tue, 1 Sep 2009 07:56:15 +0000 (09:56 +0200)]
qdev: convert tcx to reset + vmsd

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev: integrate vmstate
Gerd Hoffmann [Tue, 1 Sep 2009 07:56:14 +0000 (09:56 +0200)]
qdev: integrate vmstate

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev: convert rtl8139 to reset
Gerd Hoffmann [Tue, 1 Sep 2009 07:56:13 +0000 (09:56 +0200)]
qdev: convert rtl8139 to reset

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev: integrate reset
Gerd Hoffmann [Tue, 1 Sep 2009 07:56:12 +0000 (09:56 +0200)]
qdev: integrate reset

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev/scsi+usb: convert usb-storage to qdev.
Gerd Hoffmann [Mon, 31 Aug 2009 12:24:05 +0000 (14:24 +0200)]
qdev/scsi+usb: convert usb-storage to qdev.

Full coverage with properties and everything.  You can add virtual usb
sticks this way now:

  -drive if=none,id=pendrive,path=/some/where
  -device usb-storage,drive=pendrive

-usbdevice disk:/path/to/image continues to work.

Other side effects:
usb storage is listed in 'info block' now.
kvm tree should be able to boot from usb via extboot (untested though).

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev/scsi: add scsi bus support to qdev, convert drivers.
Gerd Hoffmann [Mon, 31 Aug 2009 12:24:04 +0000 (14:24 +0200)]
qdev/scsi: add scsi bus support to qdev, convert drivers.

* Add SCSIBus.
 * Add SCSIDeviceInfo, move device callbacks here.
 * add qdev/scsi helper functions.
 * convert drivers.

Adding scsi disks via -device works now, i.e. you can do:

 -drive id=sda,if=none,...
 -device lsi
 -device scsi-disk,drive=sda

legacy command lines (-drive if=scsi,...) continue to work.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev/usb: convert ohci.
Gerd Hoffmann [Mon, 31 Aug 2009 12:24:03 +0000 (14:24 +0200)]
qdev/usb: convert ohci.

Drop num_ports argument for usb_ohci_init_pci(), everybody
calls it with num_ports == 3, so it is pointless.

Convert ohci pci device into qdev.
TODO: convert non-pci ohci adapters.

You can add a OHCI USB Controller to your virtual pc now using
'-device pci-ohci'.  Specifying a id is a good idea, so you can
attach usb devices to it, like this:

  -device pci-ohci,id=ohci
  -device usb-mouse,bus=ohci.0

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev/usb: convert uhci.
Gerd Hoffmann [Mon, 31 Aug 2009 12:24:02 +0000 (14:24 +0200)]
qdev/usb: convert uhci.

Hookup pci device into qdev.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev/usb: add some convinience aliases.
Gerd Hoffmann [Mon, 31 Aug 2009 12:24:01 +0000 (14:24 +0200)]
qdev/usb: add some convinience aliases.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev/usb: make qemu aware of usb busses.
Gerd Hoffmann [Mon, 31 Aug 2009 12:24:00 +0000 (14:24 +0200)]
qdev/usb: make qemu aware of usb busses.

Move usb code from vl.c to usb-bus.c and make it use the new data
structures added by qdev conversion.  qemu usb core should be able
to handle multiple USB busses just fine now (untested though).

Kill some usb_*_init() legacy functions, use usb_create_simple()
instead.

Kill some FIXMEs added by the first qdev/usb patch.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev/usb: add usb bus support to qdev, convert drivers.
Gerd Hoffmann [Mon, 31 Aug 2009 12:23:59 +0000 (14:23 +0200)]
qdev/usb: add usb bus support to qdev, convert drivers.

* Add USBBus.
 * Add USBDeviceInfo, move device callbacks here.
 * Add usb-qdev helper functions.
 * Switch drivers to qdev.

TODO:
 * make the rest of qemu aware of usb busses and kill the FIXMEs
   added by this patch.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoqdev: add error message to qdev_device_add().
Gerd Hoffmann [Mon, 31 Aug 2009 12:23:58 +0000 (14:23 +0200)]
qdev: add error message to qdev_device_add().

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoallow passing null machine pointer to drive_init().
Gerd Hoffmann [Mon, 31 Aug 2009 12:23:57 +0000 (14:23 +0200)]
allow passing null machine pointer to drive_init().

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agosavevm: Convert loadvm handlers list to LIST
Juan Quintela [Tue, 1 Sep 2009 00:12:33 +0000 (02:12 +0200)]
savevm: Convert loadvm handlers list to LIST

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoAdd LIST_FOREACH_SAFE() definition
Juan Quintela [Tue, 1 Sep 2009 00:12:32 +0000 (02:12 +0200)]
Add LIST_FOREACH_SAFE() definition

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agosavevm: Convert savevm handlers list to TAILQ
Juan Quintela [Tue, 1 Sep 2009 00:12:31 +0000 (02:12 +0200)]
savevm: Convert savevm handlers list to TAILQ

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: CIRRUS_HOOK_* is not used anymore
Juan Quintela [Mon, 31 Aug 2009 14:07:33 +0000 (16:07 +0200)]
cirrus_vga: CIRRUS_HOOK_* is not used anymore

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_write_cr() cirrus_vga_write_cr()
Juan Quintela [Mon, 31 Aug 2009 14:07:32 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_write_cr() cirrus_vga_write_cr()

Simplify the logic to do everything inside the function.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_read_cr() cirrus_vga_read_cr()
Juan Quintela [Mon, 31 Aug 2009 14:07:31 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_read_cr() cirrus_vga_read_cr()

Simplify the logic to do everything inside the function.  Return 0xff if index is out of range independetly of DEBUG_CIRRUS

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_write_gr() cirrus_vga_write_gr()
Juan Quintela [Mon, 31 Aug 2009 14:07:30 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_write_gr() cirrus_vga_write_gr()

Simplify the logic to do everything inside the function.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_read_gr() cirrus_vga_read_gr()
Juan Quintela [Mon, 31 Aug 2009 14:07:29 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_read_gr() cirrus_vga_read_gr()

Simplify the logic to do everything inside the function.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_write_palette() cirrus_vga_write_palette()
Juan Quintela [Mon, 31 Aug 2009 14:07:28 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_write_palette() cirrus_vga_write_palette()

Simplify the logic to do everything inside the function

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_read_palette() cirrus_vga_read_palette()
Juan Quintela [Mon, 31 Aug 2009 14:07:27 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_read_palette() cirrus_vga_read_palette()

Simplify the logic to do everything inside the function

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_write_sr() cirrus_vga_write_sr()
Juan Quintela [Mon, 31 Aug 2009 14:07:26 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_write_sr() cirrus_vga_write_sr()

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: rename cirrus_hook_read_sr() cirrus_vga_read_sr()
Juan Quintela [Mon, 31 Aug 2009 14:07:25 +0000 (16:07 +0200)]
cirrus_vga: rename cirrus_hook_read_sr() cirrus_vga_read_sr()

And make it a real function

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: Rename last VGAState occurrences to VGACommonState
Juan Quintela [Mon, 31 Aug 2009 14:07:24 +0000 (16:07 +0200)]
vga: Rename last VGAState occurrences to VGACommonState

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga and cirrus_vga: substitute switch for equivalent assigntment
Juan Quintela [Mon, 31 Aug 2009 14:07:23 +0000 (16:07 +0200)]
vga and cirrus_vga: substitute switch for equivalent assigntment

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: make cirrus_read_hidden_dac() return its result
Juan Quintela [Mon, 31 Aug 2009 14:07:22 +0000 (16:07 +0200)]
cirrus_vga: make cirrus_read_hidden_dac() return its result

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: change tabs to spaces
Juan Quintela [Mon, 31 Aug 2009 14:07:21 +0000 (16:07 +0200)]
vga: change tabs to spaces

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: Add a VGACommonState local var to cirrus_vga_ioport_{read, write}
Juan Quintela [Mon, 31 Aug 2009 14:07:20 +0000 (16:07 +0200)]
cirrus_vga: Add a VGACommonState local var to cirrus_vga_ioport_{read, write}

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga and cirrus_vga: create vga_ioport_invalid() and use it everywhere
Juan Quintela [Mon, 31 Aug 2009 14:07:19 +0000 (16:07 +0200)]
vga and cirrus_vga: create vga_ioport_invalid() and use it everywhere

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: split vga-isa-mm.o
Juan Quintela [Mon, 31 Aug 2009 14:07:18 +0000 (16:07 +0200)]
vga: split vga-isa-mm.o

It is only used in mips softmmu, compile only there.
it_shift field was only used for vga_isa_mm, move it from VGACommonState
to ISAVGAMMstate.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: export vga_mem_{read,write}
Juan Quintela [Mon, 31 Aug 2009 14:07:17 +0000 (16:07 +0200)]
vga: export vga_mem_{read,write}

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: split isa bits inco vga-isa.c
Juan Quintela [Mon, 31 Aug 2009 14:07:16 +0000 (16:07 +0200)]
vga: split isa bits inco vga-isa.c

Adjust all the VGAState in VGACommonState
Compile vga-isa.o in the targets that use it

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: split pci bits into vga-pci.c
Juan Quintela [Mon, 31 Aug 2009 14:07:15 +0000 (16:07 +0200)]
vga: split pci bits into vga-pci.c

Adjust all the VGAState in VGACommonState
Compile vga-pci.o only for targets that use it.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: split vga_{load, save} into pci and common parts
Juan Quintela [Mon, 31 Aug 2009 14:07:14 +0000 (16:07 +0200)]
vga: split vga_{load, save} into pci and common parts

Once there adjust VGAState <-> VGACommonState
Export vga_common_save/vga_common_load (nreeded by wmvare_vga
Remove vga.pci_dev field, it is not needed anymore

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: export vga_ioport_{read,write}
Juan Quintela [Mon, 31 Aug 2009 14:07:13 +0000 (16:07 +0200)]
vga: export vga_ioport_{read,write}

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agocirrus_vga: prefix vga_ioport_{read, write} with cirrus
Juan Quintela [Mon, 31 Aug 2009 14:07:12 +0000 (16:07 +0200)]
cirrus_vga: prefix vga_ioport_{read, write} with cirrus

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agovga: remove useless cast from void *
Juan Quintela [Mon, 31 Aug 2009 14:07:11 +0000 (16:07 +0200)]
vga: remove useless cast from void *

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agoUSB: use opaque parameter passing for monitor handle
Blue Swirl [Mon, 7 Sep 2009 19:00:18 +0000 (19:00 +0000)]
USB: use opaque parameter passing for monitor handle

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoSparc64: use ISA bus for i8042
Blue Swirl [Sun, 6 Sep 2009 16:34:18 +0000 (16:34 +0000)]
Sparc64: use ISA bus for i8042

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoSparc64: remove unused variables
Blue Swirl [Sun, 6 Sep 2009 16:32:34 +0000 (16:32 +0000)]
Sparc64: remove unused variables

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoMake ioport default tables const
Blue Swirl [Sun, 6 Sep 2009 16:32:13 +0000 (16:32 +0000)]
Make ioport default tables const

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoFix indentation
Blue Swirl [Sun, 6 Sep 2009 16:31:58 +0000 (16:31 +0000)]
Fix indentation

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoWhen targeting PPU use rlwinm instead of andi. if possible
malc [Sun, 6 Sep 2009 02:31:09 +0000 (06:31 +0400)]
When targeting PPU use rlwinm instead of andi. if possible

andi. is microcoded and slow there.

Signed-off-by: malc <av1474@comtv.ru>
15 years agoChecks in select_soundhw were never intended to accept abbreviations
malc [Sun, 6 Sep 2009 02:49:03 +0000 (06:49 +0400)]
Checks in select_soundhw were never intended to accept abbreviations

Signed-off-by: malc <av1474@comtv.ru>
15 years agoFix Sparse warnings: add "static"
Blue Swirl [Sat, 5 Sep 2009 10:14:07 +0000 (10:14 +0000)]
Fix Sparse warnings: add "static"

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoesp: handle "select without attention"
Artyom Tarasenko [Sat, 5 Sep 2009 06:24:47 +0000 (06:24 +0000)]
esp: handle "select without attention"

Up to now "select without attention" was handled the same way as
"select with attention". According to

http://www.ibiblio.org/pub/historic-linux/early-ports/Sparc/NCR/NCR53C9X.txt

select without ATN sends the CDB (Command Descriptor Block) directly,
whereas select with ATN sends one message phase byte
followed by 6, 10, or 12 command phase bytes.

The attached patch implements the behaviour described above.

Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
[blauwirbel@gmail.com: cleaned up formatting]
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoInclude sys-queue.h early to override system queue definitions on BSD
Blue Swirl [Fri, 4 Sep 2009 17:47:09 +0000 (17:47 +0000)]
Include sys-queue.h early to override system queue definitions on BSD

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoShuffle lines to avoid gcc 3 warning about redundant redeclaration
Blue Swirl [Fri, 4 Sep 2009 17:43:37 +0000 (17:43 +0000)]
Shuffle lines to avoid gcc 3 warning about redundant redeclaration

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
15 years agoBring pcbios, seabios, and vgabios into the tree as git submodules. Right now,
Anthony Liguori [Fri, 4 Sep 2009 15:13:29 +0000 (10:13 -0500)]
Bring pcbios, seabios, and vgabios into the tree as git submodules.  Right now,
they aren't integrated into the build but we can do that incrementally.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
15 years agomips malta: Fix fdc regression and use qdev for i8042 setup
Stefan Weil [Fri, 28 Aug 2009 17:37:00 +0000 (19:37 +0200)]
mips malta: Fix fdc regression and use qdev for i8042 setup

8baf73adf664e79eae201c3f618078a220a661d9 (qdev/isa: convert fdc)
breaks MIPS Malta:

Tried to create isa device isa-fdc with no isa bus present

Fix this by creating an isa bus for piix4.
This change also requires some more qdev related changes
(similar changes were applied to pc.c) and allows
cleaning of piix3/piix4 code.

Thanks to Gerd Hoffmann for his hints.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>