OSDN Git Service

qmiga/qemu.git
10 years agoqdev: Use human mode in "info qtree"
Paolo Bonzini [Sat, 8 Feb 2014 10:01:51 +0000 (11:01 +0100)]
qdev: Use human mode in "info qtree"

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqapi: Add human mode to StringOutputVisitor
Paolo Bonzini [Sat, 8 Feb 2014 10:01:50 +0000 (11:01 +0100)]
qapi: Add human mode to StringOutputVisitor

This will be used by "info qtree".  For numbers it prints both the
decimal and hex values.  For sizes it rounds to the nearest power
of 2^10.  For strings, it puts quotes around the string and separates
NULL and empty string.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev: Inline qdev_prop_parse()
Paolo Bonzini [Sat, 8 Feb 2014 10:01:49 +0000 (11:01 +0100)]
qdev: Inline qdev_prop_parse()

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev: Legacy properties are just strings
Paolo Bonzini [Sat, 8 Feb 2014 10:01:48 +0000 (11:01 +0100)]
qdev: Legacy properties are just strings

prop->info->legacy_name is still used by "-device foo,?".

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev: Legacy properties are now read-only
Paolo Bonzini [Sat, 8 Feb 2014 10:01:47 +0000 (11:01 +0100)]
qdev: Legacy properties are now read-only

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev: Remove legacy parsers for hex8/32/64
Paolo Bonzini [Sat, 8 Feb 2014 10:01:46 +0000 (11:01 +0100)]
qdev: Remove legacy parsers for hex8/32/64

The hexNN property types have not been accepting values not prefixed
by "0x" since QEMU 1.2.  Parse those values as decimals now.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev: Sizes are now parsed by StringInputVisitor
Paolo Bonzini [Sat, 8 Feb 2014 10:01:45 +0000 (11:01 +0100)]
qdev: Sizes are now parsed by StringInputVisitor

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqapi: Add size parser to StringInputVisitor
Paolo Bonzini [Sat, 8 Feb 2014 10:01:44 +0000 (11:01 +0100)]
qapi: Add size parser to StringInputVisitor

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqtest: Don't segfault with invalid -qtest option
Fam Zheng [Mon, 10 Feb 2014 01:28:02 +0000 (09:28 +0800)]
qtest: Don't segfault with invalid -qtest option

This prints an error message, instead of core dump, when "-qtest"
option value is invalid, e.g.:

    $ ./x86_64-softmmu/qemu-system-x86_64 -qtest unknown
        qemu-system-x86_64: Failed to initialize device for qtest:
        "unknown"

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoipack: Move IndustryPack out of hw/char/
Andreas Färber [Thu, 1 Aug 2013 22:48:40 +0000 (00:48 +0200)]
ipack: Move IndustryPack out of hw/char/

Move the header defining an IPackBus and IPackDevice base class into
a new include/ directory and move their implementation and a
PCI-IndustryPack bridge out of hw/char/ directory into a new hw/ipack/.

Acked-by: Alberto Garcia <agarcia@igalia.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoipoctal232: QOM parent field cleanup
Andreas Färber [Thu, 1 Aug 2013 16:51:35 +0000 (18:51 +0200)]
ipoctal232: QOM parent field cleanup

Clean up accesses to IPOctalState::dev field and rename it.

Acked-by: Alberto Garcia <agarcia@igalia.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoipack: QOM parent field cleanup for IPackDevice
Andreas Färber [Thu, 1 Aug 2013 16:48:28 +0000 (18:48 +0200)]
ipack: QOM parent field cleanup for IPackDevice

Rename the IPackDevice::qdev field to avoid accidental use.

Acked-by: Alberto Garcia <agarcia@igalia.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoipack: QOM parent field cleanup for IPackBus
Andreas Färber [Thu, 1 Aug 2013 16:47:34 +0000 (18:47 +0200)]
ipack: QOM parent field cleanup for IPackBus

Clean up the only user of IPackBus::qbus field and rename it.

Acked-by: Alberto Garcia <agarcia@igalia.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoipack: Convert to QOM realize
Andreas Färber [Thu, 1 Aug 2013 16:45:02 +0000 (18:45 +0200)]
ipack: Convert to QOM realize

Acked-by: Alberto Garcia <agarcia@igalia.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add ipoctal232 qtest
Andreas Färber [Sun, 9 Feb 2014 11:24:15 +0000 (12:24 +0100)]
tests: Add ipoctal232 qtest

Acked-by: Alberto Garcia <agarcia@igalia.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add tpci200 qtest
Andreas Färber [Sun, 9 Feb 2014 02:48:44 +0000 (03:48 +0100)]
tests: Add tpci200 qtest

Acked-by: Alberto Garcia <agarcia@igalia.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add virtio-net qtest
Andreas Färber [Sun, 9 Feb 2014 03:13:37 +0000 (04:13 +0100)]
tests: Add virtio-net qtest

