]> git.proxmox.com Git - mirror_qemu.git/log
mirror_qemu.git
12 years agoomap_gpmc: Implement prefetch engine
Peter Maydell [Sun, 28 Aug 2011 16:22:20 +0000 (16:22 +0000)]
omap_gpmc: Implement prefetch engine

This commit implements the prefetch engine feature of the GPMC
which can be used for NAND devices. This includes both interrupt
driven and DMA-filling modes.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap: Wire up the DMA request line to the GPMC
Peter Maydell [Sun, 28 Aug 2011 16:22:20 +0000 (16:22 +0000)]
omap: Wire up the DMA request line to the GPMC

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Pull prefetch engine data into sub-struct
Peter Maydell [Sun, 28 Aug 2011 16:22:20 +0000 (16:22 +0000)]
omap_gpmc: Pull prefetch engine data into sub-struct

Refactor the gpmc state structure so items relating to
the prefetch engine are in their own sub-struct and have
more useful names.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Accept a zero mask field on omap3630
Juha Riihimäki [Sun, 28 Aug 2011 16:22:20 +0000 (16:22 +0000)]
omap_gpmc: Accept a zero mask field on omap3630

OMAP3630 adds an extra bit of address masking, so a mask of
0xb1111 is valid. Unfortunately the GPMC_REVISION is the same as
on the OMAP3430 which only has three bits of address masking, so
we have to derive this feature directly from the OMAP revision
rather than from the GPMC revision.

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
[Riku Voipio: Fixes and restructuring patchset]
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
[Peter Maydell: More fixes and cleanups for upstream submission]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agohw/omap.h: Add OMAP 3630 to omap_mpu_model enumeration
Peter Maydell [Sun, 28 Aug 2011 16:22:20 +0000 (16:22 +0000)]
hw/omap.h: Add OMAP 3630 to omap_mpu_model enumeration

Add the OMAP 3630 to the omap_mpu_model enumeration, and add the
corresponding cpu_is_omap3630() function.

