Commit Graph

43176 Commits

Author SHA1 Message Date
Peter Maydell
d9767f1bfa Block patches from 2015-12-23 until 2016-01-07.
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQEcBAABCAAGBQJWjuqwAAoJEDuxQgLoOKytznIH/Ap0ldYSdwBouhZkpKRDwIwf
 5/9skIgwuDJ2DeGDqAcVEC4Nxq9HuUCz7DcXPAiTfFRM7ccpnSJJ5O0vfTuC353t
 59h1JYh2kLDLXEm4RdylLMeuLNGuc+avUtWGVVQOrjFmSQAO7z3nexmoNRL6ccqE
 Cd/Oe1I2QU65p/4YpyslKg0N8A/WrHjOsf58Coo2ZCGNh3GLCNuE5mpofXBeSfWB
 bFdaq2Uv9x3F+vVq5zx3iNt2J8kHXlwZBEEYACzs+2j7j7O5TedjHDjgBrirbxl/
 C3F8d+4JqhzAP141yZMO35z1hbehCaKddDZRuN8ryeMXSnBLU3hP9wm4Y1HLrJc=
 =bxBe
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-for-peter-2016-01-07' into staging

Block patches from 2015-12-23 until 2016-01-07.

# gpg: Signature made Thu 07 Jan 2016 22:46:08 GMT using RSA key ID E838ACAD
# gpg: Good signature from "Max Reitz <mreitz@redhat.com>"

* remotes/maxreitz/tags/pull-block-for-peter-2016-01-07: (21 commits)
  iotests: Add test cases for blockdev-mirror
  qmp: Add blockdev-mirror command
  block: Add check on mirror target
  block: Extract blockdev part of qmp_drive_mirror
  block: Rename BLOCK_OP_TYPE_MIRROR to BLOCK_OP_TYPE_MIRROR_SOURCE
  qemu-iotests: s390x: fix test 051
  iotests: 095: Filter _img_info output
  iotests: 095: Use TEST_IMG override instead of "mv"
  iotests: 050: Use TEST_IMG override instead of "mv"
  iotests: 038: Use TEST_IMG override instead of "mv"
  iotests: 037: Use TEST_IMG override instead of "mv"
  iotests: 034: Use TEST_IMG override instead of "mv"
  iotests: 028: Use TEST_IMG override instead of "mv"
  iotests: 024: Use TEST_IMG override instead of "mv"
  iotests: 020: Use TEST_IMG override instead of "mv"
  iotests: 019: Use TEST_IMG override instead of "mv"
  iotests: 018: Use TEST_IMG override instead of "mv"
  block/qapi: Clear err for further error
  block: use drained section in bdrv_close
  qemu-iotests: make check-block.sh work on out-of-tree builds
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-01-08 10:45:07 +00:00
Harmandeep Kaur
0e173b24b5 linux-user/syscall.c: malloc()/calloc() to g_malloc()/g_try_malloc()/g_new0()
Convert malloc()/ calloc() calls to g_malloc()/ g_try_malloc()/ g_new0()

All heap memory allocation should go through glib so that we can take
advantage of a single memory allocator and its debugging/tracing features.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Harmandeep Kaur <write.harmandeep@gmail.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2016-01-08 11:36:13 +02:00
Laurent Vivier
3e24bb3f12 linux-user: in poll(), if nfds is 0, pfd can be NULL
This problem appears with yum in Fedora 20 / PPC64 container.

test case:

    #include <stdio.h>
    #include <poll.h>

    int main(void)
    {
        int ret;

        ret = poll(NULL, 0, 1000);
        printf("%d\n", ret);
    }

target test environment: Fedora 20 / PPC64
host test environment: Ubuntu 14.0.2 / x86_64

original test result: -1

    13451 poll(0,0,1000,274886297496,268566664,268566648) = -1 errno=14 (Bad address)

patched test result: 0

    13536 poll(0,0,1000,274886297496,268566664,268566648) = 0

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2016-01-08 11:36:13 +02:00
Laurent Vivier
928bed6a05 linux-user: correctly align target_epoll_event
According to comments in /usr/include/linux/eventpoll.h,
poll_event is packed only on x86_64.

And to be sure fields are correctly aligned in epoll_data,
use abi_XXX types for all of them.

Moreover, fd type is wrong: fd is int, not ulong.

This has been tested with a ppc guest on an x86_64 host:
without this patch, systemd crashes (core).