Cc: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add ne2000 qtest
Andreas Färber [Sun, 9 Feb 2014 03:01:37 +0000 (04:01 +0100)]
tests: Add ne2000 qtest

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add eepro100 qtest
Andreas Färber [Thu, 7 Nov 2013 18:18:46 +0000 (19:18 +0100)]
tests: Add eepro100 qtest

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add pcnet qtest
Andreas Färber [Thu, 7 Nov 2013 17:53:28 +0000 (18:53 +0100)]
tests: Add pcnet qtest

Test PCI only for now.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add rtl8139 qtest
Andreas Färber [Thu, 7 Nov 2013 17:43:09 +0000 (18:43 +0100)]
tests: Add rtl8139 qtest

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add vmxnet3 qtest
Andreas Färber [Thu, 7 Nov 2013 17:37:34 +0000 (18:37 +0100)]
tests: Add vmxnet3 qtest

Note that this will emit a warning:
[vmxnet3][WR][vmxnet3_peer_has_vnet_hdr]: Peer has no virtio extension.
Task offloads will be emulated.

Reviewed-by: Dmitry Fleytman <dmitry@daynix.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Add e1000 qtest
Andreas Färber [Thu, 7 Nov 2013 17:25:10 +0000 (18:25 +0100)]
tests: Add e1000 qtest

Cc: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoi2c: Drop FROM_I2C_SLAVE() macro
Andreas Färber [Thu, 19 Dec 2013 21:42:26 +0000 (22:42 +0100)]
i2c: Drop FROM_I2C_SLAVE() macro

We now use type-specific QOM cast macros instead.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotwl92230: QOM'ify
Andreas Färber [Thu, 19 Dec 2013 21:41:25 +0000 (22:41 +0100)]
twl92230: QOM'ify

Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with
QOM cast macro. Rename parent field.

Add missing braces while at it.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agods1338: QOM'ify
Andreas Färber [Thu, 19 Dec 2013 21:34:05 +0000 (22:34 +0100)]
ds1338: QOM'ify

Replace usages of FROM_I2C_SLAVE() with QOM cast macro.
Rename parent field.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agolm832x: QOM'ify
Andreas Färber [Thu, 19 Dec 2013 21:30:16 +0000 (22:30 +0100)]
lm832x: QOM'ify

Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with
QOM cast macro. Rename parent field.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agomax7310: QOM'ify
Andreas Färber [Thu, 19 Dec 2013 21:21:57 +0000 (22:21 +0100)]
max7310: QOM'ify

Replace FROM_I2C_SLAVE() usages with QOM cast macro.
Rename parent field.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agossd0303: QOM'ify
Andreas Färber [Thu, 19 Dec 2013 21:10:23 +0000 (22:10 +0100)]
ssd0303: QOM'ify

Replace usages of FROM_I2C_SLAVE() with QOM cast macro.
Rename parent field.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agowm8750: QOM'ify
Andreas Färber [Thu, 19 Dec 2013 21:04:29 +0000 (22:04 +0100)]
wm8750: QOM'ify

Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with
QOM cast macro. Rename parent field.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoz2: QOM'ify AER915
Andreas Färber [Thu, 19 Dec 2013 20:55:44 +0000 (21:55 +0100)]
z2: QOM'ify AER915

Replace usages of FROM_I2C_SLAVE() with QOM cast macro.
Rename the parent field. Reuse the type constant in z2_init().

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
[AF: Use TYPE_AER915 in z2_init() too]
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotosa: QOM'ify DAC
Andreas Färber [Thu, 19 Dec 2013 20:51:29 +0000 (21:51 +0100)]
tosa: QOM'ify DAC

Replace usages of FROM_I2C_SLAVE() with QOM cast macro.
Rename parent field. Use type constant in tosa_tg_init().

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agopxa2xx: QOM'ify I2C slave
Andreas Färber [Thu, 19 Dec 2013 20:44:53 +0000 (21:44 +0100)]
pxa2xx: QOM'ify I2C slave

Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with
QOM cast macro. Rename parent field to assure we caught all. Reuse type
constant in pxa2xx_i2c_init().

Add some missing braces while at it.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoi2c: Rename i2c_bus to I2CBus
Andreas Färber [Fri, 2 Aug 2013 22:18:51 +0000 (00:18 +0200)]
i2c: Rename i2c_bus to I2CBus

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agonand: Don't use qdev_create() in nand_init()
Andreas Färber [Wed, 5 Feb 2014 14:21:38 +0000 (15:21 +0100)]
nand: Don't use qdev_create() in nand_init()

Commit 7426aa72c36c908a7d0eae3e38568bb0a70de479 (nand: Don't inherit
from Sysbus) changed the parent type of TYPE_NAND but continued to use
qdev_create(), which handled a NULL BusState as SysBus.