(OMAP3 isn't supported yet but this is useful in upgrading common
components to be "OMAP3 ready". We already have this for OMAP3430.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Support NAND devices
Peter Maydell [Sun, 28 Aug 2011 16:22:19 +0000 (16:22 +0000)]
omap_gpmc: Support NAND devices

Support accesses to NAND devices, both by mapping them into
the GPMC address space, and via the NAND_COMMAND, NAND_ADDRESS
and NAND_DATA GPMC registers.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Reindent misindented switch statements
Peter Maydell [Sun, 28 Aug 2011 16:22:19 +0000 (16:22 +0000)]
omap_gpmc: Reindent misindented switch statements

Whitespace-only change fixing indentation.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Calculate revision from OMAP model
Juha Riihimäki [Sun, 28 Aug 2011 16:22:19 +0000 (16:22 +0000)]
omap_gpmc: Calculate revision from OMAP model

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
[Riku Voipio: Fixes and restructuring patchset]
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
[Peter Maydell: More fixes and cleanups for upstream submission]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Take omap_mpu_state* in omap_gpmc_init
Juha Riihimäki [Sun, 28 Aug 2011 16:22:19 +0000 (16:22 +0000)]
omap_gpmc: Take omap_mpu_state* in omap_gpmc_init

Take a pointer to the omap mpu state struct in omap_gpmc_init.
Some details of GPMC behaviour depend on the OMAP version we
are a part of.

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
[Riku Voipio: Fixes and restructuring patchset]
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
[Peter Maydell: More fixes and cleanups for upstream submission]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Fix handling of FIFOTHRESHOLDSTATUS bit
Peter Maydell [Sun, 28 Aug 2011 16:22:19 +0000 (16:22 +0000)]
omap_gpmc: Fix handling of FIFOTHRESHOLDSTATUS bit

The OMAP3 TRM is inconsistent about whether the GPMC FIFOTHRESHOLDSTATUS
bit should be set when FIFOPOINTER > FIFOTHRESHOLD or when it is >=
FIFOTHRESHOLD. Apparently the underlying functional spec from which
the TRM was created states that the behaviour is ">=", and this also
makes more conceptual sense.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Wire up the GPMC IRQ correctly
Peter Maydell [Sun, 28 Aug 2011 16:22:18 +0000 (16:22 +0000)]
omap_gpmc: Wire up the GPMC IRQ correctly

The omap_gpmc wasn't actually wiring up its IRQ, so
anything that provoked an interrupt would be using
uninitialised data for its IRQ number.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: GPMC_IRQSTATUS is write-one-to-clear
Peter Maydell [Sun, 28 Aug 2011 16:22:18 +0000 (16:22 +0000)]
omap_gpmc: GPMC_IRQSTATUS is write-one-to-clear

Fix a bug in the handling of writes to GPMC_IRQSTATUS:
it behaves as "write one to clear, writing zero is ignored".

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Refactor omap_gpmc_cs_map and omap_gpmc_cs_unmap
Peter Maydell [Sun, 28 Aug 2011 16:22:18 +0000 (16:22 +0000)]
omap_gpmc: Refactor omap_gpmc_cs_map and omap_gpmc_cs_unmap

Refactor the omap_gpmc_cs_map/unmap functions:
 * take the omap_gpmc_s* and a chipselect id rather than the
   omap_gpmc_cs_file_s*, so they have access to the general gpmc
   member fields
 * extract the base and mask from the config registers in the functions
   rather than at every callsite
 * check for CSVALID in the functions rather than at every callsite

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoomap_gpmc: Clean up omap_gpmc_attach MemoryRegion conversion
Peter Maydell [Sun, 28 Aug 2011 16:22:18 +0000 (16:22 +0000)]
omap_gpmc: Clean up omap_gpmc_attach MemoryRegion conversion

Now that all callers of omap_gpmc_attach pass in a MemoryRegion*,
we can remove the base_update and unmap function pointer arguments,
and the opaque pointer that was passed into these callbacks.

We can also remove the base and size fields from omap_gpmc_cs_file_s
as these are no longer necessary (you don't need the base/size
to unmap a MemoryRegion the way you did to undo a mapping made
with cpu_register_physical_memory()).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agohw/onenand: Minor spacing fixes
Juha Riihimäki [Sun, 28 Aug 2011 16:22:17 +0000 (16:22 +0000)]
hw/onenand: Minor spacing fixes

Minor whitespace-only cleanup (separated out from the qdevifying
patch for clarity).

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
[Riku Voipio: Fixes and restructuring patchset]
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
[Peter Maydell: More fixes and cleanups for upstream submission]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agohw/onenand: Qdevify
Juha Riihimäki [Sun, 28 Aug 2011 16:22:17 +0000 (16:22 +0000)]
hw/onenand: Qdevify

Qdevify the ONENAND device.

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
[Riku Voipio: Fixes and restructuring patchset]
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
[Peter Maydell: More fixes and cleanups for upstream submission]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agohw/onenand: Remove unnecessary argument from onenand_command()
Juha Riihimäki [Sun, 28 Aug 2011 16:33:02 +0000 (16:33 +0000)]
hw/onenand: Remove unnecessary argument from onenand_command()

Refactor onenand_command() -- since it is essentially a method of
the device object, it doesn't make sense to pass in something as
an argument which is one of the object's own member fields.

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
[Riku Voipio: Fixes and restructuring patchset]
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
[Peter Maydell: More fixes and cleanups for upstream submission]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agohw/sysbus: Add sysbus_mmio_get_region()
Peter Maydell [Sun, 28 Aug 2011 16:22:17 +0000 (16:22 +0000)]
hw/sysbus: Add sysbus_mmio_get_region()

Add a sysbus_mmio_get_region() which allows users of sysbus
devices to turn a (SysBusDevice*, mmioidx) tuple into a
MemoryRegion*. This enables some useful simplifications of
devices which pass through another device's mmio region
(either directly or by implementing some kind of memory
controller device).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12 years agoFix disabling interrupts in sun4u
Artyom Tarasenko [Mon, 25 Jul 2011 17:22:38 +0000 (19:22 +0200)]
Fix disabling interrupts in sun4u

clear interrupt request if the interrupt priority < CPU pil
clear hardware interrupt request if interrupts are disabled

Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
[blauwirbel@gmail.com: added a comment about magic 2]
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agoxilinx: Convert most xilinx devices to MemoryRegion
Edgar E. Iglesias [Thu, 25 Aug 2011 22:13:47 +0000 (00:13 +0200)]
xilinx: Convert most xilinx devices to MemoryRegion

This converts ethlite, intc, timer and uartlite to use
MemoryRegions.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agoTCG: improve optimizer debugging
Blue Swirl [Sat, 30 Jul 2011 19:18:32 +0000 (19:18 +0000)]
TCG: improve optimizer debugging

Use enum TCGOpcode instead of plain old int so that the name of
current op can be seen in GDB. Add a default case to switch
so that GCC does not complain about unhandled enum cases.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agodyngen-exec.h: cleanup
Blue Swirl [Sat, 30 Jul 2011 15:50:22 +0000 (15:50 +0000)]
dyngen-exec.h: cleanup

Remove unused or otherwise available stuff.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agog364fb: convert to qdev
Hervé Poussineau [Fri, 26 Aug 2011 19:20:12 +0000 (21:20 +0200)]
g364fb: convert to qdev

Extract G364 ROM contents from device emulation to machine emulation,
so device emulation can be reused in other machines (Commodore Amiga)

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agog364fb: use trace framework
Hervé Poussineau [Fri, 26 Aug 2011 19:20:11 +0000 (21:20 +0200)]
g364fb: use trace framework

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agocheckpatch: fix braces {} handling
Pavel Borzenkov [Fri, 26 Aug 2011 13:34:37 +0000 (17:34 +0400)]
checkpatch: fix braces {} handling

checkpatch.pl doesn't report warning for if/else statements with missing
'else' braces:

if (something) {
    foo;
} else
    bar;

The patch has been tested using the last 100 commits.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agoFix linker scripts
Gerd Hoffmann [Fri, 26 Aug 2011 09:16:10 +0000 (11:16 +0200)]
Fix linker scripts

Remove PROVIDE_HIDDEN and ONLY_IF_{RO,RW} from linker scripts to make
them work with older binutils versions.  Fixes *-bsd-user build on
OpenBSD 4.9 which ships binutils 2.15.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agoFix build on OpenBSD with BSD userland emu and smartcard NSS enabled
Brad [Mon, 22 Aug 2011 20:39:59 +0000 (16:39 -0400)]
Fix build on OpenBSD with BSD userland emu and smartcard NSS enabled

The first issue is the hard coded POSIX Real Time extensions library in the
libcacard/Makefile. From looking at the code it doesn't seem this is necessary
anyway. Robert Relyea seems to think it most likely isn't necessary.

The second issue was the missing exclusion of the BSD userland binary
builds from the addition of this Makefile target for the smartcard NSS
code which breaks the builds if smartcard NSS support is enabled.

pastebin clip of the build failure..

http://pastebin.com/raw.php?i=BLCKd3s6

Signed-off-by: Brad Smith <brad@comstyle.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
12 years agolinux-user: Correct a few missuses of host addresses
Edgar E. Iglesias [Mon, 22 Aug 2011 16:44:58 +0000 (18:44 +0200)]
linux-user: Correct a few missuses of host addresses

Fix a few cases where we were passing host pointers to the
guest.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agomicroblaze: Add an MSR_PVR constant and use it.
Edgar E. Iglesias [Thu, 25 Aug 2011 06:41:19 +0000 (16:41 +1000)]
microblaze: Add an MSR_PVR constant and use it.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
12 years agomicroblaze: Make the MSR PVR bit non writable
Edgar E. Iglesias [Thu, 25 Aug 2011 06:41:18 +0000 (16:41 +1000)]
microblaze: Make the MSR PVR bit non writable

Instead of hardcoding it to 1.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
12 years agoRevert "Merge remote-tracking branch 'qemu-kvm/memory/batch' into staging"
Anthony Liguori [Thu, 25 Aug 2011 19:39:18 +0000 (14:39 -0500)]
Revert "Merge remote-tracking branch 'qemu-kvm/memory/batch' into staging"

This reverts commit 8ef9ea85a2cc1007eaefa53e6871f1f83bcef22d, reversing
changes made to 444dc48298c480e42e15a8fe676be737d8a6b2a1.

From Avi:

  Please revert the entire pull (git revert 8ef9ea85a2cc1) while I work this
  out - it isn't trivial.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovga: Silence bogus gcc warning about uninitialized variables
Jan Kiszka [Thu, 25 Aug 2011 09:10:13 +0000 (11:10 +0200)]
vga: Silence bogus gcc warning about uninitialized variables

Some gcc versions do not properly detect that all possible cases are
covered and base and size are always initialized. Please gcc by defining
a pseudo default case.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoMerge remote-tracking branch 'stefanha/trivial-patches' into staging
Anthony Liguori [Thu, 25 Aug 2011 12:50:07 +0000 (07:50 -0500)]
Merge remote-tracking branch 'stefanha/trivial-patches' into staging

12 years agoMerge remote-tracking branch 'qemu-kvm/memory/batch' into staging
Anthony Liguori [Thu, 25 Aug 2011 12:48:24 +0000 (07:48 -0500)]
Merge remote-tracking branch 'qemu-kvm/memory/batch' into staging

12 years agoMerge remote-tracking branch 'aneesh/for-upstream-2' into staging
Anthony Liguori [Thu, 25 Aug 2011 12:48:15 +0000 (07:48 -0500)]
Merge remote-tracking branch 'aneesh/for-upstream-2' into staging

12 years agodisasm: update comment
Frediano Ziglio [Thu, 25 Aug 2011 07:14:38 +0000 (09:14 +0200)]
disasm: update comment

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agoFix up some style nits of last uq/master merge
Jan Kiszka [Mon, 15 Aug 2011 23:24:48 +0000 (16:24 -0700)]
Fix up some style nits of last uq/master merge

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
12 years agomilkymist: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:42:57 +0000 (21:42 +0300)]
milkymist: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agomilkymist-softusb: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:40:35 +0000 (21:40 +0300)]
milkymist-softusb: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agomilkymist-minimac2: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:32:25 +0000 (21:32 +0300)]
milkymist-minimac2: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agomcf5208: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:21:47 +0000 (21:21 +0300)]
mcf5208: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agomainstone: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:08:45 +0000 (21:08 +0300)]
mainstone: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agolm32_boards: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:05:07 +0000 (21:05 +0300)]
lm32_boards: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agog364fb: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:01:16 +0000 (21:01 +0300)]
g364fb: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agodummy_m68k: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 17:44:23 +0000 (20:44 +0300)]
dummy_m68k: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agopflash_cfi01/pflash_cfi02: convert to memory API
Avi Kivity [Thu, 4 Aug 2011 12:55:30 +0000 (15:55 +0300)]
pflash_cfi01/pflash_cfi02: convert to memory API

