History | View | Annotate | Download (22.7 kB)
pseries: Implement automatic PAPR VIO address allocation
PAPR virtual IO (VIO) devices require a unique, but otherwise arbitrary,"address" used as a token to the hypercalls which manipulate them.
Currently the pseries machine code does an ok job of allocating these...
pseries: Correctly use the device model reset hooks
Recently we added code to properly clean away VIO CRQs on reset However,this directly uses qemu_register, rather than the existing device modelreset callbacks. This patch cleans this up by adding proper use of the...
pseries: Clean up hcall_dprintf() debugging messages
The pseries machine code has a number of debug messages for debugging PAPRhypercalls, dependent on DEBUG_SPAPR_HCALLS. This patch cleans thesemessages up a bit, by adding func to the hcall_dprintf() macro and...
pseries: Fix bug with reset of VIO CRQs
PAPR specifies a Command Response Queue (CRQ) mechanism used for virtualIO, which we implement. However, we don't correctly clean up registeredCRQs when we reset the system.
This patch adds a reset handler to fix this bug. While we're at it, add...
pseries: Add support for level interrupts to XICS
The pseries "xics" interrupt controller, like most interruptcontrollers can support both message (i.e. edge sensitive) interruptsand level sensitive interrupts, but it needs to know which are which.
When I implemented the xics emulation for qemu, the only devices we...
ppc hw/: Don't use CPUState
Scripted conversion: for file in hw/ppc*.[hc] hw/mpc8544_guts.c hw/spapr*.[hc] hw/virtex_ml507.c hw/xics.c; do sed -i "s/CPUState/CPUPPCState/g" $file done
Signed-off-by: Andreas Färber <afaerber@suse.de>Acked-by: Anthony Liguori <aliguori@us.ibm.com>
qom: Unify type registration
Replace device_init() with generalized type_init().
While at it, unify naming convention: type_init([$prefix_]register_types)Also, type_init() is a function, so add preceding blank line wherenecessary and don't put a semicolon after the closing brace....
qdev: register all types natively through QEMU Object Model
This was done in a mostly automated fashion. I did it in three steps and thenrebased it into a single step which avoids repeatedly touching every file inthe tree.
The first step was a sed-based addition of the parent type to the subclass...
qdev: kill off DeviceInfo
It is no longer used in the tree since everything is done natively throughQEMU Object Model.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
sysbus: apic: ioapic: convert to QEMU Object Model
This converts three devices because apic and ioapic are subclasses of sysbus.Converting subclasses independently of their base class is prohibitively hard.
spapr: convert to QEMU Object Model (v2)
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>---v1 -> v2 - use QOM to check for the default console
qdev: move qdev->info to class
Right now, DeviceInfo acts as the class for qdev. In order to switch to aproper ObjectClass derivative, we need to ween all of the callers off ofinteracting directly with the info pointer.
pseries: Populate "/chosen/linux,stdout-path" in the FDT
There is a device tree property "/chosen/linux,stdout-path" which indicateswhich device should be used as stdout - ie. "the console".
Currently we don't specify anything, which means both firmware and Linux...
pseries: Check for duplicate addresses on the spapr-vio bus
Check that devices on the spapr vio bus aren't given duplicateaddresses. Currently we will not run with duplicate devices, thefdt code will spot it, but the error reporting is not great. Withthis patch we can report the error nicely in terms of the device...
pseries: Remove hcalls callback
For forgotten historical reasons, PAPR hypercalls for specific virtual IOdevices (oh which there are quite a number) are registered via a callbackin the VIOsPAPRDeviceInfo structure.
This is kind of ugly, so this patch instead registers hypercalls from...
pseries: Emit device tree nodes in reg order
Although in theory the device tree has no inherent ordering, in practicethe order of nodes in the device tree does effect the order that devicesare detected by software.
Currently the ordering is determined by the order the devices appear on...
pseries: Fix qdev.id handling in the VIO bus code
When the user creates a device on the command line with -device, theycan specify the id, using id=foo. Currently the VIO bus code overwritesthis id with it's own value. We should only set qdev.id if it is not...
pseries: Fix buggy spapr_vio_find_by_reg()
The spapr_vio_find_by_reg() function in hw/spapr_vio.c is supposed to findthe device structure for a PAPR virtual IO device with the given reg value,and return NULL if none exists.
It does the first ok, but if no device with that reg exists, it just...
Merge branch 'ppc-next' of git://repo.or.cz/qemu/agraf
pseries: Use Book3S-HV TCE acceleration capabilities
The pseries machine of qemu implements the TCE mechanism used as avirtual IOMMU for the PAPR defined virtual IO devices. Because thePAPR spec only defines a small DMA address space, the guest VIOdrivers need to update TCE mappings very frequently - the virtual...
qdev: switch children device list to QTAILQ
SCSI buses will need to read the children list first-to-last. Thisrequires using a QTAILQ, because hell breaks loose if you just tryinserting at the tail (thus reversing the order of all existingvisits from last-to-first to first-to-tail)....
pseries: Refactor spapr irq allocation
Paulo Bonzini changed the original spapr code, which manually assigned irqnumbers for each virtual device, to allocate them automatically from thedevice initialization. That allowed spapr virtual devices to be constructed...
spapr: proper qdevification
Right now the spapr devices cannot be instantiated with -device,because the IRQs need to be passed to the spapr_*_create functions.Do this instead in the bus's init wrapper.
This is particularly important with the conversion from scsi-disk...
spapr: make irq customizable via qdev
This also lets the user see the irq in "info qtree".
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Cc: Alexander Graf <agraf@suse.de>Cc: David Gibson <david@gibson.dropbear.id.au>Signed-off-by: Alexander Graf <agraf@suse.de>
Use glib memory allocation and free functions
qemu_malloc/qemu_free no longer exist after this commit.
Add a PAPR TCE-bypass mechanism for the pSeries machine
Usually, PAPR virtual IO devices use a virtual IOMMU mechanism, TCEs,to mediate all DMA transfers. While this is necessary for some sorts ofoperation, it can be complex to program and slow for others....
Add PAPR H_VIO_SIGNAL hypercall and infrastructure for VIO interrupts
This patch adds infrastructure to support interrupts from PAPR virtual IOdevices. This includes correctly advertising those interrupts in thedevice tree, and implementing the H_VIO_SIGNAL hypercall, used to...
Implement TCE translation for sPAPR VIO
This patch implements the necessary infrastructure and hypercalls forsPAPR's TCE (Translation Control Entry) IOMMU mechanism. This is necessaryfor all virtual IO devices which do DMA (i.e. nearly all of them).
Signed-off-by: Ben Herrenschmidt <benh@kernel.crashing.org>...
Implement PAPR CRQ hypercalls
This patch implements the infrastructure and hypercalls necessary for thePAPR specified CRQ (Command Request Queue) mechanism. This generalrequest queueing system is used by many of the PAPR virtual IO devices,including the virtual scsi adapter....
Implement the bus structure for PAPR virtual IO
This extends the "pseries" (PAPR) machine to include a virtual IO bussupporting the PAPR defined hypercall based virtual IO mechanisms.
So far only one VIO device is provided, the vty / vterm, providinga full console (polled only, for now)....