qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 7811ce: hw/gpio: Fix property accessors of th


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 7811ce: hw/gpio: Fix property accessors of the AST2600 GPI...
Date: Fri, 25 Oct 2019 06:11:41 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 7811ce818550426a2876d4fee80d95553ac5e1d2
      
https://github.com/qemu/qemu/commit/7811ce818550426a2876d4fee80d95553ac5e1d2
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/gpio/aspeed_gpio.c

  Log Message:
  -----------
  hw/gpio: Fix property accessors of the AST2600 GPIO 1.8V model

The property names of AST2600 GPIO 1.8V model are one character bigger
than the names of the other ASPEED GPIO model. Increase the string
buffer size by one and be more strict on the expected pattern of the
property name.

This fixes the QOM test of the ast2600-evb machine under :

  Apple LLVM version 10.0.0 (clang-1000.10.44.4)
  Target: x86_64-apple-darwin17.7.0
  Thread model: posix
  InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Cc: Rashmica Gupta <address@hidden>
Fixes: 36d737ee82b2 ("hw/gpio: Add in AST2600 specific implementation")
Signed-off-by: Cédric Le Goater <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: ccc2c41890afd3a28183ea93bfab688890eb3df6
      
https://github.com/qemu/qemu/commit/ccc2c41890afd3a28183ea93bfab688890eb3df6
  Author: Cédric Le Goater <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/arm/aspeed.c
    M include/hw/arm/aspeed.h

  Log Message:
  -----------
  aspeed: Add an AST2600 eval board

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: Joel Stanley <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: fdd1b228c28d527e0410e36aa9ffee5eb4d50c04
      
https://github.com/qemu/qemu/commit/fdd1b228c28d527e0410e36aa9ffee5eb4d50c04
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Split out rebuild_hflags_common

Create a function to compute the values of the TBFLAG_ANY bits
that will be cached.  For now, the env->hflags variable is not
used, and the results are fed back to cpu_get_tb_cpu_state.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: d4d7503ac6705770a64f0fbe89afca800fb9da4a
      
https://github.com/qemu/qemu/commit/d4d7503ac6705770a64f0fbe89afca800fb9da4a
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Split out rebuild_hflags_a64

Create a function to compute the values of the TBFLAG_A64 bits
that will be cached.  For now, the env->hflags variable is not
used, and the results are fed back to cpu_get_tb_cpu_state.

Note that not all BTI related flags are cached, so we have to
test the BTI feature twice -- once for those bits moved out to
rebuild_hflags_a64 and once for those bits that remain in
cpu_get_tb_cpu_state.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 43eccfb6edcf39ed6a304673b87f004a495d068f
      
https://github.com/qemu/qemu/commit/43eccfb6edcf39ed6a304673b87f004a495d068f
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Split out rebuild_hflags_common_32

Create a function to compute the values of the TBFLAG_A32 bits
that will be cached, and are used by all profiles.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 8061a64910a3df76e3ef6905dfcc07d9071879ab
      
https://github.com/qemu/qemu/commit/8061a64910a3df76e3ef6905dfcc07d9071879ab
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Split arm_cpu_data_is_big_endian

Set TBFLAG_ANY.BE_DATA in rebuild_hflags_common_32 and
rebuild_hflags_a64 instead of rebuild_hflags_common, where we do
not need to re-test is_a64() nor re-compute the various inputs.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 6e33ced563746530a4a7d8845bf9582ce621ec99
      
https://github.com/qemu/qemu/commit/6e33ced563746530a4a7d8845bf9582ce621ec99
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Split out rebuild_hflags_m32

Create a function to compute the values of the TBFLAG_A32 bits
that will be cached, and are used by M-profile.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 9550d1bd88792b5ce9e68699a33cca6ec8babb4b
      
https://github.com/qemu/qemu/commit/9550d1bd88792b5ce9e68699a33cca6ec8babb4b
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Reduce tests vs M-profile in cpu_get_tb_cpu_state

Hoist the computation of some TBFLAG_A32 bits that only apply to
M-profile under a single test for ARM_FEATURE_M.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: c747224cc33d88af7d05f797a00110ef4d23d217
      
https://github.com/qemu/qemu/commit/c747224cc33d88af7d05f797a00110ef4d23d217
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Split out rebuild_hflags_a32

Currently a trivial wrapper for rebuild_hflags_common_32.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 83f4baef3e2390b2764da80c0563e07ac75735e3
      
