aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-02-23target-alpha: Fix gdb access to fpcr and unique.Richard Henderson
cpu_gdb_read/write_register need to access the fpcr via the cpu_alpha_load/store_fpcr functions. The unique register is number 66 in the gdb remote protocol. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-02-23Fix OpenBSD linker warningBlue Swirl
helper.o(.text+0x11e0): In function `listflags': /src/qemu/target-i386/helper.c:661: warning: sprintf() is often misused, please use snprintf() Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-23Fix i386-bsd-user buildBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-23Fix mingw32 buildBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-23Simplify qemu_realloc()Markus Armbruster
No functional change. Bonus: looks just like qemu_malloc() now. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-02-23pc-bios: update to latest SeabiosAnthony Liguori
- 0360e8e Seabios e820 reservation portion v3 - 7149fc8 Initial support for booting from USB drives. - 3c160dd Introduce helper functions for finding USB end-points. - 9571439 USB UHCI cleanups. - a4bd919 Minor - arrange struct drive_s to clarify field roles. - dac46b1 Fix off by one error in strtcpy. - d2d1de0 Don't require a valid physical cylinders/heads/spt for logical mapping. - 76977b2 Move common "command data block" functions to new file blockcmd.c. - d7e998f Dynamically allocate each drive_g with malloc_fseg(). - 525be69 Add *.pyc to .gitignore. - 7d70025 Add common "block command" definitions and update cdrom code. - 68caaa7 Optimize ntohl() code. - 42157c8 Minor - sort ATA CMD definitions. - 54671c1 Initial support for USB hubs. - 7852331 Minor - increase debug level of some USB debug statements. - ba94a68 Don't leave USB UHCI ports disabled for extended time during reset. - 49a0aa6 Don't parallelize USB OHCI root port reset. - cfdc13f Introduce standard warnings for allocation failures and timeouts. - 8bbc79c Add symbolic definitions for USB delays. - 991eaff Support USB interrupt schedules on OHCI and UHCI. - 59c7574 Add some ASSERT32FLAT() to help compiler eliminate dead code. - e1920be seabios: acpi: fix memory leak in build_srat(). - 84a4d4b Support USB keyboard auto-repeat. - bf7f1f3 mptable: Pull cpuid_signature/features setting out of loop. - 6f702dd Rework disabling of ps2 port irqs. - 2d3f0f5 Go back to using 0xf0000000 for PCI memory start. - 41c0957 Read APIC version from APIC instead of using a hard-coded value. - 7a98fd0 Work around bochs floppy issue with wait_irq(). - 4d07902 Add CONFIG_ATA_DMA option; default to off for now. - 3012af1 Fix PkgLength calculation for the SSDT. - 92a5742 Add explicit Program Headers to linker scripts. - 6fc91b2 Prep version for next release. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23fix 'i' format handling in memory dumpGleb Natapov
It was broken by 09b9418c6d0. (!env && !is_physical) != (!is_physical) when env is true. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23rewrote timer implementation for rtl8139.Frediano Ziglio
Add a QEMU timer only when needed (timeout status not set, timeout irq wanted and timer set). This patch is required for Darwin. Patch has been tested under FreeBSD, Darwin and Linux. Signed-off-by: Frediano Ziglio <freddy77@gmail.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23qcow2: Fix image creation regressionKevin Wolf
When checking for errors, commit db89119d compares with the wrong values, failing image creation even when there was no error. Additionally, if an error has occured, we can't preallocate the image (it's likely broken). This unbreaks test 023 of qemu-iotests. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23qcow2: More checks for qemu-img checkKevin Wolf
Implement some more refcount block related checks Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23qcow2: Rewrite alloc_refcount_block/grow_refcount_tableKevin Wolf
The current implementation of alloc_refcount_block and grow_refcount_table has fundamental problems regarding error handling. There are some places where an I/O error means that the image is going to be corrupted. I have found that the only way to fix this is to completely rewrite the thing. In detail, the problem is that the refcount blocks itself are allocated using alloc_refcount_noref (to avoid endless recursion when updating the refcount of the new refcount block, which migh access just the same refcount block but its allocation is not yet completed...). Only at the end of the refcount allocation the refcount of the refcount block is increased. If an error happens in between, the refcount block is in use, but has a refcount of zero and will likely be overwritten later. The new approach is explained in comments in the code. The trick is basically to let new refcount blocks describe their own refcount, so their refcount will be automatically changed when they are hooked up in the refcount table. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23qcow2: Factor next_refcount_table_size outKevin Wolf
When the refcount table grows, it doesn't only grow by one entry but reserves some space for future refcount blocks. The algorithm to calculate the number of entries stays the same with the fixes, so factor it out before replacing the rest. As Juan suggested take the opportunity to simplify the code a bit. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23declare saved_env_reg as volatilePaolo Bonzini
This ensures that the compiler does not move it away from the "env = env1;" assignment. Fixes a miscompilation on gcc 4.4, reported by Jay Foad. Cc: <jay.foad@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23target-mips: fix ROTR and DROTR by zeroNathan Froyd
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-02-23target-mips: fix CpU exception for coprocessor 0Nathan Froyd
When we signal a CpU exception for coprocessor 0, we should indicate that it's for coprocessor 0 instead of coprocessor 1. Signed-off-by: Nathan Froyd <froydnj@codesourcery.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-02-23target-mips: remove useless sign extensionAurelien Jarno
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-02-23Fix qemu_eventfd compile when !CONFIG_EVENTFDAvi Kivity
Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-23ARM CP15 tls fixPaul Brook
Fix temporary handling in cp15 tls register load/store. Signed-off-by: Paul Brook <paul@codesourcery.com>
2010-02-22Merge remote branch 'qemu-kvm/uq/master' into stagingAnthony Liguori
2010-02-22Add cpu model configuration support..john cooper
This is a reimplementation of prior versions which adds the ability to define cpu models for contemporary processors. The added models are likewise selected via -cpu <name>, and are intended to displace the existing convention of "-cpu qemu64" augmented with a series of feature flags. A primary motivation was determination of a least common denominator within a given processor class to simplify guest migration. It is still possible to modify an arbitrary model via additional feature flags however the goal here was to make doing so unnecessary in typical usage. The other consideration was providing models names reflective of current processors. Both AMD and Intel have reviewed the models in terms of balancing generality of migration vs. excessive feature downgrade relative to released silicon. This version of the patch replaces the prior hard wired definitions with a configuration file approach for new models. Existing models are thus far left as-is but may easily be transitioned to (or may be overridden by) the configuration file representation. Proposed new model definitions are provided here for current AMD and Intel processors. Each model consists of a name used to select it on the command line (-cpu <name>), and a model_id which corresponds to a least common denominator commercial instance of the processor class. A table of names/model_ids may be queried via "-cpu ?model": : x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron) x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron) x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron) x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7) x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2) x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2) : Also added is "-cpu ?dump" which exhaustively outputs all config data for all defined models, and "-cpu ?cpuid" which enumerates all qemu recognized CPUID feature flags. The pseudo cpuid flag 'check' when added to the feature flag list will warn when feature flags (either implicit in a cpu model or explicit on the command line) would have otherwise been quietly unavailable to a guest: # qemu-system-x86_64 ... -cpu Nehalem,check warning: host cpuid 0000_0001 lacks requested flag 'sse4.2|sse4_2' [0x00100000] warning: host cpuid 0000_0001 lacks requested flag 'popcnt' [0x00800000] A similar 'enforce' pseudo flag exists which in addition to the above causes qemu to error exit if requested flags are unavailable. Configuration data for a cpu model resides in the target config file which by default will be installed as: /usr/local/etc/qemu/target-<arch>.conf The format of this file should be self explanatory given the definitions for the above six models and essentially mimics the structure of the static x86_def_t x86_defs. Encoding of cpuid flags names now allows aliases for both the configuration file and the command line which reconciles some Intel/AMD/Linux/Qemu naming differences. This patch was tested relative to qemu.git. Signed-off-by: john cooper <john.cooper@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-22add close callback for tty-based char deviceDavid Ahern
v1 -> v2 coding style changes Add a tty close callback. Right now if a guest device that is connected to a tty-based chardev in the host is removed, the tty is not closed. With this patch it is closed. Example use case is connecting an emulated USB serial cable in the guest to ttyS0 of the host using the monitor command: usb_add serial::/dev/ttyS0 and then removing the device with: usb_del serial::/dev/ttyS0 Signed-off-by: David Ahern <daahern@cisco.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-22Fix lost serial TX interrupts. Report receive overruns.Justin T. Gibbs
o Implement receive overrun status. The FreeBSD uart driver relies on this status in it's probe routine to determine the size of the FIFO supported. o As per the 16550 spec, do not overwrite the RX FIFO on an RX overrun. o Do not allow TX or RX FIFO overruns to increment the data valid count beyond the size of the FIFO. o For reads of the IIR register, only clear the "TX holding register emtpy interrupt" if the read reports this interrupt. This is required by the specification and avoids losing TX interrupts when other, higher priority interrupts (usually RX) are reported first. Signed-off-by: Justin T. Gibbs <gibbs@FreeBSD.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-23tcg/ppc: Fix typomalc
Signed-off-by: malc <av1474@comtv.ru>
2010-02-22apc_pci: simplify using rwhandlerMichael S. Tsirkin
Use rwhandler to simplify apb_pci. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-22apb_pci: minor cleanupMichael S. Tsirkin
pci_data_write ignores high 8 bit in address, so there seems to be no need to set them in apb_pci. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-22Update OpenBIOS images to r683Blue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-22Fix arm-softmmu compileBlue Swirl
cc1: warnings being treated as errors /src/qemu/hw/pl181.c: In function 'pl181_fifo_run': /src/qemu/hw/pl181.c:185: error: 'value' may be used uninitialized in this function Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-22tcg/ppc64: Use C90 style commentsmalc
Signed-off-by: malc <av1474@comtv.ru>
2010-02-22tcg/ppc: Implement some of the optional opsmalc
Signed-off-by: malc <av1474@comtv.ru>
2010-02-22kvm-all.c: define smp_wmb and use it for coalesced mmioMarcelo Tosatti
Acked-by: "Michael S. Tsirkin" <mst@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
2010-02-22tcg: fix build on 32-bit hppa, ppc and sparc hostsJay Foad
The qemu_ld32s op is only defined if TCG_TARGET_REG_BITS == 64. Signed-off-by: Jay Foad <jay.foad@gmail.com> Signed-off-by: malc <av1474@comtv.ru>
2010-02-22PL181 write fixPaul Brook
The PL181 data transfer loop incorrectly terminates after the last FIFO word is popped, discarding the last 3 bytes of data on a write transfer. Signed-off-by: Paul Brook <paul@codesourcery.com>
2010-02-22kvm: remove pre-entry exit_request check with iothread enabledMarcelo Tosatti
With SIG_IPI blocked vcpu loop exit notification happens via -EAGAIN from KVM_RUN. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
2010-02-22kvm: consume internal signal with sigtimedwaitMarcelo Tosatti
Change the way the internal qemu signal, used for communication between iothread and vcpus, is handled. Block and consume it with sigtimedwait on the outer vcpu loop, which allows more precise timing control. Change from standard signal (SIGUSR1) to real-time one, so multiple signals are not collapsed. Set the signal number on KVM's in-kernel allowed sigmask. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
2010-02-22kvm specific wait_io_eventMarcelo Tosatti
In KVM mode the global mutex is released when vcpus are executing, which means acquiring the fairness mutex is not required. Also for KVM there is one thread per vcpu, so tcg_has_work is meaningless. Add a new qemu_wait_io_event_common function to hold common code between TCG/KVM. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
2010-02-22block SIGCHLD in vcpu thread(s)Marcelo Tosatti
Otherwise a vcpu thread can run the sigchild handler causing waitpid() from iothread to fail. Signed-off-by: Marcelo Tosatti <mtosa...@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
2010-02-21Allow const QemuOptDescBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-21kvm: Kill CR3_CACHE feature referencesJes Sorensen
Remove all references to KVM_CR3_CACHE as it was never implemented. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
2010-02-21kvm: Fix eflags corruption in kvm modeJan Kiszka
This should explain a lot of the weird breakages of upstream KVM we've seen recently (actually we should have seen it much earlier): Stop translating eflags into TCG format when in kvm mode as we never translate it back and rather sync this broken state into the kernel. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
2010-02-20cris: Add CRISv10 gdbstub support.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-02-20cris: Mask interrupts on dslots for CRISv10.Edgar E. Iglesias
CRISv10 cores (unlike v32) do not take any interrupts while delayed jumps are pending (delay slots). Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-02-20microblaze: Improve brk emulation.Edgar E. Iglesias
brk insns while in user mode raise priv insn exceptions. This commit makes gdbserver work on linux guests. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2010-02-20microblaze: Dont segfault when singlestepping first insn.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2010-02-20target-sparc: fix --enable-debug buildJay Foad
Use 32-bit arithmetic for the address offset calculation to fix a build failure on 32-bit hosts. Signed-off-by: Jay Foad <jay.foad@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-20tcg: fix assertion with --enable-debugJay Foad
On 32-bit hosts op_qemu_ld32s is unused. Remove it to fix the following assertion failure: qemu-alpha: tcg/tcg.c:1055: tcg_add_target_add_op_defs: Assertion `tcg_op_defs[op].used' failed. Signed-off-by: Jay Foad <jay.foad@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-20Don't compile rwhandler.c for user targetsBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-20tcg: Add comments for all optional instructions not implemented.Richard Henderson
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-20tcg-sparc: Implement ORC.Richard Henderson
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-20tcg-sparc: Implement ANDC.Richard Henderson
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-02-20tcg: Optional target implementation of ORC.Richard Henderson
Previously ORC was always implemented by tcg-op.h with an explicit NOT opcode. Allow a target implementation. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>