cfi02 is annoying in that is ignores some address bits; we probably
want explicit support in the memory API for that.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoMakefile.hw: allow hw/ files to include glib headers
Avi Kivity [Wed, 3 Aug 2011 15:55:00 +0000 (18:55 +0300)]
Makefile.hw: allow hw/ files to include glib headers

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agopiix_pci: wrap memory update in a transaction
Avi Kivity [Mon, 1 Aug 2011 08:04:39 +0000 (11:04 +0300)]
piix_pci: wrap memory update in a transaction

The code will remap all PAMs, even if just one is updated, resulting
in reduced performance.  Wrap in a transaction to detect that those
other PAMs have not changed.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agocirrus: wrap memory update in a transaction
Avi Kivity [Mon, 1 Aug 2011 08:03:42 +0000 (11:03 +0300)]
cirrus: wrap memory update in a transaction

This prevents spurious unmapping and remapping of the vga windows,
which reduces performance.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoleon3: convert to memory API
Avi Kivity [Mon, 25 Jul 2011 12:07:22 +0000 (15:07 +0300)]
leon3: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agointegratorcp: convert to memory API (RAM/flash only)
Avi Kivity [Mon, 25 Jul 2011 12:03:19 +0000 (15:03 +0300)]
integratorcp: convert to memory API (RAM/flash only)

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agosysbus: add sysbus_add_memory_overlap()
Avi Kivity [Mon, 25 Jul 2011 12:02:17 +0000 (15:02 +0300)]
sysbus: add sysbus_add_memory_overlap()

Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoaxis_dev88: convert to memory API (RAM only)
Avi Kivity [Mon, 25 Jul 2011 11:32:34 +0000 (14:32 +0300)]
axis_dev88: convert to memory API (RAM only)