Use object_new() instead, and reuse the TYPE_NAND define while at it.

Reported-by: Markus Armbruster <armbru@redhat.com>
Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Run qom-test for every architecture
Peter Maydell [Thu, 23 Jan 2014 16:22:59 +0000 (16:22 +0000)]
tests: Run qom-test for every architecture

Rather than requiring every new architecture to remember to add a line
to the Makefile to say that qom-test will work on it, autogenerate
the list of supported architectures by looking at the files in
default-configs (as configure does), and add qom-test to the
test list for all of them automatically.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqom-test: Test shutdown in addition to startup
Markus Armbruster [Fri, 10 Jan 2014 13:31:39 +0000 (14:31 +0100)]
qom-test: Test shutdown in addition to startup

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqom-test: Run for all available machines
Markus Armbruster [Fri, 10 Jan 2014 13:31:38 +0000 (14:31 +0100)]
qom-test: Run for all available machines

Get available machines via QMP instead of hardcoding a list that's
perpetually out of date.

Xen machines can work only when running under the Xen hypervisor.
Blacklist them.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotests: Fix gcov paths for relocated device sources
Andreas Färber [Fri, 14 Feb 2014 14:09:28 +0000 (15:09 +0100)]
tests: Fix gcov paths for relocated device sources

Commit 49ab747f668f421138d5b40d83fa279c4c5e278d moved
fdc.c, hd-geometry.c, m48t59.c, tmp105.c into hw/ subdirectories;
commit 0ddfaf7fe4c8453446730328bf348b7c6438e4f8 did for mc146818rtc.c.

Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agotarget-ppc: Make ppc40x CPUs available in ppcemb
Andreas Färber [Thu, 23 Jan 2014 16:47:44 +0000 (17:47 +0100)]
target-ppc: Make ppc40x CPUs available in ppcemb

Not only 44x CPUs (BookE) but also 40x CPUs can run with 1k page size.

Move the criteria to a central inline function to avoid repetition
and #ifdef'fery. Update qom-test to no longer exempt them.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoppcemb-softmmu: Drop Mac and e500 emulation
Andreas Färber [Thu, 23 Jan 2014 15:37:55 +0000 (16:37 +0100)]
ppcemb-softmmu: Drop Mac and e500 emulation

They are still available in ppc-softmmu and ppc64-softmmu.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqtest: don't report signals if qtest driver enabled
Michael S. Tsirkin [Tue, 4 Feb 2014 18:06:47 +0000 (20:06 +0200)]
qtest: don't report signals if qtest driver enabled

qtest driver always uses signals to kill qemu
no need to report it, whatever the accelerator state.

Add API to detect qtest driver, and suppress reporting
signals in this case.

Reported-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoMerge remote-tracking branch 'remotes/afaerber/tags/prep-for-upstream' into staging
Peter Maydell [Thu, 13 Feb 2014 14:52:06 +0000 (14:52 +0000)]
Merge remote-tracking branch 'remotes/afaerber/tags/prep-for-upstream' into staging

PReP machine and devices

* Cleanups for Raven PCI host bridge
* Removal of PReP machine and devices from qemu-system-ppcemb

# gpg: Signature made Mon 10 Feb 2014 16:19:03 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/prep-for-upstream:
  prep: Drop from ppcemb-softmmu
  raven: Use constant PCI_NUM_PINS instead of 4
  prep: Kill get_system_io() usage

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agoMerge remote-tracking branch 'remotes/alon/pull-libcacard.glusterfs' into staging
Peter Maydell [Wed, 12 Feb 2014 17:53:31 +0000 (17:53 +0000)]
Merge remote-tracking branch 'remotes/alon/pull-libcacard.glusterfs' into staging

* remotes/alon/pull-libcacard.glusterfs:
  libcacard: Don't link with all libraries QEMU links to

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agoMerge remote-tracking branch 'remotes/kevin/tags/for-anthony' into staging
Peter Maydell [Wed, 12 Feb 2014 16:42:50 +0000 (16:42 +0000)]
Merge remote-tracking branch 'remotes/kevin/tags/for-anthony' into staging

Block patches

# gpg: Signature made Sun 09 Feb 2014 08:12:51 GMT using RSA key ID C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>"

