1. 31 8月, 2023 30 次提交
    • S
      Merge tag 'quick-fix-pull-request' of https://gitlab.com/bsdimp/qemu into staging · 17780edd
      Stefan Hajnoczi 提交于
      Pull request: fix ci by fixing clang-user
      
      # -----BEGIN PGP SIGNATURE-----
      # Comment: GPGTools - https://gpgtools.org
      #
      # iQIzBAABCgAdFiEEIDX4lLAKo898zeG3bBzRKH2wEQAFAmTvYpcACgkQbBzRKH2w
      # EQCKvhAA3nfvm+UMoRbOjFGuOOZKy+HR+nk40rxHa8CzOabbJnx4EtdBZTnNJ+f5
      # WxLvEIzQw6iLYoqr6Rkcn0MkfYryesDScig7tQW0A87DtivXbDyrRbcmAQuCrcSe
      # EpEqjBOueiC9xe1U9hzdpNyBkuXQWFUNGKX6swR5vpOEb1hHKzFMY+60vEgcjcjQ
      # /y7cQcwRJeMNyBEwAM4HSgcVIKxB8ZmIQpIbsWJPAJhEZZE6SvTiKhM0PlZvrwnv
      # dlEV8F68f3cBka0QmX5JJNJQdXn+2gb2Ix06dm8z7BWtiZoH/rcJ0FfVjMk7bkcC
      # 2e0J0jI9JTf1MKNGHbO8V2YoZw+jCB9nr6N8HEymgla7bK6QPD6LIdTs0i6PUEB8
      # PUf902NrOS+kbWTGsb9GINegklk3pJ0jnFZagqfCUxARQ2qrqmA6q5vg9d0FjPVl
      # vJ13weKkSHW126/4Wr23EhUFIoYtiuMjgz/Bjd5TvzhvnVGJiPJaY9sGpgZZ3PJJ
      # EPCRms5MRut/NE0znKQ9ozAz1FMdVd2XnXeClWJd2NUmGc7ZbBGMcSvUYdC9KLIK
      # oSQRBTUDgGIdHnB+g367vKs98ir+03gOcpQk9z0fy25wCymmp/Uco8jsm6hCgSGn
      # x7b9R6/+92xd/IZFZm5N3/llu6JHYPEMhdg8evNp9VTFPoi9PYc=
      # =jG8p
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Wed 30 Aug 2023 11:39:03 EDT
      # gpg:                using RSA key 2035F894B00AA3CF7CCDE1B76C1CD1287DB01100
      # gpg: Good signature from "Warner Losh <wlosh@netflix.com>" [unknown]
      # gpg:                 aka "Warner Losh <imp@bsdimp.com>" [unknown]
      # gpg:                 aka "Warner Losh <imp@freebsd.org>" [unknown]
      # gpg:                 aka "Warner Losh <imp@village.org>" [unknown]
      # gpg:                 aka "Warner Losh <wlosh@bsdimp.com>" [unknown]
      # gpg: WARNING: This key is not certified with a trusted signature!
      # gpg:          There is no indication that the signature belongs to the owner.
      # Primary key fingerprint: 2035 F894 B00A A3CF 7CCD  E1B7 6C1C D128 7DB0 1100
      
      * tag 'quick-fix-pull-request' of https://gitlab.com/bsdimp/qemu:
        bsd-user: Move PRAGMA_DISABLE_PACKED_WARNING etc to qemu.h
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      17780edd
    • S
      Merge tag 'pull-target-arm-20230831' of... · c4e5f9a2
      Stefan Hajnoczi 提交于
      Merge tag 'pull-target-arm-20230831' of https://git.linaro.org/people/pmaydell/qemu-arm into staging
      
      target-arm queue:
       * Some of the preliminary patches for Cortex-A710 support
       * i.MX7 and i.MX6UL refactoring
       * Implement SRC device for i.MX7
       * Catch illegal-exception-return from EL3 with bad NSE/NS
       * Use 64-bit offsets for holding time_t differences in RTC devices
       * Model correct number of MPU regions for an505, an521, an524 boards
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmTwbukZHHBldGVyLm1h
      # eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3ihBD/wK8Iz0KpTAwZBDAodnSZrh
      # tQnJAvYFp8CxA4O8sZ9IeWsZh90gzsTCZi0NqUTTzvWCJfxkB7qTPdlJT5IzVxou
      # oEUk2aogSJhRA3XRJzqArXsPlnZGSYDbtwKx4VtfCvOCCH08Y7nhnFaRj1oFnR4Q
      # 0PE/8YtGXTBxLHrO8U3tomg7zElzOUP8ZVZtb30BOyw1jtfSD03IZR8dzpA43u1E
      # Hh418WvVekmwFoFNh8yUeHzbyXMZufzvbJPuDGJ8pPWwIpvSG6chOnKF8jZll+Ur
      # DqOsDkGlQgcBR2QwYfSPClrEkX8yahJ95PBfM6giG+DQC7OiElqXqTiUGZcpgUVo
      # uSUbzS4YPsxCnyVV6SBXV+f/8hdXBxOSHTgl7OAFa8X9OwWwspxHJ/v2o/2ibnUT
      # hTTkFp/w1nQwVEN8xf1DOUpm/J2Wr8UeH4f776daSrfKAol2BKbHb8dOgGLQCwqb
      # G+iDcE4bkzRqly6f+uVk8xSEZDd9P1NYoxKV+gNlV1dTspdHVpTC+rXMa8dRw5hI
      # 4KgaAslj++Xa229xkjORXCJ1cICRIebYg7+SjvTtGBYsFV7plsCcYb/R9yLmhVCf
      # fKHKKaYe9sQJ82apOIkTc+nnW8BQQx6XUmU/A//iZ8JGLk6DpJcZ8f1m/2rVZTsl
      # 9+lsmpBf4w+uR4o+Womhfw==
      # =MFh3
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Thu 31 Aug 2023 06:43:53 EDT
      # 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]
      # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE
      
      * tag 'pull-target-arm-20230831' of https://git.linaro.org/people/pmaydell/qemu-arm: (24 commits)
        hw/arm: Set number of MPU regions correctly for an505, an521, an524
        hw/arm/armv7m: Add mpu-ns-regions and mpu-s-regions properties
        target/arm: Do all "ARM_FEATURE_X implies Y" checks in post_init
        rtc: Use time_t for passing and returning time offsets
        hw/rtc/aspeed_rtc: Use 64-bit offset for holding time_t difference
        hw/rtc/twl92230: Use int64_t for sec_offset and alm_sec
        hw/rtc/m48t59: Use 64-bit arithmetic in set_alarm()
        target/arm: Catch illegal-exception-return from EL3 with bad NSE/NS
        Add i.MX7 SRC device implementation
        Add i.MX7 missing TZ devices and memory regions
        Refactor i.MX7 processor code
        Add i.MX6UL missing devices.
        Refactor i.MX6UL processor code
        Remove i.MX7 IOMUX GPR device from i.MX6UL
        target/arm: properly document FEAT_CRC32
        target/arm: Implement FEAT_HPDS2 as a no-op
        target/arm: Suppress FEAT_TRBE (Trace Buffer Extension)
        target/arm: Apply access checks to neoverse-v1 special registers
        target/arm: Apply access checks to neoverse-n1 special registers
        target/arm: Introduce make_ccsidr64
        ...
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      c4e5f9a2
    • S
      Merge tag 'xen-virtio-2-tag' of https://gitlab.com/sstabellini/qemu into staging · 2b0612de
      Stefan Hajnoczi 提交于
      xen-virtio-2-tag
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQIzBAABCgAdFiEE0E4zq6UfZ7oH0wrqiU+PSHDhrpAFAmTv65wACgkQiU+PSHDh
      # rpC6vg/+II8XIOTccYdrUI61irTDznlY2gWzr4oYDmW7zThO1y7wfqBTVZvOhGnC
      # paPs7Xe2mJMHSci8Nx+S/jpOBGmGZ7vWxkYsLltlmEIjsdTpD1ZlGmCITNR80KG6
      # edmARZ06MU21zRETXbMBmyglak+ph6BWHEOZWtokfZbGXl7oQ8kt1OvT6azuRvPF
      # r6woYIg4eADE2ykReGAuw4FOrRjtKSKjAOhGrEf2jT5yemaeYYv2fPeyGoq46jAw
      # +Ktn9luwkY+hgMSRm2CPrZ+nJPfDqQgfypClu5CpF0faIIvvogWW0lkJmeMKLYdM
      # yQgyUAmAFQMTjwo2yWQi3BJj+550gIM3i3By7AjX5Qs2+yILec7pAvD/d8XQh2KC
      # 47M/u8DMC+Cel/OHNW7eoO6jh4z0Yu6zgaa9rEusVAxZuDJpxc6kcopbrikXCgBr
      # yIaO8h8ryKJISFupu4Gi/Vs0WuDDL3z1q3kdhfqkBQ9wwyK9/McZM8ue9KObH1al
      # M/v5hsnnG+m/5ANH9BYpaCgjG51FGtzzgwlZGLVkCGEUMeNZ+mkROuu0krKfMeJA
      # qGQOOesGyOw7tjYvBvHG2JiFQhmXqExPydkhNw+Gi1lH1C1F08jJRXM45/YRhOm/
      # KlMd+dVK5BG1Hk4vhDmppMJn5iEb0UVHCaV2bXQMBVOXIRqHJ2A=
      # =4KZ7
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Wed 30 Aug 2023 21:23:40 EDT
      # gpg:                using RSA key D04E33ABA51F67BA07D30AEA894F8F4870E1AE90
      # gpg: Good signature from "Stefano Stabellini <sstabellini@kernel.org>" [unknown]
      # gpg:                 aka "Stefano Stabellini <stefano.stabellini@eu.citrix.com>" [full]
      # Primary key fingerprint: D04E 33AB A51F 67BA 07D3  0AEA 894F 8F48 70E1 AE90
      
      * tag 'xen-virtio-2-tag' of https://gitlab.com/sstabellini/qemu:
        xen_arm: Initialize RAM and add hi/low memory regions
        xen_arm: Create virtio-mmio devices during initialization
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      2b0612de
    • S
      Merge tag 'pull-maintainer-ominbus-300823-1' of https://gitlab.com/stsquad/qemu into staging · db1a88a5
      Stefan Hajnoczi 提交于
      testing and gdbstub updates:
      
        - enable ccache for gitlab builds
        - fix various test info leakages for non V=1
        - update style to allow loop vars
        - bump FreeBSD to v13.2
        - clean-up gdbstub tests
        - various gdbstub doc and refactorings
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmTvS2AACgkQ+9DbCVqe
      # KkRiRwgAhsinp2/KgnvkD0n6deQy/JWg9MfYIvvZacKEakIfQvCDoJ752AUZzUTw
      # ggQ+W2KuaoHTzwG+AOMLdzulkmspQ8xeFuD2aIpFjRMnZrO9jN2T4L0vcGLAd95c
      # 9QLqPeH8xRdhuK28+ILuYzKOKBcefQ44ufMLpxrS2iNITEsSg/Tw3MU91hbct49g
      # 3OR4bD1ueG5Ib/lXp8V/4GnRmfLdnp3k0i/6OHriq7Mpz4Lia67WblVsPEple66U
      # n7JCo2sI5/m+6p2tvKs7rH60xc8s1Za3kbK4ggEq3LVRfzVOordZqO+1ep6wklTY
      # 6nP9Ry9nZG3gqCmcNXfhoofm0vHaZA==
      # =Km9m
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Wed 30 Aug 2023 10:00:00 EDT
      # gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
      # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [unknown]
      # gpg: WARNING: This key is not certified with a trusted signature!
      # gpg:          There is no indication that the signature belongs to the owner.
      # Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44
      
      * tag 'pull-maintainer-ominbus-300823-1' of https://gitlab.com/stsquad/qemu:
        gdbstub: move comment for gdb_register_coprocessor
        gdbstub: replace global gdb_has_xml with a function
        gdbstub: refactor get_feature_xml
        gdbstub: remove unused user_ctx field
        gdbstub: fixes cases where wrong threads were reported to GDB on SIGINT
        tests/tcg: clean-up gdb confirm/pagination settings
        tests: remove test-gdbstub.py
        .gitlab-ci.d/cirrus.yml: Update FreeBSD to v13.2
        docs/style: permit inline loop variables
        tests/tcg: remove quoting for info output
        tests/docker: cleanup non-verbose output
        gitlab: enable ccache for many build jobs
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      db1a88a5
    • P
      hw/arm: Set number of MPU regions correctly for an505, an521, an524 · e73b8bb8
      Peter Maydell 提交于
      The IoTKit, SSE200 and SSE300 all default to 8 MPU regions.  The
      MPS2/MPS3 FPGA images don't override these except in the case of
      AN547, which uses 16 MPU regions.
      
      Define properties on the ARMSSE object for the MPU regions (using the
      same names as the documented RTL configuration settings, and
      following the pattern we already have for this device of using
      all-caps names as the RTL does), and set them in the board code.
      
      We don't actually need to override the default except on AN547,
      but it's simpler code to have the board code set them always
      rather than tracking which board subtypes want to set them to
      a non-default value separately from what that value is.
      
      Tho overall effect is that for mps2-an505, mps2-an521 and mps3-an524
      we now correctly use 8 MPU regions, while mps3-an547 stays at its
      current 16 regions.
      
      It's possible some guest code wrongly depended on the previous
      incorrectly modeled number of memory regions. (Such guest code
      should ideally check the number of regions via the MPU_TYPE
      register.) The old behaviour can be obtained with additional
      -global arguments to QEMU:
      
      For mps2-an521 and mps2-an524:
       -global sse-200.CPU0_MPU_NS=16 -global sse-200.CPU0_MPU_S=16 -global sse-200.CPU1_MPU_NS=16 -global sse-200.CPU1_MPU_S=16
      
      For mps2-an505:
       -global sse-200.CPU0_MPU_NS=16 -global sse-200.CPU0_MPU_S=16
      
      NB that the way the implementation allows this use of -global
      is slightly fragile: if the board code explicitly sets the
      properties on the sse-200 object, this overrides the -global
      command line option. So we rely on:
       - the boards that need fixing all happen to use the SSE defaults
       - we can write the board code to only set the property if it
         is different from the default, rather than having all boards
         explicitly set the property
       - the board that does need to use a non-default value happens
         to need to set it to the same value (16) we previously used
      This works, but there are some kinds of refactoring of the
      mps2-tz.c code that would break the support for -global here.
      
      Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1772Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      Message-id: 20230724174335.2150499-4-peter.maydell@linaro.org
      e73b8bb8
    • P
      hw/arm/armv7m: Add mpu-ns-regions and mpu-s-regions properties · cb0929bb
      Peter Maydell 提交于
      M-profile CPUs generally allow configuration of the number of MPU
      regions that they have.  We don't currently model this, so our
      implementations of some of the board models provide CPUs with the
      wrong number of regions.  RTOSes like Zephyr that hardcode the
      expected number of regions may therefore not run on the model if they
      are set up to run on real hardware.
      
      Add properties mpu-ns-regions and mpu-s-regions to the ARMV7M object,
      matching the ability of hardware to configure the number of Secure
      and NonSecure regions separately.  Our actual CPU implementation
      doesn't currently support that, and it happens that none of the MPS
      boards we model set the number of regions differently for Secure vs
      NonSecure, so we provide an interface to the boards and SoCs that
      won't need to change if we ever do add that functionality in future,
      but make it an error to configure the two properties to different
      values.
      
      (The property name on the CPU is the somewhat misnamed-for-M-profile
      "pmsav7-dregion", so we don't follow that naming convention for
      the properties here. The TRM doesn't say what the CPU configuration
      variable names are, so we pick something, and follow the lowercase
      convention we already have for properties here.)
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      Message-id: 20230724174335.2150499-3-peter.maydell@linaro.org
      cb0929bb
    • P
      target/arm: Do all "ARM_FEATURE_X implies Y" checks in post_init · b8f7959f
      Peter Maydell 提交于
      Where architecturally one ARM_FEATURE_X flag implies another
      ARM_FEATURE_Y, we allow the CPU init function to only set X, and then
      set Y for it.  Currently we do this in two places -- we set a few
      flags in arm_cpu_post_init() because we need them to decide which
      properties to create on the CPU object, and then we do the rest in
      arm_cpu_realizefn().  However, this is fragile, because it's easy to
      add a new property and not notice that this means that an X-implies-Y
      check now has to move from realize to post-init.
      
      As a specific example, the pmsav7-dregion property is conditional
      on ARM_FEATURE_PMSA && ARM_FEATURE_V7, which means it won't appear
      on the Cortex-M33 and -M55, because they set ARM_FEATURE_V8 and
      rely on V8-implies-V7, which doesn't happen until the realizefn.
      
      Move all of these X-implies-Y checks into a new function, which
      we call at the top of arm_cpu_post_init(), so the feature bits
      are available at that point.
      
      This does now give us the reverse issue, that if there's a feature
      bit which is enabled or disabled by the setting of a property then
      then X-implies-Y features that are dependent on that property need to
      be in realize, not in this new function.  But the only one of those
      is the "EL3 implies VBAR" which is already in the right place, so
      putting things this way round seems better to me.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20230724174335.2150499-2-peter.maydell@linaro.org
      b8f7959f
    • P
      rtc: Use time_t for passing and returning time offsets · 5ec008a2
      Peter Maydell 提交于
      The functions qemu_get_timedate() and qemu_timedate_diff() take
      and return a time offset as an integer. Coverity points out that
      means that when an RTC device implementation holds an offset
      as a time_t, as the m48t59 does, the time_t will get truncated.
      (CID 1507157, 1517772).
      
      The functions work with time_t internally, so make them use that type
      in their APIs.
      
      Note that this won't help any Y2038 issues where either the device
      model itself is keeping the offset in a 32-bit integer, or where the
      hardware under emulation has Y2038 or other rollover problems.  If we
      missed any cases of the former then hopefully Coverity will warn us
      about them since after this patch we'd be truncating a time_t in
      assignments from qemu_timedate_diff().)
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      5ec008a2
    • P
      hw/rtc/aspeed_rtc: Use 64-bit offset for holding time_t difference · c0a63857
      Peter Maydell 提交于
      In the aspeed_rtc device we store a difference between two time_t
      values in an 'int'. This is not really correct when time_t could
      be 64 bits. Enlarge the field to 'int64_t'.
      
      This is a migration compatibility break for the aspeed boards.
      While we are changing the vmstate, remove the accidental
      duplicate of the offset field.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NCédric Le Goater <clg@kaod.org>
      c0a63857
    • P
      hw/rtc/twl92230: Use int64_t for sec_offset and alm_sec · 279695a4
      Peter Maydell 提交于
      In the twl92230 device, use int64_t for the two state fields
      sec_offset and alm_sec, because we set these to values that
      are either time_t or differences between two time_t values.
      
      These fields aren't saved in vmstate anywhere, so we can
      safely widen them.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      279695a4
    • P
      hw/rtc/m48t59: Use 64-bit arithmetic in set_alarm() · 7038b6e4
      Peter Maydell 提交于
      In the m48t59 device we almost always use 64-bit arithmetic when
      dealing with time_t deltas.  The one exception is in set_alarm(),
      which currently uses a plain 'int' to hold the difference between two
      time_t values.  Switch to int64_t instead to avoid any possible
      overflow issues.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      7038b6e4
    • P
      target/arm: Catch illegal-exception-return from EL3 with bad NSE/NS · 35aa6715
      Peter Maydell 提交于
      The architecture requires (R_TYTWB) that an attempt to return from EL3
      when SCR_EL3.{NSE,NS} are {1,0} is an illegal exception return. (This
      enforces that the CPU can't ever be executing below EL3 with the
      NSE,NS bits indicating an invalid security state.)
      
      We were missing this check; add it.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20230807150618.101357-1-peter.maydell@linaro.org
      35aa6715
    • J
      Add i.MX7 SRC device implementation · 12517bc9
      Jean-Christophe Dubois 提交于
      The SRC device is normally used to start the secondary CPU.
      
      When running Linux directly, QEMU is emulating a PSCI interface that UBOOT
      is installing at boot time and therefore the fact that the SRC device is
      unimplemented is hidden as Qemu respond directly to PSCI requets without
      using the SRC device.
      
      But if you try to run a more bare metal application (maybe uboot itself),
      then it is not possible to start the secondary CPU as the SRC is an
      unimplemented device.
      
      This patch adds the ability to start the secondary CPU through the SRC
      device so that you can use this feature in bare metal applications.
      Signed-off-by: NJean-Christophe Dubois <jcd@tribudubois.net>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: ce9a0162defd2acee5dc7f8a674743de0cded569.1692964892.git.jcd@tribudubois.net
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      12517bc9
    • J
      Add i.MX7 missing TZ devices and memory regions · 736988a0
      Jean-Christophe Dubois 提交于
      * Add TZASC as unimplemented device.
        - Allow bare metal application to access this (unimplemented) device
      * Add CSU as unimplemented device.
        - Allow bare metal application to access this (unimplemented) device
      * Add various memory segments
        - OCRAM
        - OCRAM EPDC
        - OCRAM PXP
        - OCRAM S
        - ROM
        - CAAM
      Signed-off-by: NJean-Christophe Dubois <jcd@tribudubois.net>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      Message-id: f887a3483996ba06d40bd62ffdfb0ecf68621987.1692964892.git.jcd@tribudubois.net
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      736988a0
    • J
      Refactor i.MX7 processor code · 45b8b34d
      Jean-Christophe Dubois 提交于
      * Add Addr and size definition for all i.MX7 devices in i.MX7 header file.
      * Use those newly defined named constants whenever possible.
      * Standardize the way we init a familly of unimplemented devices
        - SAI
        - PWM
        - CAN
      * Add/rework few comments
      Signed-off-by: NJean-Christophe Dubois <jcd@tribudubois.net>
      Message-id: 59e195d33e4d486a8d131392acd46633c8c10ed7.1692964892.git.jcd@tribudubois.net
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      45b8b34d
    • J
      Add i.MX6UL missing devices. · f6020845
      Jean-Christophe Dubois 提交于
      * Add TZASC as unimplemented device.
        - Allow bare metal application to access this (unimplemented) device
      * Add CSU as unimplemented device.
        - Allow bare metal application to access this (unimplemented) device
      * Add 4 missing PWM devices
      Signed-off-by: NJean-Christophe Dubois <jcd@tribudubois.net>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      Message-id: 59e4dc56e14eccfefd379275ec19048dff9c10b3.1692964892.git.jcd@tribudubois.net
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      f6020845
    • J
      Refactor i.MX6UL processor code · 0cd4926b
      Jean-Christophe Dubois 提交于
      * Add Addr and size definition for most i.MX6UL devices in i.MX6UL header file.
      * Use those newly defined named constants whenever possible.
      * Standardize the way we init a familly of unimplemented devices
        - SAI
        - PWM
        - CAN
      * Add/rework few comments
      Signed-off-by: NJean-Christophe Dubois <jcd@tribudubois.net>
      Message-id: d579043fbd4e4b490370783fda43fc02c8e9be75.1692964892.git.jcd@tribudubois.net
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      0cd4926b
    • J
      Remove i.MX7 IOMUX GPR device from i.MX6UL · 6f97cfd8
      Jean-Christophe Dubois 提交于
      i.MX7 IOMUX GPR device is not equivalent to i.MX6UL IOMUXC GPR device.
      In particular, register 22 is not present on i.MX6UL and this is actualy
      The only register that is really emulated in the i.MX7 IOMUX GPR device.
      
      Note: The i.MX6UL code is actually also implementing the IOMUX GPR device
      as an unimplemented device at the same bus adress and the 2 instantiations
      were actualy colliding. So we go back to the unimplemented device for now.
      Signed-off-by: NJean-Christophe Dubois <jcd@tribudubois.net>
      Message-id: 48681bf51ee97646479bb261bee19abebbc8074e.1692964892.git.jcd@tribudubois.net
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      6f97cfd8
    • A
      target/arm: properly document FEAT_CRC32 · 9e771a2f
      Alex Bennée 提交于
      This is a mandatory feature for Armv8.1 architectures but we don't
      state the feature clearly in our emulation list. Also include
      FEAT_CRC32 comment in aarch64_max_tcg_initfn for ease of grepping.
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Message-id: 20230824075406.1515566-1-alex.bennee@linaro.org
      Cc: qemu-stable@nongnu.org
      Message-Id: <20230222110104.3996971-1-alex.bennee@linaro.org>
      [PMM: pluralize 'instructions' in docs]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      9e771a2f
    • R
      target/arm: Implement FEAT_HPDS2 as a no-op · df9a3917
      Richard Henderson 提交于
      This feature allows the operating system to set TCR_ELx.HWU*
      to allow the implementation to use the PBHA bits from the
      block and page descriptors for for IMPLEMENTATION DEFINED
      purposes.  Since QEMU has no need to use these bits, we may
      simply ignore them.
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 20230811214031.171020-11-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      df9a3917
    • R
      target/arm: Suppress FEAT_TRBE (Trace Buffer Extension) · 3d5f45ec
      Richard Henderson 提交于
      Like FEAT_TRF (Self-hosted Trace Extension), suppress tracing
      external to the cpu, which is out of scope for QEMU.
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 20230811214031.171020-10-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      3d5f45ec
    • R
      target/arm: Apply access checks to neoverse-v1 special registers · 87da10b4
      Richard Henderson 提交于
      There is only one additional EL1 register modeled, which
      also needs to use access_actlr_w.
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 20230811214031.171020-8-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      87da10b4
    • R
      target/arm: Apply access checks to neoverse-n1 special registers · 6d482423
      Richard Henderson 提交于
      Access to many of the special registers is enabled or disabled
      by ACTLR_EL[23], which we implement as constant 0, which means
      that all writes outside EL3 should trap.
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 20230811214031.171020-7-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      6d482423
    • R
      target/arm: Introduce make_ccsidr64 · d8100822
      Richard Henderson 提交于
      Do not hard-code the constants for Neoverse V1.
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 20230811214031.171020-6-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      d8100822
    • R
      target/arm: When tag memory is not present, set MTE=1 · cd305b5f
      Richard Henderson 提交于
      When the cpu support MTE, but the system does not, reduce cpu
      support to user instructions at EL0 instead of completely
      disabling MTE.  If we encounter a cpu implementation which does
      something else, we can revisit this setting.
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 20230811214031.171020-5-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      cd305b5f
    • R
      target/arm: Support more GM blocksizes · 7134cb07
      Richard Henderson 提交于
      Support all of the easy GM block sizes.
      Use direct memory operations, since the pointers are aligned.
      
      While BS=2 (16 bytes, 1 tag) is a legal setting, that requires
      an atomic store of one nibble.  This is not difficult, but there
      is also no point in supporting it until required.
      
      Note that cortex-a710 sets GM blocksize to match its cacheline
      size of 64 bytes.  I expect many implementations will also
      match the cacheline, which makes 16 bytes very unlikely.
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 20230811214031.171020-4-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      7134cb07
    • R
      target/arm: Allow cpu to configure GM blocksize · 851ec6eb
      Richard Henderson 提交于
      Previously we hard-coded the blocksize with GMID_EL1_BS.
      But the value we choose for -cpu max does not match the
      value that cortex-a710 uses.
      
      Mirror the way we handle dcz_blocksize.
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20230811214031.171020-3-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      851ec6eb
    • R
      target/arm: Reduce dcz_blocksize to uint8_t · ae4acc69
      Richard Henderson 提交于
      This value is only 4 bits wide.
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@linaro.org>
      Message-id: 20230811214031.171020-2-richard.henderson@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      ae4acc69
    • O
      xen_arm: Initialize RAM and add hi/low memory regions · 56014219
      Oleksandr Tyshchenko 提交于
      In order to use virtio backends we need to initialize RAM for the
      xen-mapcache (which is responsible for mapping guest memory using foreign
      mapping) to work. Calculate and add hi/low memory regions based on
      machine->ram_size.
      
      Use the constants defined in public header arch-arm.h to be aligned with the xen
      toolstack.
      
      While using this machine, the toolstack should then pass real ram_size using
      "-m" arg. If "-m" is not given, create a QEMU machine without IOREQ and other
      emulated devices like TPM and VIRTIO. This is done to keep this QEMU machine
      usable for /etc/init.d/xencommons.
      Signed-off-by: NOleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
      Signed-off-by: NVikram Garhwal <vikram.garhwal@amd.com>
      Reviewed-by: NStefano Stabellini <sstabellini@kernel.org>
      Signed-off-by: NStefano Stabellini <stefano.stabellini@amd.com>
      56014219
    • O
      xen_arm: Create virtio-mmio devices during initialization · 0c8ab1cd
      Oleksandr Tyshchenko 提交于
      In order to use virtio backends we need to allocate virtio-mmio
      parameters (irq and base) and register corresponding buses.
      
      Use the constants defined in public header arch-arm.h to be
      aligned with the toolstack. So the number of current supported
      virtio-mmio devices is 10.
      
      For the interrupts triggering use already existing on Arm
      device-model hypercall.
      
      The toolstack should then insert the same amount of device nodes
      into guest device-tree.
      Signed-off-by: NOleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
      Signed-off-by: NVikram Garhwal <vikram.garhwal@amd.com>
      Reviewed-by: NStefano Stabellini <sstabellini@kernel.org>
      Signed-off-by: NStefano Stabellini <stefano.stabellini@amd.com>
      0c8ab1cd
  2. 30 8月, 2023 10 次提交