- 04 Nov, 2014 40 commits
-
-
Alexander Graf authored
On e500 systems most SoCs implement a common GPIO controller that Linux calls the "mpc8xxx" gpio controller. This patch adds an emulation model for this device. Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Bharata B Rao authored
Opcode table has direct, indirect and double indirect handlers, but ppc_cpu_unrealizefn() frees direct handlers which are never allocated and never frees double indirect handlers. Signed-off-by:
Bharata B Rao <bharata@linux.vnet.ibm.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Bharata B Rao authored
Define and use macros instead of direct numbers wherever possible in ppc opcodes table handling code. This doesn't change any code functionality. Signed-off-by:
Bharata B Rao <bharata@linux.vnet.ibm.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Peter Maydell authored
The MemoryRegionOps struct pci4xx_cfgaddr_ops and the read and write functions it references are all unused; remove them. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Pierre Mallard authored
This patch add a new processor type 440x5wDFPU for Virtex 5 PPC440 with an external APU FPU in double precision mode Signed-off-by:
Pierre Mallard <mallard.pierre@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Pierre Mallard authored
This patch remove limitation for fc[tf]id[*] on 32 bits targets and add a new insn flag for signed integer 64 conversion PPC2_FP_CVT_S64 Signed-off-by:
Pierre Mallard <mallard.pierre@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Alexander Graf authored
The in-kernel OpenPIC emulation only supports a single map. However, we map the OpenPIC at 2 locations: The CPU visible one and the PCI visible one. For KVM acceleration, we only care about the first one. To make sure that we only map that first mapping and not the PCI map that happens dynamically later during bootup, ignore maps that happen when we are already considering ourselves mapped. Credits due are to Bogdan and Mihai for debugging this. Reported-by:
Bogdan Purcareata <bogdan.purcareata@freescale.com> Reported-by:
Mihai Caraman <mihai.caraman@freescale.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
David Gibson authored
As of qemu-2.1, spapr/pseries, has a set of versioned machine classes to represent the machine type as it appeared to the guest in different qemu versions. This allows for safe migration of guests between current and future qemu versions. However, these are organized a bit differently from those for PC: on PC, the default plain "pc" machine type is just an alias for the most recent versioned machine type. In sPAPR, it names the base machine class from which the versioned types are derived. The PC approach is preferable; it makes it clearer which explicit version is the current one. Additionally updating the "current" machine as the base class makes it even more likely than otherwise to incorrectly alter the versioned machines' behaviour when updating the current machine. Therefore this patch changes sPAPR to the PC approach - the base class becomes abstract, and plain "pseries" becomes an alias for the most recent versioned machine class. Since qemu-2.1 is now released, we also create a new pseries-2.2 machine type, to incorporate changes during this development cycle (for now it is identical to pseries-2.1). Signed-off-by:
David Gibson <david@gibson.dropbear.id.au> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
David Gibson authored
The virtex-ml507 is a Xilinx CPU based system, and requires several sub devices which are only included with CONFIG_XILINX. Therefore, it should only be compiled if CONFIG_XILINX is set. Signed-off-by:
David Gibson <david@gibson.dropbear.id.au> Reviewed-by:
Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Tom Musta authored
Adjust the IVOR mask for generic Book E implementation to support bit 59. This is consistent with the Power ISA. Signed-off-by:
Tom Musta <tommusta@gmail.com> Reported-by:
Pierre Mallard <mallard.pierre@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Alexey Kardashevskiy authored
By mistake, QEMU uses the maximum compatibility level from the command line instead of the value negotiated in client-architecture-support call. This replaces @max_compat with @cpu_version. This only affects guests which do not support the host CPU. Signed-off-by:
Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Paolo Bonzini authored
This will match the code we use in fpu_helper.c when we flip CRF_* bit-endianness. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Tom Musta <tommusta@gmail.com> Tested-by:
Tom Musta <tommusta@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Paolo Bonzini authored
It sets CR1, not CR6 (and the spec agrees). Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Tom Musta <tommusta@gmail.com> Tested-by:
Tom Musta <tommusta@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Paolo Bonzini authored
It must return 8 and place 8 in XER, but the current code uses i directly which is 9 at this point of the code. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Tom Musta <tommusta@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Tom Musta <tommusta@gmail.com> Tested-by:
Tom Musta <tommusta@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Paolo Bonzini authored
This was off-by-one. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Tom Musta <tommusta@gmail.com> Signed-off-by:
Alexander Graf <agraf@suse.de>
-
Peter Maydell authored
QOM infrastructure fixes and device conversions * Fixes for -device foo,help # gpg: Signature made Tue 04 Nov 2014 17:27:41 GMT using RSA key ID 3E7E013F # gpg: Good signature from "Andreas Färber <afaerber@suse.de>" # gpg: aka "Andreas Färber <afaerber@suse.com>" * remotes/afaerber/tags/qom-devices-for-peter: qdev: Use qdev_get_device_class() for -device <type>,help qdev: Move error printing to the end of qdev_device_help() qdev: Create qdev_get_device_class() function Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Eduardo Habkost authored
Make sure we try to list properties from classes that can be safely used with "-device". Fixes the following crashes: $ qemu-system-x86_64 -device x86_64-cpu,help ** ERROR:qom/object.c:336:object_initialize_with_type: assertion failed: (type->abstract == false) Aborted (core dumped) $ qemu-system-x86_64 -device host-x86_64-cpu,help qemu-system-x86_64: [...]/target-i386/cpu.c:1329: host_x86_cpu_initfn: Assertion `(kvm_allowed)' failed. Aborted (core dumped) After applying this patch: $ qemu-system-x86_64 -device x86_64-cpu,help Parameter 'driver' expects non-abstract device type $ qemu-system-x86_64 -device host-x86_64-cpu,help Parameter 'driver' expects pluggable device type Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
Extract the DeviceClass lookup from qdev_device_add() to a separate function. Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Peter Maydell authored
QOM CPUState and X86CPU * Cleanups for -cpu ...,enforce * remotes/afaerber/tags/qom-cpu-for-peter: target-i386: Disable SVM by default in KVM mode target-i386: Don't enable nested VMX by default target-i386: Remove unsupported bits from all CPU models target-i386: Disable CPUID_ACPI by default in KVM mode target-i386: Rename KVM auto-feature-enable compat function pc: Create pc_compat_2_1() functions Conflicts: hw/i386/pc_piix.c hw/i386/pc_q35.c [PMM: Fixed minor textual conflicts] Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Peter Maydell authored
gtk: fix fullscreen with gtk3, fix build with older gtk2 versions. # gpg: Signature made Tue 04 Nov 2014 13:42:09 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-gtk-20141104-2: gtk: add GDK_KEY_pause #define gtk: Hide the menubar when in fullscreen mode (lp 1294898) gtk: Install vc accelerators on parent window gtk: Install fullscreen accelerator on toplevel window gtk: Grab accel_group from GtkDisplayState Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Eduardo Habkost authored
Make SVM be disabled by default on all CPU models when in KVM mode. Nested SVM is enabled by default in the KVM kernel module, but it is probably less stable than nested VMX (which is already disabled by default). Add a new compat function, x86_cpu_compat_kvm_no_autodisable(), to keep compatibility on previous machine-types. Suggested-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
TCG doesn't support VMX, and nested VMX is not enabled by default in the KVM kernel module. So, there's no reason to have VMX enabled by default on the core2duo and coreduo CPU models, today. Even the newer Intel CPU model definitions don't have it enabled. In this case, we need machine-type compat code, as people may be running the older machine-types on hosts that had VMX nesting enabled. Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
The following CPU features were never supported by neither TCG or KVM, so they are useless on the CPU model definitions, today: * CPUID_DTS (DS) * CPUID_HT * CPUID_TM * CPUID_PBE * CPUID_EXT_DTES64 * CPUID_EXT_DSCPL * CPUID_EXT_EST * CPUID_EXT_TM2 * CPUID_EXT_XTPR * CPUID_EXT_PDCM * CPUID_SVM_LBRV As using "enforce" mode is the only way to ensure guest ABI doesn't change when moving to a different host, we should make "enforce" mode the default or at least encourage management software to always use it. In turn, to make "enforce" usable, we need CPU models that work without always requiring some features to be explicitly disabled. This patch removes the above features from all CPU model definitions. We won't need any machine-type compat code for those changes, because it is impossible to have existing VMs with those features enabled. Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Cc: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
KVM never supported the CPUID_ACPI flag, so it doesn't make sense to have it enabled by default when KVM is enabled. The motivation here is exactly the same we had for the MONITOR flag (disabled by commit 136a7e9a ). And like in the MONITOR flag case, we don't need machine-type compat code because it is currently impossible to run a KVM VM with the ACPI flag set. Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Gerd Hoffmann authored
Add pause key to the list of compatibility defines. Fixes the build with older gtk versions. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com>
-
Peter Maydell authored
target-arm queue: * avoid passing CPU env pointer around in A32/T32 decoders * split M profile exception masking out from A/R profile # gpg: Signature made Tue 04 Nov 2014 12:28:15 GMT using RSA key ID 14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" * remotes/pmaydell/tags/pull-target-arm-20141104: target-arm: Correct condition for taking VIRQ and VFIQ target-arm: Separate out M profile cpu_exec_interrupt handling target-arm/translate.c: Don't pass CPUARMState * to disas_arm_insn() target-arm/translate.c: Don't pass CPUARMState around in the decoder target-arm/translate.c: Don't use IS_M() target-arm/translate.c: Use arm_dc_feature() rather than arm_feature() target-arm/translate.c: Use arm_dc_feature() in ENABLE_ARCH_ macros Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Peter Maydell authored
Update OpenBIOS images # gpg: Signature made Tue 04 Nov 2014 00:24:41 GMT using RSA key ID AE0F321F # gpg: Good signature from "Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>" * remotes/mcayland/tags/qemu-openbios-signed: Update OpenBIOS images Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Peter Maydell authored
The VIRQ and VFIQ exceptions are (as the comments say) only taken if the CPU is in Non-secure state and the IMO/FMO bits are set to enable virtualized interrupts. Correct the code to actually implement this. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Edgar E. Iglesias <edgar.iglesias@xilinx.com> Message-id: 1414684132-23971-3-git-send-email-peter.maydell@linaro.org
-
Peter Maydell authored
The M profile cpu_exec_interrupt handling is fairly simple but does include an M profile specific oddity (disabling interrupts for certain PC values). A/R profile handling on the other hand is getting rapidly more complicated with the support for EL2 and EL3. Split the M profile code out into its own implementation of cpu_exec_interrupt to keep these two things out of each others' way. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Edgar E. Iglesias <edgar.iglesias@xilinx.com> Message-id: 1414684132-23971-2-git-send-email-peter.maydell@linaro.org
-
Peter Maydell authored
Refactor to avoid passing a CPUARMState * to disas_arm_insn(). To do this we move the "read insn from memory" code to the callsite and pass the insn to the function instead. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-id: 1414524244-20316-6-git-send-email-peter.maydell@linaro.org Reviewed-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Peter Maydell authored
Passing the CPUARMState around in the decoder is a recipe for bugs where we accidentally generate code that depends on CPU state which isn't reflected in the TB flags. Stop doing this and instead use DisasContext as a way to pass around those bits of CPU state which are known to be safe to use. This commit simply removes initial "CPUARMState *env" parameters from various function definitions, and removes the initial "env" argument from the places where those functions are called. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-id: 1414524244-20316-5-git-send-email-peter.maydell@linaro.org Reviewed-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Peter Maydell authored
Instead of using IS_M(), use arm_dc_feature(s, ARM_FEATURE_M), so we don't need to pass CPUARMState pointers around the decoder. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-id: 1414524244-20316-4-git-send-email-peter.maydell@linaro.org Reviewed-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Peter Maydell authored
Use arm_dc_feature() rather than arm_feature() to avoid using CPUARMState unnecessarily. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-id: 1414524244-20316-3-git-send-email-peter.maydell@linaro.org Reviewed-by:
Claudio Fontana <claudio.fontana@huawei.com>
-
Cole Robinson authored
In fullscreen mode, we attempt to shrink the menubar to 1 pixel in height, so it takes up as little room as possible while still allowing us to use the keyboard shortcuts for its various operations. However this shrinking is disregarded on gtk3, so the entire menu bar is visible, which isn't very pleasant. This patch hides the menu bar instead. The side effect is that the only keyboard shortcuts that will work in this mode are the ones that we explicitly register on the top level window and not the menu bar. The previous patches changed the fullscreen and vc shortcuts to work like that, which I think are the only ones that really matter in for the fullscreen case. https://bugs.launchpad.net/qemu/+bug/1294898 Signed-off-by:
Cole Robinson <crobinso@redhat.com> Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com>
-
Cole Robinson authored
So they are usable when we hide the menubar in upcoming patches. This has the accelerator text caveat as the fullscreen bit in the previous patch. Signed-off-by:
Cole Robinson <crobinso@redhat.com> Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com>
-
Cole Robinson authored
Instead of installing it on the menu. This will be needed to keep the fullscreen keyboard shortcut working when we hide the menu (in future patches). On gtk < 3.8, this has the unfortunate side effect of no longer listing the key combo in the UI. We could manually change the label in that case, but it will look visually out of place, and I'm not sure if anyone really cares. Signed-off-by:
Cole Robinson <crobinso@redhat.com> Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com>
-
Cole Robinson authored
Rather than needlessly pass it around Signed-off-by:
Cole Robinson <crobinso@redhat.com> Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com>
-
Peter Maydell authored
All the places where we use the ENABLE_ARCH_* and ARCH() macros have a DisasContext* s, so switch them over to use arm_dc_feature() rather than arm_feature() so we don't need to pass the CPUARMState* env around too. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Alex Bennée <alex.bennee@linaro.org> Message-id: 1414524244-20316-2-git-send-email-peter.maydell@linaro.org Reviewed-by:
Claudio Fontana <claudio.fontana@huawei.com>
-