Statistics
| Branch: | Revision:

root / target-ppc @ c48c6522

# Date Author Comment
7c760cbc 06/09/2012 01:20 pm Andreas Färber

target-ppc: Unbreak kvm_ppc.c build

The file is located in target-ppc/, not hw/.

Signed-off-by: Andreas Färber <>
Cc: Paolo Bonzini <>
Cc: Anthony Liguori <>
Cc: Blue Swirl <>...

fbe37ef3 06/07/2012 10:21 am Paolo Bonzini

build: move other target-*/ objects to nested Makefile.objs

Signed-off-by: Paolo Bonzini <>

9cdc8df3 06/07/2012 08:19 am Paolo Bonzini

build: move libobj-y variable to nested Makefile.objs

Signed-off-by: Paolo Bonzini <>

5e8861a0 06/07/2012 08:17 am Paolo Bonzini

build: move obj-TARGET-y variables to nested Makefile.objs

Also drop duplicate occurrence of device-hotplug.o.

Signed-off-by: Paolo Bonzini <>

b7e516ce 06/05/2012 12:00 am Andreas Färber

Kill off cpu_state_reset()

In commit 1bba0dc932e8826a7d030df3767daf0bc339f9a2 cpu_reset()
was renamed to cpu_state_reset(), to allow introducing a new cpu_reset()
that would operate on QOM objects.

All callers have been updated except for one in target-mips, so drop all...

397b457d 06/05/2012 12:00 am Andreas Färber

target-ppc: Let cpu_ppc_init() return PowerPCCPU

Adapt e500 mpc8544ds machine accordingly.

Turn cpu_init() into a static inline function returning CPUPPCState for
backwards compatibility.

Signed-off-by: Andreas Färber <>
Acked-by: Alexander Graf <>

a7388162 05/01/2012 10:47 pm François Revol

target-ppc: Some support for dumping TLB_EMB TLBs

Add mmubooke_dump_mmu().

TODO: Add printing of individual flags.

Signed-off-by: François Revol <>
[agraf: fix coding style]
Signed-off-by: Alexander Graf <>

892c587f 05/01/2012 10:47 pm Alexander Graf

PPC: Fix up e500 cache size setting

When initializing the e500 code, we need to expose its
cache line size for user and system mode, while the mmu
details are only interesting for system emulation.

Split the 2 switch statements apart, allowing us to #ifdef...

45e45ed2 04/15/2012 07:23 pm Juan Quintela

target-ppc/machine.c: Drop unnecessary ifdefs

machine.c is only compiled for softmmu targets, so checks for
!defined(CONFIG_USER_ONLY) are unnecessary and can be dropped.

Signed-off-by: Juan Quintela <>
[AF: Use more verbose commit message suggested by PMM]...

a5cabbda 04/15/2012 07:09 pm Meador Inge

target-ppc: Init dcache and icache size for e500 user mode

commit f7aa558396dd0f6b7a2b22c05cb503c655854102 pulled the dcache and icache
line size initialization inside of a '#if !defined(CONFIG_USER_ONLY)' block.
This is not correct because instructions like 'dcbz' need the dcache size...

5724753e 04/15/2012 06:33 pm Stefan Weil

target-ppc: Fix type casts for w64 (uintptr_t)

This changes nothing for other hosts.

Signed-off-by: Stefan Weil <>
Signed-off-by: Andreas Färber <>

a1389542 04/15/2012 06:12 pm Andreas Färber

target-ppc: QOM'ify CPU reset

Move code from cpu_state_reset() into ppc_cpu_reset().
Reorder #include of helper_regs.h to use it in translate_init.c.

Adjust whitespace and add braces.

Signed-off-by: Andreas Färber <>
Acked-by: David Gibson <>

6cca7ad6 04/15/2012 06:11 pm Andreas Färber

target-ppc: Start QOM'ifying CPU init

Move code not dependent on ppc_def_t from cpu_ppc_init() into an initfn.

Signed-off-by: Andreas Färber <>
Acked-by: David Gibson <>

1d0cb67d 04/15/2012 06:10 pm Andreas Färber

target-ppc: QOM'ify CPU

Embed CPUPPCState as first member of PowerPCCPU.
Distinguish between "powerpc-cpu", "powerpc64-cpu" and
"embedded-powerpc-cpu".

