aboutsummaryrefslogtreecommitdiff
path: root/hw
AgeCommit message (Collapse)Author
2010-03-29Compile pflash_cfi01 only onceBlue Swirl
Push TARGET_WORDS_BIGENDIAN dependency to board level. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-29Compile pflash_cfi02 only onceBlue Swirl
Push TARGET_WORDS_BIGENDIAN dependency to board level. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-29Compile acpi only onceBlue Swirl
Use qemu_irqs to trigger CMOS S3 and SMI events. Avoid using kvm.h, which uses CPUState. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-29Move KVM and Xen global flags to vl.cBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-27pflash_cfi02: fix incorrect TARGET_FMT_lx/d useBlue Swirl
Also use target_phys_addr_t for addresses. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-27error: Trim includes after "Move qemu_error & friends..."Markus Armbruster
Missed in commit 2f792016. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-03-27balloon: Fix overflow when reporting actual memory sizeAdam Litke
Beginning with its introduction, the virtio balloon has had an overflow error that causes 'info balloon' to misreport the actual memory size when the balloon itself becomes larger than 4G. Use a cast when converting dev->actual from pages to kB to prevent overflows. Before: (qemu) info balloon balloon: actual=5120 (qemu) balloon 1025 (qemu) info balloon balloon: actual=1025 (qemu) balloon 1024 (qemu) info balloon balloon: actual=5120 After: (qemu) info balloon balloon: actual=5120 (qemu) balloon 1025 (qemu) info balloon balloon: actual=1025 (qemu) balloon 1024 (qemu) info balloon balloon: actual=1024 Signed-off-by: Adam Litke <agl@us.ibm.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-03-27Compile some MIPS devices only onceBlue Swirl
Move CPU specific declarations to a separate file. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-27Fix buildBlue Swirl
Actually some systems don't define PAGE_SIZE. Fixes build breakage by f7736b91c40a617e93505e32dcbd2cb56aad8a23. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-27Compile ide/core only onceBlue Swirl
Make win2k install hack unconditional as it is still restricted to x86 only in vl.c. Replace TARGET_PAGE_SIZE and 4096 with PAGE_SIZE. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-23Fix recent pxa270 serial breakageLars Munch
This fixes a copy/paste bug introduced in commit 2d48377a8531de63ec1d0c4b9b1959dc4b78356c that pushed TARGET_WORDS_BIGENDIAN dependency to board level. Signed-off-by: Lars Munch <lars@segv.dk> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-23pci_host: fix breakageAurelien Jarno
This has been broken by commit 952760bb7bce7fbfe0afcf04fee268745f297b87 Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-03-21Fix Sparc64 buildBlue Swirl
952760bb7bce7fbfe0afcf04fee268745f297b87 missed one change. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-21Compile pci_host only onceBlue Swirl
Convert pci_host_conf_register_mmio_noswap(x) to pci_host_conf_register_mmio(x, 0). Convert pci_host_conf_register_mmio(x) to pci_host_conf_register_mmio(x, 1) for big endian hosts, all cases happen to be BE. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-21Compile usb-ohci only onceBlue Swirl
Push TARGET_WORDS_BIGENDIAN dependency to board level. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-21Compile serial only onceBlue Swirl
Push TARGET_WORDS_BIGENDIAN dependency to board level. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-21Compile isa_mmio only onceBlue Swirl
Push TARGET_WORDS_BIGENDIAN dependency to board level. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-21Move x86 specific PC declarations to a separate fileBlue Swirl
x86 definitions (especially CPUState uses) prevent many files from being compiled within libhw. Move x86 specific declarations (APIC stuff) to a separate file. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-21Revert "Convert atexit users to exit_notifier"Anthony Liguori
This reverts commit d7234f4d7e373a708e1df9ab565a71b71b189025. Conflicts: hw/xen_machine_pv.c This should have never been committed. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-21Fix a typoBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-20Fix a typo which broke Xen buildBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-19Convert atexit users to exit_notifierAnthony Liguori
All of these users have global state so we really don't see a benefit from exit_notifier. However, using exit_notifier means that there's one less justification for having global state in the first place. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-19Rewrite mouse handlers to use QTAILQ and to have an activation functionAnthony Liguori
And convert usb-hid to use it (to avoid regression with bisection) Right now, when we do info mice and we've added a usb tablet, we don't see it until the guest starts using the tablet. We implement this behavior in order to provide a means to delay registration of a mouse handler since we treat the last registered handler as the current handler. This is a usability problem though as we would like to give the user feedback that they've either 1) not added an absolute device 2) there is an absolute device but the guest isn't using it 3) we have an absolute device and it's active. By using QTAILQ and having an explicit activation function that moves the handler to the front of the queue, we can implement the same semantics as before with respect to automatically switching to usb tablet while providing the user with a whole lot more information. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-18Replace assert(0) with abort() or cpu_abort()Blue Swirl
When building with -DNDEBUG, assert(0) will not stop execution so it must not be used for abnormal termination. Use cpu_abort() when in CPU context, abort() otherwise. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-17hw/usb-msd: fix some usb requestsArnaud Patard (Rtp)
The usb-msd device emulation needs some small tweaks in the requests emulations. For instance, the reset/maxlun requests are class/interface specific so requests for them with the type class and recipient interface bits sets have to be handled. Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-17scsi-disk: fix buffer overflowGerd Hoffmann
In case s->version is shorter than 4 bytes we overflow the memcpy src buffer. Fix it by clearing the target buffer, then copy only the amount of bytes we actually have. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-17read-only: Another minor cleanupNaphtali Sprei
Don't rely on CDROM hint for read_only attribute Signed-off-by: Naphtali Sprei <nsprei@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-17disentangle tcg and deadline calculationPaolo Bonzini
Just tell main_loop_wait whether to be blocking or nonblocking, so that there is no need to call qemu_cpus_have_work from the timer subsystem. Instead, tcg_cpu_exec can say "we want the main loop not to block because we have stuff to do". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-17balloon: Do not save VM state wrt asynchronous virtio operationsAdam Litke
When working with the VM state (for loadvm/savevm and migration), it is not valid to load and store pointers since the validity of those pointers cannot be assured in the new qemu address space. Therefore, virtio_balloon_save() and virtio_balloon_load() must not handle the stats-related fields in struct VirtIOBalloon. If a memory stats request is in-flight at the time of a migration or savevm, the request will not complete and should be resubmitted once migration or loadvm completes. Note that this extremely small race window can only be triggered using QMP so it is not possible to hang the user monitor. Signed-off-by: Adam Litke <agl@us.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-17block: add logical_block_size propertyChristoph Hellwig
Add a logical block size attribute as various guest side tools only increase the filesystem sector size based on it, not the advisory physical block size. For scsi we already have support for a different logical block size in place for CDROMs that we can built upon. Only my recent block device characteristics VPD page needs some fixups. Note that we leave the logial block size for CDROMs hardcoded as the 2k value is expected for it in general. For virtio-blk we already have a feature flag claiming to support a variable logical block size that was added for the s390 kuli hypervisor. Interestingly it does not actually change the units in which the protocol works, which is still fixed at 512 bytes, but only communicates a different minimum I/O granularity. So all we need to do in virtio is to add a trap for unaligned I/O and round down the device size to the next multiple of the logical block size. IDE does not support any other logical block size than 512 bytes. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-17Avoid crash on '-usbdevice <device>' without parametersJan Kiszka
Many usbdevice_init implementors assume params is non-NULL. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-17Merge remote branch 'markus/qerror' into stagingAnthony Liguori
2010-03-17Merge remote branch 'mst/pci' into stagingAnthony Liguori
2010-03-17Large page TLB flushPaul Brook
QEMU uses a fixed page size for the CPU TLB. If the guest uses large pages then we effectively split these into multiple smaller pages, and populate the corresponding TLB entries on demand. When the guest invalidates the TLB by virtual address we must invalidate all entries covered by the large page. However the address used to invalidate the entry may not be present in the QEMU TLB, so we do not know which regions to clear. Implementing a full vaiable size TLB is hard and slow, so just keep a simple address/mask pair to record which addresses may have been mapped by large pages. If the guest invalidates this region then flush the whole TLB. Signed-off-by: Paul Brook <paul@codesourcery.com>
2010-03-16monitor: convert do_device_add() to QObjectMarkus Armbruster
2010-03-16monitor: Use argument type 'O' for device_addMarkus Armbruster
While there, improve the params help text.
2010-03-16qemu-option: Move the implied first name into QemuOptsListMarkus Armbruster
We sometimes permit omitting the first option name, for example -device foo is short for -device driver=foo. The name to use ("driver" in the example) is passed as argument to qemu_opts_parse(). For each QemuOptsList, we use at most one such name. Move the name into QemuOptsList, and pass whether to permit the abbreviation. This ensures continued consistency, and simplifies the commit after next in this series.
2010-03-16error: Convert do_device_add() to QErrorMarkus Armbruster
Conversion to QObject is still missing.
2010-03-16Revert "qdev: Use QError for 'device not found' error"Markus Armbruster
This reverts commit 3ced9f7a36189aed94d8bf86f3f5087a53012455. The next commit will convert all of qdev_device_add() to QError, and it'll be clearer with this partial conversion reverted.
2010-03-16qdev: Convert qbus_find() to QErrorMarkus Armbruster
2010-03-16qdev: Relax parsing of bus optionMarkus Armbruster
Treat multiple successive slashes as a one slash. Ignore trailing slashes. This is how POSIX pathnames work.
2010-03-16qdev: convert setting device properties to QErrorMarkus Armbruster
2010-03-16qdev: Hide "ptr" properties from usersMarkus Armbruster
Users can't set them, so qdev_device_help() shouldn't list them. Fix that. Also make qdev_prop_parse() hide them instead of printing a meaningless "has no parser" error message. Their value means nothing to users, so qdev_print_props() shouldn't print it. Fix by removing their print method. Their only use is dirty hacks. Document that.
2010-03-16qdev: Hide "no_user" devices from usersMarkus Armbruster
Users can't create them, so qdev_device_help() shouldn't list them. Fix that. Also make qdev_device_add() pretend they don't exist. Before, it rejected them with a "can't be added via command line" message, which wasn't quite right for monitor command device_add.
2010-03-16qdev: Factor qdev_create_from_info() out of qdev_create()Markus Armbruster
To make it obvious that -device and device_add can't die in hw_error().
2010-03-16qdev: Fix -device and device_add to handle unsuitable bus gracefullyMarkus Armbruster
"device_add isa-serial,bus=pci.0" kills QEMU. Not good.
2010-03-16error: Rename qemu_error_new() to qerror_report()Markus Armbruster
2010-03-16error: Replace qemu_error() by error_report()Markus Armbruster
error_report() terminates the message with a newline. Strip it it from its arguments. This fixes a few error messages lacking a newline: net_handle_fd_param()'s "No file descriptor named %s found", and tap_open()'s "vnet_hdr=1 requested, but no kernel support for IFF_VNET_HDR available" (all three versions). There's one place that passes arguments without newlines intentionally: load_vmstate(). Fix it up.
2010-03-16error: Don't abuse qemu_error() for non-error in scsi_hot_add()Markus Armbruster
Commit 30d335d6 converted an informational message from monitor_printf() to qemu_error(), probably because the latter doesn't need a mon argument. A later commit will make qemu_error() print additional stuff that is only appropriate for proper errors, and then this will break. Clean it up.
2010-03-16error: Don't abuse qemu_error() for non-error in qbus_find()Markus Armbruster
qbus_find() adds an informational line to error messages, and prints both lines with one qemu_error(). Use error_printf() for the informational line instead. While there, simplify: instead of printing buffers filled by qbus_list_bus() and qbus_list_dev() in one go, make them print it.