Statistics
| Branch: | Revision:

root / hw / spapr.c @ 93148aa5

History | View | Annotate | Download (25.1 kB)

# Date Author Comment
a369da5f 01/22/2012 09:27 am Blue Swirl

vga: improve VGA logic

Improve VGA selection logic, push check for device availabilty to vl.c.
Create the devices at board level unconditionally.

Remove now unused pci_try_create*() functions.

Make PCI VGA devices optional.

Reviewed-by: Jan Kiszka <>...

4d8d5467 01/21/2012 06:17 am Benjamin Herrenschmidt

pseries: SLOF PCI flag day

Currently on the pseries machine the SLOF firmware is used normally,
but we bypass it when -kernel is specified. Having these two

different boot paths can cause some confusion.

In particular at present we need to "probe" the (emulated) PCI bus and...

15f43ccd 01/07/2012 11:01 pm Aurelien Jarno

Merge branch 'ppc-next' of git://repo.or.cz/qemu/agraf

  • 'ppc-next' of git://repo.or.cz/qemu/agraf:
    PPC: Add description for the Freescale e500mc core.
    pseries: Check for duplicate addresses on the spapr-vio bus
    pseries: Populate "/chosen/linux,stdout-path" in the FDT...
c5705a77 01/04/2012 01:34 pm Avi Kivity

vmstate, memory: decouple vmstate from memory API

Currently creating a memory region automatically registers it for
live migration. This differs from other state (which is enumerated
in a VMStateDescription structure) and ties the live migration code
into the memory core....

68f3a94c 01/03/2012 04:49 pm David Gibson

pseries: Populate "/chosen/linux,stdout-path" in the FDT

There is a device tree property "/chosen/linux,stdout-path" which indicates
which device should be used as stdout - ie. "the console".

Currently we don't specify anything, which means both firmware and Linux...

6e806cc3 01/03/2012 04:49 pm Bharata B Rao

pseries: FDT NUMA extensions to support multi-node guests

Add NUMA specific properties to guest's device tree to boot a multi-node
guests. This patch adds the following properties:

ibm,associativity
ibm,architecture-vec-5
ibm,associativity-reference-points...

92c93a81 11/18/2011 03:22 pm David Gibson

pseries: Correct RAM size check for SLOF

The SLOF firmware used on the pseries machine needs a reasonable amount of
(guest) RAM in order to run, so we have a check in the machine init
function to check that this is available. However, SLOF runs in real mode...

d43b45e2 11/11/2011 06:33 pm David Gibson

pseries: Fix initialization of sPAPREnvironment structure

Since we added PCI support to the pseries machine, we include a qlist of
PCI host bridges in the sPAPREnvironment structure. However this list
was never properly initialized it. Somehow we got away with this until...

3384f95c 10/31/2011 05:53 am David Gibson

pseries: Add partial support for PCI

This patch adds a PCI bus to the pseries machine. This instantiates
the qemu generic PCI bus code, advertises a PCI host bridge in the
guest's device tree and implements the RTAS methods specified by PAPR
to access PCI config space. It also sets up the memory regions we...

a7342588 10/30/2011 09:03 pm David Gibson

pseries: Correct vmx/dfp handling in both KVM and TCG cases

Currently, when KVM is enabled, the pseries machine checks if the host
CPU supports VMX, VSX and/or DFP instructions and advertises
accordingly in the guest device tree. It does this regardless of what...

6b7a2cf6 10/30/2011 06:11 pm David Gibson

pseries: Under kvm use guest cpu = host cpu by default

Now that we've implemented -cpu host for ppc, this patch updates the
pseries machine to use the host cpu as the guest cpu by default when
running under KVM. This is important because under KVM Book3S-HV the guest...

e97c3636 10/30/2011 06:11 pm David Gibson

pseries: Support SMT systems for KVM Book3S-HV