Let CPUClass::reset() call cpu_state_reset() for now.

Signed-off-by: Andreas Färber <>...

12b1143b 04/15/2012 06:09 pm David Gibson

target-ppc: Add hooks for handling tcg and kvm limitations

On target-ppc, our table of CPU types and features encodes the features as
found on the hardware, regardless of whether these features are actually
usable under TCG or KVM. We already have cases where the information from...

52d631dc 04/15/2012 06:07 pm Mark Cave-Ayland

PPC: Fix TLB invalidation bug within the PPC interrupt handler.

Commit 41557447d30eeb944e42069513df13585f5e6c7f also introduced a subtle TLB
flush bug. By applying a mask to the interrupt MSR which cleared the IR/DR
bits at the start of the interrupt handler, the logic towards the end of the...

e2fbb432 04/15/2012 06:07 pm Andreas Färber

target-ppc: Drop cpu_ppc_close()

It is unused, so avoid QOM'ifying it unneededly.

Signed-off-by: Andreas Färber <>
Acked-by: David Gibson <>

20503968 04/14/2012 05:23 pm Blue Swirl

Use uintptr_t for various op related functions

Use uintptr_t instead of void * or unsigned long in
several op related functions, env->mem_io_pc and
GETPC macro.

Reviewed-by: Stefan Weil <>
Signed-off-by: Blue Swirl <>

5cbdb3a3 04/07/2012 05:00 pm Stefan Weil

Replace Qemu by QEMU in comments

The official spelling is QEMU.

Signed-off-by: Stefan Weil <>
Reviewed-by: Andreas Färber <>
[: fixed comment style in hw/sun4m.c]
Signed-off-by: Blue Swirl <>

eb6ea4b2 03/15/2012 02:12 pm Nathan Whitehorn

PPC: Fix large page support in TCG

Fix large page support in TCG. The old code would overwrite the large page
table entry with the fake 4 KB one generated here whenever the ref/change bits
were updated, causing it to point to the wrong area of memory.

Signed-off-by: Nathan Whitehorn <>...

6bbc5ed1 03/15/2012 02:12 pm Meador Inge

ppc: Correctly define POWERPC_INSNS2_DEFAULT

'POWERPC_INSNS2_DEFAULT' was defined incorrectly which was causing the
opcode table creation code to erroneously register 'eieio' and 'mbar'
for the "default" processor:

  • ERROR: opcode 1a already assigned in opcode table 16...
29979a8d 03/15/2012 02:12 pm Alexander Graf

PPC: KVM: Synchronize regs on CPU dump

When we dump the CPU registers, there's a certain chance they haven't been
synchronized with KVM yet, so we have to manually trigger that.

This aligns the code with x86 and fixes a bug where the register state was
bogus on invalid/unknown kvm exit reasons....

b5aec396 03/15/2012 02:12 pm David Gibson

pseries: Don't try to munmap() a malloc()ed TCE table

For the pseries machine, TCE (IOMMU) tables can either be directly
malloc()ed in qemu or, when running on a KVM which supports it, mmap()ed
from a KVM ioctl. The latter option is used when available, because it...

cd6e9320 03/15/2012 02:12 pm Thomas Huth

PPC64: Add support for ldbrx and stdbrx instructions

These instructions for loading and storing byte-swapped 64-bit values have
been introduced in PowerISA 2.06.

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

2e06214f 03/15/2012 02:12 pm Nathan Whitehorn

PPC: Add PIR register to POWER7 CPU

The POWER7 emulation is missing the Processor Identification Register,
mandatory in recent POWER CPUs, that is required for SMP on at least
some operating systems (e.g. FreeBSD) to function properly. This patch
copies the existing PIR code from the other CPUs that implement it....

9349b4f9 03/14/2012 11:20 pm Andreas Färber

Rename CPUState -> CPUArchState

Scripted conversion:
for file in .[hc] hw/.[hc] hw/kvm/*.[hc] linux-user/*.[hc] linux-user/m68k/*.[hc] bsd-user/*.[hc] darwin-user/*.[hc] tcg/*/*.[hc] target-*/cpu.h; do
sed -i "s/CPUState/CPUArchState/g" $file
done...