* remotes/kevin/tags/for-anthony:
  block: Fix 32 bit truncation in mark_request_serialising()
  blkdebug: Don't leak bs->file on failure
  block: Don't call ROUND_UP with negative values
  block: bdrv_aligned_pwritev: Assert overlap range
  block: Fix memory leaks in bdrv_co_do_pwritev()
  raw: Fix BlockLimits passthrough
  qemu-iotests: add test for qcow2 preallocation with different cluster sizes
  qcow2: check for NULL l2meta
  qcow2: fix offset overflow in qcow2_alloc_clusters_at()
  qcow2: remove n_start and n_end of qcow2_alloc_cluster_offset()
  block/iscsi: always fill bs->bl.opt_transfer_length
  block: Fail gracefully with missing filename
  qemu-iotests: enable support for NFS protocol
  qemu-iotests: enable test 016 and 025 to work with NFS protocol
  qemu-iotests: blacklist test 020 for NFS protocol
  qemu-iotests: change _supported_proto to file for various tests
  block: add native support for NFS
  qemu-iotest: Make 077 raw-only

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agopetalogix-ml605: Create the CPU with object_new()
Edgar E. Iglesias [Mon, 16 Dec 2013 02:44:20 +0000 (12:44 +1000)]
petalogix-ml605: Create the CPU with object_new()

This is to allow future patches to set properties before cpu::realize().

Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make cpu_memory_rw_debug use the CPUs AS
Edgar E. Iglesias [Fri, 13 Dec 2013 06:31:02 +0000 (16:31 +1000)]
exec: Make cpu_memory_rw_debug use the CPUs AS

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make cpu_physical_memory_write_rom input an AS
Edgar E. Iglesias [Fri, 13 Dec 2013 06:28:52 +0000 (16:28 +1000)]
exec: Make cpu_physical_memory_write_rom input an AS

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make stb_phys input an AddressSpace
Edgar E. Iglesias [Tue, 17 Dec 2013 05:29:06 +0000 (15:29 +1000)]
exec: Make stb_phys input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make stw_*_phys input an AddressSpace
Edgar E. Iglesias [Tue, 17 Dec 2013 05:22:06 +0000 (15:22 +1000)]
exec: Make stw_*_phys input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make stl_phys_notdirty input an AddressSpace
Edgar E. Iglesias [Thu, 28 Nov 2013 09:13:41 +0000 (10:13 +0100)]
exec: Make stl_phys_notdirty input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make stl_*_phys input an AddressSpace
Edgar E. Iglesias [Tue, 17 Dec 2013 05:07:29 +0000 (15:07 +1000)]
exec: Make stl_*_phys input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make stq_*_phys input an AddressSpace
Edgar E. Iglesias [Wed, 27 Nov 2013 23:11:44 +0000 (00:11 +0100)]
exec: Make stq_*_phys input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make lduw_*_phys input an AddressSpace
Edgar E. Iglesias [Tue, 17 Dec 2013 04:33:56 +0000 (14:33 +1000)]
exec: Make lduw_*_phys input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make ldq/ldub_*_phys input an AddressSpace
Edgar E. Iglesias [Tue, 17 Dec 2013 04:05:40 +0000 (14:05 +1000)]
exec: Make ldq/ldub_*_phys input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make ldl_*_phys input an AddressSpace
Edgar E. Iglesias [Fri, 15 Nov 2013 13:46:38 +0000 (14:46 +0100)]
exec: Make ldl_*_phys input an AddressSpace

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: On AS changes, only flush affected CPU TLBs
Edgar E. Iglesias [Thu, 21 Nov 2013 18:06:30 +0000 (19:06 +0100)]
exec: On AS changes, only flush affected CPU TLBs

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agocpu: Add per-cpu address space
Edgar E. Iglesias [Tue, 17 Dec 2013 03:06:51 +0000 (13:06 +1000)]
cpu: Add per-cpu address space

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agomemory: Add MemoryListener to typedefs.h
Edgar E. Iglesias [Thu, 21 Nov 2013 17:36:42 +0000 (18:36 +0100)]
memory: Add MemoryListener to typedefs.h

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make memory_region_section_get_iotlb use section AS
Edgar E. Iglesias [Thu, 7 Nov 2013 17:43:28 +0000 (18:43 +0100)]
exec: Make memory_region_section_get_iotlb use section AS

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Always initialize MemorySection address spaces
Edgar E. Iglesias [Thu, 7 Nov 2013 17:42:51 +0000 (18:42 +0100)]
exec: Always initialize MemorySection address spaces

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make iotlb_to_region input an AS
Edgar E. Iglesias [Thu, 7 Nov 2013 18:55:56 +0000 (19:55 +0100)]
exec: Make iotlb_to_region input an AS

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoexec: Make tb_invalidate_phys_addr input an AS
Edgar E. Iglesias [Thu, 7 Nov 2013 18:43:10 +0000 (19:43 +0100)]
exec: Make tb_invalidate_phys_addr input an AS

No functional change.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
10 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140208' into...
Peter Maydell [Tue, 11 Feb 2014 11:26:36 +0000 (11:26 +0000)]
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140208' into staging

target-arm queue:
 * more A64 Neon instructions
 * AArch32 VCVTB and VCVTT ARMv8 instructions
 * fixes to inaccuracies in GIC emulation
 * libvixl disassembler for A64
 * Allwinner SoC ethernet controller
 * zynq software system reset support