https://github.com/qemu/qemu/commit/83f4baef3e2390b2764da80c0563e07ac75735e3
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Split out rebuild_hflags_aprofile

Create a function to compute the values of the TBFLAG_ANY bits
that will be cached, and are used by A-profile.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: bbad7c62d461a013100cc6403c0d21c3cca29fbe
      
https://github.com/qemu/qemu/commit/bbad7c62d461a013100cc6403c0d21c3cca29fbe
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Hoist XSCALE_CPAR, VECLEN, VECSTRIDE in cpu_get_tb_cpu_state

We do not need to compute any of these values for M-profile.
Further, XSCALE_CPAR overlaps VECSTRIDE so obviously the two
sets must be mutually exclusive.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 60e12c3776a03a0535fcd4f4ea3eba8f60c0ab6e
      
https://github.com/qemu/qemu/commit/60e12c3776a03a0535fcd4f4ea3eba8f60c0ab6e
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Simplify set of PSTATE_SS in cpu_get_tb_cpu_state

Hoist the variable load for PSTATE into the existing test vs is_a64.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 0a54d68e212a17ae347f40488acef69e63b7bbb4
      
https://github.com/qemu/qemu/commit/0a54d68e212a17ae347f40488acef69e63b7bbb4
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Hoist computation of TBFLAG_A32.VFPEN

There are 3 conditions that each enable this flag.  M-profile always
enables; A-profile with EL1 as AA64 always enables.  Both of these
conditions can easily be cached.  The final condition relies on the
FPEXC register which we are not prepared to cache.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 3d74e2e9ffc9fda4da2c29ec8975e2115aaaa603
      
https://github.com/qemu/qemu/commit/3d74e2e9ffc9fda4da2c29ec8975e2115aaaa603
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Add arm_rebuild_hflags

This function assumes nothing about the current state of the cpu,
and writes the computed value to env->hflags.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 164690b29f9eaf69fe641859bc9f8954f12e691d
      
https://github.com/qemu/qemu/commit/164690b29f9eaf69fe641859bc9f8954f12e691d
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c
    M target/arm/internals.h

  Log Message:
  -----------
  target/arm: Split out arm_mmu_idx_el

Avoid calling arm_current_el() twice.

Reviewed-by: Alex Bennée <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 9b253fe5544672a48a4c22fb1535a7f581321871
      
https://github.com/qemu/qemu/commit/9b253fe5544672a48a4c22fb1535a7f581321871
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Hoist store to cs_base in cpu_get_tb_cpu_state

By performing this store early, we avoid having to save and restore
the register holding the address around any function calls.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 14f3c58826dff69e7244ec288b13b9dbbb1d16d3
      
https://github.com/qemu/qemu/commit/14f3c58826dff69e7244ec288b13b9dbbb1d16d3
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c
    M target/arm/helper.h

  Log Message:
  -----------
  target/arm: Add HELPER(rebuild_hflags_{a32, a64, m32})

This functions are given the mode and el state of the cpu
and writes the computed value to env->hflags.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: a8a79c7a078a3e55b47d1163915f2ba9a5b1fb63
      
https://github.com/qemu/qemu/commit/a8a79c7a078a3e55b47d1163915f2ba9a5b1fb63
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M linux-user/syscall.c
    M target/arm/cpu.c
    M target/arm/helper-a64.c
    M target/arm/helper.c
    M target/arm/machine.c
    M target/arm/op_helper.c

  Log Message:
  -----------
  target/arm: Rebuild hflags at EL changes

Begin setting, but not relying upon, env->hflags.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 69d66864f7299a63ad87f6d404d53d1491dec608
      
https://github.com/qemu/qemu/commit/69d66864f7299a63ad87f6d404d53d1491dec608
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Rebuild hflags at MSR writes

Continue setting, but not relying upon, env->hflags.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 7b2625eba208b634aa1a86642f085be10f65961a
      
https://github.com/qemu/qemu/commit/7b2625eba208b634aa1a86642f085be10f65961a
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/op_helper.c

  Log Message:
  -----------
  target/arm: Rebuild hflags at CPSR writes

Continue setting, but not relying upon, env->hflags.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 2e5dcf36280910b4c89662559c0db242d61ca8d0
      
https://github.com/qemu/qemu/commit/2e5dcf36280910b4c89662559c0db242d61ca8d0
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Rebuild hflags at Xscale SCTLR writes