Reviewed-by: Richard Henderson <rth@twiddle.net>
Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoppc_oldworld, ppc_newworld: fix escc BAR related crash
Avi Kivity [Wed, 24 Aug 2011 18:37:05 +0000 (21:37 +0300)]
ppc_oldworld, ppc_newworld: fix escc BAR related crash

ppc maps the escc mmio region both at a fixed offset (as a sysbus area) and as part of a PCI BAR.
This crashes, since a MemoryRegion may have only one parent.  Use an alias so we have a separate
MemoryRegion for the BAR.

Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agogt64xxx: fix crash in gt64120_pci_mapping()
Avi Kivity [Wed, 24 Aug 2011 19:09:41 +0000 (22:09 +0300)]
gt64xxx: fix crash in gt64120_pci_mapping()

The map/unmap code was assymetric - unmap used the local MemoryRegion while
map used isa_mmio_init(), which cannot handle dynamic mappings.

Fix by using isa_mmio_setup() and the local MemoryRegion.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agoarmv7m: convert to memory API
Avi Kivity [Mon, 25 Jul 2011 11:27:01 +0000 (14:27 +0300)]
armv7m: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoan5206: convert to memory API
Avi Kivity [Mon, 25 Jul 2011 11:14:31 +0000 (14:14 +0300)]
an5206: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoReadWriteHandler: remove
Avi Kivity [Sun, 24 Jul 2011 16:27:24 +0000 (19:27 +0300)]
ReadWriteHandler: remove