CC: Alexander Graf <agraf@suse.de>
CC: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2016-01-08 11:36:12 +02:00
Laurent Vivier
e36800c91a linux-user: add signalfd/signalfd4 syscalls
This patch introduces a system very similar to the one used in the kernel
to attach specific functions to a given file descriptor.

In this case, we attach a specific "host_to_target()" translator to the fd
returned by signalfd() to be able to byte-swap the signalfd_siginfo
structure provided by read().

This patch allows to execute the example program given by
man signalfd(2):

 #include <sys/signalfd.h>
 #include <signal.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>

 #define handle_error(msg) \
     do { perror(msg); exit(EXIT_FAILURE); } while (0)

 int
 main(int argc, char *argv[])
 {
     sigset_t mask;
     int sfd;
     struct signalfd_siginfo fdsi;
     ssize_t s;

     sigemptyset(&mask);
     sigaddset(&mask, SIGINT);
     sigaddset(&mask, SIGQUIT);

     /* Block signals so that they aren't handled
        according to their default dispositions */

     if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)
         handle_error("sigprocmask");

     sfd = signalfd(-1, &mask, 0);
     if (sfd == -1)
         handle_error("signalfd");

     for (;;) {
         s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));
         if (s != sizeof(struct signalfd_siginfo))
             handle_error("read");

         if (fdsi.ssi_signo == SIGINT) {
             printf("Got SIGINT\n");
         } else if (fdsi.ssi_signo == SIGQUIT) {
             printf("Got SIGQUIT\n");
             exit(EXIT_SUCCESS);
         } else {
             printf("Read unexpected signal\n");
         }
     }
 }

 $ ./signalfd_demo
 ^CGot SIGINT
 ^CGot SIGINT
 ^\Got SIGQUIT

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2016-01-08 11:36:12 +02:00
Laurent Vivier
087462c773 ohci: clear pending SOF on suspend
On overcommitted CPU, kernel can be so slow that an interrupt can
be triggered by the device whereas the driver is not ready to receive
it. This drives us into an infinite loop.

On suspend, if a SOF interrupt is raised between the stop of the
device processing and the change of the device internal state to
OHCI_USB_SUSPEND (QEMU stops SOF timer on this state change), this
interrupt is never acknowledged.

This patch clears pending SOF interrupt on OHCI_USB_SUSPEND setting.

Some details:

- ohci_irq(): the OHCI interrupt handler, acknowledges the SOF IRQ
  only if the state of the driver (rh_state) is OHCI_STATE_RUNNING.
  So if this interrupt happens and the driver is not in this state,
  the function is called again and again, moving the system to a
  CPU starvation.

