Change bochs bios init order
For multiboot support, we need bochs_bios_init to happen beforeload_linux, so we get the fw_cfg device.
Signed-off-by: Alexander Graf <agraf@suse.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
net: Provide VLAN client lookup helper
Introduce qemu_find_vlan_client_by_name for VLANClientState lookup basedon VLAN ID and client name. This is useful for monitor commands.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu/virtio: virtio save/load bindings
Implement bindings for virtio save/load. Use them in virtio pci.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu/pci: add pci_get/set_byte
Add pci_get/set_byte to keep *_word and *_long access functions company.They are unused for now.
qemu/net: request 3 vectors in virtio-net
Request up to 3 vectors in virtio-net. Actual bindings might supplyless.
qemu/net: flag to control the number of vectors a nic has
Add an option to specify the number of MSI-X vectors for PCI NIC cards. Thiscan also be used to disable MSI-X, for compatibility with old qemu. Thisoption currently only affects virtio cards.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>...
Add serial number support for virtio_blk
[brought forward to current qemu-kvm.git]
This patch implements the missing qemu logic tointerpret a '-drive .. serial=XYZ ..' flag fora virtio_blk device.
The serial number string is contained in askeletal IDENTIFY DEVICE data structure and...
qemu/pci: make default_write_config use mask table
Change much of hw/pci to use symbolic constants and a table-drivendesign: add a mask table with writable bits set and readonly bits unset.Detect change by comparing original and new registers.
This makes it easy to support capabilities where read-only/writeable...
qemu/pci: helper routines for pci access
Add inline routines for convenient access to pci deviceswith correct (little) endianness. Will be used by MSI-X support.
qemu/pci: add routines to manage PCI capabilities
Add routines to manage PCI capability list. First user will be MSI-X.
qemu/pci: check constant registers on load
Add "cmask" table of constant register masks: if a bit is not writeableand is set in cmask table, this bit is checked on load. An attempt toload an image that would change such a register causes load to fail....
qemu/pci: MSI-X support functions
Add functions implementing MSI-X support. First user will be virtio-pci.Note that platform must set a flag to declare MSI supported: thisis a safety measure to avoid breaking platforms which should supportMSI-X but currently lack this in the interrupt controller emulation....
qemu/apic: minimal MSI/MSI-X implementation for PC
Implement MSI support in APIC. Note that MSI and MMIO APIC registersare at the same memory location, but actually not on the global bus: MSIis on PCI bus, APIC is connected directly to the CPU. We map them on the...
qemu/virtio: virtio support for many interrupt vectors
Extend virtio to support many interrupt vectors, and rearrange code inpreparation for multi-vector support (mostly move reset out to bindings,because we will have to reset the vectors in transport-specific code)....
qemu/virtio: MSI-X support in virtio PCI
This enables actual support for MSI-X in virtio PCI.First user will be virtio-net.
sparc64 follow pci_nic_init change
sun4u.c: correct pci_nic_init arguments followingcommit 5607c38820366954c38dd702e979499486057481
Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
virtio-net: implement async packet sending
Signed-off-by: Mark McLoughlin <markmc@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
vmware_vga: clean up
use NULL instead of 0 for pci_register_device() argumentfor consistency. Any other caller uses NULL.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Fix do_pci_register_device() to reject devfn already in use
Signed-off-by: Markus Armbruster <armbru@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Support addr=... in option argument of -net nic
Make net_client_init() accept addr=, put the value into structNICinfo. Use it in pci_nic_init(), and remove arguments bus anddevfn.
Don't support addr= in third argument of monitor command pci_add,because that clashes with its first argument. Admittedly unelegant....
Make first argument of monitor command pci_add work
Simply pass the PCI address through qemu_pci_hot_add_nic() topci_nic_init() and through qemu_pci_hot_add_storage() to pci_create().
Before, pci_device_hot_add() passed along the PCI bus to use, andignored any user-specified slot....
Support addr=... in option argument of -drive if=virtio
Make drive_init() accept addr=, put the value into struct DriveInfo.Use it in all the places that create virtio-blk-pci devices:pc_init1(), bamboo_init(), mpc8544ds_init().
Don't support addr= in third argument of monitor command pci_add and...
Don't register cpu reset handler for cpu with APIC.
APIC reset handler already resets cpu, no need to reset it twice.Also register cpu_reset handler directly to make it impossible toadd additional code to main_cpu_reset() by mistake.
Signed-off-by: Gleb Natapov <gleb@redhat.com>...
Handle init/sipi in a main cpu exec loop. (v2)
This should fix compilation problem in case of CONFIG_USER_ONLY.
Currently INIT/SIPI is handled in the context of CPU that sends IPI.This patch changes this to handle them like all other events in a maincpu exec loop. When KVM will gain thread per vcpu capability it will...
acpi.c: make qemu_system_device_hot_add piix independent.
introruce piix4_device_hot_add() for piix4 specific codeand make qemu_system_device_hot_add() generic.
virtio-net: enable mergeable receive buffers
When virtio-net was merged in from qemu-kvm.git, the VNET_HDR relatedfeatures were dropped from the code.
However, VIRTIO_NET_F_MRG_RXBUF appears to have accidentally beendropped too. Re-instate that now.
Reported-by: Michael S. Tsirkin <mst@redhat.com>...
Make nic option rom loading less painful.
The code how it is today, is totally painful to read and keep.To begin with, the code is duplicated with the option rom loadingcode that linux_boot and vga are already using.
This patch introduces a "bootable" state in NICInfo structure,...
virtio: make vring_desc_*() take phys addrs
Change the vring descriptor helpers to take the physicaladdress of the descriptor table rather than a virtqueue.
This is needed in order to allow these helpers to be usedwith an indirect descriptor table.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>...
virtio: add support for indirect ring entries
Support a new feature flag for indirect ring entries. These are ringentries which point to a table of buffer descriptors.
The idea here is to increase the ring capacity by allowing a largereffective ring size whereby the ring size dictates the number of...
Add pci_bus_reset() function.
To reset internal irq handling data structures.
Signed-off-by: Gleb Natapov <gleb@redhat.com>Signed-off-by: Yaniv Kamay <ykamay@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Restore consistent formatting of audio devices
xilinx-eth: Remove debug print.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Don't set IRQs on device reset and loadvm/savevm
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Call piix4_reset() on system reset.
Also zero pci_irq_levels on reset to avoid stuck irq after reset.
Based on 15a1956af94e36105494f782a752698103addf63 by Gleb Natapov.
Call piix3_reset() on system reset.
Signed-off-by: Gleb Natapov <gleb@redhat.com>Signed-off-by: Yaniv Kamay <ykamay@redhat.com>
Register usb-uhci reset function.
The device is not reset on system reset currently.Without this patch RHEL4.8 hangs after reboot if -usbdevice tableis in use.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Revert "Update irqs on reset and device load"
This reverts commit 3dcd219f09d6c1817bf9a132899e6b925f7a0914.
It is incorrect to call qemu_irq functions (or any other functions thataccess other device state) during savevm/loadvm.
Allow user to specify CPU model
Fix vga_screen_dump_blank() PPM generation
vga_screen_dump_blank() was not generating a valid PPM file: the width of theimage made no sense (why it was multiplied by sizeof(uint32_t)?), and there wasonly one sample per pixel, instead of three.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>...
Prevent CD-ROM media eject while device is locked
Section 10.8.25 ("START/STOP UNIT Command") of SFF-8020i states thatif the device is locked we should refuse to eject if the device islocked.
ASC_MEDIA_REMOVAL_PREVENTED is the appropriate return in this case....
pci: add define for communication class devices
Signed-off-by: Amit Shah <amit.shah@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
lsi53c895a: Implement write access to DMA Byte Counter
Adds CASE_SET_REG24 and fixes the following errors:
lsi_scsi: error: Unhandled writeb 0x24 = 0x0lsi_scsi: error: Unhandled writeb 0x25 = 0x0
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
virtio blk: fix warning.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Rename pci_register_io_region() to pci_register_bar()
This function is used to manage a PCI BAR, so make the more genericpci_register_io_region() available to other uses.
Signed-off-by: Avi Kivity <avi@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
lsi53c895a: Implement Scratch Byte Register
Fixes the following errors:
lsi_scsi: error: Unhandled writeb 0x3a = 0x0lsi_scsi: error: readb 0x3a
lsi53c895a: Implement read and write access to DMA Next Address
lsi_scsi: error: Unhandled writeb 0x28 = 0x0lsi_scsi: error: Unhandled writeb 0x29 = 0x0lsi_scsi: error: Unhandled writeb 0x2a = 0x0lsi_scsi: error: Unhandled writeb 0x2b = 0x0...
Remove io_index argument from cpu_register_io_memory()
The parameter is always zero except when registering the three internalio regions (ROM, unassigned, notdirty). Remove the parameter to reducethe API's power, thus facilitating future change.
Signed-off-by: Avi Kivity <avi@redhat.com>...
qdev: Fix regression in "pci_add ... storage if=virtio, ..."
qemu_pci_hot_add_storage() runs qdev_init() twice. Broken in commit07e3af9a "Virtio-blk qdev conversion".
Incorporate changes from v2 of Gleb's RTC reset patch
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
etrax: Don't pass CPUState to peripherals.
Add rtc reset function.
On reset:Periodic Interrupt Enable (PIE) bit is cleared to zeroAlarm Interrupt Enable (AIE) bit is cleared to zeroUpdate ended Interrupt Flag (UF) bit is cleared to zeroInterrupt Request status Flag (IRQF) bit is cleared to zero...
Add static to local machine declaration.
Variable akitapda_machine is only used locally,so the static attribute avoids a compiler warning.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Don't use cpu_index as apic_id.
(patch is on top of "Apic creation should not depend on pci" series)
Currently cpu_index is used as cpu apic id on x86. This is incorrectsince apic ids not have to be continuous (they can also encode cpuhierarchy information). This patch uses cpuid_apic_id for initial apic id...
Apic creation should not depend on pci
It should depend on whether cpu has APIC.
Signed-off-by: Gleb Natapov <gleb@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Add -no-virtio-balloon command-line option
This new option may be used to disable the virtio-balloon device.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Fix SDL include path.
SDL header files can be included in two different ways:
The 1st alternative is simple and works in many cases.
The 2nd alternative needs sdl-config to get thecorrect compiler flags. It is the recommended way...
Avoid a gcc 3 format warning
Avoid gcc 4.4 warning about uninitialized field
Fix signedness problems
xen nic: check tx queue after connect.
Needed for savevm/loadvm + migration: In that case the queue mightalready have packets on (re-)connect. The guest wouldn't notify usbecause notifications are only sent when stuffing a packet into anempty queue....
include inttypes.h in xen.h
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
xen: adapt to qemu_machine changes
xen_disk: move sanity check to the correct place
ETRAX: DMA fixes for 64bit hosts.
Mainly to remove warnings.
ETRAX: Correct PIC creation for the bare FS board.
qdev: move name+size into DeviceInfo (v2)
Rationale: move device information from code to data structures.
v2: Adapt the drivers missed in the first version.
Fix stellaris ethernet
Revert bogus part of e3f5ec2b(pass VLANClientState* as first arg to receive handlers)
Signed-off-by: Paul Brook <paul@codesourcery.com>
Fix xilinx_ethlite breakage by 4f1c942b7f
Namely the new xilinx_ethlite used by mircoblaze.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Merge branch 'net-queue'
Fix Sparse warning
Remove unused and misnamed field and variable
Update irqs on reset and device load
Register reset functions for e1000 and rtl8139
virtio-net: implement rx packet queueing
If we don't have room to receive a packet, we return zerofrom virtio_net_receive() and call qemu_flush_queued_packets()as soon as space becomes available.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
virtio-net: Add version_id 7 placeholder for vnet header support
Signed-off-by: Alex Williamson <alex.williamson@hp.com>Signed-off-by: Mark McLoughlin <markmc@redhat.com>
virtio-net: Use a byte to store RX mode flags
There's no need to save 4 bytes for promisc and allmulti.Use one byte each just to avoid the overhead of a bitmap.
virtio-net: reorganize receive_filter()
Reorganize receive_filter to better handle the split betweenunicast and multicast filtering. This allows us to skip thebroadcast check on unicast packets and leads to more opportunitiesfor optimization.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>...
virtio-net: Fix MAC filter overflow handling
Overloading the promisc and allmulti flags for indicating filtertable overflow makes it difficult to track the actual requestedoperating mode. Split these out into separate flags.
virtio-net: MAC filter optimization
The MAC filter table is received from the guest as two separatebuffers, one with unicast entries, the other with multicastentries. If we track the index dividing the two sets, we canavoid searching the part of the table with the wrong type of...
virtio-net: Add new RX filter controls
Add a few new RX modes to better control the receive_filter. Theseare all fairly obvious features that hardware could provide.
virtio-net: Increase filter and control limits
Increase the size of the perfect filter table and control queue depth.This should give us more headroom in the MAC filter and is known to beneeded by at least one guest user. Increasing the control queue depth...
net: Improve parameter error reporting
As host network devices can also be instantiated via the monitor, errorsshould then be reported to the related monitor instead of stderr. Thisrequires larger refactoring, so this patch starts small with introducing...
net: add fd_readv() handler to qemu_new_vlan_client() args
This, apparently, is the style we prefer - all VLANClientStateshould be an argument to qemu_new_vlan_client().
net: re-name vc->fd_read() to vc->receive()
VLANClientState's fd_read() handler doesn't read from filedescriptors, it adds a buffer to the client's receive queue.
Re-name the handlers to make things a little less confusing.
net: pass VLANClientState* as first arg to receive handlers
Give static type checking a chance to catch errors.
net: add return value to packet receive handler
This allows us to handle queue full conditions rather than droppingthe packet on the floor.
qdev: c99 initilaizers for bus_type_names
xen nic: use XC_PAGE_SIZE instead of PAGE_SIZE.
xen nic: use qemu_malloc
xen: net backend doesn't need linux headers.
Drop them to make qemu build on OpenSolaris.
Cc: Andreas Färber <andreas.faerber@web.de>Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Fix typo
qdev: add monitor command to dump the tree.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Paul Brook <paul@codesourcery.com>
Record device property types
Record device property types, and provide a list of properties at deviceregistration time.
Add a "device" property type that holds a reference to annother device.
Remove ARM NVIC initialization hack
The ARMv7-M NVIC device pokes itself into the CPU state. Now we have aproper device model we can have the CPU/SoC code do this.
qdev: kill DeviceState->name
is redundant with DeviceState->type->name
microblaze: Fix loading of petalogix s3adsp1800 dtb.
Provide a petalogix-s3adsp1800.dtb blob.Correct loading of the petalogix dtb.
Stellaris qdev conversion
Implement multiple samplers on stellaris ADC
Use relative path for bios
Look for bios and other support files relative to qemu binary, rather thana hardcoded prefix.