# gpg: Signature made Sat 08 Feb 2014 15:53:05 GMT using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"

* remotes/pmaydell/tags/pull-target-arm-20140208: (29 commits)
  arm/zynq: Add software system reset via SCLR
  hw/arm/allwinner-a10: initialize EMAC
  hw/net: add support for Allwinner EMAC Fast Ethernet controller
  util/fifo8: clear fifo head upon reset
  util/fifo8: implement push/pop of multiple bytes
  disas: Implement disassembly output for A64
  disas/libvixl: Fix upstream libvixl compilation issues
  disas: Add subset of libvixl sources for A64 disassembler
  rules.mak: Link with C++ if we have a C++ compiler
  rules.mak: Support .cc as a C++ source file suffix
  arm_gic: Add GICC_APRn state to the GICState
  vmstate: Add uint32 2D-array support
  arm_gic: Support setting/getting binary point reg
  arm_gic: Keep track of SGI sources
  arm_gic: Fix GIC pending behavior
  target-arm: Add support for AArch32 64bit VCVTB and VCVTT
  target-arm: A64: Add FNEG and FABS to the SIMD 2-reg-misc group
  target-arm: A64: Add 2-reg-misc REV* instructions
  target-arm: A64: Add narrowing 2-reg-misc instructions
  target-arm: A64: Implement 2-reg-misc CNT, NOT and RBIT
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agoMerge remote-tracking branch 'remotes/kvaneesh/for-upstream' into staging
Peter Maydell [Mon, 10 Feb 2014 18:31:06 +0000 (18:31 +0000)]
Merge remote-tracking branch 'remotes/kvaneesh/for-upstream' into staging

* remotes/kvaneesh/for-upstream:
  hw/9pfs: fix P9_STATS_GEN handling
  hw/9pfs: make get_st_gen() return ENOTTY error on special files
  hw/9pfs: handle undefined FS_IOC_GETVERSION case in handle_ioc_getversion()
  hw/9pfs: fix error handing in local_ioc_getversion()

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agomemory: fix limiting of translation at a page boundary
Paolo Bonzini [Fri, 7 Feb 2014 14:47:46 +0000 (15:47 +0100)]
memory: fix limiting of translation at a page boundary