- ohci_rh_suspend(): the function stop the operation and acknowledge
  pending interrupts (but doesn't disable it). Later in the function,
  the device is moved to OHCI_SUSPEND_STATE, and the driver to
  OHCI_RH_SUSPENDED. If between the moment when the interrupt is
  acknowledged and the moment when the device is suspended a new
  interrupt is raised, it will be never acknowledged because the
  driver is now not in OHCI_RH_RUNNING state.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-id: 1452109525-32150-3-git-send-email-lvivier@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-08 09:29:24 +01:00
Laurent Vivier
fd0a10cd20 ohci: delay first SOF interrupt
On overcommitted CPU, kernel can be so slow that an interrupt can
be triggered by the device whereas the driver is not ready to receive
it. This drives us into an infinite loop.

This does not happen on real hardware because real hardware never send
interrupt immediately after the controller has been moved to OPERATION state.

This patch tries to delay the first SOF interrupt to let driver exits from
the critical section (which is not protected against interrupts...)

Some details:

- ohci_irq(): the OHCI interrupt handler, acknowledges the SOF IRQ
  only if the state of the driver (rh_state) is OHCI_STATE_RUNNING.
  So if this interrupt happens and the driver is not in this state,
  the function is called again and again, moving the system to a
  CPU starvation.

- ohci_rh_resume(): the driver re-enables operation with OHCI_USB_OPER.
  In QEMU this start the SOF timer and QEMU starts to send IRQs. As
  the driver is not in OHCI_STATE_RUNNING and not protected against IRQ,
  the ohci_irq() can be called and the driver never moved to
  OHCI_STATE_RUNNING.

Suggested-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-id: 1452109525-32150-2-git-send-email-lvivier@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-08 09:29:24 +01:00
Bandan Das
ec93e158b1 usb-mtp: fix call to trace function
trace_usb_mtp_inotify_event() was being called after the object was
being freed.

Signed-off-by: Bandan Das <bsd@redhat.com>
Message-id: 1450861787-16213-3-git-send-email-bsd@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-08 09:25:50 +01:00
Bandan Das
c22d5dcd7a usb-mtp: use safe variant when cleaning events list
usb_mtp_inotify_cleanup uses QLIST_FOREACH to pick events
from a list and free them which is incorrect. Use QLIST_FOREACH_SAFE
instead.

Signed-off-by: Bandan Das <bsd@redhat.com>
Message-id: 1450861787-16213-2-git-send-email-bsd@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-08 09:25:50 +01:00
Hervé Poussineau
0922c3f606 ohci: fix command HostControllerReset
Specification says that: "This bit is set by HCD to initiate a software reset of HC."

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-id: 1450567431-31795-4-git-send-email-hpoussin@reactos.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-08 09:25:50 +01:00
Hervé Poussineau
7d938fd14b ohci: fix Host Controller USBRESET
Specification says that, when entering this state, "the contents of the registers
(except Root Hub registers) are preserved by the HC. [...] The Root Hub is being reset,
which causes the Root Hub's downstream ports to be reset and possibly powered off."

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-id: 1450567431-31795-3-git-send-email-hpoussin@reactos.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-08 09:25:50 +01:00
Hervé Poussineau
84d04e2162 ohci: split reset method in 3 parts
The three parts are:
- root hub reset (ohci_roothub_reset)
- host controller soft reset (ohci_soft_reset)
- host controller hard reset (ohci_hard_reset)

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-id: 1450567431-31795-2-git-send-email-hpoussin@reactos.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-08 09:25:50 +01:00
Fam Zheng
94ca2c7395 iotests: Add test cases for blockdev-mirror
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450932306-13717-6-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:18 +01:00
Fam Zheng
df92562e68 qmp: Add blockdev-mirror command
This will start a mirror job from a named device to another named
device, its relation with drive-mirror is similar with blockdev-backup
to drive-backup.

In blockdev-mirror, the target node should be prepared by blockdev-add,
which will be responsible for assigning a name to the new node, so
we don't have 'node-name' parameter.

Signed-off-by: Fam Zheng <famz@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1450932306-13717-5-git-send-email-famz@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:18 +01:00
Fam Zheng
e40e5027f6 block: Add check on mirror target
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450932306-13717-4-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:18 +01:00
Fam Zheng
4193cdd771 block: Extract blockdev part of qmp_drive_mirror
This is the part that will be reused by blockdev-mirror.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450932306-13717-3-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:18 +01:00
Fam Zheng
05e4d14bf3 block: Rename BLOCK_OP_TYPE_MIRROR to BLOCK_OP_TYPE_MIRROR_SOURCE
It's necessary to distinguish source and target before we can add
blockdev-mirror, because we would want a concrete type of operation to
check on target bs before starting.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450932306-13717-2-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Bo Tu
dd87de06fa qemu-iotests: s390x: fix test 051
Replace the remaining "-drive file..."
by "-drive file=...,if=none,id=$device_id", then x86 and s390x
can get the common output.
"if=ide, if=floppy, if=scsi" are not supported by s390x,
so these test cases are not executed for s390x platform.

Signed-off-by: Bo Tu <tubo@linux.vnet.ibm.com>
Message-id: 1451885360-20236-2-git-send-email-tubo@linux.vnet.ibm.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
f943078e42 iotests: 095: Filter _img_info output
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1450752561-9300-12-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
61b422265e iotests: 095: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1450752561-9300-11-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
ae7e0bf461 iotests: 050: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-10-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
1b935e1dc9 iotests: 038: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-9-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
9b652fbe1d iotests: 037: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-8-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
5581018400 iotests: 034: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-7-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
49557d656c iotests: 028: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-6-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
f19f11896e iotests: 024: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-5-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
71ad761766 iotests: 020: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-4-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
f2bbcd3f7f iotests: 019: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-3-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
9b337ae90a iotests: 018: Use TEST_IMG override instead of "mv"
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450752561-9300-2-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Fam Zheng
0fa296eb00 block/qapi: Clear err for further error
Since a5002d5 (block/qapi: allow best-effort query) we don't return at
this error, however err must be cleared before passing to
bdrv_query_snapshot_info_list below, as required by error API.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1450779107-26765-1-git-send-email-famz@redhat.com
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Paolo Bonzini
fc27291daf block: use drained section in bdrv_close
bdrv_close is used when ejecting a medium.  Use a drained section to ensure
that all I/O goes to either the old medium or the bitbucket.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1450867706-19860-2-git-send-email-pbonzini@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:17 +01:00
Paolo Bonzini
7467d94cc4 qemu-iotests: make check-block.sh work on out-of-tree builds
Since check-block.sh, the "check" script has learnt to find the source
path.  On the other hand, it expects common.env to be in the build tree
(both changes made in commit 76c7560, "configure: Enable out-of-tree
iotests", 2014-05-24).  So, it is wrong to invoke "check" from the source
path like check-block.sh does.  Fix it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1450867341-11100-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:16 +01:00
Fam Zheng
253597d8cf iotests: 086: Add raw format
Raw is as qualified as qcow2 for this test case, add it for more
coverage.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1450851979-15580-1-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2016-01-07 21:30:16 +01:00
Edgar E. Iglesias
a7e00e2536 petalogix-ml605: Set the MicroBlaze CPU version to 8.10.a
Set the MicroBlaze CPU version to 8.10.a avoiding a runtime
warning due to an unset CPU version.

Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
2016-01-07 14:57:26 +01:00
Edgar E. Iglesias
ad24f947be s3adsp1800: Set the MicroBlaze CPU version to 7.10.d
Set the MicroBlaze CPU version to 7.10.d avoiding a runtime
warning due to an unset CPU version.

Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
2016-01-07 14:57:26 +01:00
Peter Maydell
263699432c qemu-sparc update
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQEcBAABAgAGBQJWjmYNAAoJEFvCxW+uDzIfSycH/An/L9tDFXtoC/W7Dq7/cKQw
 7AWhskcfgCxxo0DoqnyHc6JKgONr8Jv15Vf7PTMM23KHioCX5wEgH52mOT5bKXDy
 RnGG5qe4rj5A0i48kRZTG0ryjcKHra5I08UsznljGROmp5/fjLXAG1QEgrKKGXGn
 kQyWZ46g8vka+MBKtetNipFForimIWOWjVO54neb7kwLMV2yiE8gaD4oAgJDmgSN
 dHXB6rxCpBcnjdYCuri/9E1hVZmv7GmUH5e3cbD/COJu8ZFHASqXvtAih786vQa0
 Fj441hO1WToi8PrrZBv76UxUton06O1+QvYZsCMf073vEyQKUhyHrYpd2hpWFQI=
 =zyNj
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-signed' into staging

qemu-sparc update

# gpg: Signature made Thu 07 Jan 2016 13:20:13 GMT using RSA key ID AE0F321F
# gpg: Good signature from "Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>"

* remotes/mcayland/tags/qemu-sparc-signed:
  target-sparc: implement NPT timer bit
  sun4u: split NPT and INT_DIS accesses between timer and compare registers
  sun4u: split out NPT and INT_DIS into separate CPUTimer fields

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-01-07 13:33:19 +00:00
Mark Cave-Ayland
c9a464420d target-sparc: implement NPT timer bit
If the NPT bit is set in the timer register, all non-supervisor read accesses
to the register should fail with a privilege exception.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-By: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2016-01-07 12:21:06 +00:00
Mark Cave-Ayland
bf43330aa4 sun4u: split NPT and INT_DIS accesses between timer and compare registers
Accesses to the timer register high bit should only set NPT, whilst accesses
to the timer compare register high bit should only set INT_DIS. This fixes
issues with the timer being unexpectedly disabled whilst trying to boot
FreeBSD SPARC64.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-By: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2016-01-07 12:21:02 +00:00
Mark Cave-Ayland
e913cac71b sun4u: split out NPT and INT_DIS into separate CPUTimer fields
Currently there is confusion between use of these bits for the timer and timer
compare registers (while they both have the same value, the behaviour is
different). Split into two separate CPUTimer fields so we can always reference
the correct value.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-By: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2016-01-07 12:20:53 +00:00
Peter Maydell
ac93a06786 seabios: update to release 1.9.0
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJWi7H6AAoJEEy22O7T6HE4IcMQAIx9sq/CEJT+DFLq0ynwc+nu
 cEaHhuKXSYHpvm+qIXpm8DS0wBDY2pLbDOlMovelT/u5q3864M4PS/q66yG6Mx05
 eapHGaqgV/pLaMZUoOL/Pd8iD/O9Ai+sasqWvmU0s2SsG5DY8RnvxyMwUrewsKae
 B9Nm45mBU02uoEgvcfaI8uLnc+7b5wmC8psgFNWXSK343dU+EWlokS5huj6pjNBI
 EV+ITPN5YTIsN1rRnyoCFCWtqvyyAglpty8LEI/CrQHhWY23OGZhYnBHwTYo9vJY
 YWGxrGhcOVvYPWNZlVSmPmzKSy9M0tfBAFFrycxF27N/oHLmvbQ8r8iCXbi3F2le
 vX2GG2lXNv0MC76n+TcaHRoPkYblPywv7CYzQazQyqoJngkKIuc+GeI6932yZjq7
 VVDrj8FyeDg38PxKxb+tA5jfEcrXmfW6u94q8cGQRRB8X7EUw/v5eJX6unjbNMOK
 kBah8JM04CIHwh+C+21xD+2oN5+zDuha+fBmquhcuFteaMBzV/pHmwJXE6QWk1F1
 5dN29qrLW+0Dx5CGPnKRRurd+Gsh54AgKExzhAiCi2i4Jt1SBeQVXTTTaULQny/m
 y9V9oI13mRwVE+XpNi7oWVwacuyjx3fKAS3IZpESJk7vXG/OG3U3yOvAlslh6fd4
 r0EWHwESmxVOEMcuRmaJ
 =ArKj
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kraxel/tags/pull-seabios-20160105-1' into staging

seabios: update to release 1.9.0

# gpg: Signature made Tue 05 Jan 2016 12:07:22 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"

* remotes/kraxel/tags/pull-seabios-20160105-1:
  seabios: update binaries to release 1.9.0
  seabios: stop updating aml files
  seabios: update 128k bios config
  seabios: use new EXTRAVERSION to tag qemu builds
  seabios: update submodule to release 1.9.0

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-01-07 11:22:18 +00:00
Peter Maydell
4101dfe0cd -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
 
 iQEcBAABAgAGBQJWjiwyAAoJEJykq7OBq3PI1bEH/iK8DdGU9y3uiH6L1v29ZLHH
 YS84PRqXNK2PFNnsUxKV/+Eo8RR4ItSMRtYop8Q5Ne/G4Rtw5OYeSRDWLgYJXtht
 jOVQURz9IDqabVSXX8hGpZDcwZbBvRDLTbq4Jkccul/xKoIJuY1uYBrjSvGYaHFF
 UNxHNNnpsCETBUOaoFmhbfWtFGN3J/iPG+0k2cdSSiby+JJ9QNQfE2Y/9vXVUTWK
 hFzdagOX8Nk101+44GW7CJTrI+Vyeuw8Qed4utIMqA19Bby8aVKXjtt3dZhKli5T
 ioxtTTdXJTq4VhvS9dWLOVOZlqEc4chIBzVDpnXiZYkz8Sd0qoNC+6fUS1s9ugg=
 =Uhwj
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging

# gpg: Signature made Thu 07 Jan 2016 09:13:22 GMT using RSA key ID 81AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
# gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>"

* remotes/stefanha/tags/tracing-pull-request:
  trace: add make dependencies on tracetool source
  trace: fix make foo-timestamp rules
  trace: fix PRIx64 constants in trace-events
  trace: reflect the file name change

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-01-07 10:19:28 +00:00
Stefan Hajnoczi
cef517ca4b trace: add make dependencies on tracetool source
Patches that change tracetool can break the build if old build output
files are lying around.

This happens because the Makefile does not specify dependencies on
tracetool.  The build will use old object files that do not match the
current source code.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-01-07 16:59:56 +08:00
Stefan Hajnoczi
9967e4fec0 trace: fix make foo-timestamp rules
The Makefile uses intermediate timestamp files to avoid rebuilding if
tracetool output is unchanged.

Timestamps are implemented incorrectly.  This was fixed for rules.mak in
commit 4b25966ab9 ("rules.mak: cleanup
config generation rules") but never fixed in trace/Makefile.objs.

The problem with the old timestamp implementation was that make doesn't
notice the updated file modification time until the next time it is run.
It was necessary to run make twice in a row to achieve a full rebuild.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-01-07 16:59:38 +08:00
Mark Cave-Ayland
c6daed8654 trace: fix PRIx64 constants in trace-events
Commit c8ee0a4 introduced new events containing PRIx64 constants without
including the % prefix in the preceding string. This results in a compile
error during build if --enable-trace-backends is passed to configure.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-id: 1450566522-6003-1-git-send-email-mark.cave-ayland@ilande.co.uk
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-01-07 09:39:11 +08:00
Qinghua Jin
67a9faccef trace: reflect the file name change
Some functions was moved from block.c to block/io.c, so the trace-events file should reflect that change.

Signed-off-by: Qinghua Jin <qhjin_dev@163.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-01-07 09:39:11 +08:00
Gerd Hoffmann
4b9294c00e seabios: update binaries to release 1.9.0
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-05 13:04:15 +01:00
Gerd Hoffmann
bf864863f6 seabios: stop updating aml files
ACPI aml files traditionally have been managed in the seabios repo.
In qemu version 2.0 we've switched over to have qemu generate the
acpi tables and provide them to the firmware via fw_cfg.

The old aml files are still there and used for old machine types.
Well, actually the q35 file only, the piix4 version is compiled into
seabios (unless built with CONFIG_ACPI_DSDT=n) and is there for
reference only.

The aml files havn't been touched for a long time, and given that
new features requiring acpi changes are typically only added to new
machine types this is unlikely to change in the future.  So stop
updating them.

That allows to cleanup things a bit on the seabios side in the future.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-05 13:04:14 +01:00
Gerd Hoffmann
cae7e84eb7 seabios: update 128k bios config
Turn off OHCI + TPM support to keep the size below 128k.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-05 13:04:14 +01:00
Gerd Hoffmann
437b8d8c59 seabios: use new EXTRAVERSION to tag qemu builds
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-05 13:04:14 +01:00
Gerd Hoffmann
ad30c0b0d8 seabios: update submodule to release 1.9.0
Highlights / user visible changes in seabios:
 * boot menu key is ESC now.
 * virtio 1.0 support.
 * sdcard support.
 * fw_cfg dma suport.
 * usual share of bugfixes ;)

In vgabios:
 * Emulates leal instruction.  Works around a bug in old x86emu versions,
   which makes old xorg vesa drivers work (RHEL-5 for example).

full shortlog rel-1.8.2..rel-1.9.0
----------------------------------

Ameya Palande (1):
      x86: add barrier to read{b,w,l} and write{b,w,l} functions

Andreas Färber (1):
      checkrom: Fix typo in error message

Chen Fan (1):
      pci: enable SERR# for error forwarding in bridge control register

Gerd Hoffmann (28):
      vga: simplify vga builds
      vga: rework virtio-vga support
      vga: add virtio-vga to kconfig
      pci: allow to loop over capabilities
      virtio: run drivers in 32bit mode
      virtio: add struct vp_device
      virtio: pass struct pci_device to vp_init_simple
      virtio: add version 1.0 structs and #defines
      virtio: add version 0.9.5 struct
      virtio: find version 1.0 virtio capabilities
      virtio: create vp_cap struct for legacy bar
      virtio: add read/write functions and macros
      virtio: make features 64bit, support version 1.0 features
      virtio: add version 1.0 support to vp_{get,set}_status
      virtio: add version 1.0 support to vp_get_isr
      virtio: add version 1.0 support to vp_reset
      virtio: add version 1.0 support to vp_notify
      virtio: remove unused vp_del_vq
      virtio: add version 1.0 support to vp_find_vq
      virtio-scsi: fix initialization for version 1.0
      virtio-blk: fix initialization for version 1.0
      virtio: use version 1.0 if available (flip the big switch)
      virtio: also probe version 1.0 pci ids
      virtio: legacy cleanup
      virtio-blk: 32bit cleanup
      virtio-scsi: 32bit cleanup
      virtio-ring: 32bit cleanup
      virtio-pci: use high memory for rings

Julius Werner (1):
      xhci: Count new Max Scratchpad Bufs bits from XHCI 1.1

Kevin O'Connor (126):
      docs: add page for SeaVGABIOS
      docs: Add page describing the patch contribution process
      docs: Add page on available CBFS/fw_cfg runtime config files
      docs: Prefer triple backticks to multiple lines with single backticks
      smp: Fix smp race introduced in 0673b787
      docs: Note release date of 1.8.1
      vgabios: On bda_save_restore() the saved vbe_mode also has flags in it
      vgabios: Don't use extra stack if it appears a modern OS is in use
      docs: Clarify that pci-optionrom-exec doesn't apply to roms in cbfs
      checkstack: Replace function information tuple with class
      checkstack: Simplify yield calculations
      checkstack: Prefer passing "function" class instead of function address
      smbios: Use integer signature instead of string signature
      vgabios: Don't use "smsww" instruction - it confuses x86emu
      vgabios: Add config option for assembler fixups
      vgabios: Emulate "leal" instruction
      checkstack: Minor - continue if not a regular asm line
      Don't forward declare functions with "inline" in headers
      build: Support "make VERSION=xyz" to override the default build version
      tcg: Use seabios setup()/prepboot() calling convention for tcg
      build: CONFIG_VGA_FIXUP_ASM should depend on CONFIG_BUILD_VGABIOS
      bootorder: Update "extra pci root" buses bootorder format to match qemu
      Make sure all code checks for malloc failures
      docs: Note release date of 1.8.2
      block: Split process_op() command dispatch up into multiple functions
      block: Introduce default_process_op() with common command handling codes
      block: Route scsi style commands through 'struct disk_op_s'
      blockcmd: Introduce scsi_fill_cmd()
      ata: Handle ATA ATAPI drives directly via 'struct disk_op_s' requests
      ahci: Handle AHCI ATAPI drives directly via 'struct disk_op_s' requests
      usb-msc: Handle USB drives directly via 'struct disk_op_s' requests
      usb-uas: Handle USB drives directly via 'struct disk_op_s' requests
      lsi-scsi: Handle LSI drives directly via 'struct disk_op_s' requests
      esp-scsi: Handle ESP drives directly via 'struct disk_op_s' requests
      megasas: Handle Megasas drives directly via 'struct disk_op_s' requests
      virtio-scsi: Handle virtio drives directly via 'struct disk_op_s' requests
      pvscsi: Move pvscsi_fill_req() code into pvscsi_cmd()
      pvscsi: Handle pvscsi drives directly via 'struct disk_op_s' requests
      blockcmd: Remove unused scsi_process_op() and cdb_cmd_data()
      blockcmd: Convert cdb_is_read() to scsi_is_read()
      block: Rename process_XXX_op() functions to XXX_process_op()
      coreboot: Try to auto-detect if the CBFS anchor pointer is a relative pointer
      ps2: Support mode for polling the PS2 port instead of using irqs
      ata: Make sure "chanid" is relative to PCI device for bootorder file
      Don't enable interrupts prior to IVT and PIC setup
      ps2: Don't wait 100ms to discard possible extra reset receive byte
      timer: Delay timestamp counter init until after pmtimer is probed
      timer: Add CONFIG_TSC_TIMER build option to disable the CPU TSC timer
      ramdisk: Allow ramdisk support (CONFIG_FLASH_FLOPPY) under QEMU
      Minor - move declaration of CDRom_locks to code that uses it
      smm: ignore bits 16,18-31 of SMM revision ID at runtime too
      vgafb: Minor - move gfx_common() variables outside of switch statement
      sdcard: Check if card is present before sending commands to card
      sdcard: Implement controller frequency setting according to sdhci spec
      sdcard: Make sure controller support 3.3V before enabling it
      sdcard: Set timeout control register during init (to max allowed timeout)
      sdcard: Improve SD card initialization command sequence
      sdcard: Add proper delays during card power up
      mptable: Don't create mptable if it is very large
      optionroms: Don't run option rom on PCI bar if CBFS/fw_cfg version exists
      edd: Pass the segment/offset from int 1348 calls using a 'struct segoff_s'
      edd: Reduce parameters to fill_generic_edd()
      Move CanInterrupt check to check_irqs()
      Call cpu_relax() if yielding prior to interrupts being enabled
      sdcard: Fix typo - use sdcard_pio() instead of sdcard_pio_app()
      sdcard: Fill command bits according to spec
      sdcard: Support SDHCI v3.00 spec clock setting
      sdcard: Move power setup to new function sdcard_set_power()
      sdcard: Power controller up to maximum voltage supported
      sdcard: Power down controller on failure
      sdcard: The card should never be in a busy state at start of sdcard_pio()
      sdcard: Implement timeout on every block read in sdcard_pio_transfer()
      sdcard: Rename waitw() to sdcard_waitw() and simplify
      sdcard: Perform a controller reset at start of init
      sdcard: Check for error events during sdcard_pio()
      sdcard: Initial support for MMC cards
      sdcard: Allow the sdcard driver to run on real hardware
      rtc: Support disabling the RTC timer irq support
      Add minimal support for machines without hardware interrupts
      ps2: Eliminate "etc/ps2-poll-only"; use CONFIG_HARDWARE_IRQ instead
      sdcard: Allow sdcard addresses to be specified in CBFS files
      xhci: Minor - add USB port type comments to xhci_hub_reset()
      docs: Don't use an add-symbol-file offset when describing gdb debugging
      rtc: Disable NMI in rtc_mask()
      sdcard: Move sdcard_set_frequency()/sdcard_set_power() in sdcard.c
      sdcard: Move frequency setting into sdcard_card_setup()
      sdcard: Move drive registration to sdcard_card_setup()
      sdcard: Turn card_type into a bitmap and store if card is MMC type
      sdcard: Display sdcard product name in boot menu
      sdcard: Obtain card capacity and report it on the boot menu
      megasas: Use outl() on MFI_IDB register
      minor - correct spelling error in comment
      Simplify transition16/32 assembler code
      docs: Minor - add "code relocation" link to "Execution and code flow" document
      Unify smm/sloppy variants of call32_prep/post and call16_helper
      Rename Call32Data to Call16Data
      Unify inline assembler in variants of call16 functions
      Unify call32_sloppy() and call32()
      Use transition32_nmi_off from call32() and call16_back()
      Consolidate code16*() functions
      Always enable caching on transition32; backup/restore cr0 on call32
      e820: Introduce e820_remove() and avoid exporting E820_HOLE
      e820: Rename memmap.c to e820map.c and use consistent "e820_" prefix
      e820: Update debugging messages to report 64bit values
      virtio: Simplify vring alignment code
      virtio: Move standard definitions from virtio-ring.h to standard headers
      malloc: Use consistent naming for internal low-level "alloc" functions
      malloc: Introduce common helper alloc_new_detail()
      malloc: Add warning if free() called on invalid memory
      malloc: Don't mix virtual and physical addresses
      memmap: Introduce SYMBOL() macro to access linker script symbols
      build: Rework version generation; don't allow make version override
      build: Report gcc and binutils versions in debug log
      build: Generate "reproducible" version strings on "clean" builds
      stacks: Use macro wrappers for call32() and stack_hop_back()
      malloc: Rename csm_malloc_preinit() to malloc_csm_preinit()
      build: Be more permissive in buildversion.py tool version scan
      docs: Document 'make EXTRAVERSION=xyz' and scripts/tarball.sh
      build: Allow official tarball builds to be considered "clean"
      coreboot: Minor - avoid K&R style function declaration
      biostables: Minor - fix incorrect indentation
      virtio: Minor - replace tab characters with space
      docs: Minor - replace seavgabios text in Build_overview.md with link
      buildversion: Avoid subprocess.check_output() as that requires python2.7
      buildversion: Add debugging messages
      docs: Note v1.9.0 release

Kyösti Mälkki (1):
      PCI SDHCI driver: Fix base address

Magnus Granberg (1):
      build: use -fstack-check=no when available

Marc Marí (1):
      Add QEMU fw_cfg DMA interface

Marcel Apfelbaum (2):
      fw/pci: scan all buses if extraroots romfile is present
      fw/pci: map memory and IO regions for multiple pci root buses

Paolo Bonzini (4):
      boot.c: delay exiting boot if menu key is ESC
      boot: switch default menu key to ESC
      smm: ignore bits 16,18-31 of SMM revision ID
      smm: fix outl argument order

Paulo Alcantara (1):
      ich9: initialise RCBA register through LPC interface

Quan Xu (1):
      make SeaBios compatible with Xen vTPM.

Stefan Berger (9):
      Add an implementation of a TPM TIS driver
      Implementation of the TCG BIOS extensions
      Support for BIOS interrupt handler
      Add 'measurement' code to the BIOS
      tpm: Introduce a #define for command tag
      tpm: Be consistent with array sizes in tcgbios.c
      tpm: clean up parameters to build_and_send_cmd
      tpm: Clean up in tcgbios.h
      tpm: Move call to tpm_option_rom into init_optionrom

Stefan Weil (2):
      megasas: Fix outw, outl argument order
      Fix typos found by codespell

Vladimir Serbinenko (3):
      ahci: Ignore max_ports.
      Link rom.o with -N option.
      Add multiboot support.

tpearson@raptorengineeringinc.com (1):
      Add an option to only execute option ROMs contained in CBFS

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-01-05 13:01:02 +01:00