Continue setting, but not relying upon, env->hflags.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 873be7b69dc31bd9ed31d04189af4f381370ca3e
      
https://github.com/qemu/qemu/commit/873be7b69dc31bd9ed31d04189af4f381370ca3e
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/m_helper.c
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Rebuild hflags for M-profile

Continue setting, but not relying upon, env->hflags.

Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 080f2730cd2b30f231d6c1e90929b8d9b0a32b4a
      
https://github.com/qemu/qemu/commit/080f2730cd2b30f231d6c1e90929b8d9b0a32b4a
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/intc/armv7m_nvic.c

  Log Message:
  -----------
  target/arm: Rebuild hflags for M-profile NVIC

Continue setting, but not relying upon, env->hflags.

Suggested-by: Peter Maydell <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 62fb8a4789862893487034519f730c4c79c6a0b7
      
https://github.com/qemu/qemu/commit/62fb8a4789862893487034519f730c4c79c6a0b7
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M linux-user/aarch64/cpu_loop.c

  Log Message:
  -----------
  linux-user/aarch64: Rebuild hflags for TARGET_WORDS_BIGENDIAN

Continue setting, but not relying upon, env->hflags.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 37bf16c645e530b2a4434fd5976afbe885137298
      
https://github.com/qemu/qemu/commit/37bf16c645e530b2a4434fd5976afbe885137298
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M linux-user/arm/cpu_loop.c

  Log Message:
  -----------
  linux-user/arm: Rebuild hflags for TARGET_WORDS_BIGENDIAN

Continue setting, but not relying upon, env->hflags.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: e979972a6a17baadfcef05952e7523af99489487
      
https://github.com/qemu/qemu/commit/e979972a6a17baadfcef05952e7523af99489487
  Author: Richard Henderson <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm: Rely on hflags correct in cpu_get_tb_cpu_state

This is the payoff.

>From perf record -g data of ubuntu 18 boot and shutdown:

BEFORE:

-   23.02%     2.82%  qemu-system-aar  [.] helper_lookup_tb_ptr
   - 20.22% helper_lookup_tb_ptr
      + 10.05% tb_htable_lookup
      - 9.13% cpu_get_tb_cpu_state
           3.20% aa64_va_parameters_both
           0.55% fp_exception_el

-   11.66%     4.74%  qemu-system-aar  [.] cpu_get_tb_cpu_state
   - 6.96% cpu_get_tb_cpu_state
        3.63% aa64_va_parameters_both
        0.60% fp_exception_el
        0.53% sve_exception_el

AFTER:

-   16.40%     3.40%  qemu-system-aar  [.] helper_lookup_tb_ptr
   - 13.03% helper_lookup_tb_ptr
      + 11.19% tb_htable_lookup
        0.55% cpu_get_tb_cpu_state

     0.98%     0.71%  qemu-system-aar  [.] cpu_get_tb_cpu_state

     0.87%     0.24%  qemu-system-aar  [.] rebuild_hflags_a64

Before, helper_lookup_tb_ptr is the second hottest function in the
application, consuming almost a quarter of the runtime.  Within the
entire execution, cpu_get_tb_cpu_state consumes about 12%.

After, helper_lookup_tb_ptr has dropped to the fourth hottest function,
with consumption dropping to a sixth of the runtime.  Within the
entire execution, cpu_get_tb_cpu_state has dropped below 1%, and the
supporting function to rebuild hflags also consumes about 1%.

Assertions are retained for --enable-debug-tcg.

Tested-by: Alex Bennée <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 383a6753b250750d20d68501377fef815f88352d
      
https://github.com/qemu/qemu/commit/383a6753b250750d20d68501377fef815f88352d
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/net/fsl_etsec/etsec.c
    M hw/net/fsl_etsec/etsec.h

  Log Message:
  -----------
  hw/net/fsl_etsec/etsec.c: Switch to transaction-based ptimer API

Switch the fsl_etsec code away from bottom-half based ptimers to
the new transaction-based ptimer API.  This just requires adding
begin/commit calls around the various places that modify the ptimer
state, and using the new ptimer_init() function to create the timer.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 8d986979be1ea44959f49e140fd51a4e92466b74
      
https://github.com/qemu/qemu/commit/8d986979be1ea44959f49e140fd51a4e92466b74
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/timer/xilinx_timer.c

  Log Message:
  -----------
  hw/timer/xilinx_timer.c: Switch to transaction-based ptimer API

