Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: qemu/qemu
base: 2a6ae6915454
Choose a base ref
...
head repository: qemu/qemu
compare: 726e2ade360f
Choose a head ref
  • 14 commits
  • 14 files changed
  • 9 contributors

Commits on Jul 4, 2023

  1. target/arm: Add raw_writes ops for register whose write induce TLB ma…

    …intenance
    
    Some registers whose 'cooked' writefns induce TLB maintenance do
    not have raw_writefn ops defined. If only the writefn ops is set
    (ie. no raw_writefn is provided), it is assumed the cooked also
    work as the raw one. For those registers it is not obvious the
    tlb_flush works on KVM mode so better/safer setting the raw write.
    
    Signed-off-by: Eric Auger <eric.auger@redhat.com>
    Suggested-by: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    eauger authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    587f8b3 View commit details
    Browse the repository at this point in the history
  2. hw/arm/sbsa-ref: use XHCI to replace EHCI

    The current sbsa-ref cannot use EHCI controller which is only
    able to do 32-bit DMA, since sbsa-ref doesn't have RAM below 4GB.
    Hence, this uses XHCI to provide a usb controller with 64-bit
    DMA capablity instead of EHCI.
    
    We bump the platform version to 0.3 with this change.  Although the
    hardware at the USB controller address changes, the firmware and
    Linux can both cope with this -- on an older non-XHCI-aware
    firmware/kernel setup the probe routine simply fails and the guest
    proceeds without any USB.  (This isn't a loss of functionality,
    because the old USB controller never worked in the first place.) So
    we can call this a backwards-compatible change and only bump the
    minor version.
    
    Signed-off-by: Yuquan Wang <wangyuquan1236@phytium.com.cn>
    Message-id: 20230621103847.447508-2-wangyuquan1236@phytium.com.cn
    [PMM: tweaked commit message; add line to docs about what
     changes in platform version 0.3]
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Yuquan Wang authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    62c2b87 View commit details
    Browse the repository at this point in the history
  3. target/arm: Avoid splitting Zregs across lines in dump

    Allow the line length to extend to 548 columns.  While annoyingly wide,
    it's still less confusing than the continuations we print.  Also, the
    default VL used by Linux (and max for A64FX) uses only 140 columns.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 20230622151201.1578522-2-richard.henderson@linaro.org
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    rth7680 authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    aef771a View commit details
    Browse the repository at this point in the history
  4. target/arm: Dump ZA[] when active

    Always print each matrix row whole, one per line, so that we
    get the entire matrix in the proper shape.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 20230622151201.1578522-3-richard.henderson@linaro.org
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    rth7680 authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    dfa27d1 View commit details
    Browse the repository at this point in the history
  5. target/arm: Fix SME full tile indexing

    For the outer product set of insns, which take an entire matrix
    tile as output, the argument is not a combined tile+column.
    Therefore using get_tile_rowcol was incorrect, as we extracted
    the tile number from itself.
    
    The test case relies only on assembler support for SME, since
    no release of GCC recognizes -march=armv9-a+sme yet.
    
    Cc: qemu-stable@nongnu.org
    Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1620
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 20230622151201.1578522-5-richard.henderson@linaro.org
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    rth7680 authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    fc34f4c View commit details
    Browse the repository at this point in the history
  6. target/arm: Handle IC IVAU to improve compatibility with JITs

    Unlike architectures with precise self-modifying code semantics
    (e.g. x86) ARM processors do not maintain coherency for instruction
    execution and memory, requiring an instruction synchronization
    barrier on every core that will execute the new code, and on many
    models also the explicit use of cache management instructions.
    
    While this is required to make JITs work on actual hardware, QEMU
    has gotten away with not handling this since it does not emulate
    caches, and unconditionally invalidates code whenever the softmmu
    or the user-mode page protection logic detects that code has been
    modified.
    
    Unfortunately the latter does not work in the face of dual-mapped
    code (a common W^X workaround), where one page is executable and
    the other is writable: user-mode has no way to connect one with the
    other as that is only known to the kernel and the emulated
    application.
    
    This commit works around the issue by telling software that
    instruction cache invalidation is required by clearing the
    CPR_EL0.DIC flag (regardless of whether the emulated processor
    needs it), and then invalidating code in IC IVAU instructions.
    
    Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1034
    
    Co-authored-by: Richard Henderson <richard.henderson@linaro.org>
    Signed-off-by: John Högberg <john.hogberg@ericsson.com>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 168778890374.24232.3402138851538068785-1@git.sr.ht
    [PMM: removed unnecessary AArch64 feature check; moved
     "clear CTR_EL1.DIC" code up a bit so it's not in the middle
     of the vfp/neon related tests]
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    2 people authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    286a658 View commit details
    Browse the repository at this point in the history
  7. tests/tcg/aarch64: Add testcases for IC IVAU and dual-mapped code

    https://gitlab.com/qemu-project/qemu/-/issues/1034
    
    Signed-off-by: John Högberg <john.hogberg@ericsson.com>
    Message-id: 168778890374.24232.3402138851538068785-2@git.sr.ht
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    [PMM: fixed typo in comment]
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    jhogberg authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    a3b3b92 View commit details
    Browse the repository at this point in the history
  8. tests/qtest: xlnx-canfd-test: Fix code coverity issues

    Following are done to fix the coverity issues:
    1. Change read_data to fix the CID 1512899: Out-of-bounds access (OVERRUN)
    2. Fix match_rx_tx_data to fix CID 1512900: Logically dead code (DEADCODE)
    3. Replace rand() in generate_random_data() with g_rand_int()
    
    Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com>
    Message-id: 20230628202758.16398-1-vikram.garhwal@amd.com
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Vikram Garhwal authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    3d7552a View commit details
    Browse the repository at this point in the history
  9. target/arm: gdbstub: Guard M-profile code with CONFIG_TCG

    This code is only relevant when TCG is present in the build. Building
    with --disable-tcg --enable-xen on an x86 host we get:
    
    $ ../configure --target-list=x86_64-softmmu,aarch64-softmmu --disable-tcg --enable-xen
    $ make -j$(nproc)
    ...
    libqemu-aarch64-softmmu.fa.p/target_arm_gdbstub.c.o: in function `m_sysreg_ptr':
     ../target/arm/gdbstub.c:358: undefined reference to `arm_v7m_get_sp_ptr'
     ../target/arm/gdbstub.c:361: undefined reference to `arm_v7m_get_sp_ptr'
    
    libqemu-aarch64-softmmu.fa.p/target_arm_gdbstub.c.o: in function `arm_gdb_get_m_systemreg':
    ../target/arm/gdbstub.c:405: undefined reference to `arm_v7m_mrs_control'
    
    Signed-off-by: Fabiano Rosas <farosas@suse.de>
    Message-id: 20230628164821.16771-1-farosas@suse.de
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Fabiano Rosas authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    ef37898 View commit details
    Browse the repository at this point in the history
  10. hw: arm: allwinner-sramc: Set class_size

    AwSRAMCClass is larger than SysBusDeviceClass so the class size must be
    advertised accordingly.
    
    Fixes: 05def91 ("hw: arm: allwinner-sramc: Add SRAM Controller support for R40")
    Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 20230628110905.38125-1-akihiko.odaki@daynix.com
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    akihikodaki authored and pm215 committed Jul 4, 2023
    Copy the full SHA
    7812aaa View commit details
    Browse the repository at this point in the history
  11. target/xtensa: Assert that interrupt level is within bounds

    In handle_interrupt() we use level as an index into the interrupt_vector[]
    array. This is safe because we have checked it against env->config->nlevel,
    but Coverity can't see that (and it is only true because each CPU config
    sets its XCHAL_NUM_INTLEVELS to something less than MAX_NLEVELS), so it
    complains about a possible array overrun (CID 1507131)
    
    Add an assert() which will make Coverity happy and catch the unlikely
    case of a mis-set XCHAL_NUM_INTLEVELS in future.
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Acked-by: Max Filippov <jcmvbkbc@gmail.com>
    Message-id: 20230623154135.1930261-1-peter.maydell@linaro.org
    pm215 committed Jul 4, 2023
    Copy the full SHA
    86a7827 View commit details
    Browse the repository at this point in the history
  12. block/blkio: fix module_block.py parsing

    When QEMU is built with --enable-modules, the module_block.py script
    parses block/*.c to find block drivers that are built as modules. The
    script generates a table of block drivers called block_driver_modules[].
    This table is used for block driver module loading.
    
    The blkio.c driver uses macros to define its BlockDriver structs. This
    was done to avoid code duplication but the module_block.py script is
    unable to parse the macro. The result is that libblkio-based block
    drivers can be built as modules but will not be found at runtime.
    
    One fix is to make the module_block.py script or build system fancier so
    it can parse C macros (e.g. by parsing the preprocessed source code). I
    chose not to do this because it raises the complexity of the build,
    making future issues harder to debug.
    
    Keep things simple: use the macro to avoid duplicating BlockDriver
    function pointers but define .format_name and .protocol_name manually
    for each BlockDriver. This way the module_block.py is able to parse the
    code.
    
    Also get rid of the block driver name macros (e.g. DRIVER_IO_URING)
    because module_block.py cannot parse them either.
    
    Fixes: fd66dbd ("blkio: add libblkio block driver")
    Reported-by: Qing Wang <qinwang@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Message-id: 20230704123436.187761-1-stefanha@redhat.com
    Cc: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Jul 4, 2023
    Copy the full SHA
    c21eae1 View commit details
    Browse the repository at this point in the history
  13. Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu in…

    …to staging
    
    Pull request
    
    Fix --enable-modules with the blkio block driver.
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQEzBAABCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmSkOtQACgkQnKSrs4Gr
    # c8ipnQgAqrcwgJliN9wMopm5bFEiHkAppvGz/+qliEpQI5X7xt+YGhcEx7O7ZNMu
    # uSz47y5uQwNNbh4HA51gUkSopAcfH2FP8rD/FH5x7D7mmR3M61AH5LEzzlBbnneW
    # ZtuGSNIvV23mTlQOHqNOGQxV9k3QGrXfxQz0Hy4NKP6jiC1zNdAsCXC8dj9Fda+M
    # nobFXe21qhm0YHYGVgLurbjlTY3aBxL3SOSG550OjQT1Prpi+rw26aK0Gtg1jWL/
    # ynGEgxgUjvO2uqZk71NN5Xr6CLe/SLO9cdIeuhwXffna5uf80S254fMhr9Yr1h52
    # P5UFi4iQZi//fprGD72a6eyogdSzUg==
    # =USrv
    # -----END PGP SIGNATURE-----
    # gpg: Signature made Tue 04 Jul 2023 05:29:24 PM CEST
    # gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
    # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" [full]
    # gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>" [full]
    
    * tag 'block-pull-request' of https://gitlab.com/stefanha/qemu:
      block/blkio: fix module_block.py parsing
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed Jul 4, 2023
    Copy the full SHA
    0618e72 View commit details
    Browse the repository at this point in the history
  14. Merge tag 'pull-target-arm-20230704' of https://git.linaro.org/people…

    …/pmaydell/qemu-arm into staging
    
    target-arm queue:
     * Add raw_writes ops for register whose write induce TLB maintenance
     * hw/arm/sbsa-ref: use XHCI to replace EHCI
     * Avoid splitting Zregs across lines in dump
     * Dump ZA[] when active
     * Fix SME full tile indexing
     * Handle IC IVAU to improve compatibility with JITs
     * xlnx-canfd-test: Fix code coverity issues
     * gdbstub: Guard M-profile code with CONFIG_TCG
     * allwinner-sramc: Set class_size
     * target/xtensa: Assert that interrupt level is within bounds
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmSkSnEZHHBldGVyLm1h
    # eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3txnD/9AOIGrr03CKG1RLitM+6b2
    # dNOx//iFpRVIOja5PmENQ8eNOF9MXHiQeJ5Xd83ldnSsuV3wvXRiQ0YfJCoFRrL3
    # 3uklz61SL3S5/aQ6uvCiewE+nORX39kl+2CUzsczYOTSkjc/gzsUxaojPlP7aXqJ
    # n2OaDLLuXkW3P19L/TZulTbzEg80p5Xmpr7RwaYndxoQlMTeyr80CKoJ76M8TZP0
    # hTciij5nlBjUTLGxejD1BCrhtYwa+HNkYTRrDUPVZogIYpIJeD90uI9dsORpT0Df
    # zZLxCW+xPtm/057PSDbYM3QLX3nQN09WmciWrv5rsyk4JU49v2NLaYeNWV7SXi/V
    # FpNwA67M0pm7f1fep9yOCjVt51iGDONweQkqRIz+ok40FsoKbslKQuFhuXxl4LE3
    # OLVLE26hu6cEVsMd0I1zipvDzyhuWk2lw+Qpi8zxSGoKaXYTK8oq8YTJ2lZspC8K
    # EXAaDipr9gtWpOGHLQbX30fY/+2KX29g9Ih2FXjN5p5/UlcyJZKRyYI/jMvCUHRm
    # f8k7vGlx8+s8hRoa6stXXbbFXoJbgywMd6B5sXMTVXnRvTLN3im4QQlyHDbHhrg9
    # qoksSQ5hGG3og29drDKXIkoMxn2m71DXmriPweLp2MRqkhD4DMQS1YGjeJSxSrZe
    # u+Z4cusrj1nzwSQK98j2UA==
    # =vtOk
    # -----END PGP SIGNATURE-----
    # gpg: Signature made Tue 04 Jul 2023 06:36:01 PM CEST
    # gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
    # gpg:                issuer "peter.maydell@linaro.org"
    # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [full]
    # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [full]
    # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [full]
    # gpg:                 aka "Peter Maydell <peter@archaic.org.uk>" [unknown]
    
    * tag 'pull-target-arm-20230704' of https://git.linaro.org/people/pmaydell/qemu-arm:
      target/xtensa: Assert that interrupt level is within bounds
      hw: arm: allwinner-sramc: Set class_size
      target/arm: gdbstub: Guard M-profile code with CONFIG_TCG
      tests/qtest: xlnx-canfd-test: Fix code coverity issues
      tests/tcg/aarch64: Add testcases for IC IVAU and dual-mapped code
      target/arm: Handle IC IVAU to improve compatibility with JITs
      target/arm: Fix SME full tile indexing
      target/arm: Dump ZA[] when active
      target/arm: Avoid splitting Zregs across lines in dump
      hw/arm/sbsa-ref: use XHCI to replace EHCI
      target/arm: Add raw_writes ops for register whose write induce TLB maintenance
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed Jul 4, 2023
    Copy the full SHA
    726e2ad View commit details
    Browse the repository at this point in the history