Commit 2ef80e14 authored by Peter Maydell's avatar Peter Maydell
Browse files

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190326' into staging



target-arm queue:
 * Set SIMDMISC and FPMISC for 32-bit -cpu max
   (fixes regression from 3.1)
 * fix vCont packet handling when no thread is specified

# gpg: Signature made Tue 26 Mar 2019 13:09:48 GMT
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20190326:
  gdbstub: fix vCont packet handling when no thread is specified
  target/arm: Set SIMDMISC and FPMISC for 32-bit -cpu max

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parents d37bfe14 c99ef792
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -1152,6 +1152,7 @@ static int gdb_handle_vcont(GDBState *s, const char *p)
    uint32_t pid, tid;
    GDBProcess *process;
    CPUState *cpu;
    GDBThreadIdKind kind;
#ifdef CONFIG_USER_ONLY
    int max_cpus = 1; /* global variable max_cpus exists only in system mode */

@@ -1194,12 +1195,21 @@ static int gdb_handle_vcont(GDBState *s, const char *p)
            goto out;
        }

        if (*p++ != ':') {
        if (*p == '\0' || *p == ';') {
            /*
             * No thread specifier, action is on "all threads". The
             * specification is unclear regarding the process to act on. We
             * choose all processes.
             */
            kind = GDB_ALL_PROCESSES;
        } else if (*p++ == ':') {
            kind = read_thread_id(p, &p, &pid, &tid);
        } else {
            res = -ENOTSUP;
            goto out;
        }

        switch (read_thread_id(p, &p, &pid, &tid)) {
        switch (kind) {
        case GDB_READ_THREAD_ERR:
            res = -EINVAL;
            goto out;
+5 −0
Original line number Diff line number Diff line
@@ -2028,6 +2028,11 @@ static void arm_max_initfn(Object *obj)
            t = FIELD_DP32(t, ID_ISAR6, SPECRES, 1);
            cpu->isar.id_isar6 = t;

            t = cpu->isar.mvfr2;
            t = FIELD_DP32(t, MVFR2, SIMDMISC, 3); /* SIMD MaxNum */
            t = FIELD_DP32(t, MVFR2, FPMISC, 4);   /* FP MaxNum */
            cpu->isar.mvfr2 = t;

            t = cpu->id_mmfr4;
            t = FIELD_DP32(t, ID_MMFR4, HPDS, 1); /* AA32HPD */
            cpu->id_mmfr4 = t;