Switch the xilinx_timer code away from bottom-half based ptimers to
the new transaction-based ptimer API.  This just requires adding
begin/commit calls around the various places that modify the ptimer
state, and using the new ptimer_init() function to create the timer.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: e982ba0524772c3fdcd166f59b062069bd8aa69c
      
https://github.com/qemu/qemu/commit/e982ba0524772c3fdcd166f59b062069bd8aa69c
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/dma/xilinx_axidma.c

  Log Message:
  -----------
  hw/dma/xilinx_axidma.c: Switch to transaction-based ptimer API

Switch the xilinx_axidma code away from bottom-half based ptimers to
the new transaction-based ptimer API.  This just requires adding
begin/commit calls around the various places that modify the ptimer
state, and using the new ptimer_init() function to create the timer.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 5e3478925dd0640b80d766ed330b7d281d761ceb
      
https://github.com/qemu/qemu/commit/5e3478925dd0640b80d766ed330b7d281d761ceb
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/timer/slavio_timer.c

  Log Message:
  -----------
  hw/timer/slavio_timer: Remove useless check for NULL t->timer

In the slavio timer device, the ptimer TimerContext::timer is
always created by slavio_timer_init(), so there's no need to
check it for NULL; remove the single unneeded NULL check.

This will be useful to avoid compiler/Coverity errors when
a subsequent change adds a use of t->timer before the location
we currently do the NULL check.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 2ee62f32a7a069de8d6917f8be16f6267d97cad8
      
https://github.com/qemu/qemu/commit/2ee62f32a7a069de8d6917f8be16f6267d97cad8
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/timer/slavio_timer.c

  Log Message:
  -----------
  hw/timer/slavio_timer.c: Switch to transaction-based ptimer API

Switch the slavio_timer code away from bottom-half based ptimers to
the new transaction-based ptimer API.  This just requires adding
begin/commit calls around the various places that modify the ptimer
state, and using the new ptimer_init() function to create the timer.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Tested-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 663e475fbeecf3de9b4d1a84454bccfb67e87bc2
      
https://github.com/qemu/qemu/commit/663e475fbeecf3de9b4d1a84454bccfb67e87bc2
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/timer/grlib_gptimer.c

  Log Message:
  -----------
  hw/timer/grlib_gptimer.c: Switch to transaction-based ptimer API

Switch the grlib_gptimer code away from bottom-half based ptimers to
the new transaction-based ptimer API.  This just requires adding
begin/commit calls around the various places that modify the ptimer
state, and using the new ptimer_init() function to create the timer.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Tested-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: efe62d6fa0dd67573c0cb7f06e87c03801a085d5
      
https://github.com/qemu/qemu/commit/efe62d6fa0dd67573c0cb7f06e87c03801a085d5
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/m68k/mcf5206.c

  Log Message:
  -----------
  hw/m68k/mcf5206.c: Switch to transaction-based ptimer API

Switch the mcf5206 code away from bottom-half based ptimers to
the new transaction-based ptimer API.  This just requires adding
begin/commit calls around the various places that modify the ptimer
state, and using the new ptimer_init() function to create the timer.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-id: address@hidden


  Commit: 98a44c1603596fcfffdae5dc674932bc923db049
      
https://github.com/qemu/qemu/commit/98a44c1603596fcfffdae5dc674932bc923db049
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/timer/milkymist-sysctl.c

  Log Message:
  -----------
  hw/watchdog/milkymist-sysctl.c: Switch to transaction-based ptimer API

Switch the milkymist-sysctl code away from bottom-half based
ptimers to the new transaction-based ptimer API.  This just requires
adding begin/commit calls around the various places that modify the
ptimer state, and using the new ptimer_init() function to create the
timer.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden


  Commit: 99c641370b52348b2893b2cd19624bf9a416ccfa
      
https://github.com/qemu/qemu/commit/99c641370b52348b2893b2cd19624bf9a416ccfa
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/misc/Makefile.objs
    A hw/misc/bcm2835_thermal.c
    A include/hw/misc/bcm2835_thermal.h

  Log Message:
  -----------
  hw/misc/bcm2835_thermal: Add a dummy BCM2835 thermal sensor

We will soon implement the SYS_timer. This timer is used by Linux
in the thermal subsystem, so once available, the subsystem will be
enabled and poll the temperature sensors. We need to provide the
minimum required to keep Linux booting.