No longer used.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agopci_host: convert conf index and data ports to memory API
Avi Kivity [Sun, 24 Jul 2011 14:47:18 +0000 (17:47 +0300)]
pci_host: convert conf index and data ports to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agosysbus: add helpers to add and delete memory regions to the system bus
Avi Kivity [Sun, 24 Jul 2011 14:12:11 +0000 (17:12 +0300)]
sysbus: add helpers to add and delete memory regions to the system bus

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agostellaris_enet: convert to memory API
Avi Kivity [Mon, 18 Jul 2011 08:58:50 +0000 (11:58 +0300)]
stellaris_enet: convert to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agoPPC: E500: Set ESR values
Alexander Graf [Tue, 23 Aug 2011 04:55:44 +0000 (06:55 +0200)]
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 <jason.wessel@windriver.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agoPPC: E500: Inject SPE exception on invalid SPE access
Alexander Graf [Tue, 23 Aug 2011 04:55:43 +0000 (06:55 +0200)]
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 <jason.wessel@windriver.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agoPPC: E500: Add ESR bit definitions
Alexander Graf [Tue, 23 Aug 2011 04:55:42 +0000 (06:55 +0200)]
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 <jason.wessel@windriver.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agohw/omap_gpmc: Don't try to map CS0 twice on reset
Peter Maydell [Tue, 23 Aug 2011 18:24:32 +0000 (19:24 +0100)]
hw/omap_gpmc: Don't try to map CS0 twice on reset

