Skip to content
Snippets Groups Projects
  1. Jun 08, 2022
    • Peter Maydell's avatar
      target/arm: Implement FEAT_DoubleFault · 7ac61020
      Peter Maydell authored
      
      The FEAT_DoubleFault extension adds the following:
      
       * All external aborts on instruction fetches and translation table
         walks for instruction fetches must be synchronous.  For QEMU this
         is already true.
      
       * SCR_EL3 has a new bit NMEA which disables the masking of SError
         interrupts by PSTATE.A when the SError interrupt is taken to EL3.
         For QEMU we only need to make the bit writable, because we have no
         sources of SError interrupts.
      
       * SCR_EL3 has a new bit EASE which causes synchronous external
         aborts taken to EL3 to be taken at the same entry point as SError.
         (Note that this does not mean that they are SErrors for purposes
         of PSTATE.A masking or that the syndrome register reports them as
         SErrors: it just means that the vector offset is different.)
      
       * The existing SCTLR_EL3.IESB has an effective value of 1 when
         SCR_EL3.NMEA is 1.  For QEMU this is a no-op because we don't need
         different behaviour based on IESB (we don't need to do anything to
         ensure that error exceptions are synchronized).
      
      So for QEMU the things we need to change are:
       * Make SCR_EL3.{NMEA,EASE} writable
       * When taking a synchronous external abort at EL3, adjust the
         vector entry point if SCR_EL3.EASE is set
       * Advertise the feature in the ID registers
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20220531151431.949322-1-peter.maydell@linaro.org
      7ac61020
    • Peter Maydell's avatar
      target/arm: Declare support for FEAT_RASv1p1 · d507bc3b
      Peter Maydell authored
      
      The architectural feature RASv1p1 introduces the following new
      features:
       * new registers ERXPFGCDN_EL1, ERXPFGCTL_EL1 and ERXPFGF_EL1
       * new bits in the fine-grained trap registers that control traps
         for these new registers
       * new trap bits HCR_EL2.FIEN and SCR_EL3.FIEN that control traps
         for ERXPFGCDN_EL1, ERXPFGCTL_EL1, ERXPFGP_EL1
       * a larger number of the ERXMISC<n>_EL1 registers
       * the format of ERR<n>STATUS registers changes
      
      The architecture permits that if ERRIDR_EL1.NUM is 0 (as it is for
      QEMU) then all these new registers may UNDEF, and the HCR_EL2.FIEN
      and SCR_EL3.FIEN bits may be RES0.  We don't have any ERR<n>STATUS
      registers (again, because ERRIDR_EL1.NUM is 0).  QEMU does not yet
      implement the fine-grained-trap extension.  So there is nothing we
      need to implement to be compliant with the feature spec.  Make the
      'max' CPU report the feature in its ID registers, and document it.
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20220531114258.855804-1-peter.maydell@linaro.org
      d507bc3b
    • Richard Henderson's avatar
      Merge tag 'pull-tpm-2022-06-07-1' of https://github.com/stefanberger/qemu-tpm into staging · 6d940eff
      Richard Henderson authored
      Merge tpm 2022/06/07 v1
      
      # -----BEGIN PGP SIGNATURE-----
      #
      # iQEzBAABCAAdFiEEuBi5yt+QicLVzsZrda1lgCoLQhEFAmKf8HgACgkQda1lgCoL
      # QhHx8Qf/QB2z+0B1xKKn8NqrWbZ+FaVlnPu/3hX4kraCY5zAYV9e64kdWhuIKRbM
      # 74/KARGMpkme6Y8rUSK6mVeiY+ul+egfVMnKyfhsM1jhAQT/DzSlht/XZzbn3Mg+
      # FFXQBMqcvcNWH53q9zi9GJYqH4tcxUku3ejgodU4+SO2wB5S59pS/tD+i5H06Vy5
      # Iw1kW6I11gYhJGETxVgb6F2Jfyu6uPWFhIg7eN06XwNExFc45E8GjrpIs2rO78GN
      # OzMBjwAG+C+/PU+UZDOd5Zhq5qv+8DcvDQuPXyqksxPcFvouvLghQvQL/h7neMlM
      # jOwHS153ay0EAT/t2lZafsBwqKQxvQ==
      # =b9Qe
      # -----END PGP SIGNATURE-----
      # gpg: Signature made Tue 07 Jun 2022 05:42:32 PM PDT
      # gpg:                using RSA key B818B9CADF9089C2D5CEC66B75AD65802A0B4211
      # gpg: Good signature from "Stefan Berger <stefanb@linux.vnet.ibm.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: B818 B9CA DF90 89C2 D5CE  C66B 75AD 6580 2A0B 4211
      
      * tag 'pull-tpm-2022-06-07-1' of https://github.com/stefanberger/qemu-tpm
      
      :
        tpm_crb: mark command buffer as dirty on request completion
        hw/tpm/tpm_tis_common.c: Assert that locty is in range
      
      Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      6d940eff
    • Anthony PERARD's avatar
      tpm_crb: mark command buffer as dirty on request completion · e37a0ef4
      Anthony PERARD authored
      
      At the moment, there doesn't seems to be any way to know that QEMU
      made modification to the command buffer. This is potentially an issue
      on Xen while migrating a guest, as modification to the buffer after
      the migration as started could be ignored and not transfered to the
      destination.
      
      Mark the memory region of the command buffer as dirty once a request
      is completed.
      
      Signed-off-by: default avatarAnthony PERARD <anthony.perard@citrix.com>
      Reviewed-by: default avatarStefan Berger <stefanb@linux.ibm.com>
      Signed-off-by: default avatarStefan Berger <stefanb@linux.ibm.com>
      Message-id: 20220411144749.47185-1-anthony.perard@citrix.com
      e37a0ef4
  2. Jun 06, 2022
Loading