]> Git Repo - qemu.git/log
qemu.git
6 years agoMerge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging
Peter Maydell [Mon, 5 Mar 2018 14:27:24 +0000 (14:27 +0000)]
Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging

# gpg: Signature made Mon 05 Mar 2018 03:06:59 GMT
# gpg:                using RSA key EF04965B398D6211
# gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <[email protected]>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 215D 46F4 8246 689E C77F  3562 EF04 965B 398D 6211

* remotes/jasowang/tags/net-pull-request:
  tap: setting error appropriately when calling net_init_tap_one()
  hw/net: Remove unnecessary header includes
  net: Add a new convenience option "--nic" to configure default/on-board NICs
  net: Remove the deprecated 'host_net_add' and 'host_net_remove' HMP commands
  net: Remove the deprecated way of dumping network packets
  net: Make net_client_init() static
  net: Only show vhost-user in the help text if CONFIG_POSIX is defined
  net: List available netdevs with "-netdev help"
  net: Move error reporting from net_init_client/netdev to the calling site

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' into...
Peter Maydell [Mon, 5 Mar 2018 13:29:31 +0000 (13:29 +0000)]
Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' into staging

# gpg: Signature made Sun 04 Mar 2018 17:32:25 GMT
# gpg:                using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <[email protected]>"
# gpg:                 aka "Laurent Vivier <[email protected]>"
# gpg:                 aka "Laurent Vivier (Red Hat) <[email protected]>"
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier/tags/m68k-for-2.12-pull-request:
  target/m68k: add fscale, fgetman and fgetexp
  softfloat: use floatx80_infinity in softfloat
  target/m68k: add fmod/frem
  softfloat: export some functions
  target/m68k: TCGv returned by gen_load() must be freed

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/ericb/tags/pull-qapi-2018-03-01-v4' into staging
Peter Maydell [Mon, 5 Mar 2018 09:47:37 +0000 (09:47 +0000)]
Merge remote-tracking branch 'remotes/ericb/tags/pull-qapi-2018-03-01-v4' into staging

qapi patches for 2018-03-01

- Markus Armbruster: Modularize generated QAPI code

# gpg: Signature made Fri 02 Mar 2018 19:50:16 GMT
# gpg:                using RSA key A7A16B4A2527436A
# gpg: Good signature from "Eric Blake <[email protected]>"
# gpg:                 aka "Eric Blake (Free Software Programmer) <[email protected]>"
# gpg:                 aka "[jpeg image of size 6874]"
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-qapi-2018-03-01-v4: (30 commits)
  qapi: Don't create useless directory qapi-generated
  Fix up dangling references to qmp-commands.* in comment and doc
  qapi: Move qapi-schema.json to qapi/, rename generated files
  docs: Correct outdated information on QAPI
  docs/devel/writing-qmp-commands: Update for modular QAPI
  qapi: Empty out qapi-schema.json
  Include less of the generated modular QAPI headers
  qapi: Generate separate .h, .c for each module
  watchdog: Consolidate QAPI into single file
  qapi/common: Fix guardname() for funny filenames
  qapi/types qapi/visit: Generate built-in stuff into separate files
  qapi: Make code-generating visitors use QAPIGen more
  qapi: Rename generated qmp-marshal.c to qmp-commands.c
  qapi: Record 'include' directives in intermediate representation
  qapi: Generate in source order
  qapi: Record 'include' directives in parse tree
  qapi: Concentrate QAPISchemaParser.exprs updates in .__init__()
  qapi: Lift error reporting from QAPISchema.__init__() to callers
  qapi/common: Eliminate QAPISchema.exprs
  qapi: Improve include file name reporting in error messages
  ...

Signed-off-by: Peter Maydell <[email protected]>
6 years agotap: setting error appropriately when calling net_init_tap_one()
Jay Zhou [Fri, 2 Mar 2018 09:04:44 +0000 (17:04 +0800)]
tap: setting error appropriately when calling net_init_tap_one()

If netdev_add tap,id=net0,...,vhost=on failed in net_init_tap_one(),
the followed up device_add virtio-net-pci,netdev=net0 will fail
too, prints:

   TUNSETOFFLOAD ioctl() failed: Bad file descriptor TUNSETOFFLOAD
   ioctl() failed: Bad file descriptor

The reason is that the fd of tap is closed when error occured after
calling net_init_tap_one().

The fd should be closed when calling net_init_tap_one failed:
   - if tap_set_sndbuf() failed
   - if tap_set_sndbuf() succeeded but vhost failed to open or
     initialize with vhostforce flag on
   - with wrong vhost command line parameter
The fd should not be closed just because vhost failed to open or
initialize but without vhostforce flag. So the followed up
device_add can fall back to userspace virtio successfully.

Suggested-by: Michael S. Tsirkin <[email protected]>
Suggested-by: Igor Mammedov <[email protected]>
Suggested-by: Jason Wang <[email protected]>
Signed-off-by: Jay Zhou <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agohw/net: Remove unnecessary header includes
Thomas Huth [Thu, 22 Feb 2018 09:58:37 +0000 (10:58 +0100)]
hw/net: Remove unnecessary header includes