Remove a spurious second map of the OMAP GPMC CS0 region on reset.
This fixes an assertion failure when we try to add the region to
its container when it was already added. (The old code did not
complain about mismatched map/unmap calls, but the new MemoryRegion
implementation does.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agotcg: Update --enable-debug for TCG_OPF_NOT_PRESENT.
Richard Henderson [Tue, 23 Aug 2011 17:43:32 +0000 (10:43 -0700)]
tcg: Update --enable-debug for TCG_OPF_NOT_PRESENT.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agoxilinx: removed microbalze_pic_init from xilinx.h
Peter A. G. Crosthwaite [Mon, 22 Aug 2011 08:15:25 +0000 (18:15 +1000)]
xilinx: removed microbalze_pic_init from xilinx.h

This is a microblaze target specific function that belongs outside
of xilinx.h (which is a collection of target independent device model
instantiator functions)

Signed-off-by: Peter A. G. Crosthwaite <peter.crosthwaite@petalogix.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agoxilinx.h: Added missing includes
Peter A. G. Crosthwaite [Mon, 22 Aug 2011 08:15:24 +0000 (18:15 +1000)]
xilinx.h: Added missing includes

Added some missing #includes for this file. Previously this file
relied on its clients to pre-include its dependencies.

Signed-off-by: Peter A. G. Crosthwaite <peter.crosthwaite@petalogix.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agosdl: Don't release input on mouse mode change in full-screen mode
Jan Kiszka [Mon, 22 Aug 2011 16:42:42 +0000 (18:42 +0200)]
sdl: Don't release input on mouse mode change in full-screen mode

While in full-screen mode, the input focus naturally belongs to the SDL
window. Avoid dropping it when switching from absolute to relative
mouse mode.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoReplace qemu_system_cond with VCPU stop mechanism
Jan Kiszka [Mon, 22 Aug 2011 16:35:25 +0000 (18:35 +0200)]
Replace qemu_system_cond with VCPU stop mechanism

We can express the VCPU thread wakeup with the stop mechanism, saving
both qemu_system_ready and the qemu_system_cond. For KVM threads, we can
just enter the main loop as long as the thread is stopped. The central
TCG thread is better held back before the loop as there can be side
effects of the services called even when all CPUs are stopped.

Creating VCPUs in stopped state will also be required for proper CPU
hotplugging support.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovga: Drop some unused fields
Jan Kiszka [Mon, 22 Aug 2011 17:12:13 +0000 (19:12 +0200)]
vga: Drop some unused fields

Memory region refactorings obsoleted them.

CC: Avi Kivity <avi@redhat.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovga: Use linear mapping + dirty logging in chain 4 memory access mode
Jan Kiszka [Mon, 22 Aug 2011 17:12:12 +0000 (19:12 +0200)]
vga: Use linear mapping + dirty logging in chain 4 memory access mode

Most VGA memory access modes require MMIO handling as they demand weird
logic to get a byte from or into the video RAM. However, there is one
exception: chain 4 mode with all memory planes enabled for writing. This
mode actually allows lineary mapping, which can then be combined with
dirty logging to accelerate KVM.

This patch accelerates specifically VBE accesses like they are used by
grub in graphical mode. Not only the standard VGA adapter benefits from
this, also vmware and spice in VGA mode.

CC: Gerd Hoffmann <kraxel@redhat.com>
CC: Avi Kivity <avi@redhat.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovmware-vga: Eliminate vga_dirty_log_restart
Jan Kiszka [Mon, 22 Aug 2011 17:12:11 +0000 (19:12 +0200)]
vmware-vga: Eliminate vga_dirty_log_restart

After the conversion to the new Memory API, vga_dirty_log_restart became
seriously pointless. Remove it from vmware-vga and and then finally drop
the service.

CC: Andrzej Zaborowski <balrogg@gmail.com>
CC: Avi Kivity <avi@redhat.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovmware-vga: Remove dead DIRECT_VRAM mode
Jan Kiszka [Mon, 22 Aug 2011 17:12:10 +0000 (19:12 +0200)]
vmware-vga: Remove dead DIRECT_VRAM mode

The code was disabled since day 1 of vmware-vga, and now it does not
even build anymore. Time for a cleanup.

CC: Andrzej Zaborowski <balrogg@gmail.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovmware-vga: Disable verbose mode
Jan Kiszka [Mon, 22 Aug 2011 17:12:09 +0000 (19:12 +0200)]
vmware-vga: Disable verbose mode

Elimiates 'vmsvga_value_write: guest runs Linux.' messages from the
console.

CC: Andrzej Zaborowski <balrogg@gmail.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovmware-vga: Register reset service
Jan Kiszka [Mon, 22 Aug 2011 17:12:08 +0000 (19:12 +0200)]
vmware-vga: Register reset service

Fixes cold reset in vmware graphic modes. We need to split up the reset
function for this purpose, breaking out init-once bits.

Cc: Andrzej Zaborowski <balrogg@gmail.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoioapic: Implement polarity
Jan Kiszka [Mon, 22 Aug 2011 15:46:42 +0000 (17:46 +0200)]
ioapic: Implement polarity

If the polarity bit is set in the redirection table, the input level
simply has to inverted as it is low active in this case.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agotarget-i386: Remove unused polarity arguments from APIC API
Jan Kiszka [Mon, 22 Aug 2011 15:46:31 +0000 (17:46 +0200)]
target-i386: Remove unused polarity arguments from APIC API

Polarity of external interrupts needs to be handled in the IOAPIC.
Passing it to the APIC is pointless. So remove all these arguments.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoDo not kick vcpus in TCG mode
Jan Kiszka [Mon, 22 Aug 2011 15:46:03 +0000 (17:46 +0200)]
Do not kick vcpus in TCG mode

In TCG mode, iothread and vcpus run in lock-step. So it's pointless to
send a signal from qemu_cpu_kick to the vcpu thread - if we got here,
the receiver already left the vcpu loop.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoPoll main loop after I/O events were received
Jan Kiszka [Mon, 22 Aug 2011 15:46:02 +0000 (17:46 +0200)]
Poll main loop after I/O events were received

Polling until select returns empty fdsets helps to reduce the switches
between iothread and vcpus. The benefit of this patch is best visible
when running an SMP guest on an SMP host in emulation mode.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoDo not drop global mutex for polled main loop runs
Jan Kiszka [Mon, 22 Aug 2011 15:46:01 +0000 (17:46 +0200)]
Do not drop global mutex for polled main loop runs

If we call select without a timeout, it's more efficient to keep the
global mutex locked as we may otherwise just play ping pong with a
vcpu thread contending for it. This is particularly important for TCG
mode where we run in lock-step with the vcpu thread.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoMerge remote-tracking branch 'qemu-kvm/memory/core' into staging
Anthony Liguori [Mon, 22 Aug 2011 17:26:30 +0000 (12:26 -0500)]
Merge remote-tracking branch 'qemu-kvm/memory/core' into staging

12 years agomicroblaze-user: Deliver SIGFPE on div by zero
Edgar E. Iglesias [Mon, 22 Aug 2011 16:42:54 +0000 (18:42 +0200)]
microblaze-user: Deliver SIGFPE on div by zero

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
12 years agomemory: Fix old_portio vs non-zero offset
Richard Henderson [Wed, 10 Aug 2011 22:28:19 +0000 (15:28 -0700)]
memory: Fix old_portio vs non-zero offset

The legacy functions that we're wrapping expect that offset
to be included in the register.  Indeed, they generally
expect the absolute address and then mask off the "high" bits.

The FDC is the first converted device with a non-zero offset.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
12 years agomemory: temporarily suppress the subregion collision warning
Anthony Liguori [Mon, 22 Aug 2011 16:14:56 +0000 (11:14 -0500)]
memory: temporarily suppress the subregion collision warning

After 312b4234, the APIC and PCI devices are colliding with each other.  This
is harmless in practice because the APIC accesses are special cased and never
make there way onto the bus.

Avi is working on a proper fix, but until that's ready, avoid printing the
warning.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years ago440fx: fix PAM, PCI holes
Avi Kivity [Mon, 15 Aug 2011 14:17:38 +0000 (17:17 +0300)]
440fx: fix PAM, PCI holes

The current implementation of PAM and the PCI holes is broken in several
ways:

  - PCI BARs are not restricted to the PCI hole (a BAR may hide memory)
  - PCI devices do not respect PAM (if a PCI device maps a region while
    PAM maps the region to RAM, the request will be honored)

This patch fixes things by introducing a pci address space, and using
memory region aliases to represent PAM regions, SMRAM, and PCI holes.

The memory hierarchy looks something like

system_memory
 |
 +--- low memory alias (0-0xe0000000)
 |      |
 |      +-- ram@0
 |
 +--- high memory alias (0x100000000-EOM)
 |      |
 |      +-- ram@0xe0000000
 |
 +--- pci hole alias (end of low memory-0x100000000)
 |      |
 |      +-- pci@end-of-low-memory
 |
 |
 +--- pam[n] (0xc0000-0xc3fff etc) (when set to pci, priority 1)
 |      |
 |      +-- pci@0xc4000 etc
 |
 +--- smram (0xa0000-0xbffff) (when set to pci/vga, priority 1)
        |
        +-- pci@0xa0000 etc

ram (simple ram region)

pci
 |
 +--- BARn
 |
 +--- VGA 0xa0000-0xbffff
 |
 +--- ROMs

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agovga: drop get_system_memory() from vga devices and derivatives
Avi Kivity [Mon, 15 Aug 2011 14:17:37 +0000 (17:17 +0300)]
vga: drop get_system_memory() from vga devices and derivatives

Instead, use the bus accessors, or get the address space directly
from the board constructor.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agopci: add pci_address_space()
Avi Kivity [Mon, 15 Aug 2011 14:17:36 +0000 (17:17 +0300)]
pci: add pci_address_space()

Returns the PCI address space.  Useful for bridges that can obscure
part of the PCI address space.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoisa: add isa_address_space()
Avi Kivity [Mon, 15 Aug 2011 14:17:35 +0000 (17:17 +0300)]
isa: add isa_address_space()

A helper that returns the address space used by ISA devices.  Useful
for getting rid of isa_mem_base, multiple ISA buses, or ISA buses behind
bridges.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agosysbus: remove sysbus_init_mmio_cb()
Avi Kivity [Mon, 15 Aug 2011 14:17:34 +0000 (17:17 +0300)]
sysbus: remove sysbus_init_mmio_cb()

This problem with this function is that it is not reversible - it is
impossible to know where things are registered and unregister them
exactly.  As there are no more users, we can remove it.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoppce500_pci: convert to sysbus_init_mmio_cb2()
Avi Kivity [Mon, 15 Aug 2011 14:17:33 +0000 (17:17 +0300)]
ppce500_pci: convert to sysbus_init_mmio_cb2()

Not a huge step forward, but at least we now have a 1:1 relationship
between registration and unregistration.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoversatile_pci: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:32 +0000 (17:17 +0300)]
versatile_pci: convert to memory API

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoarm11mpcore: use sysbus_init_mmio_cb2
Avi Kivity [Mon, 15 Aug 2011 14:17:31 +0000 (17:17 +0300)]
arm11mpcore: use sysbus_init_mmio_cb2