Commit 360e607 (address_space_translate: do not cross page boundaries,
2014-01-30) broke MMIO accesses in cases where the section is shorter
than the full register width.  This can happen for example with the
Bochs DISPI registers, which are 16 bits wide but have only a 1-byte
long MemoryRegion (if you write to the "second byte" of the register
your access is discarded; it doesn't write only to half of the register).

Restrict the action of commit 360e607 to direct RAM accesses.  This
is enough for Xen, since MMIO will not go through the mapcache.

Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agoprep: Drop from ppcemb-softmmu
Andreas Färber [Thu, 23 Jan 2014 10:22:16 +0000 (11:22 +0100)]
prep: Drop from ppcemb-softmmu

ppcemb covers only embedded processors, which does not include PReP.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoraven: Use constant PCI_NUM_PINS instead of 4
Hervé Poussineau [Mon, 4 Nov 2013 23:09:44 +0000 (00:09 +0100)]
raven: Use constant PCI_NUM_PINS instead of 4

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoprep: Kill get_system_io() usage
Hervé Poussineau [Mon, 4 Nov 2013 23:09:43 +0000 (00:09 +0100)]
prep: Kill get_system_io() usage

While ISA address space in prep machine is currently the one returned
by get_system_io(), this depends of the implementation of i82378/raven
devices, and this may not be the case forever.

Use the right ISA address space when adding some more ports to it.
We can use whatever ISA device on the right ISA bus, as all ISA devices
on the same ISA bus share the same ISA address space.

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agolibcacard: Don't link with all libraries QEMU links to
Christophe Fergeau [Thu, 30 Jan 2014 13:56:49 +0000 (14:56 +0100)]
libcacard: Don't link with all libraries QEMU links to

As described in https://bugzilla.redhat.com/show_bug.cgi?id=987441 ,
libcacard currently links to all the libraries QEMU is linking to,
including glusterfs libraries, libiscsi, ... libcacard does not need all of
these. This patch ensures it's only linked with the libraries it needs.

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
Signed-off-by: Alon Levy <alevy@redhat.com>
10 years agoblock: Fix 32 bit truncation in mark_request_serialising()
Kevin Wolf [Sat, 8 Feb 2014 09:42:18 +0000 (10:42 +0100)]
block: Fix 32 bit truncation in mark_request_serialising()

On 32 bit hosts, size_t is too small for align as the bitmask
~(align - 1) will zero out the higher 32 bits of the offset.

While at it, change the local overlap_bytes variable to unsigned to
match the field in BdrvTrackedRequest.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
10 years agoblkdebug: Don't leak bs->file on failure
Kevin Wolf [Sat, 8 Feb 2014 08:53:22 +0000 (09:53 +0100)]
blkdebug: Don't leak bs->file on failure

Reported-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
10 years agoblock: Don't call ROUND_UP with negative values
Kevin Wolf [Fri, 7 Feb 2014 15:00:09 +0000 (16:00 +0100)]
block: Don't call ROUND_UP with negative values

The behaviour of the ROUND_UP macro with negative numbers isn't obvious.
It happens to do the right thing in this please, but better avoid it.

Suggested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
10 years agoblock: bdrv_aligned_pwritev: Assert overlap range
Kevin Wolf [Fri, 7 Feb 2014 14:35:56 +0000 (15:35 +0100)]
block: bdrv_aligned_pwritev: Assert overlap range

This adds assertions that the request that we actually end up passing to
the block driver (which includes RMW data and has therefore potentially
been rounded to alignment boundaries) is fully covered by the
overlap_{offset,size} fields of the associated BdrvTrackedRequest.

Suggested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
10 years agoblock: Fix memory leaks in bdrv_co_do_pwritev()
Kevin Wolf [Fri, 7 Feb 2014 14:29:00 +0000 (15:29 +0100)]
block: Fix memory leaks in bdrv_co_do_pwritev()

The error path for a failure in one of the two bdrv_aligned_preadv()
calls leaked head_buf or tail_buf, respectively. This fixes the memory
leak.

Reported-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
10 years agoraw: Fix BlockLimits passthrough
Kevin Wolf [Tue, 4 Feb 2014 10:54:13 +0000 (11:54 +0100)]
raw: Fix BlockLimits passthrough

raw copies over the BlockLimits of bs->file during bdrv_open().
However, since commit d34682cd it is immediately overwritten during
bdrv_refresh_limits(). This caused all fields except for
opt_transfer_length and opt_mem_alignment (which happen to be correctly
inherited in generic code) to be zeroed.

Move the BlockLimit assignment to a .bdrv_refresh_limits() callback to
make it work again for all fields.

Reported-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
10 years agoqemu-iotests: add test for qcow2 preallocation with different cluster sizes
Hu Tao [Sun, 26 Jan 2014 03:12:40 +0000 (11:12 +0800)]
qemu-iotests: add test for qcow2 preallocation with different cluster sizes

Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqcow2: check for NULL l2meta
Hu Tao [Sun, 26 Jan 2014 03:12:39 +0000 (11:12 +0800)]
qcow2: check for NULL l2meta

In the case of a metadata preallocation with a large cluster size,
qcow2_alloc_cluster_offset() can allocate nothing and returns a
NULL l2meta. This patch checks for it and link2 l2 with only valid
l2meta.

Replace 9 and 512 with BDRV_SECTOR_BITS, BDRV_SECTOR_SIZE
respectively while at the function.

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqcow2: fix offset overflow in qcow2_alloc_clusters_at()
Hu Tao [Sun, 26 Jan 2014 03:12:38 +0000 (11:12 +0800)]
qcow2: fix offset overflow in qcow2_alloc_clusters_at()

When cluster size is big enough it can lead to an offset overflow
in qcow2_alloc_clusters_at(). This patch fixes it.

The allocation is stopped each time at L2 table boundary
(see handle_alloc()), so the possible maximum bytes could be

  2^(cluster_bits - 3 + cluster_bits)

cluster_bits - 3 is used to compute the number of entry by L2
and the additional cluster_bits is to take into account each
clusters referenced by the L2 entries.

so int is safe for cluster_bits<=17, unsafe otherwise.

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqcow2: remove n_start and n_end of qcow2_alloc_cluster_offset()
Hu Tao [Sun, 26 Jan 2014 03:12:37 +0000 (11:12 +0800)]
qcow2: remove n_start and n_end of qcow2_alloc_cluster_offset()

n_start can be actually calculated from offset. The number of
sectors to be allocated(n_end - n_start) can be passed in in
num. By removing n_start and n_end, we can save two parameters.

The side effect is there is a bug in qcow2.c:preallocate() that
passes incorrect n_start to qcow2_alloc_cluster_offset() is
fixed. The bug can be triggerred by a larger cluster size than
the default value(65536), for example:

./qemu-img create -f qcow2 \
  -o 'cluster_size=131072,preallocation=metadata' file.img 4G

Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoblock/iscsi: always fill bs->bl.opt_transfer_length
Peter Lieven [Wed, 29 Jan 2014 12:03:35 +0000 (13:03 +0100)]
block/iscsi: always fill bs->bl.opt_transfer_length

the opt_transfer_length has nothing to do with logical
block provisioning stuff so always copy it from
the block limits VPD page.

Reported-By: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoblock: Fail gracefully with missing filename
Kevin Wolf [Mon, 3 Feb 2014 13:49:42 +0000 (14:49 +0100)]
block: Fail gracefully with missing filename

This fixes a regression introduced in commit 2a05cbe42 ('block: Allow
block devices without files'):

$ qemu-system-x86_64 -drive driver=file
qemu-system-x86_64: block.c:892: bdrv_open_common: Assertion
`!drv->bdrv_needs_filename || filename != ((void *)0)' failed.

Now the respective check must be performed not only in bdrv_file_open(),
but also in bdrv_open().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
10 years agoqemu-iotests: enable support for NFS protocol
Peter Lieven [Mon, 3 Feb 2014 09:26:17 +0000 (10:26 +0100)]
qemu-iotests: enable support for NFS protocol

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotests: enable test 016 and 025 to work with NFS protocol
Peter Lieven [Mon, 3 Feb 2014 09:26:16 +0000 (10:26 +0100)]
qemu-iotests: enable test 016 and 025 to work with NFS protocol

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotests: blacklist test 020 for NFS protocol
Peter Lieven [Mon, 3 Feb 2014 09:26:15 +0000 (10:26 +0100)]
qemu-iotests: blacklist test 020 for NFS protocol

reopening is currently not supported.

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotests: change _supported_proto to file for various tests
Peter Lieven [Mon, 3 Feb 2014 09:26:14 +0000 (10:26 +0100)]
qemu-iotests: change _supported_proto to file for various tests

all these tests do anything of the following and thus fail with any
protocol other than file:
 - the tests use rm, cp or mv shell commands which only work on file
 - the tests use qcow2.py
 - the images construct new filenames (e.g. backing file names) and
   the logic is broken for anything else than file

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoblock: add native support for NFS
Peter Lieven [Mon, 3 Feb 2014 09:26:13 +0000 (10:26 +0100)]
block: add native support for NFS

This patch adds native support for accessing images on NFS
shares without the requirement to actually mount the entire
NFS share on the host.

NFS Images can simply be specified by an url of the form:
nfs://<host>/<export>/<filename>[?param=value[&param2=value2[&...]]]

For example:
qemu-img create -f qcow2 nfs://10.0.0.1/qemu-images/test.qcow2

You need LibNFS from Ronnie Sahlberg available at:
   git://github.com/sahlberg/libnfs.git
for this to work.

During configure it is automatically probed for libnfs and support
is enabled on-the-fly. You can forbid or enforce libnfs support
with --disable-libnfs or --enable-libnfs respectively.

Due to NFS restrictions you might need to execute your binaries
as root, allow them to open priviledged ports (<1024) or specify
insecure option on the NFS server.

For additional information on ROOT vs. non-ROOT operation and URL
format + parameters see:
   https://raw.github.com/sahlberg/libnfs/master/README

Supported by qemu are the uid, gid and tcp-syncnt URL parameters.

LibNFS currently support NFS version 3 only.

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotest: Make 077 raw-only
Kevin Wolf [Thu, 30 Jan 2014 11:52:47 +0000 (12:52 +0100)]
qemu-iotest: Make 077 raw-only

The qemu-io command sequences make the assumption that an unaligned
request on the format layer will be unaligned on the blkdebug layer as
well. This doesn't necessarily hold true for drivers other than raw.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Benoît Canet <benoit@irqsave.net>
10 years agoMerge remote-tracking branch 'remotes/mwalle/tags/lm32-fixes/20140204' into staging
Peter Maydell [Sat, 8 Feb 2014 15:57:51 +0000 (15:57 +0000)]
Merge remote-tracking branch 'remotes/mwalle/tags/lm32-fixes/20140204' into staging

target-lm32: fixes

# gpg: Signature made Tue 04 Feb 2014 18:47:56 GMT using DSA key ID 3F98A378
# gpg: Can't check signature: public key not found

* remotes/mwalle/tags/lm32-fixes/20140204:
  hw/lm32: print error if cpu model is not found
  target-lm32: stop VM on illegal or unknown instruction
  lm32_sys: dump cpu state if test case fails
  lm32_sys: print test result on stderr
  target-lm32: add breakpoint/watchpoint support
  target-lm32: move model features to LM32CPU
  target-lm32: kill cpu_abort() calls
  milkymist-vgafb: swap pixel data in source buffer
  lm32_uart/lm32_juart: use qemu_chr_fe_write_all()
  milkymist-uart: use qemu_chr_fe_write_all() instead of qemu_chr_fe_write()
  tests: lm32: new rule for single test cases
  lm32_sys: increase test case name length limit

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agoarm/zynq: Add software system reset via SCLR
Sebastian Huber [Wed, 5 Feb 2014 07:31:55 +0000 (08:31 +0100)]
arm/zynq: Add software system reset via SCLR

Support software-driven system reset via the register in the SCLR.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agohw/arm/allwinner-a10: initialize EMAC
Beniamino Galvani [Thu, 30 Jan 2014 22:02:07 +0000 (23:02 +0100)]
hw/arm/allwinner-a10: initialize EMAC

Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agohw/net: add support for Allwinner EMAC Fast Ethernet controller
Beniamino Galvani [Thu, 30 Jan 2014 22:02:06 +0000 (23:02 +0100)]
hw/net: add support for Allwinner EMAC Fast Ethernet controller

This patch adds support for the Fast Ethernet MAC found on Allwinner
SoCs, together with a basic emulation of Realtek RTL8201CP PHY.

Since there is no public documentation of the Allwinner controller, the
implementation is based on Linux kernel driver.

Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agoutil/fifo8: clear fifo head upon reset
Beniamino Galvani [Thu, 30 Jan 2014 22:02:05 +0000 (23:02 +0100)]
util/fifo8: clear fifo head upon reset

To improve the predictability of fifo8_pop_buf(), the fifo head is set
to the start of data buffer upon a reset so that the first call to the
function will be able to retrieve all data in the fifo.

Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agoutil/fifo8: implement push/pop of multiple bytes
Beniamino Galvani [Thu, 30 Jan 2014 22:02:04 +0000 (23:02 +0100)]
util/fifo8: implement push/pop of multiple bytes

The patch adds functions fifo8_push_all() and fifo8_pop_buf() which
can be used respectively to push the content of a memory buffer to the
fifo and to pop multiple bytes obtaining a pointer to the fifo backing
buffer.

In addition, it implements fifo8_num_free() and fifo8_num_used() which
allow to check if a multi-byte operation can be performed.

Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agodisas: Implement disassembly output for A64
Claudio Fontana [Wed, 5 Feb 2014 17:27:28 +0000 (17:27 +0000)]
disas: Implement disassembly output for A64

Use libvixl to implement disassembly output in debug
logs for A64, for use with both AArch64 hosts and targets.

Signed-off-by: Claudio Fontana <claudio.fontana@linaro.org>
[PMM:
 * added support for target disassembly
 * switched to custom QEMUDisassembler so the output format
   matches what QEMU expects
 * make sure we correctly fall back to "just print hex"
   if we didn't build the AArch64 disassembler because of
   lack of a C++ compiler
 * rename from 'aarch64' to 'arm-a64' because this is a
   disassembler for the A64 instruction set
 * merge aarch64.c and aarch64-cxx.cc into one C++ file
 * simplify the aarch64.c<->aarch64-cxx.cc interface]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agodisas/libvixl: Fix upstream libvixl compilation issues
Peter Maydell [Wed, 5 Feb 2014 17:27:28 +0000 (17:27 +0000)]
disas/libvixl: Fix upstream libvixl compilation issues

Fix various minor issues with upstream libvixl so that it will compile
successfully on the platforms QEMU cares about:
 * remove unused GBytes constant (it clashes with the glib headers)
 * fix suffixes on constants to use 'LL' for 64 bit constants so
   we can compile on 32 bit hosts

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
10 years agodisas: Add subset of libvixl sources for A64 disassembler
Peter Maydell [Wed, 5 Feb 2014 17:27:27 +0000 (17:27 +0000)]
disas: Add subset of libvixl sources for A64 disassembler

Add the subset of the libvixl sources that are needed for the
A64 disassembler support. These sources come from
https://github.com/armvixl/vixl commit 578645f14e122d2b
which is VIXL release 1.1.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
10 years agorules.mak: Link with C++ if we have a C++ compiler
Peter Maydell [Wed, 5 Feb 2014 17:27:27 +0000 (17:27 +0000)]
rules.mak: Link with C++ if we have a C++ compiler

If we have a C++ compiler available, link with it, because we might be
linking some C++ files in. This allows us to include C++ object files
in the QEMU binary proper.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
10 years agorules.mak: Support .cc as a C++ source file suffix
Peter Maydell [Wed, 5 Feb 2014 17:27:27 +0000 (17:27 +0000)]
rules.mak: Support .cc as a C++ source file suffix

The A64 disassembler libvixl uses .cc as its suffix for
C++ source files, so add support for it (we already support
.cpp).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
10 years agoarm_gic: Add GICC_APRn state to the GICState
Christoffer Dall [Tue, 19 Nov 2013 03:26:33 +0000 (19:26 -0800)]
arm_gic: Add GICC_APRn state to the GICState

The GICC_APRn registers are not currently supported by the ARM GIC v2.0
emulation.  This patch adds the missing state.

Note that we also change the number of APRs to use a define GIC_NR_APRS
based on the maximum number of preemption levels.  This patch also adds
RAZ/WI accessors for the four registers on the emulated CPU interface.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>