1328c2bf 03/14/2012 11:20 pm Andreas Färber

target-ppc: Don't overuse CPUState

Scripted conversion:
sed -i "s/CPUState/CPUPPCState/g" target-ppc/*.[hc]
sed -i "s/#define CPUPPCState/#define CPUState/" target-ppc/cpu.h

Signed-off-by: Andreas Färber <>
Acked-by: Anthony Liguori <>

fc0b2c0f 03/14/2012 11:20 pm Alexander Graf

PPC: 405: Use proper CPU reset

On ppc405ep there is a register that allows for software to reset the
core, but not the whole system. Implement this reset using a reset
interrupt.

This gets rid of a bunch of #if 0'ed code.

Reported-by: Andreas Färber <>...

1bba0dc9 03/14/2012 11:20 pm Andreas Färber

Rename cpu_reset() to cpu_state_reset()

Frees the identifier cpu_reset for QOM CPUs (manual rename).

Don't hide the parameter type behind explicit casts, use static
functions with strongly typed argument to indirect.

Signed-off-by: Andreas Färber <>...

550a82ec 02/28/2012 11:33 pm Stefan Weil

target-ppc: Clean includes

Remove some include statements which are not needed.

Acked-by: Alexander Graf <>
Signed-off-by: Stefan Weil <>

9d4df9c0 02/11/2012 01:03 pm Blue Swirl

ppc: remove unused variables

Fix this error:
/src/qemu/target-ppc/helper.c: In function 'booke206_tlb_to_page_size':
/src/qemu/target-ppc/helper.c:1296:14: error: variable 'tlbncfg' set but not used [-Werror=unused-but-set-variable]

Tested-by: Andreas Färber <>...

a496e8ee 02/02/2012 03:47 am Alexander Graf

PPC: E500: Populate L1CFG0 SPR

When running Linux on e500 with powersave-nap enabled, Linux tries to
read out the L1CFG0 register and calculates some things from it. Passing
0 there ends up in a division by 0, resulting in -1, resulting in badness.

So let's populate the L1CFG0 register with reasonable defaults. That way...

58e00a24 02/02/2012 03:47 am Alexander Graf

PPC: E500: Add doorbell defines

We're going to introduce doorbell instructions (called processor
control in the spec) soon. Add some defines for easier patch
readability later.

Signed-off-by: Alexander Graf <>

3f9f6a50 02/02/2012 03:47 am Alexander Graf

PPC: Add CPU feature for processor control

We're soon going to implement processor control features. Add the
feature flag, so we're well prepared.

Signed-off-by: Alexander Graf <>

a9abd717 02/02/2012 03:47 am Alexander Graf

PPC: Enable doorbell excp handlers

We already had all the code available to have doorbell exceptions
be handled properly. It was just disabled.

Enable it, so we can rely on it.

Signed-off-by: Alexander Graf <>

9e0b5cb1 02/02/2012 03:47 am Alexander Graf

PPC: E500: Implement msgclr

This patch implements the msgclr instruction. It is part of the
Embedded.Processor Control specification and clears pending doorbell
interrupts on the current CPU.

Signed-off-by: Alexander Graf <>

d5d11a39 02/02/2012 03:47 am Alexander Graf

PPC: E500: Implement msgsnd

This patch implements the msgsnd instruction. It is part of the
Embedded.Processor Control specification and allows one CPU to
IPI another CPU without going through an interrupt controller.

Signed-off-by: Alexander Graf <>

8917f4dc 02/02/2012 03:47 am Alexander Graf

PPC: e500mc: Enable processor control

The e500mc implements Embedded.Processor Control, so enable it and
thus enable guests to IPI each other. This makes -smp work with -cpu
e500mc.

Signed-off-by: Alexander Graf <>

a1ef618a 02/02/2012 03:47 am Alexander Graf

PPC: booke: add tlbnps handling

When using MAV 2.0 TLB registers, we have another range of TLB registers
available to read the supported page sizes from.

Add SPR definitions for those and add a helper function that we can use
to receive such a bitmap even when using MAV 1.0....

5935ee07 02/02/2012 03:47 am Alexander Graf

PPC: booke206: Check for min/max TLB entry size

When setting a TLB entry, we need to check if the TLB we're putting it in
actually supports the given size. According to the 2.06 PowerPC ISA, a
value that's out of range can either be redefined to something implementation...

6d3db821 02/02/2012 03:47 am Alexander Graf

PPC: booke206: Implement tlbilx

The PowerPC 2.06 BookE ISA defines an opcode called "tlbilx" which is used
to flush TLB entries. It's the recommended way of flushing in virtualized
environments.

So far we got away without implementing it, but Linux for e500mc uses this...

3f162d11 02/02/2012 03:47 am Alexander Graf

PPC: booke206: Check for TLB overrun

Our internal helpers to fetch TLB entries were not able to tell us
that an entry doesn't even exist. Pass an error out if we hit such
a case to not accidently pass beyond the TLB array.

Signed-off-by: Alexander Graf <>

21a0b6ed 02/02/2012 03:47 am Alexander Graf

PPC: booke206: move avail check to tlbwe

We can have TLBs that only support a single page size. This is defined
by the absence of the AVAIL flag in TLBnCFG. If this is the case, we
currently write invalid size info into the TLB, but override it on
internal fault....

0ef654e3 02/02/2012 03:47 am Alexander Graf

PPC: E500: Add some more excp vectors

Our EXCP list is getting outdated. By now, 3 new exception vectors have
been introduced. Update the list so we have everything at one place.

Signed-off-by: Alexander Graf <>

a31be480 02/02/2012 03:47 am Alexander Graf

PPC: KVM: Update HIOR code to new interface

Unfortunately the HIOR setting code slipped into upstream QEMU
before it was pulled into upstream KVM. And since Murphy is always
right, comments on the patches only emerged on the pull request
leading to changes in the interface....

e9205258 02/02/2012 03:47 am Alexander Graf

PPC: Add IVOR 38-42

Our code only knows IVORs up to 37. Add the new ones defined in ISA 2.06
from 38 - 42.

Signed-off-by: Alexander Graf <>
Reviewed-by: Andreas Färber <>

2c9732db 02/02/2012 03:47 am Alexander Graf

PPC: e500mc: add missing IVORs to bitmap

E500mc supports IVORs 36-41. Add them to the support mask. Drop SPE
support too.

Signed-off-by: Alexander Graf <>

53319166 02/02/2012 03:47 am Alexander Graf

PPC: e500: msync is 440 only, e500 has real sync

The e500 CPUs don't use 440's msync which falls on the same opcode IDs,
but instead use the real powerpc sync instruction. This is important,
since the invalid mask differs between the two.

Signed-off-by: Alexander Graf <>

dcb2b9e1 02/02/2012 03:47 am Alexander Graf

PPC: rename msync to msync_4xx

The msync instruction as defined today is only valid on 4xx cores, not
on e500 which also supports msync, but treats it the same way as sync.

Rename it to reflect that it's 4xx only.

Signed-off-by: Alexander Graf <>

ffba8786 02/02/2012 03:47 am Alexander Graf

PPC: booke206: allow NULL raddr in ppcmas_tlb_check

We might want to call the tlb check function without actually caring about
the real address resolution. Check if we really should write the value
back.

Signed-off-by: Alexander Graf <>

c0a7e81a 01/21/2012 06:17 am Alexander Graf

PPC: Enable 440EP CPU target

Now that we have 440 TLB emulation, we can also support running the 440EP
CPU target in system emulation mode.

Signed-off-by: Alexander Graf <>

6148b23d 01/08/2012 12:59 pm Avi Kivity

kvm: fix build error in ppc kvm due to memory_region_init_ram_ptr() change

Commit c5705a772 ("vmstate, memory: decouple vmstate from memory API") changed
the signature of memory_region_init_ram_ptr() but did not update a caller in
the ppc kvm module. Fix....

f7aa5583 01/03/2012 04:49 pm Varun Sethi

PPC: Add description for the Freescale e500mc core.

This core is found on chips such as p4080, p3041, p2040, and p5020.

More needs to be done to make this viable for TCG (such as missing SPRs
and instructions), but this suffices to get KVM running with appropriate...

157feead 01/03/2012 04:48 pm Liu Yu-B13201

kvm-ppc: halt secondary cpus when guest reset

When guest reset, we need to halt secondary cpus until guest kick them.
This already works for tcg. The patch add the support for kvm.

Signed-off-by: Liu Yu <>
Signed-off-by: Alexander Graf <>...

4e9200a0 01/03/2012 03:49 am Nishanth Aravamudan

PPC: monitor: add ability to dump SLB entries

When run with a PPC Book3S (server) CPU Currently 'info tlb' in the
qemu monitor reports "dump_mmu: unimplemented". However, during
bringup work, it can be quite handy to have the SLB entries, which are
available in the CPUPPCState. This patch adds an implementation of...

4abf79a4 12/02/2011 12:50 pm Dong Xu Wang

fix spelling in target sub directory

Cc: Richard Henderson <>
Cc: Edgar E. Iglesias <>
Cc: Aurelien Jarno <>
Cc: Alexander Graf <>
Cc: Aurelien Jarno <>
Cc: Blue Swirl <>...

ee2b3994 11/11/2011 06:33 pm Sebastian Bauer

PPC: Fix for the gdb single step problem on an rfi instruction

When using gdb to single step a ppc interrupt routine, the execution
flow passes the rfi instruction without actually returning from the
interrupt.

The patch fixes this by avoiding to update the nip when the debug...

02d4eae4 10/31/2011 03:57 am David Gibson

ppc: Alter CPU state to mask out TCG unimplemented instructions as appropriate

The CPU state contains two bitmaps, initialized from the CPU spec
which describes which instructions are implemented on the CPU. A
couple of bits are defined which cover instructions (VSX and DFP)...

98efaf75 10/30/2011 09:03 pm David Gibson

ppc: Fix up usermode only builds

The recent usage of MemoryRegion in kvm_ppc.h breaks builds with
CONFIG_USER_ONLY=y. This patch fixes it.

Signed-off-by: David Gibson <>
Signed-off-by: Alexander Graf <>

70bca53f 10/30/2011 09:03 pm Alexander Graf

KVM: PPC: Override host vmx/vsx/dfp only when information known

The -cpu host feature tries to find out the host capabilities based
on device tree information. However, we don't always have that available
because it's an optional property in dt.

So instead of force unsetting values depending on an unreliable source...

74b41e56 10/30/2011 09:03 pm David Gibson

pseries: Allow writes to KVM accelerated TCE table

Sufficiently recent kernels include a KVM call to accelerate use of
PAPR TCE tables (IOMMU), which are used by PAPR virtual IO devices.
This involves qemu mapping the TCE table in from a kernel obtained fd,...

f0ad8c34 10/30/2011 09:03 pm Alexander Graf

PPC: Disable non-440 CPUs for ppcemb target

The sole reason we have the ppcemb target is to support MMUs that have
less than the usual 4k possible page size. There are very few of these
chips and I don't want to add additional QA and testing burden to everyone...

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

8b242eba 10/30/2011 09:03 pm Alexander Graf

PPC: Bump qemu-system-ppc to 64-bit physical address space

Some 32-bit PPC CPUs can use up to 36 bit of physical address space.
Treat them accordingly in the qemu-system-ppc binary type.

Signed-off-by: Alexander Graf <>

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

ppc: Remove broken partial PVR matching

The ppc target contains a ppc_find_by_pvr() function, which looks up a
CPU spec based on a PVR (that is, based on the value in the target cpu's
Processor Version Register). PVR values contain information on both the...

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

ppc: First cut implementation of -cpu host

For convenience with kvm, x86 allows the user to specify -cpu host on the
qemu command line, which means make the guest cpu the same as the host
cpu. This patch implements the same option for ppc targets.

For now, this just read the host PVR (Processor Version Register) and...

37e305ce 10/30/2011 06:11 pm David Gibson

ppc: Add cpu defs for POWER7 revisions 2.1 and 2.3

This patch adds cpu specs to the table for POWER7 revisions 2.1 and 2.3.
This allows -cpu host to be used on these host cpus.

Signed-off-by: David Gibson <>
Signed-off-by: Alexander Graf <>

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

0f5cb298 10/30/2011 06:11 pm David Gibson

pseries: Use Book3S-HV TCE acceleration capabilities

The pseries machine of qemu implements the TCE mechanism used as a
virtual IOMMU for the PAPR defined virtual IO devices. Because the
PAPR spec only defines a small DMA address space, the guest VIO
drivers need to update TCE mappings very frequently - the virtual...

70560da7 10/30/2011 06:11 pm Fabien Chouteau

Set an invalid-bits mask for each SPE instructions

SPE instructions are defined by pairs. Currently, the invalid-bits mask is set
for the first instruction, but the second one can have a different mask.

example:
GEN_SPE(efdcmpeq, efdcfs, 0x17, 0x0B, 0x00600000, 0x00180000, PPC_SPE_DOUBLE),...

9bc884b7 10/30/2011 06:11 pm David Gibson

ppc: Generalize the kvmppc_get_clockfreq() function

Currently the kvmppc_get_clockfreq() function reads the host's clock
frequency from /proc/device-tree, which is useful to past to the guest
in KVM setups. However, there are some other host properties
advertised in the device tree which can also be relevant to the...

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

ddd1055b 10/06/2011 10:48 am Fabien Chouteau

PPC: booke timers

While working on the emulation of the freescale p2010 (e500v2) I realized that
there's no implementation of booke's timers features. Currently mpc8544 uses
ppc_emb (ppc_emb_timers_init) which is close but not exactly like booke (for
example booke uses different SPR)....

94135e81 10/06/2011 10:48 am Alexander Graf

KVM: PPC: Use HIOR setting for -M pseries with PR KVM

When running with PR KVM, we need to set HIOR directly. Thankfully there
is now a new interface to set registers individually so we can just use that
and poke HIOR into the guest vcpu's HIOR register....

5a576fb3 10/06/2011 10:48 am Fabien Chouteau

Gdbstub: handle read of fpscr

Signed-off-by: Fabien Chouteau <>
Signed-off-by: Alexander Graf <>

93dd5e85 10/06/2011 10:48 am Scott Wood

kvm: ppc: booke206: use MMU API

Share the TLB array with KVM. This allows us to set the initial TLB
both on initial boot and reset, is useful for debugging, and could
eventually be used to support migration.

Signed-off-by: Scott Wood <>...

bebabbc7 10/06/2011 10:48 am Scott Wood

ppc: booke206: add "info tlb" support

Signed-off-by: Scott Wood <>
Signed-off-by: Alexander Graf <>

2bd9543c 10/06/2011 10:48 am Scott Wood

ppc: booke206: use MAV=2.0 TSIZE definition, fix 4G pages

This definition is backward compatible with MAV=1.0 as long as
the guest does not set reserved bits in MAS1/MAS4.

Also, fix the shift in booke206_tlb_to_page_size -- it's the base
that should be able to hold a 4G page size, not the shift count....

697ab892 10/06/2011 10:48 am David Gibson

Implement POWER7's CFAR in TCG

This patch implements support for the CFAR SPR on POWER7 (Come From
Address Register), which snapshots the PC value at the time of a branch or
an rfid. The latest powerpc-next kernel also catches it and can show it in
xmon or in the signal frames....

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

e95a69cb 10/06/2011 10:43 am Alexander Graf

PPC: KVM: Remove kvmppc_read_host_property

We just got rid of the last user of kvmppc_read_host_property, so we
can now safely remove it.

Signed-off-by: Alexander Graf <>

921e28db 10/06/2011 10:43 am Alexander Graf

PPC: KVM: Add stubs for kvm helper functions

We have a bunch of helper functions that don't have any stubs for them in case
we don't have CONFIG_KVM enabled. That didn't bite us so far, because gcc can
optimize them out pretty well, but we should really provide them....

a489f7f7 10/06/2011 10:43 am Alexander Graf

PPC: bamboo: Move host fdt copy to target

We have some code in generic kvm_ppc.c that is only used by 440. Move to
the 440 specific device code.

Signed-off-by: Alexander Graf <>

eadaada1 10/06/2011 10:43 am Alexander Graf

PPC: KVM: Add generic function to read host clockfreq

We need to find out the host's clock-frequency when running on KVM, so
let's export a respective function.

Signed-off-by: Alexander Graf <>


v1 -> v2:

- enable 64bit values
bccd9ec5 10/01/2011 12:31 pm Blue Swirl

softmmu_header: pass CPUState to tlb_fill

Pass CPUState pointer to tlb_fill() instead of architecture local
cpu_single_env hacks.

Signed-off-by: Blue Swirl <>

74e26c17 09/23/2011 06:55 pm Frediano Ziglio

core: remove qemu_service_io

qemu_service_io was mainly an alias to qemu_notify_event,
currently used only by PPC for timer hack, so call
qemu_notify_event directly.

Signed-off-by: Frediano Ziglio <>
Signed-off-by: Anthony Liguori <>

b2bedb21 09/16/2011 04:25 pm Stefan Weil

Remove blanks before \n in output strings

Those blanks violate the coding conventions, see
scripts/checkpatch.pl.

Blanks missing after colons in the changed lines were added.

This patch does not try to fix tabs, long lines and other
problems in the changed lines, therefore checkpatch.pl reports...

542df9bf 08/23/2011 11:24 pm Alexander Graf

PPC: E500: Add ESR bit definitions

The BookE spec specifies a number of ESR bits. Add defines for them
so we can use them later on.

Reported-by: Jason Wessel <>
Signed-off-by: Alexander Graf <>
Signed-off-by: Edgar E. Iglesias <>

27a69bb0 08/23/2011 11:24 pm Alexander Graf

PPC: E500: Inject SPE exception on invalid SPE access

When accessing an SPE instruction despite it being not available,
throw an SPE exception instead of an APU exception. That way the
guest knows what's going on and actually uses SPE.

Reported-by: Jason Wessel <>...

e8906f35 08/23/2011 11:24 pm Alexander Graf

PPC: E500: Set ESR values

When an exception occurs on BookE, we need to set ESR bits to expose
to the guest information on what exactly happened. Add the obvious ones.

Reported-by: Jason Wessel <>
Signed-off-by: Alexander Graf <>...

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

97b348e7 08/07/2011 12:32 pm Blue Swirl

Remove unused is_softmmu parameter from cpu_handle_mmu_fault

Parameter is_softmmu (and its evil mutant twin brother is_softmuu)
is not used in cpu_*_handle_mmu_fault() functions, remove them
and adjust callers.

Acked-by: Richard Henderson <>...

d5ab9713 08/05/2011 06:57 pm Jan Kiszka

Avoid allocating TCG resources in non-TCG mode

Do not allocate TCG-only resources like the translation buffer when
running over KVM or XEN. Saves a "few" bytes in the qemu address space
and is also conceptually cleaner.

Signed-off-by: Jan Kiszka <>...

3e457172 07/30/2011 12:41 pm Blue Swirl

exec.h cleanup

Move softmmu_exec.h include directives from target-*/exec.h to
target-*/op_helper.c. Move also various other stuff only used in
op_helper.c there.