This tells the sysbus code it need not use IO_MEM_UNASSIGNED.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agosh_pci: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:30 +0000 (17:17 +0300)]
sh_pci: convert to memory API

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agosysbus: add a variant of sysbus_init_mmio_cb with an unmap callback
Avi Kivity [Mon, 15 Aug 2011 14:17:29 +0000 (17:17 +0300)]
sysbus: add a variant of sysbus_init_mmio_cb with an unmap callback

sysbus_init_mmio_cb() uses the destructive IO_MEM_UNASSIGNED to remove a
region.  Provide an alternative that calls an unmap callback, so the removal
may be done non-destructively.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoppc4xx_sdram: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:27 +0000 (17:17 +0300)]
ppc4xx_sdram: convert to memory API

Clumsy due to the lack of clipping support, needed for
changing exposed ram size.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoppc405_uc: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:26 +0000 (17:17 +0300)]
ppc405_uc: convert to memory API

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agopcie_host: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:25 +0000 (17:17 +0300)]
pcie_host: convert to memory API

Assuming that mmcfg size cannot change at runtime.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoonenand: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:24 +0000 (17:17 +0300)]
onenand: convert to memory API

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
12 years agoomap_gpmc/nseries/tusb6010: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:23 +0000 (17:17 +0300)]
omap_gpmc/nseries/tusb6010: convert to memory API

Somewhat clumsy since it needs a variable sized region.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>