Add a dummy thermal sensor returning ~25°C based on:
https://github.com/raspberrypi/linux/blob/rpi-5.3.y/drivers/thermal/broadcom/bcm2835_thermal.c

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: d442d95f2fa6dcc9ab227903898fb94516cbbaed
      
https://github.com/qemu/qemu/commit/d442d95f2fa6dcc9ab227903898fb94516cbbaed
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/arm/bcm2835_peripherals.c
    M include/hw/arm/bcm2835_peripherals.h
    M include/hw/arm/raspi_platform.h

  Log Message:
  -----------
  hw/arm/bcm2835_peripherals: Use the thermal sensor block

Map the thermal sensor in the BCM2835 block.

Reviewed-by: Alistair Francis <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: d05be883fc92f6f57ba1805ff2a99deb035557a2
      
https://github.com/qemu/qemu/commit/d05be883fc92f6f57ba1805ff2a99deb035557a2
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/timer/Makefile.objs
    A hw/timer/bcm2835_systmr.c
    M hw/timer/trace-events
    A include/hw/timer/bcm2835_systmr.h

  Log Message:
  -----------
  hw/timer/bcm2835: Add the BCM2835 SYS_timer

Add the 64-bit free running timer. Do not model the COMPARE register
(no IRQ generated).
This timer is used by Linux kernel and recently U-Boot:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/clocksource/bcm2835_timer.c?h=v3.7
https://github.com/u-boot/u-boot/blob/v2019.07/include/configs/rpi.h#L19

Datasheet used:
https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
[PMM: squashed in switch to using memset in reset]
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 0e5bbd740647398ead41df1f791e2bc438dfb959
      
https://github.com/qemu/qemu/commit/0e5bbd740647398ead41df1f791e2bc438dfb959
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/arm/bcm2835_peripherals.c
    M include/hw/arm/bcm2835_peripherals.h

  Log Message:
  -----------
  hw/arm/bcm2835_peripherals: Use the SYS_timer

Connect the recently added SYS_timer.
Now U-Boot does not hang anymore polling a free running counter
stuck at 0.
This timer is also used by the Linux kernel thermal subsystem.

Reviewed-by: Alistair Francis <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: d0567e9409134981208a6d24c58812d3ee9509e7
      
https://github.com/qemu/qemu/commit/d0567e9409134981208a6d24c58812d3ee9509e7
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/arm/bcm2836.c

  Log Message:
  -----------
  hw/arm/bcm2836: Make the SoC code modular

This file creates the BCM2836/BCM2837 blocks.
The biggest differences with the BCM2838 we are going to add, are
the base addresses of the interrupt controller and the peripherals.
Add these addresses in the BCM283XInfo structure to make this
block more modular. Remove the MCORE_OFFSET offset as it is
not useful and rather confusing.

Reviewed-by: Esteban Bosse <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 5e5e9ed672c8c8536c0af43e2131e069bf6e245c
      
https://github.com/qemu/qemu/commit/5e5e9ed672c8c8536c0af43e2131e069bf6e245c
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/arm/bcm2836.c
    M include/hw/arm/bcm2836.h

  Log Message:
  -----------
  hw/arm/bcm2836: Rename cpus[] as cpu[].core

As we are going to add more core-specific fields, add a 'cpu'
structure and move the ARMCPU field there as 'core'.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 0f0736933fb578ad6928ba45d939b30c3113bab2
      
https://github.com/qemu/qemu/commit/0f0736933fb578ad6928ba45d939b30c3113bab2
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/arm/raspi.c

  Log Message:
  -----------
  hw/arm/raspi: Use AddressSpace when using arm_boot::write_secondary_boot

write_secondary_boot() is used in SMP configurations where the
CPU address space might not be the main System Bus.
The rom_add_blob_fixed_as() function allow us to specify an
address space. Use it to write each boot blob in the corresponding
CPU address space.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: f9469c1a01c333c08980e083e0ad3417256c8b9c
      
https://github.com/qemu/qemu/commit/f9469c1a01c333c08980e083e0ad3417256c8b9c
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/arm/highbank.c

  Log Message:
  -----------
  hw/arm/highbank: Use AddressSpace when using write_secondary_boot()