Define global env in dyngen-exec.h.

For i386, move wrappers for segment and FPU helpers from user-exec.c...

f5fc40bb 07/13/2011 12:01 am Peter Maydell

target-alpha, target-ppc: Remove unnecessary setjmp.h include

Remove the include of setjmp.h from the cpu.h of target-alpha
and target-ppc. This is unnecessary because cpu-defs.h already
includes this header; this change brings these two targets
into line with all the rest....

3b886706 07/02/2011 12:12 am Blue Swirl

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

  • 'ppc-next' of git://repo.or.cz/qemu/agraf:
    PPC: move TLBs to their own arrays
    PPC: 440: Use 440 style MMU as default, so Qemu knows the MMU type
    PPC: E500: Use MAS registers instead of internal TLB representation...
2b41f10e 06/26/2011 09:25 pm Blue Swirl

Remove exec-all.h include directives

Most exec-all.h include directives are now useless, remove them.

Signed-off-by: Blue Swirl <>

f081c76c 06/26/2011 09:25 pm Blue Swirl

Move cpu_has_work and cpu_pc_from_tb to cpu.h

Move functions cpu_has_work() and cpu_pc_from_tb() from exec.h to cpu.h. This is
needed by later patches.

Signed-off-by: Blue Swirl <>

f3e27037 06/26/2011 09:25 pm Blue Swirl

exec.h: fix coding style and change cpu_has_work to return bool

Before the next patch, fix coding style of the areas affected.

Change the type of the return value from cpu_has_work() and
qemu_cpu_has_work() to bool.

Signed-off-by: Blue Swirl <>