Headers like "hw/loader.h" and "qemu/sockets.h" are not needed in
the hw/net/*.c files. And Some other headers are included via other
headers already, so we can drop them, too.

Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agonet: Add a new convenience option "--nic" to configure default/on-board NICs
Thomas Huth [Wed, 21 Feb 2018 10:18:36 +0000 (11:18 +0100)]
net: Add a new convenience option "--nic" to configure default/on-board NICs

The legacy "-net" option can be quite confusing for the users since most
people do not expect to get a "vlan" hub between their emulated guest
hardware and the host backend. But so far, we are also not able to get
rid of "-net" completely, since it is the only way to configure on-board
NICs that can not be instantiated via "-device" yet. It's also a little
bit shorter to type "-net nic -net tap" instead of "-device xyz,netdev=n1
-netdev tap,id=n1".

So what we need is a new convenience option that is shorter to type than
the full -device + -netdev stuff, and which can be used to configure the
on-board NICs that can not be handled via -device yet. Thus this patch now
provides such a new option "--nic": It adds an entry in the nd_table to
configure a on-board / default NIC, creates a host backend and connects
the two directly, without a confusing "vlan" hub inbetween.

Reviewed-by: Paolo Bonzini <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agonet: Remove the deprecated 'host_net_add' and 'host_net_remove' HMP commands
Thomas Huth [Wed, 21 Feb 2018 10:18:35 +0000 (11:18 +0100)]
net: Remove the deprecated 'host_net_add' and 'host_net_remove' HMP commands

They are deprecated since QEMU v2.10, and so far nobody complained that
these commands are still necessary for any reason - and since you can use
'netdev_add' and 'netdev_remove' instead, there also should not be any
real reason. Since they are also standing in the way for the upcoming
'vlan' clean-up, it's now time to remove them.

Reviewed-by: Paolo Bonzini <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agonet: Remove the deprecated way of dumping network packets
Thomas Huth [Wed, 21 Feb 2018 10:18:34 +0000 (11:18 +0100)]
net: Remove the deprecated way of dumping network packets

"-net dump" has been marked as deprecated since QEMU v2.10, since it
only works with the deprecated 'vlan' parameter (or hubs). Network
dumping should be done with "-object filter-dump" nowadays instead.
Since nobody complained so far about the deprecation message, let's
finally get rid of "-net dump" now.

Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agonet: Make net_client_init() static
Thomas Huth [Wed, 21 Feb 2018 10:18:33 +0000 (11:18 +0100)]
net: Make net_client_init() static

The function is only used within net.c, so there's no need that
this is a global function.

While we're at it, also remove the unused prototype compute_mcast_idx()
(the function has been removed in commit d9caeb09b107e91122d10ba4a08a).

Reviewed-by: Paolo Bonzini <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agonet: Only show vhost-user in the help text if CONFIG_POSIX is defined
Thomas Huth [Wed, 21 Feb 2018 10:18:32 +0000 (11:18 +0100)]
net: Only show vhost-user in the help text if CONFIG_POSIX is defined

According to net/Makefile.objs we only link in the vhost-user code
if CONFIG_POSIX has been set. So the help screen should also only
show this information if CONFIG_POSIX has been defined.

Reviewed-by: Paolo Bonzini <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agonet: List available netdevs with "-netdev help"
Thomas Huth [Wed, 21 Feb 2018 10:18:31 +0000 (11:18 +0100)]
net: List available netdevs with "-netdev help"

Other options like "-chardev" or "-device" feature a nice help text
with the available devices when being called with "help" or "?".
Since it is quite useful, especially if you want to see which network
backends have been compiled into the QEMU binary, let's provide such
a help text for "-netdev", too.

Reviewed-by: Paolo Bonzini <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agonet: Move error reporting from net_init_client/netdev to the calling site
Thomas Huth [Wed, 21 Feb 2018 10:18:30 +0000 (11:18 +0100)]
net: Move error reporting from net_init_client/netdev to the calling site

It looks strange that net_init_client() and net_init_netdev() both
take an "Error **errp" parameter, but then do the error reporting
with "error_report_err(local_err)" on their own. Let's move the
error reporting to the calling site instead to simplify this code
a little bit.

Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Paolo Bonzini <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Signed-off-by: Jason Wang <[email protected]>
6 years agotarget/m68k: add fscale, fgetman and fgetexp
Laurent Vivier [Sat, 24 Feb 2018 20:18:02 +0000 (21:18 +0100)]
target/m68k: add fscale, fgetman and fgetexp

Using local m68k floatx80_getman(), floatx80_getexp(), floatx80_scale()
[copied from previous:
Written by Andreas Grabher for Previous, NeXT Computer Emulator.]

Signed-off-by: Laurent Vivier <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <20180224201802[email protected]>

6 years agosoftfloat: use floatx80_infinity in softfloat
Laurent Vivier [Sat, 24 Feb 2018 20:18:01 +0000 (21:18 +0100)]
softfloat: use floatx80_infinity in softfloat

Since f3218a8 ("softfloat: add floatx80 constants")
floatx80_infinity is defined but never used.

This patch updates floatx80 functions to use
this definition.

This allows to define a different default Infinity
value on m68k: the m68k FPU defines infinity with
all bits set to zero in the mantissa.

Signed-off-by: Laurent Vivier <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <20180224201802[email protected]>

6 years agotarget/m68k: add fmod/frem
Laurent Vivier [Sat, 24 Feb 2018 20:18:00 +0000 (21:18 +0100)]
target/m68k: add fmod/frem

Using a local m68k floatx80_mod()
[copied from previous:
Written by Andreas Grabher for Previous, NeXT Computer Emulator.]

The quotient byte of the FPSR is updated with
the result of the operation.

Signed-off-by: Laurent Vivier <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <20180224201802[email protected]>

6 years agosoftfloat: export some functions
Laurent Vivier [Sat, 24 Feb 2018 20:17:59 +0000 (21:17 +0100)]
softfloat: export some functions

Move fpu/softfloat-macros.h to include/fpu/

Export floatx80 functions to be used by target floatx80
specific implementations.

Exports:
  propagateFloatx80NaN(), extractFloatx80Frac(),
  extractFloatx80Exp(), extractFloatx80Sign(),
  normalizeFloatx80Subnormal(), packFloatx80(),
  roundAndPackFloatx80(), normalizeRoundAndPackFloatx80()

Also exports packFloat32() that will be used to implement
m68k fsinh, fcos, fsin, ftan operations.

Signed-off-by: Laurent Vivier <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <20180224201802[email protected]>

6 years agotarget/m68k: TCGv returned by gen_load() must be freed
Laurent Vivier [Sat, 17 Feb 2018 23:59:20 +0000 (00:59 +0100)]
target/m68k: TCGv returned by gen_load() must be freed

Signed-off-by: Laurent Vivier <[email protected]>
Message-Id: <20180217235920[email protected]>

6 years agoqapi: Don't create useless directory qapi-generated
Markus Armbruster [Sun, 11 Feb 2018 09:36:07 +0000 (10:36 +0100)]
qapi: Don't create useless directory qapi-generated

We used to generate first test and later QGA QAPI code into
qapi-generated/.  Commit b93b63f574 moved the test code to tests/.
Commit 54c2e50205 moved the QGA code to qga/qapi-generated/.  The
directory has been unused since.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoFix up dangling references to qmp-commands.* in comment and doc
Markus Armbruster [Sun, 11 Feb 2018 09:36:06 +0000 (10:36 +0100)]
Fix up dangling references to qmp-commands.* in comment and doc

Fix up the reference to qmp-commands.hx in qmp.c.  Missed in commit
5032a16d1d.

Fix up the reference to qmp-commands.txt in
docs/xen-save-devices-state.txt.  Missed in commit 4d8bb958fa.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Move qapi-schema.json to qapi/, rename generated files
Markus Armbruster [Sun, 11 Feb 2018 09:36:05 +0000 (10:36 +0100)]
qapi: Move qapi-schema.json to qapi/, rename generated files

Move qapi-schema.json to qapi/, so it's next to its modules, and all
files get generated to qapi/, not just the ones generated for modules.

Consistently name the generated files qapi-MODULE.EXT:
qmp-commands.[ch] become qapi-commands.[ch], qapi-event.[ch] become
qapi-events.[ch], and qmp-introspect.[ch] become qapi-introspect.[ch].
This gets rid of the temporary hacks in scripts/qapi/commands.py,
scripts/qapi/events.py, and scripts/qapi/common.py.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: Fix trailing dot in tpm.c, undo temporary hack for OSX toolchain]
Signed-off-by: Eric Blake <[email protected]>
6 years agodocs: Correct outdated information on QAPI
Markus Armbruster [Sun, 11 Feb 2018 09:36:04 +0000 (10:36 +0100)]
docs: Correct outdated information on QAPI

* Fix guidance on error classes

* Point to generated documentation

* Drop plea for documentation, because the QAPI code generator
  enforces it since commit 3313b6124b

* Minor tweaks here and there

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agodocs/devel/writing-qmp-commands: Update for modular QAPI
Markus Armbruster [Sun, 11 Feb 2018 09:36:03 +0000 (10:36 +0100)]
docs/devel/writing-qmp-commands: Update for modular QAPI

With modular code generation, putting stuff right into
qapi-schema.json is a bad idea.  Update writing-qmp-commands.txt
accordingly.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Empty out qapi-schema.json
Markus Armbruster [Mon, 26 Feb 2018 23:13:27 +0000 (17:13 -0600)]
qapi: Empty out qapi-schema.json

The previous commit improved compile time by including less of the
generated QAPI headers.  This is impossible for stuff defined directly
in qapi-schema.json, because that ends up in headers that that pull in
everything.

Move everything but include directives from qapi-schema.json to new
sub-module qapi/misc.json, then include just the "misc" shard where
possible.

It's possible everywhere, except:

* monitor.c needs qmp-command.h to get qmp_init_marshal()

* monitor.c, ui/vnc.c and the generated qapi-event-FOO.c need
  qapi-event.h to get enum QAPIEvent

Perhaps we'll get rid of those some other day.

Adding a type to qapi/migration.json now recompiles some 120 instead
of 2300 out of 5100 objects.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
[eblake: rebase to master]
Signed-off-by: Eric Blake <[email protected]>
6 years agoInclude less of the generated modular QAPI headers
Markus Armbruster [Sun, 11 Feb 2018 09:36:01 +0000 (10:36 +0100)]
Include less of the generated modular QAPI headers

In my "build everything" tree, a change to the types in
qapi-schema.json triggers a recompile of about 4800 out of 5100
objects.

The previous commit split up qmp-commands.h, qmp-event.h, qmp-visit.h,
qapi-types.h.  Each of these headers still includes all its shards.
Reduce compile time by including just the shards we actually need.

To illustrate the benefits: adding a type to qapi/migration.json now
recompiles some 2300 instead of 4800 objects.  The next commit will
improve it further.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
[eblake: rebase to master]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Generate separate .h, .c for each module
Markus Armbruster [Sun, 11 Feb 2018 09:36:00 +0000 (10:36 +0100)]
qapi: Generate separate .h, .c for each module

Our qapi-schema.json is composed of modules connected by include
directives, but the generated code is monolithic all the same: one
qapi-types.h with all the types, one qapi-visit.h with all the
visitors, and so forth.  These monolithic headers get included all
over the place.  In my "build everything" tree, adding a QAPI type
recompiles about 4800 out of 5100 objects.

We wouldn't write such monolithic headers by hand.  It stands to
reason that we shouldn't generate them, either.

Split up generated qapi-types.h to mirror the schema's modular
structure: one header per module.  Name the main module's header
qapi-types.h, and sub-module D/B.json's header D/qapi-types-B.h.

Mirror the schema's includes in the headers, so that qapi-types.h gets
you everything exactly as before.  If you need less, you can include
one or more of the sub-module headers.  To be exploited shortly.

Split up qapi-types.c, qapi-visit.h, qapi-visit.c, qmp-commands.h,
qmp-commands.c, qapi-event.h, qapi-event.c the same way.
qmp-introspect.h, qmp-introspect.c and qapi.texi remain monolithic.

The split of qmp-commands.c duplicates static helper function
qmp_marshal_output_str() in qapi-commands-char.c and
qapi-commands-misc.c.  This happens when commands returning the same
type occur in multiple modules.  Not worth avoiding.

Since I'm going to rename qapi-event.[ch] to qapi-events.[ch], and
qmp-commands.[ch] to qapi-commands.[ch], name the shards that way
already, to reduce churn.  This requires temporary hacks in
commands.py and events.py.  Similarly, c_name() must temporarily
be taught to munge '/' in common.py.  They'll go away with the rename.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: declare a dummy variable in each .c file, to shut up OSX
toolchain warnings about empty .o files, including hacking c_name()]
Signed-off-by: Eric Blake <[email protected]>
6 years agowatchdog: Consolidate QAPI into single file
Eric Blake [Mon, 26 Feb 2018 22:57:43 +0000 (16:57 -0600)]
watchdog: Consolidate QAPI into single file

Commit f0df84c6 added watchdog-set-action in the main qapi-schema.json,
but it belongs better in qapi/run-state.json alongside the definition
of WatchdogAction.  The command was written prior to commit 0e201d34
creating the latter file, even though it was merged after.

Signed-off-by: Eric Blake <[email protected]>
Message-Id: <20180226225744[email protected]>

6 years agoqapi/common: Fix guardname() for funny filenames
Markus Armbruster [Sun, 11 Feb 2018 09:35:59 +0000 (10:35 +0100)]
qapi/common: Fix guardname() for funny filenames

guardname() fails to return a valid C identifier for arguments
containing anything but [A-Za-z0-9_.-'].  Fix that.  Don't bother
protecting ticklish identifiers; header guards are all-caps, and no
ticklish identifiers are.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi/types qapi/visit: Generate built-in stuff into separate files
Markus Armbruster [Mon, 26 Feb 2018 22:29:21 +0000 (16:29 -0600)]
qapi/types qapi/visit: Generate built-in stuff into separate files

Linking code from multiple separate QAPI schemata into the same
program is possible, but involves some weirdness around built-in
types:

* We generate code for built-in types into .c only with option
  --builtins.  The user is responsible for generating code for exactly
  one QAPI schema per program with --builtins.

* We generate code for built-in types into .h regardless of
  --builtins, but guarded by #ifndef QAPI_VISIT_BUILTIN.  Because all
  copies of this code are exactly the same, including any combination
  of these headers works.

Replace this contraption by something more conventional: generate code
for built-in types into their very own files: qapi-builtin-types.c,
qapi-builtin-visit.c, qapi-builtin-types.h, qapi-builtin-visit.h, but
only with --builtins.  Obey --output-dir, but ignore --prefix for
them.

Make qapi-types.h include qapi-builtin-types.h.  With multiple
schemata you now have multiple qapi-types.[ch], but only one
qapi-builtin-types.[ch].  Same for qapi-visit.[ch] and
qapi-builtin-visit.[ch].

Bonus: if all you need is built-in stuff, you can include a much
smaller header.  To be exploited shortly.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: fix octal constant for python 3]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Make code-generating visitors use QAPIGen more
Markus Armbruster [Mon, 26 Feb 2018 19:50:08 +0000 (13:50 -0600)]
qapi: Make code-generating visitors use QAPIGen more

The use of QAPIGen is rather shallow so far: most of the output
accumulation is not converted.  Take the next step: convert output
accumulation in the code-generating visitor classes.  Helper functions
outside these classes are not converted.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: rebase to earlier guardstart cleanup]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Rename generated qmp-marshal.c to qmp-commands.c
Markus Armbruster [Sun, 11 Feb 2018 09:35:56 +0000 (10:35 +0100)]
qapi: Rename generated qmp-marshal.c to qmp-commands.c

All generated .c are named like their .h, except for qmp-marshal.c and
qmp-commands.h.  To add to the confusion, tests-qmp-commands.c falsely
matches generated test-qmp-commands.h.

Get rid of this unnecessary complication.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Record 'include' directives in intermediate representation
Markus Armbruster [Sun, 11 Feb 2018 09:35:55 +0000 (10:35 +0100)]
qapi: Record 'include' directives in intermediate representation

The include directive permits modular QAPI schemata, but the generated
code is monolithic all the same.  To permit generating modular code,
the front end needs to pass more information on inclusions to the back
ends.  The commit before last added the necessary information to the
parse tree.  This commit adds it to the intermediate representation
and its QAPISchemaVisitor.  A later commit will use this to to
generate modular code.

New entity QAPISchemaInclude represents inclusions.  Call new visitor
method visit_include() for it, so visitors can see the sub-modules a
module includes.

Note that unlike other entities, QAPISchemaInclude has no name, and is
therefore not added to entity_dict.

New QAPISchemaEntity attribute @module names the entity's source file.
Call new visitor method visit_module() when it changes during a visit,
so visitors can keep track of the module being visited.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
[eblake: avoid accidental deletion of self._predefining]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Generate in source order
Markus Armbruster [Sun, 11 Feb 2018 09:35:54 +0000 (10:35 +0100)]
qapi: Generate in source order

The generators' conversion to visitors (merge commit 9e72681d16)
changed the processing order of entities from source order to
alphabetical order.  The next commit needs source order, so change it
back.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Record 'include' directives in parse tree
Markus Armbruster [Sun, 11 Feb 2018 09:35:53 +0000 (10:35 +0100)]
qapi: Record 'include' directives in parse tree

The parse tree is a list of expressions.  Except include expressions
currently get replaced by the included file's parse tree.

Instead of throwing away the include expression, keep it with the file
name expanded so you don't have to track the including file's
directory to make sense of it.

A future commit will put this include expression to use.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: fix check of expr after assignment]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Concentrate QAPISchemaParser.exprs updates in .__init__()
Markus Armbruster [Sun, 11 Feb 2018 09:35:52 +0000 (10:35 +0100)]
qapi: Concentrate QAPISchemaParser.exprs updates in .__init__()

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Lift error reporting from QAPISchema.__init__() to callers
Markus Armbruster [Sun, 11 Feb 2018 09:35:51 +0000 (10:35 +0100)]
qapi: Lift error reporting from QAPISchema.__init__() to callers

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi/common: Eliminate QAPISchema.exprs
Markus Armbruster [Sun, 11 Feb 2018 09:35:50 +0000 (10:35 +0100)]
qapi/common: Eliminate QAPISchema.exprs

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Improve include file name reporting in error messages
Markus Armbruster [Sun, 11 Feb 2018 09:35:49 +0000 (10:35 +0100)]
qapi: Improve include file name reporting in error messages

Error messages print absolute file names of included files even if the
user gave a relative one on the command line:

    $ PYTHONPATH=scripts python -B tests/qapi-schema/test-qapi.py tests/qapi-schema/include-cycle.json
    In file included from tests/qapi-schema/include-cycle.json:1:
    In file included from /work/armbru/qemu/tests/qapi-schema/include-cycle-b.json:1:
    /work/armbru/qemu/tests/qapi-schema/include-cycle-c.json:1: Inclusion loop for include-cycle.json

Improve this to

    In file included from tests/qapi-schema/include-cycle.json:1:
    In file included from tests/qapi-schema/include-cycle-b.json:1:
    tests/qapi-schema/include-cycle-c.json:1: Inclusion loop for include-cycle.json

The error message when an include file can't be opened prints the
include directive's file name, which is relative to the including
file.  Change this to print the file name relative to the working
directory.  Visible in tests/qapi-schema/include-no-file.err.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Touch generated files only when they change
Markus Armbruster [Sun, 11 Feb 2018 09:35:48 +0000 (10:35 +0100)]
qapi: Touch generated files only when they change

A massive number of objects depends on QAPI-generated headers.  In my
"build everything" tree, it's roughly 4800 out of 5100.  This is
particularly annoying when only some of the generated files change,
say for a doc fix.

Improve qapi-gen.py to touch its output files only if they actually
change.  Rebuild time for a QAPI doc fix drops from many minutes to a
few seconds.  Rebuilds get faster for certain code changes, too.  For
instance, adding a simple QMP event now recompiles less than 200
instead of 4800 objects.  But adding a QAPI type is as bad as ever;
we've clearly got more work to do.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: fix octal constant for python3]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi-gen: Convert from getopt to argparse
Markus Armbruster [Sun, 11 Feb 2018 09:35:47 +0000 (10:35 +0100)]
qapi-gen: Convert from getopt to argparse

argparse is nicer to use than getopt, and gives us --help almost for
free.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
[eblake: Fix --output-dir editing accident]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi-gen: New common driver for code and doc generators
Markus Armbruster [Mon, 26 Feb 2018 19:48:58 +0000 (13:48 -0600)]
qapi-gen: New common driver for code and doc generators

Whenever qapi-schema.json changes, we run six programs eleven times to
update eleven files.  Similar for qga/qapi-schema.json.  This is
silly.  Replace the six programs by a single program that spits out
all eleven files.

The programs become modules in new Python package qapi, along with the
helper library.  This requires moving them to scripts/qapi/.  While
moving them, consistently drop executable mode bits.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: move change to one-line 'blurb' earlier in series, mention mode
bit change as intentional, update qapi-code-gen.txt to match actual
generated events.c file]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Turn generators into modules
Markus Armbruster [Mon, 26 Feb 2018 19:39:37 +0000 (13:39 -0600)]
qapi: Turn generators into modules

The next commit will introduce a common driver program for all
generators.  The generators need to be modules for that.  qapi2texi.py
already is.  Make the other generators follow suit.

The changes are actually trivial.  Obvious in the diffs once you view
them with whitespace changes ignored.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: minor tweak to keep 'blurb' one line]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Reduce use of global variables in generators some
Markus Armbruster [Sun, 11 Feb 2018 09:35:44 +0000 (10:35 +0100)]
qapi: Reduce use of global variables in generators some

In preparation of the next commit, which will turn the generators into
modules.  These global variables will become local to main() then.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: New classes QAPIGenC, QAPIGenH, QAPIGenDoc
Markus Armbruster [Mon, 26 Feb 2018 19:19:40 +0000 (13:19 -0600)]
qapi: New classes QAPIGenC, QAPIGenH, QAPIGenDoc

These classes encapsulate accumulating and writing output.

Convert C code generation to QAPIGenC and QAPIGenH.  The conversion is
rather shallow: most of the output accumulation is not converted.
Left for later.

The indentation machinery uses a single global variable indent_level,
even though we generally interleave creation of a .c and its .h.  It
should become instance variable of QAPIGenC.  Also left for later.

Documentation generation isn't converted, and QAPIGenDoc isn't used.
This will change shortly.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: fix nits spotted by Michael]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Rename variable holding the QAPISchemaGenFOOVisitor
Markus Armbruster [Sun, 11 Feb 2018 09:35:42 +0000 (10:35 +0100)]
qapi: Rename variable holding the QAPISchemaGenFOOVisitor

Rename the variable holding the QAPISchemaGenFOOVisitor from gen to
vis, to avoid confusion in the next commit.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Generate up-to-date copyright notice
Markus Armbruster [Sun, 11 Feb 2018 09:35:41 +0000 (10:35 +0100)]
qapi: Generate up-to-date copyright notice

Each generator carries a copyright notice for the generator itself,
and another one for the files it generates.  Only the former have been
updated along the way, the latter have not, and are all out of date.

Fix by copying the generator's copyright notice to the generated files
instead.  Note that the fix doesn't copy the "Authors:" part; the
generated files' outdated Authors list goes away without replacement.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Michael Roth <[email protected]>
[eblake: Flatten each 'blurb' to one line]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: Streamline boilerplate comment generation
Markus Armbruster [Sun, 11 Feb 2018 09:35:40 +0000 (10:35 +0100)]
qapi: Streamline boilerplate comment generation

Every generator has separate boilerplate for .h and .c, and their
differences are boring.  All of them repeat the license note.

Reduce the repetition as follows.  Move common text like the license
note to common open_output(), next to the existing common text there.
For each generator, replace the two separate descriptions by a single
one.

While there, emit an "automatically generated" note into generated
documentation, too.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-Id: <20180211093607[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agoInclude qapi/qmp/qerror.h exactly where needed
Markus Armbruster [Sun, 11 Feb 2018 09:35:39 +0000 (10:35 +0100)]
Include qapi/qmp/qerror.h exactly where needed

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <20180211093607[email protected]>
Reviewed-by: Eric Blake <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agonet: fix misaligned member access
Marc-André Lureau [Fri, 9 Feb 2018 19:03:40 +0000 (20:03 +0100)]
net: fix misaligned member access

Fixes the following ASAN warnings:

/home/elmarco/src/qemu/hw/net/net_tx_pkt.c:201:27: runtime error: member access within misaligned address 0x631000028846 for type 'struct ip_header', which requires 4 byte alignment
0x631000028846: note: pointer points here
 01 00 00 00 45 00  01 a9 01 00 00 00 40 11  78 45 00 00 00 00 ff ff  ff ff 00 00 00 00 00 00  00 00
             ^
/home/elmarco/src/qemu/hw/net/net_tx_pkt.c:208:63: runtime error: member access within misaligned address 0x631000028846 for type 'struct ip_header', which requires 4 byte alignment
0x631000028846: note: pointer points here
 01 00 00 00 45 00  01 a9 01 00 00 00 40 11  78 45 00 00 00 00 ff ff  ff ff 00 00 00 00 00 00  00 00
             ^
/home/elmarco/src/qemu/hw/net/net_tx_pkt.c:210:13: runtime error: member access within misaligned address 0x631000028846 for type 'struct ip_header', which requires 4 byte alignment
0x631000028846: note: pointer points here
 01 00 00 00 45 00  01 a9 01 00 00 00 40 11  78 45 00 00 00 00 ff ff  ff ff 00 00 00 00 00 00  00 00

Signed-off-by: Marc-André Lureau <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 20180209190340[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/bkoppelmann/tags/pull-tricore-2018-03-02' into...
Peter Maydell [Fri, 2 Mar 2018 16:56:20 +0000 (16:56 +0000)]
Merge remote-tracking branch 'remotes/bkoppelmann/tags/pull-tricore-2018-03-02' into staging

tricore patches

# gpg: Signature made Fri 02 Mar 2018 10:59:26 GMT
# gpg:                using RSA key 0AD2C6396B69CA14
# gpg: Good signature from "Bastian Koppelmann <[email protected]>"
# Primary key fingerprint: 6E63 6A7E 83F2 DD0C FA6E  6E37 0AD2 C639 6B69 CA14

* remotes/bkoppelmann/tags/pull-tricore-2018-03-02:
  tricore: renamed masking of PIE
  tricore: renamed masking of IE
  tricore: added CORE_ID
  tricore: added some missing cpu instructions

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20180302' into...
Peter Maydell [Fri, 2 Mar 2018 14:37:10 +0000 (14:37 +0000)]
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20180302' into staging

target-arm queue:
 * implement FCMA and RDM v8.1 and v8.3 instructions
 * enable Cortex-M33 v8M core, and provide new mps2-an505 board model
   that uses it
 * decodetree: Propagate return value from translate subroutines
 * xlnx-zynqmp: Implement the RTC device

# gpg: Signature made Fri 02 Mar 2018 11:05:40 GMT
# gpg:                using RSA key 3C2525ED14360CDE
# gpg: Good signature from "Peter Maydell <[email protected]>"
# gpg:                 aka "Peter Maydell <[email protected]>"
# gpg:                 aka "Peter Maydell <[email protected]>"
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20180302: (39 commits)
  target/arm: Enable ARM_FEATURE_V8_FCMA
  target/arm: Decode t32 simd 3reg and 2reg_scalar extension
  target/arm: Decode aa32 armv8.3 2-reg-index
  target/arm: Decode aa32 armv8.3 3-same
  target/arm: Decode aa64 armv8.3 fcmla
  target/arm: Decode aa64 armv8.3 fcadd
  target/arm: Add ARM_FEATURE_V8_FCMA
  target/arm: Enable ARM_FEATURE_V8_RDM
  target/arm: Decode aa32 armv8.1 two reg and a scalar
  target/arm: Decode aa32 armv8.1 three same
  target/arm: Decode aa64 armv8.1 scalar/vector x indexed element
  target/arm: Decode aa64 armv8.1 three same extra
  target/arm: Decode aa64 armv8.1 scalar three same extra
  target/arm: Refactor disas_simd_indexed size checks
  target/arm: Refactor disas_simd_indexed decode
  target/arm: Add ARM_FEATURE_V8_RDM
  mps2-an505: New board model: MPS2 with AN505 Cortex-M33 FPGA image
  hw/arm/iotkit: Model Arm IOT Kit
  hw/misc/iotkit-secctl: Add remaining simple registers
  hw/misc/iotkit-secctl: Add handling for PPCs
  ...

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2018-03-01' into staging
Peter Maydell [Fri, 2 Mar 2018 12:39:13 +0000 (12:39 +0000)]
Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2018-03-01' into staging

nbd patches for 2018-03-01

- Eric Blake: nbd: Honor server's advertised minimum block size
- Vladimir Sementsov-Ogievskiy: partial: nbd block status base:allocation

# gpg: Signature made Thu 01 Mar 2018 21:01:22 GMT
# gpg:                using RSA key A7A16B4A2527436A
# gpg: Good signature from "Eric Blake <[email protected]>"
# gpg:                 aka "Eric Blake (Free Software Programmer) <[email protected]>"
# gpg:                 aka "[jpeg image of size 6874]"
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-nbd-2018-03-01:
  nbd/client: fix error messages in nbd_handle_reply_err
  nbd: BLOCK_STATUS constants
  nbd: change indenting in nbd.h
  nbd: Honor server's advertised minimum block size

Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Enable ARM_FEATURE_V8_FCMA
Richard Henderson [Fri, 2 Mar 2018 10:45:45 +0000 (10:45 +0000)]
target/arm: Enable ARM_FEATURE_V8_FCMA

Enable it for the "any" CPU used by *-linux-user.

Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode t32 simd 3reg and 2reg_scalar extension
Richard Henderson [Fri, 2 Mar 2018 10:45:45 +0000 (10:45 +0000)]
target/arm: Decode t32 simd 3reg and 2reg_scalar extension

Happily, the bits are in the same places compared to a32.

Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa32 armv8.3 2-reg-index
Richard Henderson [Fri, 2 Mar 2018 10:45:45 +0000 (10:45 +0000)]
target/arm: Decode aa32 armv8.3 2-reg-index

Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa32 armv8.3 3-same
Richard Henderson [Fri, 2 Mar 2018 10:45:44 +0000 (10:45 +0000)]
target/arm: Decode aa32 armv8.3 3-same

Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa64 armv8.3 fcmla
Richard Henderson [Fri, 2 Mar 2018 10:45:44 +0000 (10:45 +0000)]
target/arm: Decode aa64 armv8.3 fcmla

Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
[PMM: renamed e1/e2/e3/e4 to use the same naming as the version
 of the pseudocode in the Arm ARM]
Reviewed-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa64 armv8.3 fcadd
Richard Henderson [Fri, 2 Mar 2018 10:45:43 +0000 (10:45 +0000)]
target/arm: Decode aa64 armv8.3 fcadd

Reviewed-by: Alex Bennée <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Add ARM_FEATURE_V8_FCMA
Richard Henderson [Fri, 2 Mar 2018 10:45:43 +0000 (10:45 +0000)]
target/arm: Add ARM_FEATURE_V8_FCMA

Not enabled anywhere yet.

Reviewed-by: Alex Bennée <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Enable ARM_FEATURE_V8_RDM
Richard Henderson [Fri, 2 Mar 2018 10:45:43 +0000 (10:45 +0000)]
target/arm: Enable ARM_FEATURE_V8_RDM

Enable it for the "any" CPU used by *-linux-user.

Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa32 armv8.1 two reg and a scalar
Richard Henderson [Fri, 2 Mar 2018 10:45:42 +0000 (10:45 +0000)]
target/arm: Decode aa32 armv8.1 two reg and a scalar

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa32 armv8.1 three same
Richard Henderson [Fri, 2 Mar 2018 10:45:42 +0000 (10:45 +0000)]
target/arm: Decode aa32 armv8.1 three same

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa64 armv8.1 scalar/vector x indexed element
Richard Henderson [Fri, 2 Mar 2018 10:45:42 +0000 (10:45 +0000)]
target/arm: Decode aa64 armv8.1 scalar/vector x indexed element

Reviewed-by: Alex Bennée <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa64 armv8.1 three same extra
Richard Henderson [Fri, 2 Mar 2018 10:45:42 +0000 (10:45 +0000)]
target/arm: Decode aa64 armv8.1 three same extra

Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Decode aa64 armv8.1 scalar three same extra
Richard Henderson [Fri, 2 Mar 2018 10:45:41 +0000 (10:45 +0000)]
target/arm: Decode aa64 armv8.1 scalar three same extra

Reviewed-by: Alex Bennée <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Refactor disas_simd_indexed size checks
Richard Henderson [Fri, 2 Mar 2018 10:45:41 +0000 (10:45 +0000)]
target/arm: Refactor disas_simd_indexed size checks

The integer size check was already outside of the opcode switch;
move the floating-point size check outside as well.  Unify the
size vs index adjustment between fp and integer paths.

Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Refactor disas_simd_indexed decode
Richard Henderson [Fri, 2 Mar 2018 10:45:41 +0000 (10:45 +0000)]
target/arm: Refactor disas_simd_indexed decode

Include the U bit in the switches rather than testing separately.

Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agotarget/arm: Add ARM_FEATURE_V8_RDM
Richard Henderson [Fri, 2 Mar 2018 10:45:41 +0000 (10:45 +0000)]
target/arm: Add ARM_FEATURE_V8_RDM

Not enabled anywhere yet.

Reviewed-by: Alex Bennée <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180228193125[email protected]
Signed-off-by: Peter Maydell <[email protected]>
6 years agomps2-an505: New board model: MPS2 with AN505 Cortex-M33 FPGA image
Peter Maydell [Fri, 2 Mar 2018 10:45:40 +0000 (10:45 +0000)]
mps2-an505: New board model: MPS2 with AN505 Cortex-M33 FPGA image

Define a new board model for the MPS2 with an AN505 FPGA image
containing a Cortex-M33. Since the FPGA images for TrustZone
cores (AN505, and the similar AN519 for Cortex-M23) have a
significantly different layout of devices to the non-TrustZone
images, we use a new source file rather than shoehorning them
into the existing mps2.c.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/arm/iotkit: Model Arm IOT Kit
Peter Maydell [Fri, 2 Mar 2018 10:45:40 +0000 (10:45 +0000)]
hw/arm/iotkit: Model Arm IOT Kit

Model the Arm IoT Kit documented in
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ecm0601256/index.html

The Arm IoT Kit is a subsystem which includes a CPU and some devices,
and is intended be extended by adding extra devices to form a
complete system.  It is used in the MPS2 board's AN505 image for the
Cortex-M33.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/misc/iotkit-secctl: Add remaining simple registers
Peter Maydell [Fri, 2 Mar 2018 10:45:40 +0000 (10:45 +0000)]
hw/misc/iotkit-secctl: Add remaining simple registers

Add remaining easy registers to iotkit-secctl:
 * NSCCFG just routes its two bits out to external GPIO lines
 * BRGINSTAT/BRGINTCLR/BRGINTEN can be dummies, because QEMU's
   bus fabric can never report errors

Signed-off-by: Peter Maydell <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/misc/iotkit-secctl: Add handling for PPCs
Peter Maydell [Fri, 2 Mar 2018 10:45:39 +0000 (10:45 +0000)]
hw/misc/iotkit-secctl: Add handling for PPCs

The IoTKit Security Controller includes various registers
that expose to software the controls for the Peripheral
Protection Controllers in the system. Implement these.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/misc/iotkit-secctl: Arm IoT Kit security controller initial skeleton
Peter Maydell [Fri, 2 Mar 2018 10:45:39 +0000 (10:45 +0000)]
hw/misc/iotkit-secctl: Arm IoT Kit security controller initial skeleton

The Arm IoT Kit includes a "security controller" which is largely a
collection of registers for controlling the PPCs and other bits of
glue in the system.  This commit provides the initial skeleton of the
device, implementing just the ID registers, and a couple of read-only
read-as-zero registers.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/misc/tz-ppc: Model TrustZone peripheral protection controller
Peter Maydell [Fri, 2 Mar 2018 10:45:39 +0000 (10:45 +0000)]
hw/misc/tz-ppc: Model TrustZone peripheral protection controller

Add a model of the TrustZone peripheral protection controller (PPC),
which is used to gate transactions to non-TZ-aware peripherals so
that secure software can configure them to not be accessible to
non-secure software.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/misc/mps2-fpgaio: FPGA control block for MPS2 AN505
Peter Maydell [Fri, 2 Mar 2018 10:45:39 +0000 (10:45 +0000)]
hw/misc/mps2-fpgaio: FPGA control block for MPS2 AN505

The MPS2 AN505 FPGA image includes a "FPGA control block"
which is a small set of registers handling LEDs, buttons
and some counters.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/core/split-irq: Device that splits IRQ lines
Peter Maydell [Fri, 2 Mar 2018 10:45:38 +0000 (10:45 +0000)]
hw/core/split-irq: Device that splits IRQ lines

In some board or SoC models it is necessary to split a qemu_irq line
so that one input can feed multiple outputs.  We currently have
qemu_irq_split() for this, but that has several deficiencies:
 * it can only handle splitting a line into two
 * it unavoidably leaks memory, so it can't be used
   in a device that can be deleted

Implement a qdev device that encapsulates splitting of IRQs, with a
configurable number of outputs.  (This is in some ways the inverse of
the TYPE_OR_IRQ device.)

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agoqdev: Add new qdev_init_gpio_in_named_with_opaque()
Peter Maydell [Fri, 2 Mar 2018 10:45:38 +0000 (10:45 +0000)]
qdev: Add new qdev_init_gpio_in_named_with_opaque()

The function qdev_init_gpio_in_named() passes the DeviceState pointer
as the opaque data pointor for the irq handler function.  Usually
this is what you want, but in some cases it would be helpful to use
some other data pointer.

Add a new function qdev_init_gpio_in_named_with_opaque() which allows
the caller to specify the data pointer they want.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agoinclude/hw/or-irq.h: Add missing include guard
Peter Maydell [Fri, 2 Mar 2018 10:45:38 +0000 (10:45 +0000)]
include/hw/or-irq.h: Add missing include guard

The or-irq.h header file is missing the customary guard against
multiple inclusion, which means compilation fails if it gets
included twice. Fix the omission.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/misc/unimp: Move struct to header file
Peter Maydell [Fri, 2 Mar 2018 10:45:38 +0000 (10:45 +0000)]
hw/misc/unimp: Move struct to header file

Move the definition of the struct for the unimplemented-device
from unimp.c to unimp.h, so that users can embed the struct
in their own device structs if they prefer.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agotarget/arm: Add Cortex-M33
Peter Maydell [Fri, 2 Mar 2018 10:45:37 +0000 (10:45 +0000)]
target/arm: Add Cortex-M33

Add a Cortex-M33 definition. The M33 is an M profile CPU
which implements the ARM v8M architecture, including the
M profile Security Extension.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agoarmv7m: Forward init-svtor property to CPU object
Peter Maydell [Fri, 2 Mar 2018 10:45:37 +0000 (10:45 +0000)]
armv7m: Forward init-svtor property to CPU object

Create an "init-svtor" property on the armv7m container
object which we can forward to the CPU object.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agotarget/arm: Define init-svtor property for the reset secure VTOR value
Peter Maydell [Fri, 2 Mar 2018 10:45:37 +0000 (10:45 +0000)]
target/arm: Define init-svtor property for the reset secure VTOR value

The Cortex-M33 allows the system to specify the reset value of the
secure Vector Table Offset Register (VTOR) by asserting config
signals. In particular, guest images for the MPS2 AN505 board rely
on the MPS2's initial VTOR being correct for that board.
Implement a QEMU property so board and SoC code can set the reset
value to the correct value.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agoarmv7m: Forward idau property to CPU object
Peter Maydell [Fri, 2 Mar 2018 10:45:36 +0000 (10:45 +0000)]
armv7m: Forward idau property to CPU object

Create an "idau" property on the armv7m container object which
we can forward to the CPU object. Annoyingly, we can't use
object_property_add_alias() because the CPU object we want to
forward to doesn't exist until the armv7m container is realized.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agotarget/arm: Define an IDAU interface
Peter Maydell [Fri, 2 Mar 2018 10:45:36 +0000 (10:45 +0000)]
target/arm: Define an IDAU interface

In v8M, the Implementation Defined Attribution Unit (IDAU) is
a small piece of hardware typically implemented in the SoC
which provides board or SoC specific security attribution
information for each address that the CPU performs MPU/SAU
checks on. For QEMU, we model this with a QOM interface which
is implemented by the board or SoC object and connected to
the CPU using a link property.

This commit defines the new interface class, adds the link
property to the CPU object, and makes the SAU checking
code call the IDAU interface if one is present.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/arm/armv7m: Honour CPU's address space for image loads
Peter Maydell [Fri, 2 Mar 2018 10:45:36 +0000 (10:45 +0000)]
hw/arm/armv7m: Honour CPU's address space for image loads

Instead of loading guest images to the system address space, use the
CPU's address space.  This is important if we're trying to load the
file to memory or via an alias memory region that is provided by an
SoC object and thus not mapped into the system address space.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agohw/arm/boot: Honour CPU's address space for image loads
Peter Maydell [Fri, 2 Mar 2018 10:45:36 +0000 (10:45 +0000)]
hw/arm/boot: Honour CPU's address space for image loads

Instead of loading kernels, device trees, and the like to
the system address space, use the CPU's address space. This
is important if we're trying to load the file to memory or
via an alias memory region that is provided by an SoC
object and thus not mapped into the system address space.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agoloader: Add new load_ramdisk_as()
Peter Maydell [Fri, 2 Mar 2018 10:45:35 +0000 (10:45 +0000)]
loader: Add new load_ramdisk_as()

Add a function load_ramdisk_as() which behaves like the existing
load_ramdisk() but allows the caller to specify the AddressSpace
to use. This matches the pattern we have already for various
other loader functions.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180220180325[email protected]

6 years agodecodetree: Propagate return value from translate subroutines
Richard Henderson [Fri, 2 Mar 2018 10:45:35 +0000 (10:45 +0000)]
decodetree: Propagate return value from translate subroutines

Allow the translate subroutines to return false for invalid insns.

At present we can of course invoke an invalid insn exception from within
the translate subroutine, but in the short term this consolidates code.
In the long term it would allow the decodetree language to support
overlapping patterns for ISA extensions.

Signed-off-by: Richard Henderson <[email protected]>
Message-id: 20180227232618[email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
6 years agotricore: renamed masking of PIE
David Brenken [Thu, 1 Mar 2018 15:56:19 +0000 (16:56 +0100)]
tricore: renamed masking of PIE

Signed-off-by: David Brenken <[email protected]>
Signed-off-by: Florian Artmeier <[email protected]>
Signed-off-by: Georg Hofstetter <[email protected]>
Message-Id: <20180301155619[email protected]>
Signed-off-by: Bastian Koppelmann <[email protected]>
6 years agotricore: renamed masking of IE
David Brenken [Thu, 1 Mar 2018 15:56:18 +0000 (16:56 +0100)]
tricore: renamed masking of IE

Signed-off-by: David Brenken <[email protected]>
Signed-off-by: Florian Artmeier <[email protected]>
Signed-off-by: Georg Hofstetter <[email protected]>
Message-Id: <20180301155619[email protected]>
Signed-off-by: Bastian Koppelmann <[email protected]>
6 years agotricore: added CORE_ID
David Brenken [Thu, 1 Mar 2018 15:56:17 +0000 (16:56 +0100)]
tricore: added CORE_ID

Signed-off-by: David Brenken <[email protected]>
Signed-off-by: Florian Artmeier <[email protected]>
Signed-off-by: Georg Hofstetter <[email protected]>
Message-Id: <20180301155619[email protected]>
Signed-off-by: Bastian Koppelmann <[email protected]>
6 years agotricore: added some missing cpu instructions
David Brenken [Thu, 1 Mar 2018 15:56:16 +0000 (16:56 +0100)]
tricore: added some missing cpu instructions

Signed-off-by: David Brenken <[email protected]>
Signed-off-by: Florian Artmeier <[email protected]>
Signed-off-by: Georg Hofstetter <[email protected]>
Message-Id: <20180301155619[email protected]>
Signed-off-by: Bastian Koppelmann <[email protected]>
6 years agoxlnx-zynqmp: Connect the RTC device
Alistair Francis [Fri, 2 Mar 2018 10:45:35 +0000 (10:45 +0000)]
xlnx-zynqmp: Connect the RTC device

Signed-off-by: Alistair Francis <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
6 years agoxlnx-zynqmp-rtc: Add basic time support
Alistair Francis [Fri, 2 Mar 2018 10:45:34 +0000 (10:45 +0000)]
xlnx-zynqmp-rtc: Add basic time support

Allow the guest to determine the time set from the QEMU command line.

This includes adding a trace event to debug the new time.

Signed-off-by: Alistair Francis <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
6 years agoxlnx-zynqmp-rtc: Initial commit
Alistair Francis [Fri, 2 Mar 2018 10:45:34 +0000 (10:45 +0000)]
xlnx-zynqmp-rtc: Initial commit

Initial commit of the ZynqMP RTC device.

Signed-off-by: Alistair Francis <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
6 years agonbd/client: fix error messages in nbd_handle_reply_err
Vladimir Sementsov-Ogievskiy [Thu, 15 Feb 2018 13:51:43 +0000 (16:51 +0300)]
nbd/client: fix error messages in nbd_handle_reply_err

1. NBD_REP_ERR_INVALID is not only about length, so, make message more
   general

2. hex format is not very good: it's hard to read something like
   "option a (set meta context)", so switch to dec.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <1518702707[email protected]>
[eblake: expand scope of patch: ALL uses of nbd_opt_lookup and
nbd_rep_lookup are now decimal]
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd: BLOCK_STATUS constants
Vladimir Sementsov-Ogievskiy [Mon, 26 Feb 2018 16:26:25 +0000 (10:26 -0600)]
nbd: BLOCK_STATUS constants

Expose the new constants and structs that will be used by both
server and client implementations of NBD_CMD_BLOCK_STATUS (the
command is currently experimental at
https://github.com/NetworkBlockDevice/nbd/blob/extension-blockstatus/doc/proto.md
but will hopefully be stabilized soon).

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <1518702707[email protected]>
[eblake: split from larger patch on server implementation]
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd: change indenting in nbd.h
Vladimir Sementsov-Ogievskiy [Thu, 15 Feb 2018 13:51:40 +0000 (16:51 +0300)]
nbd: change indenting in nbd.h

Prepared indenting for the following patch.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <1518702707[email protected]>
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd: Honor server's advertised minimum block size
Eric Blake [Thu, 15 Feb 2018 03:29:05 +0000 (21:29 -0600)]
nbd: Honor server's advertised minimum block size

Commit 79ba8c98 (v2.7) changed the setting of request_alignment
to occur only during bdrv_refresh_limits(), rather than at at
bdrv_open() time; but at the time, NBD was unaffected, because
it still used sector-based callbacks, so the block layer
defaulted NBD to use 512 request_alignment.

Later, commit 70c4fb26 (also v2.7) changed NBD to use byte-based
callbacks, without setting request_alignment.  This resulted in
NBD using request_alignment of 1, which works great when the
server supports it (as is the case for qemu-nbd), but falls apart
miserably if the server requires alignment (but only if qemu
actually sends a sub-sector request; qemu-io can do it, but
most qemu operations still perform on sectors or larger).

Even later, the NBD protocol was updated to document that clients
should learn the server's minimum alignment during NBD_OPT_GO;
and recommended that clients should assume a minimum size of 512
unless the server understands NBD_OPT_GO and replied with a smaller
size.  Commit 081dd1fe (v2.10) attempted to do that, by assigning
request_alignment to whatever was learned from the server; but
it has two flaws: the assignment is done during bdrv_open() so
it gets unconditionally wiped out back to 1 during any later
bdrv_refresh_limits(); and the code is not using a default of 512
when the server did not report a minimum size.

Fix these issues by moving the assignment to request_alignment
to the right function, and by using a sane default when the
server does not advertise a minimum size.

CC: [email protected]
Signed-off-by: Eric Blake <[email protected]>
Message-Id: <20180215032905[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy<[email protected]>
6 years agoMerge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
Peter Maydell [Thu, 1 Mar 2018 18:46:41 +0000 (18:46 +0000)]
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging

virtio,vhost,pci,pc: features, fixes and cleanups

- documentation updates
- vhost fixes
- new crypto vhost device

Signed-off-by: Michael S. Tsirkin <[email protected]>
# gpg: Signature made Thu 01 Mar 2018 16:27:25 GMT
# gpg:                using RSA key 281F0DB8D28D5469
# gpg: Good signature from "Michael S. Tsirkin <[email protected]>"
# gpg:                 aka "Michael S. Tsirkin <[email protected]>"
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* remotes/mst/tags/for_upstream:
  cryptodev-vhost-user: set the key length
  cryptodev-vhost-user: add crypto session handler
  cryptodev: add vhost support
  cryptodev: add vhost-user as a new cryptodev backend
  docs/vmcoreinfo: detail unsupported host format behaviour
  vhost: fix incorrect check in vhost_verify_ring_mappings
  vhost: avoid to start/stop virtqueue which is not ready
  vhost: fix memslot limit check
  docs: pcie: Spell out machine type needs for PCIe features
  docs: document virtio-balloon stats
  intel-iommu: Accept 64-bit writes to FEADDR
  virtio-pci: trivial fixes in error message
  vhost-user: fix memory leak

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/cohuck/tags/s390x-20180301-v2' into staging
Peter Maydell [Thu, 1 Mar 2018 17:08:16 +0000 (17:08 +0000)]
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180301-v2' into staging

- add query-cpus-fast and deprecate query-cpus, while adding s390 cpu
  information
- remove s390x memory hotplug implementation, which is not useable in
  this form
- add boot menu support in the s390-ccw bios
- expose s390x guest crash information
- fixes and cleaups

# gpg: Signature made Thu 01 Mar 2018 12:54:47 GMT
# gpg:                using RSA key DECF6B93C6F02FAF
# gpg: Good signature from "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0  18CE DECF 6B93 C6F0 2FAF

* remotes/cohuck/tags/s390x-20180301-v2: (27 commits)
  s390x/tcg: fix loading 31bit PSWs with the highest bit set
  s390x: remove s390_get_memslot_count
  s390x/sclp: remove memory hotplug support
  s390x/cpumodel: document S390FeatDef.bit not applicable
  hmp: change hmp_info_cpus to use query-cpus-fast
  qemu-doc: deprecate query-cpus
  qmp: add architecture specific cpu data for query-cpus-fast
  qmp: add query-cpus-fast
  qmp: expose s390-specific CPU info
  s390x/tcg: add various alignment checks
  s390x/tcg: fix disabling/enabling DAT
  s390/stattrib: Make SaveVMHandlers data static
  s390x/cpu: expose the guest crash information
  pc-bios/s390: Rebuild the s390x firmware images with the boot menu changes
  s390-ccw: interactive boot menu for scsi
  s390-ccw: use zipl values when no boot menu options are present
  s390-ccw: set cp_receive mask only when needed and consume pending service irqs
  s390-ccw: read user input for boot index via the SCLP console
  s390-ccw: print zipl boot menu
  s390-ccw: read stage2 boot loader data to find menu
  ...

Signed-off-by: Peter Maydell <[email protected]>
This page took 0.095158 seconds and 4 git commands to generate.