In linux kernel v2.6.33, sm501 frame buffer driver modified to support
2D graphics engine on sm501 chip. One example is "fill rectangle" operation.
But current qemu's sm501 emulation doesn't support it. This results in
graphics console disturbance.
This patch introduces sm501 2D graphics engine emulation and solve this problem.
Add SM501 2D hardware engine support.
- Add 2D engine register set read/write handlers.
- Support 'fill rectangle'. Other operations are left for future work.
- Update SM501 support status comment.
Signed-off-by: Shin-ichiro KAWASAKI <kawasaki@juno.dti.ne.jp> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Anthony Liguori [Tue, 11 May 2010 12:56:30 +0000 (07:56 -0500)]
Update SeaBIOS
- 7d09d0e Fix virtio compile errors on various gcc versions.
- 89acfa3 Support for booting from virtio disks
- 6d66316 smbios: avoid counting io hole as ram
- e5cd945 Fix error causing USB HID "boot" protocol to not be enabled.
- 0e88576 Add support for USB mice.
- dd5a8a6 When USB keyboard active, don't send keyboard commands to ps2 port.
- 5718d56 Document usb-hid.c functions.
- e438b0c Further parallelize init when using CONFIG_THREAD_OPTIONROMS.
- f59b5ac Handle unknown function addresses in tools/checkstack.py.
- 9ba1dea Simplify build by manually resolving external symbols in layoutrom.py.
- 698d3f9 USB EHCI should yield() whil waiting for controller to ack reset.
- f9a774c Add __attribute__((__malloc__)) declaration to internal malloc funcs.
- b7045ce Minor - remove redundant check from ata_try_dma.
- 67f6d37 Fix possible unitialized variable issue in usb msc.
- a7eb8fc Some improvements to optionrom preemption support.
- d28b0fe Refactor USB hub code.
- ba28541 Prep version for next release.
- 12bffd5 Update version to 0.6.0.
- 87ab2fb Improve USB EHCI timing.
- d705e5a Disable inlining on old compilers.
- bca0736 Force use of indirect function calls in inline assembler.
- d7eb27e Don't move EBDA while an optionrom is running (CONFIG_THREAD_OPTIONROMS).
- 7415270 Call to int1552 (from int1346) should set regs->dl.
- 9dc243e Adjust debug levels of device discovery.
- d9c9361 Default CONFIG_COREBOOT_FLASH on; make depend on CONFIG_COREBOOT.
- c35e1e5 Restore segment limits in handle_1589 code.
- 11cc662 Extend time for rtc to be ready.
- 4ed378a Backup and restore registers when calling out to user funcs.
- 68c5139 Enable irqs in kbd/clock calls that caller might "spin" on.
- f628244 Process event on ps2 keyboard irq even if event already read.
- a5d8458 Revert "Unify ps2 port data processing."
- b9ed5e2 Handle variable length return of ps2 port GETID command.
- 67a9eec Prevent ps2 irqs from messing up ps2 init.
- 6704cf9 Revert "Rework disabling of ps2 port irqs."
- 808939c Fix smp cpu detect on gcc 4.5.
- a979c1c Improvements to tools/checkstack.py.
- 190cc62 Add USB EHCI controller support.
- 0770d67 Some USB UHCI and OHCI fixes and cleanups.
- bfe7ca7 Minor - USB OHCI interrupt queue should be one larger.
- 09e2f7c Reduce size of USB 'struct uhci_td'.
- 406fad6 Dynamically allocate USB controller structures.
- 4547eb9 Replace USB encoded 'u32 endp' scheme with explicit struct fields.
- 8ebcac0 Further parallelize USB init by launching a thread per usb port.
- e908665 Introduce simple "mutex" locking code.
- 3b79f8b Only compile usb-hub.c and paravirt.c with 32bit code.
- 357bdfa Prefer passing a USB "pipe" structure over a USB endp encoding.
- 7fb8ba8 Add a generic "internal error" warning function.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Stefan Weil [Wed, 12 May 2010 18:34:39 +0000 (20:34 +0200)]
target-sparc: Fix wrong printf argument
cpu_get_ccr() returns a target_ulong, so a type cast is needed to avoid
wrong output on big endian hosts. We could also use TARGET_FMT_lx,
but that would print 8 instead of 2 digits.
Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
On AMD some bits from 1.EDX are reported in 80000001.EDX. The mask used
to copy bits from 1.EDX to 80000001.EDX is incorrect resulting in
unsupported features passed into a guest.
Gleb Natapov [Mon, 10 May 2010 08:21:34 +0000 (11:21 +0300)]
Do not stop VM if emulation failed in userspace.
Continue vcpu execution in case emulation failure happened while vcpu
was in userspace. In this case #UD will be injected into the guest
allowing guest OS to kill offending process and continue.
Jan Kiszka [Tue, 4 May 2010 12:21:03 +0000 (14:21 +0200)]
lsi: Handle removal of selected devices
We must not store references to selected devices as they may be
hot-removed. Instead, look up the device based on its tag right before
using it. If the device disappeared, throw an interrupt and disconnect.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Tue, 4 May 2010 12:21:02 +0000 (14:21 +0200)]
lsi: Adjust some register reset values
According to the LSI spec, the reset value of dcmd, dstat, and ctest2
were wrong, and sdid as well as ssid require zero initialization. There
are surely more discrepancies, this is just another increment.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Tue, 4 May 2010 12:21:01 +0000 (14:21 +0200)]
lsi: Purge message queue on reset
Declare the input message queue empty and initialize the related state
machine properly on controller reset. This fixes unrecoverable errors
when the controller was reset during ongoing requests.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Tue, 4 May 2010 12:21:00 +0000 (14:21 +0200)]
scsi-disk: Clear aiocb on read completion
Once the I/O completion callback returned, aiocb will be released by the
controller. So we have to clear the reference not only in
scsi_write_complete, but also in scsi_read_complete. Otherwise we risk
inconsistencies when a reset hits us before the related request is
released.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Tue, 4 May 2010 12:20:59 +0000 (14:20 +0200)]
SCSI: Add disk reset handler
Ensure that pending requests of an SCSI disk are purged on system reset
and also restore max_lba. The latter is no only present in the reset
handler as that one is called after init as well.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Implement the "functions may be omitted with NULL pointer"
interface mentioned in the function block comment by transforming
NULL entries in the read/write arrays into calls to the
unassigned_mem family of functions.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl [Fri, 7 May 2010 16:14:59 +0000 (16:14 +0000)]
sparc64: fix build with older gccs
Fix errors missed in 2065061ede22d401aae2ce995c3af54db9d28639:
CC sparc64-softmmu/helper.o
cc1: warnings being treated as errors
/src/qemu/target-sparc/helper.c: In function 'get_physical_address':
/src/qemu/target-sparc/helper.c:426: warning: 'context' may be used uninitialized in this function
/src/qemu/target-sparc/helper.c:426: note: 'context' was declared here
exec.c has a comment 'XXX: optimize' for lduw_phys/stw_phys,
so let's do it, along the lines of stl_phys.
The reason to address 16 bit accesses specifically is that virtio relies
on these accesses to be done atomically, using memset as we do now
breaks this assumption, which is reported to cause qemu with kvm
to read wrong index values under stress.
Paul Brook [Wed, 5 May 2010 15:32:59 +0000 (16:32 +0100)]
Remove PAGE_RESERVED
The usermode PAGE_RESERVED code is not required by the current mmap
implementation, and is already broken when guest_base != 0.
Unfortunately the bsd emulation still uses the old mmap implementation,
so we can't rip it out altogether.
When -d cpu logging was handled by target-foo/translate.c,
it was controled by DEBUG_DISAS, which is enabled by default.
Use the same condition in cpu_exec.
At the same time, reduce the if-deffery by assuming no flags
update is required for the target.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Anthony Liguori [Tue, 4 May 2010 13:28:13 +0000 (08:28 -0500)]
vnc: make sure to send pointer type change event on SetEncodings
Commit 37c34d9d5d87ea9d51760310c8863b82cb8c055a introduced a regression when
using relative mouse mode with a client that understands the PointerTypeChange
pseudo-encoding.
Reported-by: Marcelo Tosatti <mtosatti@redhat.com> Reported-by: Gerhard Wiesinger <lists@wiesinger.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
updated version of an old patch
http://xenon.stanford.edu/~eswierk/misc/qemu-linuxbios/qemu-piix-ram-size.patch
that together with
http://www.mail-archive.com/linuxbios@linuxbios.org/msg02390.html
(which is already in coreboot trunk) allows coreboot to autodetect the amount of RAM within qemu/kvm from a register in i440 northbridge.
The message on the old patch states:
Unfortunately the current version of qemu does not set these
registers, but I have patched qemu so that it emulates the i440 more
faithfully in this regard.
Signed-off-by: Bernhard M. Wiedemann <qemudevbmw@lsmod.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
block: read-only: open cdrom as read-only when using monitor's change command
Current code of monitor command: 'change', used to open file for read-write
uncoditionally. Change to open it as read-only for CDROM, and read-write for all others.
Signed-off-by: Naphtali Sprei <nsprei@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
With three different make binaries I have available, configuring a
pristine QEMU tree and attempting to make gives the cryptic:
Makefile:27: *** missing separator. Stop.
This patch fixes it (presumably because it makes the output of
`set-vpath' be an empty string, rather than a bit of whitespace), but I
don't understand why this hasn't been a problem for other folks before.
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
It's emitted when the Virtual Machine resumes execution.
We currently have the STOP event but don't have the matching
RESUME one, this means that clients are notified when the VM
is stopped but don't get anything when it resumes.
Let's fix that as it's already causing some trouble to libvirt.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
virtio-9p: Create a syntactic shortcut for the file-system pass-thru
Currently the commandline to create a virtual-filesystem pass-through between
the guest and the host is as follows:
#qemu -fsdev fstype,id=ID,path=path/to/share \
-device virtio-9p-pci,fsdev=ID,mount_tag=tag \
This patch provides a syntactic short-cut to achieve the same as follows:
#qemu -virtfs fstype,path=path/to/share,mount_tag=tag
This will be internally expanded as:
#qemu -fsdev fstype,id=tag,path=path/to/share, \
-device virtio-9p-pci,fsdev=tag,mount_tag=tag \
Signed-off-by: Gautham R Shenoy <ego@in.ibm.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Thu, 29 Apr 2010 12:14:47 +0000 (17:44 +0530)]
virtio-9p: Add minimal set of FileOperations
Add minimal set of FileOperations and the corresponding implementations for
local fstype. These will be required for the FID management patches later on.
[aneesh.kumar@linux.vnet.ibm.com: rpath fix ] Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This patch creates a new command line option named -fsdev to hold any file
system specific information.
The option will currently hold the following attributes:
-fsdev fstype id=id,path=path_to_share
where
fstype: Type of the file system.
id: Identifier used to refer to this fsdev
path: The path on the host that is identified by this fsdev.
[aneesh.kumar@linux.vnet.ibm.com: Abstraction using FsContext] Signed-off-by: Gautham R Shenoy <ego@in.ibm.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Stefan Berger [Sat, 24 Apr 2010 12:54:07 +0000 (08:54 -0400)]
Fix the RARP protocol ID
The packet(s) sent out after migration are supposed to be RAPR type of
packets. If they are supposed to go anywhere useful, the RAPR ethernet
identifier needs to be fix.
Also see http://www.iana.org/assignments/ethernet-numbers for 0x8035 for
RARP.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Thu, 29 Apr 2010 16:24:43 +0000 (18:24 +0200)]
Fix tiny leak in qemu_opts_parse
qemu_opts_create duplicates the id we pass in case it shall be stored in
the opts. So we do not need to dup it in qemu_opts_parse, leaking a few
bytes this way.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Jan Kiszka [Fri, 30 Apr 2010 12:06:13 +0000 (14:06 +0200)]
lsi: Properly initialize controller state on reset
The LSI controller was lacking a system reset handler. Simply invoke the
existing soft reset handler in this case. This also allows to drop its
explicit invocation during init.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Alex Williamson [Fri, 30 Apr 2010 21:21:11 +0000 (15:21 -0600)]
Fix boot once option
The boot once options seems to have gotten broken since it originally
went in. We need to wait until the second time restore_boot_devices()
gets called before restoring the standard boot order and removing itself
from the reset list.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
-- Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Corentin Chary [Mon, 3 May 2010 12:31:34 +0000 (14:31 +0200)]
vnc: split encoding in specific files
This will allow to implement new encodings (tight, zrle, ..)
in a cleaner way. This may hurt performances, because some
functions like vnc_convert_pixel are not static anymore, but
should not be a problem with gcc 4.5 and the new -flto.
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Corentin Chary [Mon, 3 May 2010 12:31:18 +0000 (14:31 +0200)]
vnc: Fix compile error on x86_64 with -D_VNC_DEBUG=1
cc1: warnings being treated as errors
vnc-auth-sasl.c: In function ‘vnc_client_write_sasl’:
vnc-auth-sasl.c:50: error: format ‘%d’ expects type ‘int’, but argument 4 has type ‘size_t’
vnc-auth-sasl.c:50: error: format ‘%d’ expects type ‘int’, but argument 5 has type ‘size_t’
make: *** [vnc-auth-sasl.o] Error 1
Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Kevin Wolf [Thu, 29 Apr 2010 12:47:48 +0000 (14:47 +0200)]
qemu-img rebase: Fix output image corruption
qemu-img rebase must always give clusters in the COW file priority over those
in the backing file. As it failed to use number of non-allocated clusters but
assumed the maximum, it was possible that allocated clusters were taken from
the backing file instead, leading to a corrupted output image.