Alex Graf has already made qemu support KVM for the pseries machine
when using the Book3S-PR KVM variant (which runs the guest in
usermode, emulating supervisor operations). This code allows gets us
very close to also working with KVM Book3S-HV (using the hypervisor...

354ac20a 10/30/2011 06:11 pm David Gibson

pseries: Allow KVM Book3S-HV on PPC970 CPUS

At present, using the hypervisor aware Book3S-HV KVM will only work
with qemu on POWER7 CPUs. PPC970 CPUs also have hypervisor
capability, but they lack the VRMA feature which makes assigning guest
memory easier....

6659394f 10/30/2011 06:11 pm David Gibson

pseries: Add device tree properties for VMX/VSX and DFP under kvm

Sufficiently recent PAPR specifications define properties "ibm,vmx"
and "ibm,dfp" on the CPU node which advertise whether the VMX vector
extensions (or the later VSX version) and/or the Decimal Floating...

890c2b77 10/17/2011 04:59 pm Avi Kivity

spapr: convert to memory API

Signed-off-by: Avi Kivity <>

e6c866d4 10/06/2011 10:48 am David Gibson

pseries: Refactor spapr irq allocation

Paulo Bonzini changed the original spapr code, which manually assigned irq
numbers for each virtual device, to allocate them automatically from the
device initialization. That allowed spapr virtual devices to be constructed...

68722054 10/06/2011 10:48 am Nishanth Aravamudan

pseries: use macro for firmware filename

For some time we've had a nicely defined macro with the filename for our
firmware image. However we didn't actually use it in the place we're
supposed to. This patch fixes it.

Signed-off-by: Nishanth Aravamudan <>...

a3d0abae 10/06/2011 10:48 am David Gibson

pseries: Implement hcall-bulk hypervisor interface

This patch adds support for the H_REMOVE_BULK hypercall on the pseries
machine. Strictly speaking this isn't necessarym since the kernel will
only attempt to use this if hcall-bulk is advertised in the device tree,...

9dfef5aa 10/06/2011 10:48 am David Gibson

pseries: interrupt controller should not have a 'reg' property

The interrupt controller presented in the device tree for the pseries
machine is manipulated by the guest only through hypervisor calls. It
has no real or emulated registers for the guest to access....

f73a2575 10/06/2011 10:48 am David Gibson

pseries: More complete WIMG validation in H_ENTER code

Currently our implementation of the H_ENTER hypercall, which inserts a
mapping in the hash page table assumes that only ordinary memory is ever
mapped, and only permits mapping attribute bits accordingly (WIMG==0010)....

f61b4bed 10/06/2011 10:48 am Alexander Graf

PPC: Enable to use PAPR with PR style KVM

When running PR style KVM, we need to tell the kernel that we want
to run in PAPR mode now. This means that we need to pass some more
register information down and enable papr mode. We also need to align
the HTAB to htab_size boundary....

0a8b2938 10/06/2011 10:48 am Alexander Graf

PPC: SPAPR: Use KVM function for time info

One of the things we can't fake on PPC is the timer speed. So
we need to extract the frequency information from the host and
put it back into the guest device tree.

Luckily, we already have functions for that from the non-pseries...

0c103f8e 10/06/2011 10:48 am David Gibson

pseries: Add a phandle to the xicp interrupt controller device tree node

Future devices we will be adding to the pseries machine (e.g. PCI) will
need nodes in the device tree which explicitly reference the top-level
interrupt controller via interrupt-parent or interrupt-map properties....

277f9acf 10/06/2011 10:43 am Paolo Bonzini

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...

7267c094 08/21/2011 07:01 am Anthony Liguori

Use glib memory allocation and free functions

qemu_malloc/qemu_free no longer exist after this commit.

Signed-off-by: Anthony Liguori <>

41019fec 05/09/2011 11:31 pm Anton Blanchard

pseries: Increase maximum CPUs to 256

The original pSeries machine was limited to 32 CPUs, more or less
arbitrarily. Particularly when we get SMT KVM guests it will be
pretty easy to exceed this. Therefore, raise the max number of CPUs
in a pseries machine guest to 256....

5d73dd66 05/09/2011 11:31 pm David Gibson

Make pSeries 'model' property more closely resemble real hardware

Currently, the qemu emulated pseries machine puts
"qemu,emulated-pSeries-LPAR" in the device tree's root level 'model'
property. Unfortunately this confuses some installers and ybin, which...

b4a78527 05/09/2011 11:31 pm David Gibson

Place pseries vty devices at addresses more similar to existing machines

Currently the qemu pseries machine numbers its virtual serial devices
from 0. However, existing pSeries machines running pHyp number them from
0x30000000.

In theory these indices are arbitrary, since everything necessary for the...

c7a5c0c9 04/08/2011 12:32 pm David Gibson

pseries: Abolish envs array

Currently the pseries machine init code builds up an array, envs, of
CPUState pointers for all the cpus in the system. This is kind of
pointless, given the generic code already has a perfectly good linked list
of the cpus.

In addition, there are a number of places which assume that the cpu's...

a3467baa 04/08/2011 12:32 pm David Gibson

Delay creation of pseries device tree until reset

At present, the 'pseries' machine creates a flattened device tree in the
machine->init function to pass to either the guest kernel or to firmware.

However, the machine->init function runs before processing of -device...

6e270446 04/01/2011 07:34 pm Ben Herrenschmidt

Implement PAPR virtual SCSI interface (ibmvscsi)

This patch implements the infrastructure and hypercalls necessary for
the PAPR specified Virtual SCSI interface. This is the normal method
for providing (virtual) disks to PAPR partitions.

Signed-off-by: Ben Herrenschmidt <>...

ed120055 04/01/2011 07:34 pm David Gibson

Implement PAPR VPA functions for pSeries shared processor partitions

Shared-processor partitions are those where a CPU is time-sliced between
partitions, rather than being permanently dedicated to a single
partition. qemu emulated partitions, since they are just scheduled with...

a9f8ad8f 04/01/2011 07:34 pm David Gibson

Add SLOF-based partition firmware for pSeries machine, allowing more boot options

Currently, the emulated pSeries machine requires the use of the
-kernel parameter in order to explicitly load a guest kernel. This
means booting from the virtual disk, cdrom or network is not possible....

39ac8455 04/01/2011 07:34 pm David Gibson

Implement hcall based RTAS for pSeries machines

On pSeries machines, operating systems can instantiate "RTAS" (Run-Time
Abstraction Services), a runtime component of the firmware which implements
a number of low-level, infrequently used operations. On logical partitions...

821303f5 04/01/2011 07:34 pm David Gibson

Implement assorted pSeries hcalls and RTAS methods

This patch adds several small utility hypercalls and RTAS methods to
the pSeries platform emulation. Specifically:

  • 'display-character' rtas call

This just prints a character to the console, it's occasionally used...

b5cec4c5 04/01/2011 07:34 pm David Gibson

Implement the PAPR (pSeries) virtualized interrupt controller (xics)

PAPR defines an interrupt control architecture which is logically divided
into ICS (Interrupt Control Presentation, each unit is responsible for
presenting interrupts to a particular "interrupt server", i.e. CPU) and...

00dc738d 04/01/2011 07:34 pm David Gibson

Add PAPR H_VIO_SIGNAL hypercall and infrastructure for VIO interrupts

This patch adds infrastructure to support interrupts from PAPR virtual IO
devices. This includes correctly advertising those interrupts in the
device tree, and implementing the H_VIO_SIGNAL hypercall, used to...

0201e2da 04/01/2011 07:34 pm David Gibson

Add (virtual) interrupt to PAPR virtual tty device

Now that we have implemented the PAPR "xics" virtualized interrupt
controller, we can add interrupts in PAPR VIO devices. This patch adds
interrupt support to the PAPR virtual tty/console device.

Signed-off-by: David Gibson <>...

ee86dfee 04/01/2011 07:34 pm David Gibson

Implement TCE translation for sPAPR VIO

This patch implements the necessary infrastructure and hypercalls for
sPAPR's TCE (Translation Control Entry) IOMMU mechanism. This is necessary
for all virtual IO devices which do DMA (i.e. nearly all of them).

Signed-off-by: Ben Herrenschmidt <>...

8d90ad90 04/01/2011 07:34 pm David Gibson

Implement sPAPR Virtual LAN (ibmveth)

This patch implements the PAPR specified Inter Virtual Machine Logical
LAN; that is the virtual hardware used by the Linux ibmveth driver.

Signed-off-by: Paul Mackerras <>
Signed-off-by: David Gibson <>...

b45d63b6 04/01/2011 07:34 pm Ben Herrenschmidt

Implement PAPR CRQ hypercalls

This patch implements the infrastructure and hypercalls necessary for the
PAPR specified CRQ (Command Request Queue) mechanism. This general
request queueing system is used by many of the PAPR virtual IO devices,
including the virtual scsi adapter....

9fdf0c29 04/01/2011 07:34 pm David Gibson

Start implementing pSeries logical partition machine

This patch adds a "pseries" machine to qemu. This aims to emulate a
logical partition on an IBM pSeries machine, compliant to the
"PowerPC Architecture Platform Requirements" (PAPR) document.

This initial version is quite limited, it implements a basic machine...

4040ab72 04/01/2011 07:34 pm David Gibson

Implement the bus structure for PAPR virtual IO

This extends the "pseries" (PAPR) machine to include a virtual IO bus
supporting the PAPR defined hypercall based virtual IO mechanisms.

So far only one VIO device is provided, the vty / vterm, providing
a full console (polled only, for now)....

f43e3525 04/01/2011 07:34 pm David Gibson

Virtual hash page table handling on pSeries machine

On pSeries logical partitions, excepting the old POWER4-style full system
partitions, the guest does not have direct access to the hardware page
table. Instead, the pagetable exists in hypervisor memory, and the guest...