write_secondary_boot() is used in SMP configurations where the
CPU address space might not be the main System Bus.
The rom_add_blob_fixed_as() function allow us to specify an
address space. Use it to write each boot blob in the corresponding
CPU address space.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 7bc8f9734213b76e76631a483be13d6737c2adbc
      
https://github.com/qemu/qemu/commit/7bc8f9734213b76e76631a483be13d6737c2adbc
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-25 (Fri, 25 Oct 2019)

  Changed paths:
    M hw/arm/aspeed.c
    M hw/arm/bcm2835_peripherals.c
    M hw/arm/bcm2836.c
    M hw/arm/highbank.c
    M hw/arm/raspi.c
    M hw/dma/xilinx_axidma.c
    M hw/gpio/aspeed_gpio.c
    M hw/intc/armv7m_nvic.c
    M hw/m68k/mcf5206.c
    M hw/misc/Makefile.objs
    A hw/misc/bcm2835_thermal.c
    M hw/net/fsl_etsec/etsec.c
    M hw/net/fsl_etsec/etsec.h
    M hw/timer/Makefile.objs
    A hw/timer/bcm2835_systmr.c
    M hw/timer/grlib_gptimer.c
    M hw/timer/milkymist-sysctl.c
    M hw/timer/slavio_timer.c
    M hw/timer/trace-events
    M hw/timer/xilinx_timer.c
    M include/hw/arm/aspeed.h
    M include/hw/arm/bcm2835_peripherals.h
    M include/hw/arm/bcm2836.h
    M include/hw/arm/raspi_platform.h
    A include/hw/misc/bcm2835_thermal.h
    A include/hw/timer/bcm2835_systmr.h
    M linux-user/aarch64/cpu_loop.c
    M linux-user/arm/cpu_loop.c
    M linux-user/syscall.c
    M target/arm/cpu.c
    M target/arm/cpu.h
    M target/arm/helper-a64.c
    M target/arm/helper.c
    M target/arm/helper.h
    M target/arm/internals.h
    M target/arm/m_helper.c
    M target/arm/machine.c
    M target/arm/op_helper.c
    M target/arm/translate-a64.c
    M target/arm/translate.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20191025' 
into staging

target-arm queue:
 * raspi boards: some cleanup
 * raspi: implement the bcm2835 system timer device
 * raspi: implement a dummy thermal sensor
 * misc devices: switch to ptimer transaction API
 * cache TB flag state to improve performance of cpu_get_tb_cpu_state
 * aspeed: Add an AST2600 eval board

# gpg: Signature made Fri 25 Oct 2019 13:11:25 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Peter Maydell <address@hidden>" [ultimate]
# gpg:                 aka "Peter Maydell <address@hidden>" [ultimate]
# gpg:                 aka "Peter Maydell <address@hidden>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20191025: (42 commits)
  hw/arm/highbank: Use AddressSpace when using write_secondary_boot()
  hw/arm/raspi: Use AddressSpace when using arm_boot::write_secondary_boot
  hw/arm/bcm2836: Rename cpus[] as cpu[].core
  hw/arm/bcm2836: Make the SoC code modular
  hw/arm/bcm2835_peripherals: Use the SYS_timer
  hw/timer/bcm2835: Add the BCM2835 SYS_timer
  hw/arm/bcm2835_peripherals: Use the thermal sensor block
  hw/misc/bcm2835_thermal: Add a dummy BCM2835 thermal sensor
  hw/watchdog/milkymist-sysctl.c: Switch to transaction-based ptimer API
  hw/m68k/mcf5206.c: Switch to transaction-based ptimer API
  hw/timer/grlib_gptimer.c: Switch to transaction-based ptimer API
  hw/timer/slavio_timer.c: Switch to transaction-based ptimer API
  hw/timer/slavio_timer: Remove useless check for NULL t->timer
  hw/dma/xilinx_axidma.c: Switch to transaction-based ptimer API
  hw/timer/xilinx_timer.c: Switch to transaction-based ptimer API
  hw/net/fsl_etsec/etsec.c: Switch to transaction-based ptimer API
  target/arm: Rely on hflags correct in cpu_get_tb_cpu_state
  linux-user/arm: Rebuild hflags for TARGET_WORDS_BIGENDIAN
  linux-user/aarch64: Rebuild hflags for TARGET_WORDS_BIGENDIAN
  target/arm: Rebuild hflags for M-profile NVIC
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/58560ad254fb...7bc8f9734213



reply via email to

[Prev in Thread] Current Thread [Next in Thread]